diff options
Diffstat (limited to 'core/org.eclipse.cdt.core/model/org/eclipse/cdt/internal/core/model/CElementInfo.java')
-rw-r--r-- | core/org.eclipse.cdt.core/model/org/eclipse/cdt/internal/core/model/CElementInfo.java | 179 |
1 files changed, 0 insertions, 179 deletions
diff --git a/core/org.eclipse.cdt.core/model/org/eclipse/cdt/internal/core/model/CElementInfo.java b/core/org.eclipse.cdt.core/model/org/eclipse/cdt/internal/core/model/CElementInfo.java deleted file mode 100644 index 3c97f097417..00000000000 --- a/core/org.eclipse.cdt.core/model/org/eclipse/cdt/internal/core/model/CElementInfo.java +++ /dev/null @@ -1,179 +0,0 @@ -package org.eclipse.cdt.internal.core.model; - -/* - * (c) Copyright IBM Corp. 2000, 2001. - * All Rights Reserved. - */ - -import java.io.File; - -import org.eclipse.cdt.core.model.ICElement; -import org.eclipse.core.resources.IResource; - -/** - * Holds cached structure and properties for a C element. - * Subclassed to carry properties for specific kinds of elements. - */ -class CElementInfo { - - protected CElement element; - - /** - * Collection of handles of immediate children of this - * object. This is an empty array if this element has - * no children. - */ - protected ICElement[] fChildren; - - /** - * Shared empty collection used for efficiency. - */ - protected static ICElement[] fgEmptyChildren = new ICElement[]{}; - - /** - * Is the structure of this element known - * @see ICElement.isStructureKnown() - */ - protected boolean fIsStructureKnown = false; - - protected long modificationStamp = 0; - - protected CElementInfo(CElement element) { - this.element = element; - fChildren = fgEmptyChildren; - } - - protected CElement getElement() { - return element; - } - - protected void addChild(ICElement child) { - if (fChildren == fgEmptyChildren) { - setChildren(new ICElement[] {child}); - } else { - if (!includesChild(child)) { - setChildren(growAndAddToArray(fChildren, child)); - } - } - } - - protected ICElement[] getChildren() { - return fChildren; - } - - /** - * Adds the new element to a new array that contains all of the elements of the old array. - * Returns the new array. - */ - protected ICElement[] growAndAddToArray(ICElement[] array, ICElement addition) { - ICElement[] old = array; - array = new ICElement[old.length + 1]; - System.arraycopy(old, 0, array, 0, old.length); - array[old.length] = addition; - return array; - } - - /** - * Returns <code>true</code> if this child is in my children collection - */ - protected boolean includesChild(ICElement child) { - - for (int i= 0; i < fChildren.length; i++) { - if (fChildren[i].equals(child)) { - return true; - } - } - return false; - } - - /** - * @see ICElement.isStructureKnown() - */ - protected boolean isStructureKnown() { - return fIsStructureKnown; - } - - /** - * Returns an array with all the same elements as the specified array except for - * the element to remove. Assumes that the deletion is contained in the array. - */ - protected ICElement[] removeAndShrinkArray(ICElement[] array, ICElement deletion) { - ICElement[] old = array; - array = new ICElement[old.length - 1]; - int j = 0; - for (int i = 0; i < old.length; i++) { - if (!old[i].equals(deletion)) { - array[j] = old[i]; - } else { - System.arraycopy(old, i + 1, array, j, old.length - (i + 1)); - return array; - } - j++; - } - return array; - } - - protected void removeChild(ICElement child) { - if (includesChild(child)) { - setChildren(removeAndShrinkArray(fChildren, child)); - } - } - - protected void removeChildren () { - fChildren = fgEmptyChildren; - } - - protected void setChildren(ICElement[] children) { - fChildren = children; - } - - protected boolean hasChildren() { - return fChildren.length > 0; - } - - protected void setChanged() { - modificationStamp = 0; - } - - protected boolean hasChanged () { - IResource r = null; - boolean b = false; - r = getElement().getUnderlyingResource(); - if (r != null && r.exists()) { - long modif = 0; - switch(r.getType()) { - // Adding/Removing does not count as changing, in Eclipse - // Ask the underlying file system - case IResource.FOLDER: - case IResource.PROJECT: - case IResource.ROOT: - File file = r.getLocation().toFile(); - modif = file.lastModified(); - break; - - case IResource.FILE: - modif = r.getModificationStamp(); - break; - } - b = (modif != modificationStamp); - modificationStamp = modif; - } - return b; - } - - /** - * Sets whether the structure of this element known - * @see ICElement.isStructureKnown() - */ - protected void setIsStructureKnown(boolean newIsStructureKnown) { - fIsStructureKnown = newIsStructureKnown; - } - - public Object clone() { - try { - return super.clone(); - } catch (CloneNotSupportedException e) { - throw new Error(); - } - } -} |