Fix of refOutermostPackage (now returns "this" on outermost package) and refQuery (takes designator of other end) BLD200206180100
authormmatula@netbeans.org
Mon, 17 Jun 2002 16:18:33 +0000
changeset 886120c6db87a25
parent 885 3e8a1b6598d8
child 887 db78e339c695
Fix of refOutermostPackage (now returns "this" on outermost package) and refQuery (takes designator of other end)
mdr/src/org/netbeans/mdr/NBMDRepositoryImpl.java
mdr/src/org/netbeans/mdr/handlers/AEIndexSetWrapper.java
mdr/src/org/netbeans/mdr/handlers/AEIndexUListWrapper.java
mdr/src/org/netbeans/mdr/handlers/AssociationHandler.java
mdr/src/org/netbeans/mdr/handlers/BaseObjectHandler.java
mdr/src/org/netbeans/mdr/handlers/InstanceHandler.java
mdr/src/org/netbeans/mdr/handlers/gen/AssociationGenerator.java
mdr/src/org/netbeans/mdr/handlers/gen/TagSupport.java
mdr/src/org/netbeans/mdr/storagemodel/BootReader.java
mdr/src/org/netbeans/mdr/storagemodel/MdrStorage.java
mdr/src/org/netbeans/mdr/storagemodel/StorableAssociation.java
mdr/src/org/netbeans/mdr/storagemodel/StorableBaseObject.java
mdr/src/org/netbeans/mdr/storagemodel/StorableClass.java
mdr/src/org/netbeans/mdr/storagemodel/StorableObject.java
mdr/src/org/netbeans/mdr/util/MOFConstants.java
     1.1 --- a/mdr/src/org/netbeans/mdr/NBMDRepositoryImpl.java	Mon Jun 17 09:47:21 2002 +0000
     1.2 +++ b/mdr/src/org/netbeans/mdr/NBMDRepositoryImpl.java	Mon Jun 17 16:18:33 2002 +0000
     1.3 @@ -551,7 +551,8 @@
     1.4              for (Iterator contents = cls.getContents().iterator(); contents.hasNext();) {
     1.5                  me = (ModelElement) contents.next();
     1.6                  if (me instanceof Reference) {
     1.7 -                    end = ((Reference) me).getReferencedEnd();
     1.8 +                    end = ((Reference) me).getExposedEnd();
     1.9 +                    //System.out.println("registering reference: " + me.getName() + " for end: " + end.getName());
    1.10                      sc.addReferenceDescriptor(me.refMofId(), me.getName(), (String) associationProxies.get(end.getContainer().refMofId()), end.getName());
    1.11                  }
    1.12                  if ((me instanceof Tag) && (TAGID_INDEX.equals (((Tag) me).getTagId()))) {
     2.1 --- a/mdr/src/org/netbeans/mdr/handlers/AEIndexSetWrapper.java	Mon Jun 17 09:47:21 2002 +0000
     2.2 +++ b/mdr/src/org/netbeans/mdr/handlers/AEIndexSetWrapper.java	Mon Jun 17 16:18:33 2002 +0000
     2.3 @@ -123,7 +123,7 @@
     2.4              notifier.firePlannedChange(source, event);
     2.5              RefObject objectA;
     2.6              RefObject objectB;
     2.7 -            if (this.queryFirstEnd) {
     2.8 +            if (!this.queryFirstEnd) {
     2.9                  objectA = (RefObject) obj;
    2.10                  objectB = this.fixed;
    2.11              }
    2.12 @@ -160,7 +160,7 @@
    2.13              notifier.firePlannedChange(source, event);
    2.14              RefObject objectA;
    2.15              RefObject objectB;
    2.16 -            if (this.queryFirstEnd) {
    2.17 +            if (!this.queryFirstEnd) {
    2.18                  objectA = (RefObject) obj;
    2.19                  objectB = this.fixed;
    2.20              }
    2.21 @@ -215,7 +215,7 @@
    2.22                  notifier.firePlannedChange(source, event);
    2.23                  RefObject objectA;
    2.24                  RefObject objectB;
    2.25 -                if (queryFirstEnd) {
    2.26 +                if (!queryFirstEnd) {
    2.27                      objectA = lastRead;
    2.28                      objectB = fixed;
    2.29                  }
     3.1 --- a/mdr/src/org/netbeans/mdr/handlers/AEIndexUListWrapper.java	Mon Jun 17 09:47:21 2002 +0000
     3.2 +++ b/mdr/src/org/netbeans/mdr/handlers/AEIndexUListWrapper.java	Mon Jun 17 16:18:33 2002 +0000
     3.3 @@ -46,7 +46,7 @@
     3.4              result = wrap(innerList.get(param));
     3.5              RefObject objectA;
     3.6              RefObject objectB;
     3.7 -            if (queryFirstEnd) {
     3.8 +            if (!queryFirstEnd) {
     3.9                  objectA = (RefObject) result;
    3.10                  objectB = this.fixed;
    3.11              }
    3.12 @@ -80,7 +80,7 @@
    3.13              notifier.firePlannedChange(source, event);
    3.14              RefObject objectA;
    3.15              RefObject objectB;
    3.16 -            if (queryFirstEnd) {
    3.17 +            if (!queryFirstEnd) {
    3.18                  objectA = (RefObject) obj;
    3.19                  objectB = this.fixed;
    3.20              }
    3.21 @@ -118,7 +118,7 @@
    3.22              RefObject objectB1;
    3.23              RefObject objectA2;
    3.24              RefObject objectB2;
    3.25 -            if (this.queryFirstEnd) {
    3.26 +            if (!this.queryFirstEnd) {
    3.27                  objectA1 = (RefObject)result;
    3.28                  objectB1 = this.fixed;
    3.29                  objectA2 = (RefObject) obj;
    3.30 @@ -235,7 +235,7 @@
    3.31                  RefObject objectB1;
    3.32                  RefObject objectA2;
    3.33                  RefObject objectB2;
    3.34 -                if (queryFirstEnd) {
    3.35 +                if (!queryFirstEnd) {
    3.36                      objectA1 = lastRead;
    3.37                      objectB1 = fixed;
    3.38                      objectA2 = (RefObject)obj;
    3.39 @@ -276,7 +276,7 @@
    3.40                  notifier.firePlannedChange(source, event);
    3.41                  RefObject objectA;
    3.42                  RefObject objectB;
    3.43 -                if (queryFirstEnd) {
    3.44 +                if (!queryFirstEnd) {
    3.45                      objectA = (RefObject) obj;
    3.46                      objectB = fixed;
    3.47                  }
    3.48 @@ -357,7 +357,7 @@
    3.49                  notifier.firePlannedChange(source, event);
    3.50                  RefObject objectA;
    3.51                  RefObject objectB;
    3.52 -                if (queryFirstEnd) {
    3.53 +                if (!queryFirstEnd) {
    3.54                      objectA = lastRead;
    3.55                      objectB = fixed;
    3.56                  }
     4.1 --- a/mdr/src/org/netbeans/mdr/handlers/AssociationHandler.java	Mon Jun 17 09:47:21 2002 +0000
     4.2 +++ b/mdr/src/org/netbeans/mdr/handlers/AssociationHandler.java	Mon Jun 17 16:18:33 2002 +0000
     4.3 @@ -130,7 +130,7 @@
     4.4          this,
     4.5          AssociationEvent.EVENT_ASSOCIATION_ADD,
     4.6          associationEnd1,
     4.7 -        getAssociationDelegate().getEnd2Name(),
     4.8 +        getAssociationDelegate().getEnd1Name(),
     4.9          null,
    4.10          associationEnd2,
    4.11          AssociationEvent.POSITION_NONE
    4.12 @@ -168,7 +168,7 @@
    4.13          this,
    4.14          AssociationEvent.EVENT_ASSOCIATION_REMOVE,
    4.15          associationEnd1,
    4.16 -        getAssociationDelegate().getEnd2Name(),
    4.17 +        getAssociationDelegate().getEnd1Name(),
    4.18          associationEnd2,
    4.19          null,
    4.20          AssociationEvent.POSITION_NONE
    4.21 @@ -257,9 +257,9 @@
    4.22          } catch (ClassCastException e) {
    4.23              // this will throw TypeMismatchException or DebugException if the mismatch is not found
    4.24              if (getAssociationDelegate().getEnd1Name().equals(endName)) {
    4.25 +                getAssociationDelegate().checkType(queryObject, null);
    4.26 +            } else {
    4.27                  getAssociationDelegate().checkType(null, queryObject);
    4.28 -            } else {
    4.29 -                getAssociationDelegate().checkType(queryObject, null);
    4.30              }                
    4.31              // this is here only to make the compiler happy
    4.32              return null;
     5.1 --- a/mdr/src/org/netbeans/mdr/handlers/BaseObjectHandler.java	Mon Jun 17 09:47:21 2002 +0000
     5.2 +++ b/mdr/src/org/netbeans/mdr/handlers/BaseObjectHandler.java	Mon Jun 17 16:18:33 2002 +0000
     5.3 @@ -316,7 +316,12 @@
     5.4  
     5.5      public final RefPackage refOutermostPackage() {
     5.6          try {
     5.7 -            return (RefPackage) getHandler(_getDelegate().getOutermostPackage());
     5.8 +            StorableBaseObject pkg = _getDelegate().getOutermostPackage();
     5.9 +            if (pkg.getMofId().equals(refMofId())) {
    5.10 +                return (RefPackage) this;
    5.11 +            } else {
    5.12 +                return (RefPackage) getHandler(pkg);
    5.13 +            }
    5.14          } catch (StorageException e) {
    5.15              e.printStackTrace();
    5.16              throw new DebugException();
     6.1 --- a/mdr/src/org/netbeans/mdr/handlers/InstanceHandler.java	Mon Jun 17 09:47:21 2002 +0000
     6.2 +++ b/mdr/src/org/netbeans/mdr/handlers/InstanceHandler.java	Mon Jun 17 16:18:33 2002 +0000
     6.3 @@ -95,6 +95,7 @@
     6.4          try {
     6.5              StorableClass.ReferenceDescriptor reference = getInstanceDelegate().getClassProxy().getReferenceDescriptor(featureName);
     6.6              AssociationHandler assoc = (AssociationHandler) getHandler(reference.getAssociation());
     6.7 +            //System.out.println("getting reference " + featureName + " for end: " + reference.getEndName());
     6.8              return assoc._query(reference.getEndName(), (RefObject) this);
     6.9          } catch (StorageException e) {
    6.10              e.printStackTrace();
     7.1 --- a/mdr/src/org/netbeans/mdr/handlers/gen/AssociationGenerator.java	Mon Jun 17 09:47:21 2002 +0000
     7.2 +++ b/mdr/src/org/netbeans/mdr/handlers/gen/AssociationGenerator.java	Mon Jun 17 16:18:33 2002 +0000
     7.3 @@ -78,12 +78,12 @@
     7.4              // <associationEnd1>(<associationEnd2>)
     7.5              if (((Boolean) ends[0].getAttribute(MOFConstants.SH_MODEL_ASSOCIATION_END_IS_NAVIGABLE)).booleanValue()) {
     7.6                  MultiplicityType multiplicity = (MultiplicityType) ends[0].getAttribute(MOFConstants.SH_MODEL_ASSOCIATION_END_MULTIPLICITY);
     7.7 -                methods.add(getAssocMethod(QUERY_PREFIX + firstUpper(end1SubstName), new String[] {end2Class}, multiplicity.getUpper() == 1 ? end1Class : (multiplicity.isOrdered() ? DT_ORDERED : DT_MULTIVALUED), M_QUERY_NAME, M_QUERY_DESC, M_QUERY_TYPE, end1Name, "_query"));
     7.8 +                methods.add(getAssocMethod(QUERY_PREFIX + firstUpper(end1SubstName), new String[] {end2Class}, multiplicity.getUpper() == 1 ? end1Class : (multiplicity.isOrdered() ? DT_ORDERED : DT_MULTIVALUED), M_QUERY_NAME, M_QUERY_DESC, M_QUERY_TYPE, end2Name, "_query"));
     7.9              }
    7.10              // <associationEnd2>(<associationEnd1>)
    7.11              if (((Boolean) ends[1].getAttribute(MOFConstants.SH_MODEL_ASSOCIATION_END_IS_NAVIGABLE)).booleanValue()) {
    7.12                  MultiplicityType multiplicity = (MultiplicityType) ends[1].getAttribute(MOFConstants.SH_MODEL_ASSOCIATION_END_MULTIPLICITY);
    7.13 -                methods.add(getAssocMethod(QUERY_PREFIX + firstUpper(end2SubstName), new String[] {end1Class}, multiplicity.getUpper() == 1 ? end2Class : (multiplicity.isOrdered() ? DT_ORDERED : DT_MULTIVALUED), M_QUERY_NAME, M_QUERY_DESC, M_QUERY_TYPE, end2Name, "_query"));
    7.14 +                methods.add(getAssocMethod(QUERY_PREFIX + firstUpper(end2SubstName), new String[] {end1Class}, multiplicity.getUpper() == 1 ? end2Class : (multiplicity.isOrdered() ? DT_ORDERED : DT_MULTIVALUED), M_QUERY_NAME, M_QUERY_DESC, M_QUERY_TYPE, end1Name, "_query"));
    7.15              }
    7.16              if (((Boolean) ends[0].getAttribute(MOFConstants.SH_MODEL_ASSOCIATION_END_IS_CHANGEABLE)).booleanValue() && ((Boolean) ends[1].getAttribute(MOFConstants.SH_MODEL_ASSOCIATION_END_IS_CHANGEABLE)).booleanValue()) {
    7.17                  // add(<associationEnd1>, <associationEnd2>)
     8.1 --- a/mdr/src/org/netbeans/mdr/handlers/gen/TagSupport.java	Mon Jun 17 09:47:21 2002 +0000
     8.2 +++ b/mdr/src/org/netbeans/mdr/handlers/gen/TagSupport.java	Mon Jun 17 16:18:33 2002 +0000
     8.3 @@ -79,7 +79,7 @@
     8.4          StorableObject tag = null;
     8.5          
     8.6          try {
     8.7 -            Collection tags = (Collection) storable.getOutermostPackage().getAssociation(MOFConstants.SH_MODEL_ATTACHES_TO).queryObjects(MOFConstants.SH_MODEL_ATTACHES_TO_TAG, storable.getMofId());
     8.8 +            Collection tags = (Collection) storable.getOutermostPackage().getAssociation(MOFConstants.SH_MODEL_ATTACHES_TO).queryObjects(MOFConstants.SH_MODEL_ATTACHES_TO_MODEL_ELEMENT, storable.getMofId());
     8.9              StorableObject temp;
    8.10              for (Iterator it = tags.iterator(); it.hasNext();) {
    8.11                  temp = (StorableObject) it.next();
     9.1 --- a/mdr/src/org/netbeans/mdr/storagemodel/BootReader.java	Mon Jun 17 09:47:21 2002 +0000
     9.2 +++ b/mdr/src/org/netbeans/mdr/storagemodel/BootReader.java	Mon Jun 17 16:18:33 2002 +0000
     9.3 @@ -62,6 +62,8 @@
     9.4      private final Hashtable proxyIdByXmiId = new Hashtable();
     9.5      /**  forward proxies references */
     9.6      private final HashSet proxyReferences = new HashSet();
     9.7 +    /**  association ends by other ends (FQNs) */
     9.8 +    private final HashMap otherEnds = new HashMap();
     9.9  
    9.10      /** parsed XMI document */
    9.11      private Document document = null;
    9.12 @@ -367,6 +369,9 @@
    9.13                  } catch (NumberFormatException e) {
    9.14                      throw new DebugException("Wrong format of multiplicity");
    9.15                  }
    9.16 +                
    9.17 +                otherEnds.put(name + "." + endAName, name + "." + endBName);
    9.18 +                otherEnds.put(name + "." + endBName, name + "." + endAName);
    9.19  
    9.20                  if (name.equals(MdrStorage.MODEL_CONTAINS)) {
    9.21                      containsAssociation = storableAssociation;
    9.22 @@ -771,7 +776,9 @@
    9.23                  for (Iterator features = od.getFeatures().iterator(); features.hasNext(); ) {
    9.24                      feature = (Feature) features.next();
    9.25                      if (feature.getType() == feature.REFERENCE) {
    9.26 -                        ((StorableClass)sc).addReferenceDescriptor(feature.getName(), feature.getName().substring(feature.getName().lastIndexOf('.') + 1), (String) proxyIdByName.get(feature.getAssocName()), feature.getAssocEndName().substring(feature.getAssocEndName().lastIndexOf('.') + 1));
    9.27 +                        String endName = (String) otherEnds.get(feature.getAssocEndName());
    9.28 +//                        System.out.println("registering reference: " + feature.getName() + " for end: " + endName);
    9.29 +                        ((StorableClass)sc).addReferenceDescriptor(feature.getName(), feature.getName().substring(feature.getName().lastIndexOf('.') + 1), (String) proxyIdByName.get(feature.getAssocName()), endName.substring(endName.lastIndexOf('.') + 1));
    9.30                      }
    9.31                  }
    9.32              }
    10.1 --- a/mdr/src/org/netbeans/mdr/storagemodel/MdrStorage.java	Mon Jun 17 09:47:21 2002 +0000
    10.2 +++ b/mdr/src/org/netbeans/mdr/storagemodel/MdrStorage.java	Mon Jun 17 16:18:33 2002 +0000
    10.3 @@ -49,7 +49,7 @@
    10.4      /* -- Private static constants ---------------------------------------- */
    10.5      /* -------------------------------------------------------------------- */
    10.6  
    10.7 -    private static final int STORAGE_VERSION = 11;
    10.8 +    private static final int STORAGE_VERSION = 12;
    10.9      
   10.10      // names of global storage indexes
   10.11      private static final String IDX_MDR_STORAGE_PROPERTIES = "Properties";
    11.1 --- a/mdr/src/org/netbeans/mdr/storagemodel/StorableAssociation.java	Mon Jun 17 09:47:21 2002 +0000
    11.2 +++ b/mdr/src/org/netbeans/mdr/storagemodel/StorableAssociation.java	Mon Jun 17 16:18:33 2002 +0000
    11.3 @@ -268,7 +268,7 @@
    11.4       */
    11.5      public Object queryObjects(String endName, String obj) throws StorageException {
    11.6          //System.out.println("query: end: " + endName + ", endA:" + endA + ", endB:" + endB);
    11.7 -        boolean isEndA = endName.equals(endA);
    11.8 +        boolean isEndA = endName.equals(endB);
    11.9          boolean multi = isEndA ? multiValuedA : multiValuedB;
   11.10          boolean order = isEndA ? orderedA : orderedB;
   11.11          Index index = isEndA ? aIndex : bIndex;
   11.12 @@ -276,7 +276,7 @@
   11.13          Class type = isEndA ? typeA : typeB;
   11.14          int min = isEndA ? minA : minB;
   11.15          int max = isEndA ? maxA : maxB;
   11.16 -        String endId = isEndA ? endAId : endBId;
   11.17 +        String endId = isEndA ? endBId : endAId;
   11.18          boolean aggr = isEndA ? aggrA : aggrB;
   11.19          boolean otherAggr = isEndA ? aggrB : aggrA;
   11.20          Object result;
   11.21 @@ -296,16 +296,16 @@
   11.22      
   11.23      public void verify(Collection violations) throws StorageException {
   11.24          for (Iterator it = aIndex.keySet().iterator(); it.hasNext();) {
   11.25 -            verifyEnd(violations, endA, (String) it.next());
   11.26 +            verifyEnd(violations, endB, (String) it.next());
   11.27          }
   11.28          for (Iterator it = bIndex.keySet().iterator(); it.hasNext();) {
   11.29 -            verifyEnd(violations, endB, (String) it.next());
   11.30 +            verifyEnd(violations, endA, (String) it.next());
   11.31          }
   11.32      }
   11.33      
   11.34      public void verifyEnd(Collection violations, String end, String object) throws StorageException {
   11.35 -        int min = end.equals(endA) ? minA : minB;
   11.36 -        String endId = end.equals(endA) ? endAId : endBId;
   11.37 +        int min = end.equals(endB) ? minA : minB;
   11.38 +        String endId = end.equals(endB) ? endAId : endBId;
   11.39          Object result = queryObjects(end, object);
   11.40          if ((result == null && min > 0) || 
   11.41              (result instanceof Collection && ((Collection) result).size() < min)) {
   11.42 @@ -336,9 +336,9 @@
   11.43       */
   11.44      public boolean addLink (String a, String b) throws StorageException {
   11.45          if (multiValuedA) {
   11.46 -            return ((Collection) queryObjects(endA, b)).add(a);
   11.47 +            return ((Collection) queryObjects(endB, b)).add(a);
   11.48          } else if (multiValuedB) {
   11.49 -            return ((Collection) queryObjects(endB, a)).add(b);
   11.50 +            return ((Collection) queryObjects(endA, a)).add(b);
   11.51          } else {
   11.52              try {
   11.53                  StorableObject oA = null, oB = null;
    12.1 --- a/mdr/src/org/netbeans/mdr/storagemodel/StorableBaseObject.java	Mon Jun 17 09:47:21 2002 +0000
    12.2 +++ b/mdr/src/org/netbeans/mdr/storagemodel/StorableBaseObject.java	Mon Jun 17 16:18:33 2002 +0000
    12.3 @@ -81,7 +81,7 @@
    12.4                  this.outermostPackage = parentOutermost;
    12.5              }
    12.6          } else {
    12.7 -            this.outermostPackage = null;
    12.8 +            this.outermostPackage = this.id;
    12.9          }
   12.10      }
   12.11      
   12.12 @@ -120,9 +120,9 @@
   12.13       */    
   12.14      public String getOutermostPackageId() {
   12.15          if (outermostPackage == null) {
   12.16 -            // value have to be inited
   12.17 +            // value has to be inited
   12.18              if (immediatePackage == null) {
   12.19 -                outermostPackage = immediatePackage; // the object is proxy of an outermost package
   12.20 +                outermostPackage = getMofId(); // the object is proxy of an outermost package
   12.21              } else {
   12.22                  StorableBaseObject temp, pkg;
   12.23                  try {
    13.1 --- a/mdr/src/org/netbeans/mdr/storagemodel/StorableClass.java	Mon Jun 17 09:47:21 2002 +0000
    13.2 +++ b/mdr/src/org/netbeans/mdr/storagemodel/StorableClass.java	Mon Jun 17 16:18:33 2002 +0000
    13.3 @@ -177,7 +177,9 @@
    13.4              } // for
    13.5              IndexDescriptor indexDesc = new IndexDescriptor (indexName, fields);
    13.6              indexDescs [y] = indexDesc;
    13.7 -            getMdrStorage().createAdditionalIndex((getOutermostPackageId() == null ? getImmediatePackageId() : getOutermostPackageId()), indexName);
    13.8 +// [???] why was it checking for outermost == null?            
    13.9 +//            getMdrStorage().createAdditionalIndex((getOutermostPackageId() == null ? getImmediatePackageId() : getOutermostPackageId()), indexName);
   13.10 +            getMdrStorage().createAdditionalIndex(getOutermostPackageId(), indexName);
   13.11          } // for
   13.12          objectChanged ();
   13.13      }
   13.14 @@ -713,7 +715,7 @@
   13.15          }
   13.16  
   13.17          public boolean isFirstEnd() {
   13.18 -            return getAssociation().getEnd1Name().equals(endName);
   13.19 +            return getAssociation().getEnd2Name().equals(endName);
   13.20          }
   13.21  
   13.22      }
    14.1 --- a/mdr/src/org/netbeans/mdr/storagemodel/StorableObject.java	Mon Jun 17 09:47:21 2002 +0000
    14.2 +++ b/mdr/src/org/netbeans/mdr/storagemodel/StorableObject.java	Mon Jun 17 16:18:33 2002 +0000
    14.3 @@ -148,11 +148,11 @@
    14.4          StorableAssociation assocObj = (StorableAssociation) getMdrStorage().getObject(reference.getAssociationId());
    14.5  
    14.6          if (reference.getEndName().equals(assocObj.getEnd1Name())) {
    14.7 +            objB = referencedObjectId;
    14.8 +            objA = getMofId();
    14.9 +        } else {
   14.10              objA = referencedObjectId;
   14.11              objB = getMofId();
   14.12 -        } else {
   14.13 -            objB = referencedObjectId;
   14.14 -            objA = getMofId();
   14.15          }
   14.16          
   14.17          assocObj.addLink(objA, objB);
   14.18 @@ -233,6 +233,8 @@
   14.19              if (id != attribComposite) {
   14.20                  // check for Composition Violation
   14.21                  if (attribComposite != null) {
   14.22 +// [PENDING] uncomment this after the final JMI gets released                    
   14.23 +//                    throw new javax.jmi.reflect.CompositionViolationException(BaseObjectHandler.getHandler(this), (RefObject) BaseObjectHandler.getHandler(getMdrStorage().getObject(elementId)));
   14.24                      throw new DebugException("Instance already has a composite: " + getMofId()); // object is already contained in another object
   14.25                  }
   14.26                  // check for Composition Cycle
   14.27 @@ -278,7 +280,7 @@
   14.28                      if (!((Association) assoc.refMetaObject()).isDerived()) {
   14.29                          boolean isAggregateA = assocStorable.isAggregateA();
   14.30                          boolean isAggregateB = assocStorable.isAggregateB();
   14.31 -                        Object temp = assoc._handleQuery(assocStorable.getEnd1Name(), thisObject);
   14.32 +                        Object temp = assoc._handleQuery(assocStorable.getEnd2Name(), thisObject);
   14.33                          if (temp != null) {
   14.34                              if (temp instanceof Collection) {
   14.35                                  for (Iterator itt = ((Collection)temp).iterator(); itt.hasNext();) {
   14.36 @@ -294,7 +296,7 @@
   14.37                              }
   14.38                          }
   14.39  
   14.40 -                        temp = assoc._handleQuery(assocStorable.getEnd2Name(), thisObject);
   14.41 +                        temp = assoc._handleQuery(assocStorable.getEnd1Name(), thisObject);
   14.42                          if (temp != null) {
   14.43                              if (temp instanceof Collection) {
   14.44                                  for (Iterator itt = ((Collection)temp).iterator(); itt.hasNext();) {
    15.1 --- a/mdr/src/org/netbeans/mdr/util/MOFConstants.java	Mon Jun 17 09:47:21 2002 +0000
    15.2 +++ b/mdr/src/org/netbeans/mdr/util/MOFConstants.java	Mon Jun 17 16:18:33 2002 +0000
    15.3 @@ -71,7 +71,8 @@
    15.4      public static final String SH_MODEL_OPERATION_EXCEPTIONS = "exceptions";
    15.5      public static final String SH_MODEL_IMPORT = "Import";
    15.6      public static final String SH_MODEL_ATTACHES_TO = "AttachesTo";
    15.7 -    public static final String SH_MODEL_ATTACHES_TO_TAG = "tag";
    15.8 +//    public static final String SH_MODEL_ATTACHES_TO_TAG = "tag";
    15.9 +    public static final String SH_MODEL_ATTACHES_TO_MODEL_ELEMENT = "modelElement";
   15.10      public static final String SH_MODEL_TAG_TAG_ID = "tagId";
   15.11      public static final String SH_MODEL_TAG_VALUES = "values";
   15.12