diff --git a/rse/plugins/org.eclipse.rse.ui/filters/org/eclipse/rse/internal/filters/SystemFilterPoolReferenceManager.java b/rse/plugins/org.eclipse.rse.ui/filters/org/eclipse/rse/internal/filters/SystemFilterPoolReferenceManager.java index bdb21960605..1905200ed8e 100644 --- a/rse/plugins/org.eclipse.rse.ui/filters/org/eclipse/rse/internal/filters/SystemFilterPoolReferenceManager.java +++ b/rse/plugins/org.eclipse.rse.ui/filters/org/eclipse/rse/internal/filters/SystemFilterPoolReferenceManager.java @@ -33,7 +33,6 @@ import org.eclipse.rse.filters.ISystemFilterPoolReferenceManagerProvider; import org.eclipse.rse.filters.ISystemFilterReference; import org.eclipse.rse.filters.ISystemFilterSavePolicies; import org.eclipse.rse.internal.references.SystemPersistableReferenceManager; -import org.eclipse.rse.references.ISystemBasePersistableReferenceManager; import org.eclipse.rse.references.ISystemBasePersistableReferencingObject; import org.eclipse.rse.references.ISystemPersistableReferencedObject; @@ -47,7 +46,7 @@ import org.eclipse.rse.references.ISystemPersistableReferencedObject; /** * @lastgen class SystemFilterPoolReferenceManagerImpl extends SystemPersistableReferenceManagerImpl implements SystemFilterPoolReferenceManager, SystemPersistableReferenceManager {} */ -public class SystemFilterPoolReferenceManager extends SystemPersistableReferenceManager implements ISystemFilterPoolReferenceManager, ISystemBasePersistableReferenceManager +public class SystemFilterPoolReferenceManager extends SystemPersistableReferenceManager implements ISystemFilterPoolReferenceManager { //private SystemFilterPoolManager[] poolMgrs = null; private ISystemFilterPoolManagerProvider poolMgrProvider = null; @@ -440,6 +439,7 @@ public class SystemFilterPoolReferenceManager extends SystemPersistableReference public int addSystemFilterPoolReference(ISystemFilterPoolReference filterPoolReference) { int count = addReferencingObject(filterPoolReference); + filterPoolReference.setParentReferenceManager(this); // DWD - should be done in the addReferencingObject method invalidateFilterPoolReferencesCache(); quietSave(); return count; @@ -470,6 +470,7 @@ public class SystemFilterPoolReferenceManager extends SystemPersistableReference count = super.removeReferencingObject(filterPoolReference); else count = super.removeAndDeReferenceReferencingObject(filterPoolReference); + filterPoolReference.setParentReferenceManager(null); // DWD should be done in remove invalidateFilterPoolReferencesCache(); // callback to provider so they can fire events in their GUI if (fireEvents && (caller != null)) @@ -583,7 +584,7 @@ public class SystemFilterPoolReferenceManager extends SystemPersistableReference public ISystemFilterPoolReference addReferenceToSystemFilterPool(ISystemFilterPool filterPool) { ISystemFilterPoolReference filterPoolReference = createSystemFilterPoolReference(filterPool); - addReferencingObject(filterPoolReference); + addReferencingObject(filterPoolReference); // DWD - should be done in addReferencingObject filterPoolReference.setParentReferenceManager(this); invalidateFilterPoolReferencesCache(); quietSave(); @@ -606,6 +607,7 @@ public class SystemFilterPoolReferenceManager extends SystemPersistableReference { filterPoolReference.removeReference(); // getReferencedFilterPool().removeReference(this) newCount = removeReferencingObject(filterPoolReference); + filterPoolReference.setParentReferenceManager(null); // DWD should be done in removeReferencingObject invalidateFilterPoolReferencesCache(); quietSave(); // callback to provider so they can fire events in their GUI @@ -660,6 +662,7 @@ public class SystemFilterPoolReferenceManager extends SystemPersistableReference //addReferenceToSystemFilterPool(filterPools[idx]); ISystemFilterPoolReference filterPoolReference = createSystemFilterPoolReference(filterPools[idx]); addReferencingObject(filterPoolReference); + filterPoolReference.setParentReferenceManager(this); // DWD should be done in addReferencingObject } invalidateFilterPoolReferencesCache(); quietSave(); @@ -771,6 +774,7 @@ public class SystemFilterPoolReferenceManager extends SystemPersistableReference public void save() throws Exception { + System.out.println("Saving filter pool " + this.getName() + "?"); // DWD - debugging switch(savePolicy) { // ONE FILE PER FILTER POOL REFERENCE MANAGER diff --git a/rse/plugins/org.eclipse.rse.ui/references/org/eclipse/rse/internal/references/SystemPersistableReferenceManager.java b/rse/plugins/org.eclipse.rse.ui/references/org/eclipse/rse/internal/references/SystemPersistableReferenceManager.java index b2c7950e955..ba19583a5b7 100644 --- a/rse/plugins/org.eclipse.rse.ui/references/org/eclipse/rse/internal/references/SystemPersistableReferenceManager.java +++ b/rse/plugins/org.eclipse.rse.ui/references/org/eclipse/rse/internal/references/SystemPersistableReferenceManager.java @@ -122,6 +122,14 @@ public class SystemPersistableReferenceManager implements ISystemBasePersistable list.add(objects[idx]); } +/* + * DWD this should probably operate on ISystemPersistableReferencingObject + * instead and call setParentManager. This involves recasting this class to + * implement a new type or changing ISystemBasePersistableReferenceManager to + * deal with parent references - probably changing its name in the process. + * We could collapse ISystemBasePersistableReferencingObject and its subinterface + * into one interface. + */ /** * Add a referencing object to the managed list. * @return new count of referenced objects being managed. diff --git a/rse/plugins/org.eclipse.rse.ui/references/org/eclipse/rse/internal/references/SystemPersistableReferencedObject.java b/rse/plugins/org.eclipse.rse.ui/references/org/eclipse/rse/internal/references/SystemPersistableReferencedObject.java index 1730e9eb33d..8d0080ea0b7 100644 --- a/rse/plugins/org.eclipse.rse.ui/references/org/eclipse/rse/internal/references/SystemPersistableReferencedObject.java +++ b/rse/plugins/org.eclipse.rse.ui/references/org/eclipse/rse/internal/references/SystemPersistableReferencedObject.java @@ -15,7 +15,7 @@ ********************************************************************************/ package org.eclipse.rse.internal.references; -import org.eclipse.rse.references.ISystemBaseReferencingObject; +// import org.eclipse.rse.references.ISystemBaseReferencingObject; import org.eclipse.rse.references.ISystemPersistableReferencedObject; @@ -27,7 +27,7 @@ import org.eclipse.rse.references.ISystemPersistableReferencedObject; public abstract class SystemPersistableReferencedObject extends SystemReferencedObject implements ISystemPersistableReferencedObject { - private SystemReferencedObjectHelper helper = null; +// private SystemReferencedObjectHelper helper = null; DWD - testing removal, this overrides the one in the superclass /** * Constructor. Typically called by EMF framework via factory create method. @@ -35,7 +35,7 @@ public abstract class SystemPersistableReferencedObject extends SystemReferenced public SystemPersistableReferencedObject() { super(); - helper = new SystemReferencedObjectHelper(); +// helper = new SystemReferencedObjectHelper(); } /** * Return the unique reference name of this object. @@ -50,46 +50,46 @@ public abstract class SystemPersistableReferencedObject extends SystemReferenced return null; } - // ---------------------------------- - // ISystemReferencedObject methods... - // ---------------------------------- - /** - * Add a reference, increment reference count, return new count - * @return new count of how many referencing objects reference this object. - */ - public int addReference(ISystemBaseReferencingObject ref) - { - return helper.addReference(ref); - } - /** - * Remove a reference, decrement reference count, return new count - * @return new count of how many referencing objects reference this object. - */ - public int removeReference(ISystemBaseReferencingObject ref) - { - return helper.removeReference(ref); - } - /** - * Return a count of how many referencing objects reference this object. - */ - public int getReferenceCount() - { - return helper.getReferenceCount(); - } - /** - * Clear the list of referenced objects. - */ - public void removeAllReferences() - { - helper.removeAllReferences(); - } - /** - * Return a list of all referencing objects of this object - */ - public ISystemBaseReferencingObject[] getReferencingObjects() - { - return helper.getReferencingObjects(); - } +// // ---------------------------------- +// // ISystemReferencedObject methods... +// // ---------------------------------- +// /** +// * Add a reference, increment reference count, return new count +// * @return new count of how many referencing objects reference this object. +// */ +// public int addReference(ISystemBaseReferencingObject ref) +// { +// return helper.addReference(ref); +// } +// /** +// * Remove a reference, decrement reference count, return new count +// * @return new count of how many referencing objects reference this object. +// */ +// public int removeReference(ISystemBaseReferencingObject ref) +// { +// return helper.removeReference(ref); +// } +// /** +// * Return a count of how many referencing objects reference this object. +// */ +// public int getReferenceCount() +// { +// return helper.getReferenceCount(); +// } +// /** +// * Clear the list of referenced objects. +// */ +// public void removeAllReferences() +// { +// helper.removeAllReferences(); +// } +// /** +// * Return a list of all referencing objects of this object +// */ +// public ISystemBaseReferencingObject[] getReferencingObjects() +// { +// return helper.getReferencingObjects(); +// } } \ No newline at end of file