OAVInternalObjectId ret = new OAVInternalObjectId(type, id++, queue); ret = new OAVInternalObjectId(type, id++, queue);
addJavaObjectUsage(object, attribute, value); eventhandler.objectModified(((OAVExternalObjectId)object).getInternalId().getPhantomExternalId(), getType(object), attribute, null, value);
/** * Create an object. * Creates an object identifier that can be used * to store/retrieve attribute values. * May reuse old object identifiers for performance. * @return An object identifier. */ public Object createObject(OAVObjectType type) { assert nocheck || checkTypeDefined(type); OAVInternalObjectId ret = (OAVInternalObjectId)generator.createId(this, type); objects.put(ret, new LinkedHashMap()); types.put(ret, type); //System.out.println("Adding type: "+type); // Event should be thrown once the object is used somewhere in the state? eventhandler.objectAdded(ret.getPhantomExternalId(), type, false); return ret.getWeakExternalId(); }
removeJavaObjectUsage(object, attribute, value); eventhandler.objectModified(((OAVExternalObjectId)object).getInternalId().getPhantomExternalId(), getType(object), attribute, value, null);
addJavaObjectUsage(object, attribute, value); eventhandler.objectModified(((OAVExternalObjectId)object).getInternalId().getPhantomExternalId(), getType(object), attribute, null, value);
removeJavaObjectUsage(object, attribute, value); eventhandler.objectModified(((OAVExternalObjectId)object).getInternalId().getPhantomExternalId(), getType(object), attribute, value, null);
addJavaObjectUsage(object, attribute, value); eventhandler.objectModified(((OAVExternalObjectId)object).getInternalId().getPhantomExternalId(), getType(object), attribute, oldvalue, value);
OAVInternalObjectId ret = new OAVInternalObjectId(type, id++, queue); ret = new OAVInternalObjectId(type, id++, queue);
addJavaObjectUsage(object, attribute, value); eventhandler.objectModified(((OAVExternalObjectId)object).getInternalId().getPhantomExternalId(), getType(object), attribute, oldvalue, value);
/** * Get all unreferenced objects. * @return All unreferenced objects of the state. */ public Collection getUnreferencedObjects() { Set unreferenced = new HashSet(); for(Iterator it=objects.keySet().iterator(); it.hasNext();) { OAVInternalObjectId id = (OAVInternalObjectId)it.next(); if(!rootobjects.contains(id) // && getObjectUsages(id)==null && id.isClear()) { // System.out.println("Found orphan: "+id); unreferenced.add(id); } } return unreferenced; }
/** * Get all unreferenced objects. * @return All unreferenced objects of the state. */ public Collection getUnreferencedObjects() { Set unreferenced = new HashSet(); for(Iterator it=objects.keySet().iterator(); it.hasNext();) { OAVInternalObjectId id = (OAVInternalObjectId)it.next(); if(!rootobjects.contains(id) // && getObjectUsages(id)==null && id.isClear()) { // System.out.println("Found orphan: "+id); unreferenced.add(id); } } return unreferenced; }
/** * Create an object. * Creates an object identifier that can be used * to store/retrieve attribute values. * May reuse old object identifiers for performance. * @return An object identifier. */ public Object createObject(OAVObjectType type) { assert nocheck || checkTypeDefined(type); OAVInternalObjectId ret = (OAVInternalObjectId)generator.createId(this, type); objects.put(ret, new LinkedHashMap()); types.put(ret, type); //System.out.println("Adding type: "+type); // Event should be thrown once the object is used somewhere in the state? eventhandler.objectAdded(ret.getPhantomExternalId(), type, false); return ret.getWeakExternalId(); }
/** * Create a root object. A root object will not be automatically * garbage collected when no references point to this object * any longer. * Creates an object identifier that can be used * to store/retrieve attribute values. * May reuse old object identifiers for performance. * @return An object identifier. */ public Object createRootObject(OAVObjectType type) { Object ret = createObject(type); this.rootobjects.add(ret); eventhandler.objectAdded(((OAVExternalObjectId)ret).getInternalId().getPhantomExternalId(), type, true); assert ret instanceof OAVExternalObjectId; return ret; }
/** * Create a root object. A root object will not be automatically * garbage collected when no references point to this object * any longer. * Creates an object identifier that can be used * to store/retrieve attribute values. * May reuse old object identifiers for performance. * @return An object identifier. */ public Object createRootObject(OAVObjectType type) { Object ret = createObject(type); this.rootobjects.add(ret); eventhandler.objectAdded(((OAVExternalObjectId)ret).getInternalId().getPhantomExternalId(), type, true); assert ret instanceof OAVExternalObjectId; return ret; }
/** * Expunge stale objects. */ public void expungeStaleObjects() { WeakEntry entry; while((entry = (WeakEntry)queue.poll()) !=null) { OAVInternalObjectId id = (OAVInternalObjectId)entry.getArgument(); eventhandler.objectRemoved(id.getPhantomExternalId(), getType(id.getPhantomExternalId())); objects.remove(id); types.remove(id); // System.out.println("Removed: "+id); } }
/** * Expunge stale objects. */ public void expungeStaleObjects() { WeakEntry entry; while((entry = (WeakEntry)queue.poll()) !=null) { OAVInternalObjectId id = (OAVInternalObjectId)entry.getArgument(); eventhandler.objectRemoved(id.getPhantomExternalId(), getType(id.getPhantomExternalId())); objects.remove(id); types.remove(id); // System.out.println("Removed: "+id); } }
/** * Create a string representation of this OAV object id. */ public String toString() { return "extid_"+id.toString(); }
/** * Return the hashcode for this id. * @return The hashcode for this id. */ public int hashCode() { return id.hashCode(); } }
/** * Create a string representation of this OAV object id. */ public String toString() { return "extid_"+id.toString(); }
/** * Return the hashcode for this id. * @return The hashcode for this id. */ public int hashCode() { return id.hashCode(); } }