instantiation of inheriting packages fixed BLD200210110100
authormmatula@netbeans.org
Thu, 10 Oct 2002 17:47:12 +0000
changeset 1077e10e5b29bfd7
parent 1076 3413846610d2
child 1078 dfc0b343393a
instantiation of inheriting packages fixed
mdr/src/org/netbeans/mdr/NBMDRepositoryImpl.java
mdr/src/org/netbeans/mdr/persistence/btreeimpl/btreestorage/BtreeDatabase.java
mdr/src/org/netbeans/mdr/storagemodel/MdrStorage.java
     1.1 --- a/mdr/src/org/netbeans/mdr/NBMDRepositoryImpl.java	Wed Oct 09 16:28:42 2002 +0000
     1.2 +++ b/mdr/src/org/netbeans/mdr/NBMDRepositoryImpl.java	Thu Oct 10 17:47:12 2002 +0000
     1.3 @@ -790,30 +790,41 @@
     1.4          try {
     1.5              Map datatypes = new HashMap();
     1.6              // collect datatypes
     1.7 -            for (Iterator it = metaObject.getContents().iterator(); it.hasNext();) {
     1.8 -                ModelElement element = (ModelElement) it.next();
     1.9 -                if (element instanceof EnumerationType) {
    1.10 -                    List members = new ArrayList(((EnumerationType) element).getLabels());
    1.11 -                    String ifcName = TagSupport.getTypeFullName((StorableObject) ((BaseObjectHandler) element)._getDelegate());
    1.12 -                    datatypes.put(element.getName(), new DatatypeDescriptor(mdrStorage, members, ifcName, storageId));
    1.13 -                } else if (element instanceof StructureType) {
    1.14 -                    ModelElement me;
    1.15 -                    List members = new ArrayList();
    1.16 -                    List memberTypes = new ArrayList();
    1.17 -                    
    1.18 -                    for (Iterator it2 = ((StructureType) element).getContents().iterator(); it2.hasNext();) {
    1.19 -                        me = (ModelElement) it2.next();
    1.20 -                        if (me instanceof StructureField) {
    1.21 -                            members.add(me.getName());
    1.22 -                            try {
    1.23 -                                memberTypes.add(BaseObjectHandler.resolveInterface(TagSupport.getDataTypeName((StorableObject) ((BaseObjectHandler) ((StructureField) me).getType())._getDelegate())));
    1.24 -                            } catch (ClassNotFoundException e) {
    1.25 -                                throw (DebugException) Logger.getDefault().annotate(new DebugException(), e);
    1.26 +            Iterator supers = null;
    1.27 +            
    1.28 +            while (supers == null || supers.hasNext()) {
    1.29 +                MofPackage metaPackage;
    1.30 +                if (supers == null) {
    1.31 +                    supers = metaObject.allSupertypes().iterator();
    1.32 +                    metaPackage = metaObject;
    1.33 +                } else {
    1.34 +                    metaPackage = (MofPackage) supers.next();
    1.35 +                }
    1.36 +                for (Iterator it = metaPackage.getContents().iterator(); it.hasNext();) {
    1.37 +                    ModelElement element = (ModelElement) it.next();
    1.38 +                    if (element instanceof EnumerationType) {
    1.39 +                        List members = new ArrayList(((EnumerationType) element).getLabels());
    1.40 +                        String ifcName = TagSupport.getTypeFullName((StorableObject) ((BaseObjectHandler) element)._getDelegate());
    1.41 +                        datatypes.put(element.getName(), new DatatypeDescriptor(mdrStorage, members, ifcName, storageId));
    1.42 +                    } else if (element instanceof StructureType) {
    1.43 +                        ModelElement me;
    1.44 +                        List members = new ArrayList();
    1.45 +                        List memberTypes = new ArrayList();
    1.46 +
    1.47 +                        for (Iterator it2 = ((StructureType) element).getContents().iterator(); it2.hasNext();) {
    1.48 +                            me = (ModelElement) it2.next();
    1.49 +                            if (me instanceof StructureField) {
    1.50 +                                members.add(me.getName());
    1.51 +                                try {
    1.52 +                                    memberTypes.add(BaseObjectHandler.resolveInterface(TagSupport.getDataTypeName((StorableObject) ((BaseObjectHandler) ((StructureField) me).getType())._getDelegate())));
    1.53 +                                } catch (ClassNotFoundException e) {
    1.54 +                                    throw (DebugException) Logger.getDefault().annotate(new DebugException(), e);
    1.55 +                                }
    1.56                              }
    1.57                          }
    1.58 +                        String ifcName = TagSupport.getTypeFullName((StorableObject) ((BaseObjectHandler) element)._getDelegate());
    1.59 +                        datatypes.put(element.getName(), new DatatypeDescriptor(mdrStorage, element.getQualifiedName(), members, memberTypes, ifcName, storageId));
    1.60                      }
    1.61 -                    String ifcName = TagSupport.getTypeFullName((StorableObject) ((BaseObjectHandler) element)._getDelegate());
    1.62 -                    datatypes.put(element.getName(), new DatatypeDescriptor(mdrStorage, element.getQualifiedName(), members, memberTypes, ifcName, storageId));
    1.63                  }
    1.64              }
    1.65              
     2.1 --- a/mdr/src/org/netbeans/mdr/persistence/btreeimpl/btreestorage/BtreeDatabase.java	Wed Oct 09 16:28:42 2002 +0000
     2.2 +++ b/mdr/src/org/netbeans/mdr/persistence/btreeimpl/btreestorage/BtreeDatabase.java	Thu Oct 10 17:47:12 2002 +0000
     2.3 @@ -18,6 +18,7 @@
     2.4  
     2.5  import org.netbeans.mdr.persistence.btreeimpl.btreeindex.*;
     2.6  import org.netbeans.mdr.persistence.*;
     2.7 +import org.netbeans.mdr.util.Logger;
     2.8  
     2.9  /**
    2.10  * This is the primary index for the btree implementation of Storage.
    2.11 @@ -484,32 +485,32 @@
    2.12  		    dirtyIter.remove();
    2.13                      transactionCache.addReplaced(id, baoStrmToBytes);
    2.14  		}
    2.15 -		else if (commit) {
    2.16 +		else /*if (commit)*/ {
    2.17  		    throw writeError;
    2.18  		}
    2.19 -		else if (loggingStream != null) {
    2.20 -		    loggingStream.println("Error writing streamable: " +
    2.21 -		    	writeError.toString());
    2.22 -		}
    2.23 +//		else if (loggingStream != null) {
    2.24 +//		    loggingStream.println("Error writing streamable: " +
    2.25 +//		    	writeError.toString());
    2.26 +//		}
    2.27  	    }
    2.28              
    2.29  	    // Last, add what needs adding
    2.30  	    Iterator newIter = cache.getNew().iterator();
    2.31  	    while (newIter.hasNext()) {
    2.32 -		id = (MOFID)newIter.next();
    2.33 +                id = (MOFID)newIter.next();
    2.34                  value = cache.get(id);
    2.35  		writeError = addRecord(id, value);
    2.36  		if (writeError == null) {
    2.37  		    newIter.remove();
    2.38                      transactionCache.addInserted(id, baoStrmToBytes);
    2.39  		}
    2.40 -		else if (commit) {
    2.41 +		else /*if (commit)*/ {
    2.42  		    throw writeError;
    2.43  		}
    2.44 -		else if (loggingStream != null) {
    2.45 -		    loggingStream.println("Error writing streamable: " +
    2.46 -		    	writeError.toString());
    2.47 -		}
    2.48 +//		else if (loggingStream != null) {
    2.49 +//		    loggingStream.println("Error writing streamable: " +
    2.50 +//		    	writeError.toString());
    2.51 +//                }
    2.52  	    }
    2.53  
    2.54  	    if (classIndexChanged) {
    2.55 @@ -869,11 +870,11 @@
    2.56  	    return ex;
    2.57  	}
    2.58          catch (IOException ioException) {
    2.59 -            return new StorageIOException (ioException);
    2.60 +            return (StorageException) Logger.getDefault().annotate(new StorageIOException(ioException), ioException);
    2.61          }
    2.62  	catch (RuntimeException th) {
    2.63 -	    return new StorageTransientDataException(
    2.64 -			    th.getClass().getName() + ": " + th.getMessage());
    2.65 +	    return (StorageException) Logger.getDefault().annotate(new StorageTransientDataException(
    2.66 +			    th.getClass().getName() + ": " + th.getMessage()), th);
    2.67  	}
    2.68  	finally {
    2.69  	    currentlyStreamingMofidGenerator = previous;	
    2.70 @@ -1201,7 +1202,6 @@
    2.71                          return;
    2.72                      }
    2.73                  }
    2.74 -
    2.75                  if (newIter == null) {
    2.76                      newIter = cache.iterateNew();
    2.77                  }
     3.1 --- a/mdr/src/org/netbeans/mdr/storagemodel/MdrStorage.java	Wed Oct 09 16:28:42 2002 +0000
     3.2 +++ b/mdr/src/org/netbeans/mdr/storagemodel/MdrStorage.java	Thu Oct 10 17:47:12 2002 +0000
     3.3 @@ -510,7 +510,8 @@
     3.4       */
     3.5      public void shutDown() throws StorageException {
     3.6          for (Iterator it = this.storages.values().iterator(); it.hasNext();) {
     3.7 -            ((Storage)it.next()).shutDown();
     3.8 +            Storage s = (Storage)it.next();
     3.9 +            s.shutDown();
    3.10          }
    3.11      }
    3.12      
    3.13 @@ -1647,6 +1648,7 @@
    3.14          public int store(Object value) {
    3.15              if (value == null) return 0;
    3.16              try {
    3.17 +                storage.objectStateWillChange(id);
    3.18                  Object index = new Integer(map.size());
    3.19                  Object old = map.put(value, index);
    3.20                  if (old != null) {
    3.21 @@ -1691,7 +1693,7 @@
    3.22              if (value == null) return 0;
    3.23              Integer result = (Integer) map.get(value);
    3.24              if (result == null) {
    3.25 -                throw new DebugException("Value not found.");
    3.26 +                throw new DebugException("Value not found: " + value);
    3.27              }
    3.28              return result.intValue() + 1;
    3.29          }