1
0
Fork 0
mirror of https://github.com/eclipse-cdt/cdt synced 2025-07-13 03:55:22 +02:00

Making sure that the pool manager is correctly set in the pool references when pool references are constructed or released from management.

Adding comments for future work.
Removed overriding code that was hiding methods and variables in superclasses for persistence.
This commit is contained in:
David Dykstal 2006-06-14 20:45:38 +00:00
parent d4a47be7c0
commit 63115ae6e7
3 changed files with 58 additions and 46 deletions

View file

@ -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

View file

@ -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.

View file

@ -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();
// }
}