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:
parent
d4a47be7c0
commit
63115ae6e7
3 changed files with 58 additions and 46 deletions
|
@ -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
|
||||
|
|
|
@ -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.
|
||||
|
|
|
@ -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();
|
||||
// }
|
||||
|
||||
|
||||
}
|
Loading…
Add table
Reference in a new issue