View | Details | Raw Unified | Return to bug 156425
Collapse All | Expand All

(-)src/org/eclipse/uml2/uml/internal/operations/ElementOperations.java (-1 / +17 lines)
Lines 15-24 Link Here
15
import java.util.ArrayList;
15
import java.util.ArrayList;
16
import java.util.Collections;
16
import java.util.Collections;
17
import java.util.HashMap;
17
import java.util.HashMap;
18
import java.util.HashSet;
18
import java.util.Iterator;
19
import java.util.Iterator;
19
import java.util.List;
20
import java.util.List;
20
import java.util.ListIterator;
21
import java.util.ListIterator;
21
import java.util.Map;
22
import java.util.Map;
23
import java.util.Set;
22
24
23
import org.eclipse.emf.common.util.BasicDiagnostic;
25
import org.eclipse.emf.common.util.BasicDiagnostic;
24
import org.eclipse.emf.common.util.Diagnostic;
26
import org.eclipse.emf.common.util.Diagnostic;
Lines 129-135 Link Here
129
			DiagnosticChain diagnostics, Map context) {
131
			DiagnosticChain diagnostics, Map context) {
130
		boolean result = true;
132
		boolean result = true;
131
133
132
		if (element.allOwnedElements().contains(element)) {
134
        // get all elements owning the 'element'
135
        Set owners = collectOwners(element);
136
        
137
		if (owners.contains(element)) {
133
			result = false;
138
			result = false;
134
139
135
			if (diagnostics != null) {
140
			if (diagnostics != null) {
Lines 144-149 Link Here
144
149
145
		return result;
150
		return result;
146
	}
151
	}
152
    
153
    protected static Set collectOwners(Element element) {
154
        Set result = new HashSet();
155
        Element owner = element.getOwner();
156
        
157
        while ((owner != null) && result.add(owner)) {
158
            owner = owner.getOwner();
159
        }
160
        
161
        return result;
162
    }
147
163
148
	/**
164
	/**
149
	 * <!-- begin-user-doc -->
165
	 * <!-- begin-user-doc -->

Return to bug 156425