avoid ClassCastException
authorkhartlage <khartlage>
Sun, 30 May 2004 13:59:11 +0000 (13:59 +0000)
committerkhartlage <khartlage>
Sun, 30 May 2004 13:59:11 +0000 (13:59 +0000)
net.sourceforge.phpeclipse/src/net/sourceforge/phpdt/internal/core/JavaElement.java

index 8cfe6d8..b4428cf 100644 (file)
@@ -46,66 +46,69 @@ import net.sourceforge.phpdt.internal.core.util.Util;
 
 /**
  * Root of Java element handle hierarchy.
- *
+ * 
  * @see IJavaElement
  */
-public abstract class JavaElement extends PlatformObject implements IJavaElement {
+public abstract class JavaElement extends PlatformObject
+               implements
+                       IJavaElement {
 
-       public static final char JEM_JAVAPROJECT= '=';
-       public static final char JEM_PACKAGEFRAGMENTROOT= Path.SEPARATOR;
-       public static final char JEM_PACKAGEFRAGMENT= '<';
-       public static final char JEM_FIELD= '^';
-       public static final char JEM_METHOD= '~';
-       public static final char JEM_INITIALIZER= '|';
-       public static final char JEM_COMPILATIONUNIT= '{';
-       public static final char JEM_CLASSFILE= '(';
-       public static final char JEM_TYPE= '[';
-       public static final char JEM_PACKAGEDECLARATION= '%';
-       public static final char JEM_IMPORTDECLARATION= '#';
+       public static final char JEM_JAVAPROJECT = '=';
+       public static final char JEM_PACKAGEFRAGMENTROOT = Path.SEPARATOR;
+       public static final char JEM_PACKAGEFRAGMENT = '<';
+       public static final char JEM_FIELD = '^';
+       public static final char JEM_METHOD = '~';
+       public static final char JEM_INITIALIZER = '|';
+       public static final char JEM_COMPILATIONUNIT = '{';
+       public static final char JEM_CLASSFILE = '(';
+       public static final char JEM_TYPE = '[';
+       public static final char JEM_PACKAGEDECLARATION = '%';
+       public static final char JEM_IMPORTDECLARATION = '#';
 
        /**
-        * A count to uniquely identify this element in the case
-        * that a duplicate named element exists. For example, if
-        * there are two fields in a compilation unit with the
-        * same name, the occurrence count is used to distinguish
-        * them.  The occurrence count starts at 1 (thus the first 
+        * A count to uniquely identify this element in the case that a duplicate
+        * named element exists. For example, if there are two fields in a
+        * compilation unit with the same name, the occurrence count is used to
+        * distinguish them. The occurrence count starts at 1 (thus the first
         * occurrence is occurrence 1, not occurrence 0).
         */
        protected int occurrenceCount = 1;
 
-
        /**
-        * This element's type - one of the constants defined
-        * in IJavaLanguageElementTypes.
+        * This element's type - one of the constants defined in
+        * IJavaLanguageElementTypes.
         */
        //protected int fLEType = 0;
-
        /**
-        * This element's parent, or <code>null</code> if this
-        * element does not have a parent.
+        * This element's parent, or <code>null</code> if this element does not
+        * have a parent.
         */
        protected IJavaElement parent;
 
        /**
-        * This element's name, or an empty <code>String</code> if this
-        * element does not have a name.
+        * This element's name, or an empty <code>String</code> if this element
+        * does not have a name.
         */
        protected String name;
 
        protected static final Object NO_INFO = new Object();
-       
-       /**
-        * Constructs a handle for a java element with
-        * the given parent element and name.
-        *
-        * @param parent The parent of java element
-        * @param name The name of java element
-        *
-        * @exception IllegalArgumentException if the type is not one of the valid
-        *              Java element type constants
-        *
-        */
-       protected JavaElement(JavaElement parent, String name) throws IllegalArgumentException {
+
+       /**
+        * Constructs a handle for a java element with the given parent element and
+        * name.
+        * 
+        * @param parent
+        *            The parent of java element
+        * @param name
+        *            The name of java element
+        * 
+        * @exception IllegalArgumentException
+        *                if the type is not one of the valid Java element type
+        *                constants
+        *  
+        */
+       protected JavaElement(JavaElement parent, String name)
+                       throws IllegalArgumentException {
                this.parent = parent;
                this.name = name;
        }
@@ -116,7 +119,7 @@ public abstract class JavaElement extends PlatformObject implements IJavaElement
                JavaModelManager.getJavaModelManager().removeInfoAndChildren(this);
        }
        /**
-        * This element is being closed.  Do any necessary cleanup.
+        * This element is being closed. Do any necessary cleanup.
         */
        protected abstract void closing(Object info) throws JavaModelException;
        /*
@@ -124,32 +127,37 @@ public abstract class JavaElement extends PlatformObject implements IJavaElement
         */
        protected abstract Object createElementInfo();
        /**
-        * Returns true if this handle represents the same Java element
-        * as the given handle. By default, two handles represent the same
-        * element if they are identical or if they represent the same type
-        * of element, have equal names, parents, and occurrence counts.
-        *
-        * <p>If a subclass has other requirements for equality, this method
-        * must be overridden.
-        *
+        * Returns true if this handle represents the same Java element as the given
+        * handle. By default, two handles represent the same element if they are
+        * identical or if they represent the same type of element, have equal
+        * names, parents, and occurrence counts.
+        * 
+        * <p>
+        * If a subclass has other requirements for equality, this method must be
+        * overridden.
+        * 
         * @see Object#equals
         */
        public boolean equals(Object o) {
-               
-               if (this == o) return true;
-       
+
+               if (this == o)
+                       return true;
+
                // Java model parent is null
-               if (this.parent == null) return super.equals(o);
-       
-               // assume instanceof check is done in subclass
-               JavaElement other = (JavaElement) o;            
-               return this.occurrenceCount == other.occurrenceCount &&
-                               this.name.equals(other.name) &&
-                               this.parent.equals(other.parent);
+               if (this.parent == null)
+                       return super.equals(o);
+               if (o instanceof JavaElement) {
+                       // assume instanceof check is done in subclass
+                       JavaElement other = (JavaElement) o;
+                       return this.occurrenceCount == other.occurrenceCount
+                                       && this.name.equals(other.name)
+                                       && this.parent.equals(other.parent);
+               }
+               return false;
        }
        /**
-        * Returns true if this <code>JavaElement</code> is equivalent to the given
-        * <code>IDOMNode</code>.
+        * Returns true if this <code>JavaElement</code> is equivalent to the
+        * given <code>IDOMNode</code>.
         */
        protected boolean equalsDOMNode(IDOMNode node) throws JavaModelException {
                return false;
@@ -158,7 +166,7 @@ public abstract class JavaElement extends PlatformObject implements IJavaElement
         * @see IJavaElement
         */
        public boolean exists() {
-               
+
                try {
                        getElementInfo();
                        return true;
@@ -166,23 +174,24 @@ public abstract class JavaElement extends PlatformObject implements IJavaElement
                }
                return false;
        }
-       
+
        /**
-        * Returns the <code>IDOMNode</code> that corresponds to this <code>JavaElement</code>
-        * or <code>null</code> if there is no corresponding node.
+        * Returns the <code>IDOMNode</code> that corresponds to this
+        * <code>JavaElement</code> or <code>null</code> if there is no
+        * corresponding node.
         */
        public IDOMNode findNode(IDOMCompilationUnit dom) {
                int type = getElementType();
-               if (type == IJavaElement.COMPILATION_UNIT || 
-                       type == IJavaElement.FIELD || 
-                       type == IJavaElement.IMPORT_DECLARATION || 
-                       type == IJavaElement.INITIALIZER || 
-                       type == IJavaElement.METHOD || 
-                       type == IJavaElement.PACKAGE_DECLARATION || 
-                       type == IJavaElement.TYPE) {
+               if (type == IJavaElement.COMPILATION_UNIT || type == IJavaElement.FIELD
+                               || type == IJavaElement.IMPORT_DECLARATION
+                               || type == IJavaElement.INITIALIZER
+                               || type == IJavaElement.METHOD
+                               || type == IJavaElement.PACKAGE_DECLARATION
+                               || type == IJavaElement.TYPE) {
                        ArrayList path = new ArrayList();
                        IJavaElement element = this;
-                       while (element != null && element.getElementType() != IJavaElement.COMPILATION_UNIT) {
+                       while (element != null
+                                       && element.getElementType() != IJavaElement.COMPILATION_UNIT) {
                                if (element.getElementType() != IJavaElement.IMPORT_CONTAINER) {
                                        // the DOM does not have import containers, so skip them
                                        path.add(0, element);
@@ -196,11 +205,12 @@ public abstract class JavaElement extends PlatformObject implements IJavaElement
                                        } else {
                                                return null;
                                        }
-                               } catch(JavaModelException e) {
+                               } catch (JavaModelException e) {
                                        return null;
                                }
                        }
-                       return ((JavaElement) path.get(0)).followPath(path, 0, dom.getFirstChild());
+                       return ((JavaElement) path.get(0)).followPath(path, 0, dom
+                                       .getFirstChild());
                } else {
                        return null;
                }
@@ -208,7 +218,7 @@ public abstract class JavaElement extends PlatformObject implements IJavaElement
        /**
         */
        protected IDOMNode followPath(ArrayList path, int position, IDOMNode node) {
-       
+
                try {
                        if (equalsDOMNode(node)) {
                                if (position == (path.size() - 1)) {
@@ -216,7 +226,8 @@ public abstract class JavaElement extends PlatformObject implements IJavaElement
                                } else {
                                        if (node.getFirstChild() != null) {
                                                position++;
-                                               return ((JavaElement)path.get(position)).followPath(path, position, node.getFirstChild());
+                                               return ((JavaElement) path.get(position)).followPath(
+                                                               path, position, node.getFirstChild());
                                        } else {
                                                return null;
                                        }
@@ -229,44 +240,48 @@ public abstract class JavaElement extends PlatformObject implements IJavaElement
                } catch (JavaModelException e) {
                        return null;
                }
-       
+
        }
        /**
         * @see IJavaElement
         */
        public IJavaElement getAncestor(int ancestorType) {
-               
+
                IJavaElement element = this;
                while (element != null) {
-                       if (element.getElementType() == ancestorType)  return element;
-                       element= element.getParent();
+                       if (element.getElementType() == ancestorType)
+                               return element;
+                       element = element.getParent();
                }
-               return null;                            
+               return null;
        }
        /**
-        * Generates the element infos for this element, its ancestors (if they are not opened) and its children (if it is an Openable).
-        * Puts the newly created element info in the given map.
+        * Generates the element infos for this element, its ancestors (if they are
+        * not opened) and its children (if it is an Openable). Puts the newly
+        * created element info in the given map.
         */
-       protected abstract void generateInfos(Object info, HashMap newElements, IProgressMonitor pm) throws JavaModelException;
-       
+       protected abstract void generateInfos(Object info, HashMap newElements,
+                       IProgressMonitor pm) throws JavaModelException;
+
        /**
-        * @see IParent 
+        * @see IParent
         */
        public IJavaElement[] getChildren() throws JavaModelException {
-               return ((JavaElementInfo)getElementInfo()).getChildren();
+               return ((JavaElementInfo) getElementInfo()).getChildren();
        }
        /**
         * Returns a collection of (immediate) children of this node of the
         * specified type.
-        *
-        * @param type - one of constants defined by IJavaLanguageElementTypes
+        * 
+        * @param type -
+        *            one of constants defined by IJavaLanguageElementTypes
         */
        public ArrayList getChildrenOfType(int type) throws JavaModelException {
                IJavaElement[] children = getChildren();
                int size = children.length;
                ArrayList list = new ArrayList(size);
                for (int i = 0; i < size; ++i) {
-                       JavaElement elt = (JavaElement)children[i];
+                       JavaElement elt = (JavaElement) children[i];
                        if (elt.getElementType() == type) {
                                list.add(elt);
                        }
@@ -276,9 +291,9 @@ public abstract class JavaElement extends PlatformObject implements IJavaElement
        /**
         * @see IMember
         */
-//     public IClassFile getClassFile() {
-//             return null;
-//     }
+       //      public IClassFile getClassFile() {
+       //              return null;
+       //      }
        /**
         * @see IMember
         */
@@ -286,27 +301,31 @@ public abstract class JavaElement extends PlatformObject implements IJavaElement
                return null;
        }
        /**
-        * Returns the info for this handle.  
-        * If this element is not already open, it and all of its parents are opened.
-        * Does not return null.
-        * NOTE: BinaryType infos are NOT rooted under JavaElementInfo.
-        * @exception JavaModelException if the element is not present or not accessible
+        * Returns the info for this handle. If this element is not already open, it
+        * and all of its parents are opened. Does not return null. NOTE: BinaryType
+        * infos are NOT rooted under JavaElementInfo.
+        * 
+        * @exception JavaModelException
+        *                if the element is not present or not accessible
         */
        public Object getElementInfo() throws JavaModelException {
                return getElementInfo(null);
        }
        /**
-        * Returns the info for this handle.  
-        * If this element is not already open, it and all of its parents are opened.
-        * Does not return null.
-        * NOTE: BinaryType infos are NOT rooted under JavaElementInfo.
-        * @exception JavaModelException if the element is not present or not accessible
+        * Returns the info for this handle. If this element is not already open, it
+        * and all of its parents are opened. Does not return null. NOTE: BinaryType
+        * infos are NOT rooted under JavaElementInfo.
+        * 
+        * @exception JavaModelException
+        *                if the element is not present or not accessible
         */
-       public Object getElementInfo(IProgressMonitor monitor) throws JavaModelException {
+       public Object getElementInfo(IProgressMonitor monitor)
+                       throws JavaModelException {
 
                JavaModelManager manager = JavaModelManager.getJavaModelManager();
                Object info = manager.getInfo(this);
-               if (info != null) return info;
+               if (info != null)
+                       return info;
                return openWhenClosed(createElementInfo(), monitor);
        }
        /**
@@ -325,8 +344,9 @@ public abstract class JavaElement extends PlatformObject implements IJavaElement
        /**
         * @see JavaElement#getHandleMemento()
         */
-       public String getHandleMemento(){
-               StringBuffer buff= new StringBuffer(((JavaElement)getParent()).getHandleMemento());
+       public String getHandleMemento() {
+               StringBuffer buff = new StringBuffer(((JavaElement) getParent())
+                               .getHandleMemento());
                buff.append(getHandleMementoDelimiter());
                buff.append(getElementName());
                return buff.toString();
@@ -342,7 +362,8 @@ public abstract class JavaElement extends PlatformObject implements IJavaElement
        public IJavaModel getJavaModel() {
                IJavaElement current = this;
                do {
-                       if (current instanceof IJavaModel) return (IJavaModel) current;
+                       if (current instanceof IJavaModel)
+                               return (IJavaModel) current;
                } while ((current = current.getParent()) != null);
                return null;
        }
@@ -353,7 +374,8 @@ public abstract class JavaElement extends PlatformObject implements IJavaElement
        public IJavaProject getJavaProject() {
                IJavaElement current = this;
                do {
-                       if (current instanceof IJavaProject) return (IJavaProject) current;
+                       if (current instanceof IJavaProject)
+                               return (IJavaProject) current;
                } while ((current = current.getParent()) != null);
                return null;
        }
@@ -367,17 +389,18 @@ public abstract class JavaElement extends PlatformObject implements IJavaElement
         * @see IJavaElement
         */
        public IOpenable getOpenable() {
-               return this.getOpenableParent();        
+               return this.getOpenableParent();
        }
        /**
-        * Return the first instance of IOpenable in the parent
-        * hierarchy of this element.
-        *
-        * <p>Subclasses that are not IOpenable's must override this method.
+        * Return the first instance of IOpenable in the parent hierarchy of this
+        * element.
+        * 
+        * <p>
+        * Subclasses that are not IOpenable's must override this method.
         */
        public IOpenable getOpenableParent() {
-               
-               return (IOpenable)parent;
+
+               return (IOpenable) parent;
        }
        /**
         * @see IJavaElement
@@ -385,7 +408,7 @@ public abstract class JavaElement extends PlatformObject implements IJavaElement
        public IJavaElement getParent() {
                return parent;
        }
-       
+
        /*
         * @see IJavaElement#getPrimaryElement()
         */
@@ -400,13 +423,15 @@ public abstract class JavaElement extends PlatformObject implements IJavaElement
                return this;
        }
        /**
-        * Returns the element that is located at the given source position
-        * in this element.  This is a helper method for <code>ICompilationUnit#getElementAt</code>,
-        * and only works on compilation units and types. The position given is
-        * known to be within this element's source range already, and if no finer
-        * grained element is found at the position, this element is returned.
+        * Returns the element that is located at the given source position in this
+        * element. This is a helper method for
+        * <code>ICompilationUnit#getElementAt</code>, and only works on
+        * compilation units and types. The position given is known to be within
+        * this element's source range already, and if no finer grained element is
+        * found at the position, this element is returned.
         */
-       protected IJavaElement getSourceElementAt(int position) throws JavaModelException {
+       protected IJavaElement getSourceElementAt(int position)
+                       throws JavaModelException {
                if (this instanceof ISourceReference) {
                        IJavaElement[] children = getChildren();
                        int i;
@@ -415,7 +440,8 @@ public abstract class JavaElement extends PlatformObject implements IJavaElement
                                if (aChild instanceof SourceRefElement) {
                                        SourceRefElement child = (SourceRefElement) children[i];
                                        ISourceRange range = child.getSourceRange();
-                                       if (position < range.getOffset() + range.getLength() && position >= range.getOffset()) {
+                                       if (position < range.getOffset() + range.getLength()
+                                                       && position >= range.getOffset()) {
                                                if (child instanceof IParent) {
                                                        return child.getSourceElementAt(position);
                                                } else {
@@ -431,14 +457,15 @@ public abstract class JavaElement extends PlatformObject implements IJavaElement
                return this;
        }
        /**
-        * Returns the SourceMapper facility for this element, or
-        * <code>null</code> if this element does not have a
-        * SourceMapper.
+        * Returns the SourceMapper facility for this element, or <code>null</code>
+        * if this element does not have a SourceMapper.
         */
-//     public SourceMapper getSourceMapper() {
-//             return ((JavaElement)getParent()).getSourceMapper();
-//     }
-       /* (non-Javadoc)
+       //      public SourceMapper getSourceMapper() {
+       //              return ((JavaElement)getParent()).getSourceMapper();
+       //      }
+       /*
+        * (non-Javadoc)
+        * 
         * @see org.eclipse.jdt.core.IJavaElement#getSchedulingRule()
         */
        public ISchedulingRule getSchedulingRule() {
@@ -451,15 +478,17 @@ public abstract class JavaElement extends PlatformObject implements IJavaElement
                                }
                                public boolean contains(ISchedulingRule rule) {
                                        if (rule instanceof NoResourceSchedulingRule) {
-                                               return this.path.isPrefixOf(((NoResourceSchedulingRule)rule).path);
+                                               return this.path
+                                                               .isPrefixOf(((NoResourceSchedulingRule) rule).path);
                                        } else {
                                                return false;
                                        }
                                }
                                public boolean isConflicting(ISchedulingRule rule) {
                                        if (rule instanceof NoResourceSchedulingRule) {
-                                               IPath otherPath = ((NoResourceSchedulingRule)rule).path;
-                                               return this.path.isPrefixOf(otherPath) || otherPath.isPrefixOf(this.path);
+                                               IPath otherPath = ((NoResourceSchedulingRule) rule).path;
+                                               return this.path.isPrefixOf(otherPath)
+                                                               || otherPath.isPrefixOf(this.path);
                                        } else {
                                                return false;
                                        }
@@ -471,42 +500,45 @@ public abstract class JavaElement extends PlatformObject implements IJavaElement
                }
        }
        /**
-        * @see IParent 
+        * @see IParent
         */
        public boolean hasChildren() throws JavaModelException {
-               // if I am not open, return true to avoid opening (case of a Java project, a compilation unit or a class file).
+               // if I am not open, return true to avoid opening (case of a Java
+               // project, a compilation unit or a class file).
                // also see https://bugs.eclipse.org/bugs/show_bug.cgi?id=52474
-               Object elementInfo = JavaModelManager.getJavaModelManager().getInfo(this);
+               Object elementInfo = JavaModelManager.getJavaModelManager().getInfo(
+                               this);
                if (elementInfo instanceof JavaElementInfo) {
-                       return ((JavaElementInfo)elementInfo).getChildren().length > 0;
+                       return ((JavaElementInfo) elementInfo).getChildren().length > 0;
                } else {
                        return true;
                }
        }
 
        /**
-        * Returns the hash code for this Java element. By default,
-        * the hash code for an element is a combination of its name
-        * and parent's hash code. Elements with other requirements must
-        * override this method.
+        * Returns the hash code for this Java element. By default, the hash code
+        * for an element is a combination of its name and parent's hash code.
+        * Elements with other requirements must override this method.
         */
        public int hashCode() {
-               if (this.parent == null) return super.hashCode();
-               return Util.combineHashCodes(this.name.hashCode(), this.parent.hashCode());
+               if (this.parent == null)
+                       return super.hashCode();
+               return Util.combineHashCodes(this.name.hashCode(), this.parent
+                               .hashCode());
        }
-       
+
        /**
         * Returns true if this element is an ancestor of the given element,
         * otherwise false.
         */
        protected boolean isAncestorOf(IJavaElement e) {
-               IJavaElement parent= e.getParent();
+               IJavaElement parent = e.getParent();
                while (parent != null && !parent.equals(this)) {
-                       parent= parent.getParent();
+                       parent = parent.getParent();
                }
                return parent != null;
        }
-       
+
        /**
         * @see IJavaElement
         */
@@ -517,44 +549,49 @@ public abstract class JavaElement extends PlatformObject implements IJavaElement
         * @see IJavaElement
         */
        public boolean isStructureKnown() throws JavaModelException {
-               return ((JavaElementInfo)getElementInfo()).isStructureKnown();
+               return ((JavaElementInfo) getElementInfo()).isStructureKnown();
        }
        /**
         * Creates and returns and not present exception for this element.
         */
        protected JavaModelException newNotPresentException() {
-               return new JavaModelException(new JavaModelStatus(IJavaModelStatusConstants.ELEMENT_DOES_NOT_EXIST, this));
+               return new JavaModelException(new JavaModelStatus(
+                               IJavaModelStatusConstants.ELEMENT_DOES_NOT_EXIST, this));
        }
        /**
         * Opens this element and all parents that are not already open.
-        *
-        * @exception JavaModelException this element is not present or accessible
-        */
-//     protected void openHierarchy() throws JavaModelException {
-//             if (this instanceof IOpenable) {
-//                     ((Openable) this).openWhenClosed(null);
-//             } else {
-//                     Openable openableParent = (Openable)getOpenableParent();
-//                     if (openableParent != null) {
-//                             JavaElementInfo openableParentInfo = (JavaElementInfo) JavaModelManager.getJavaModelManager().getInfo((IJavaElement) openableParent);
-//                             if (openableParentInfo == null) {
-//                                     openableParent.openWhenClosed(null);
-//                             } else {
-//                                     throw newNotPresentException();
-//                             }
-//                     }
-//             }
-//     }
-       /**
-        * This element has just been opened.  Do any necessary setup.
+        * 
+        * @exception JavaModelException
+        *                this element is not present or accessible
+        */
+       //      protected void openHierarchy() throws JavaModelException {
+       //              if (this instanceof IOpenable) {
+       //                      ((Openable) this).openWhenClosed(null);
+       //              } else {
+       //                      Openable openableParent = (Openable)getOpenableParent();
+       //                      if (openableParent != null) {
+       //                              JavaElementInfo openableParentInfo = (JavaElementInfo)
+       // JavaModelManager.getJavaModelManager().getInfo((IJavaElement)
+       // openableParent);
+       //                              if (openableParentInfo == null) {
+       //                                      openableParent.openWhenClosed(null);
+       //                              } else {
+       //                                      throw newNotPresentException();
+       //                              }
+       //                      }
+       //              }
+       //      }
+       /**
+        * This element has just been opened. Do any necessary setup.
         */
        protected void opening(Object info) {
        }
        /*
-        * Opens an <code>Openable</code> that is known to be closed (no check for <code>isOpen()</code>).
-        * Returns the created element info.
+        * Opens an <code> Openable </code> that is known to be closed (no check for
+        * <code> isOpen() </code> ). Returns the created element info.
         */
-       protected Object openWhenClosed(Object info, IProgressMonitor monitor) throws JavaModelException {
+       protected Object openWhenClosed(Object info, IProgressMonitor monitor)
+                       throws JavaModelException {
                JavaModelManager manager = JavaModelManager.getJavaModelManager();
                boolean hadTemporaryCache = manager.hasTemporaryCache();
                try {
@@ -567,9 +604,9 @@ public abstract class JavaElement extends PlatformObject implements IJavaElement
                                // close any buffer that was opened for the openable parent
                                Iterator iterator = newElements.keySet().iterator();
                                while (iterator.hasNext()) {
-                                       IJavaElement element = (IJavaElement)iterator.next();
+                                       IJavaElement element = (IJavaElement) iterator.next();
                                        if (element instanceof Openable) {
-                                               ((Openable)element).closeBuffer();
+                                               ((Openable) element).closeBuffer();
                                        }
                                }
                                throw newNotPresentException();
@@ -590,43 +627,46 @@ public abstract class JavaElement extends PlatformObject implements IJavaElement
                return this.getElementName();
        }
        /**
-        * Removes all cached info from the Java Model, including all children,
-        * but does not close this element.
-        */
-//     protected void removeInfo() {
-//             Object info = JavaModelManager.getJavaModelManager().peekAtInfo(this);
-//             if (info != null) {
-//                     if (this instanceof IParent) {
-//                             IJavaElement[] children = ((JavaElementInfo)info).getChildren();
-//                             for (int i = 0, size = children.length; i < size; ++i) {
-//                                     JavaElement child = (JavaElement) children[i];
-//                                     child.removeInfo();
-//                             }
-//                     }
-//                     JavaModelManager.getJavaModelManager().removeInfo(this);
-//             }
-//     }
-//     /**
-//      * Returns a copy of this element rooted at the given project.
-//      */
-//     public abstract IJavaElement rootedAt(IJavaProject project);
+        * Removes all cached info from the Java Model, including all children, but
+        * does not close this element.
+        */
+       //      protected void removeInfo() {
+       //              Object info = JavaModelManager.getJavaModelManager().peekAtInfo(this);
+       //              if (info != null) {
+       //                      if (this instanceof IParent) {
+       //                              IJavaElement[] children = ((JavaElementInfo)info).getChildren();
+       //                              for (int i = 0, size = children.length; i < size; ++i) {
+       //                                      JavaElement child = (JavaElement) children[i];
+       //                                      child.removeInfo();
+       //                              }
+       //                      }
+       //                      JavaModelManager.getJavaModelManager().removeInfo(this);
+       //              }
+       //      }
+       //      /**
+       //       * Returns a copy of this element rooted at the given project.
+       //       */
+       //      public abstract IJavaElement rootedAt(IJavaProject project);
        /**
         * Runs a Java Model Operation
         */
-       public static void runOperation(JavaModelOperation operation, IProgressMonitor monitor) throws JavaModelException {
+       public static void runOperation(JavaModelOperation operation,
+                       IProgressMonitor monitor) throws JavaModelException {
                try {
-                       if (operation.isReadOnly() || ResourcesPlugin.getWorkspace().isTreeLocked()) {
+                       if (operation.isReadOnly()
+                                       || ResourcesPlugin.getWorkspace().isTreeLocked()) {
                                operation.run(monitor);
                        } else {
-                               // use IWorkspace.run(...) to ensure that a build will be done in autobuild mode
+                               // use IWorkspace.run(...) to ensure that a build will be done
+                               // in autobuild mode
                                ResourcesPlugin.getWorkspace().run(operation, monitor);
                        }
                } catch (CoreException ce) {
                        if (ce instanceof JavaModelException) {
-                               throw (JavaModelException)ce;
+                               throw (JavaModelException) ce;
                        } else {
                                if (ce.getStatus().getCode() == IResourceStatus.OPERATION_FAILED) {
-                                       Throwable e= ce.getStatus().getException();
+                                       Throwable e = ce.getStatus().getException();
                                        if (e instanceof JavaModelException) {
                                                throw (JavaModelException) e;
                                        }
@@ -656,7 +696,7 @@ public abstract class JavaElement extends PlatformObject implements IJavaElement
                return buffer.toString();
        }
        /**
-        *  Debugging purposes
+        * Debugging purposes
         */
        public String toString() {
                StringBuffer buffer = new StringBuffer();
@@ -664,10 +704,10 @@ public abstract class JavaElement extends PlatformObject implements IJavaElement
                return buffer.toString();
        }
        /**
-        *  Debugging purposes
+        * Debugging purposes
         */
        protected void toString(int tab, StringBuffer buffer) {
-       //      Object info = this.toStringInfo(tab, buffer);
+               //      Object info = this.toStringInfo(tab, buffer);
                Object info = null;
                if (tab == 0) {
                        this.toStringAncestors(buffer);
@@ -675,7 +715,7 @@ public abstract class JavaElement extends PlatformObject implements IJavaElement
                this.toStringChildren(tab, buffer, info);
        }
        /**
-        *  Debugging purposes
+        * Debugging purposes
         */
        public String toStringWithAncestors() {
                StringBuffer buffer = new StringBuffer();
@@ -684,10 +724,10 @@ public abstract class JavaElement extends PlatformObject implements IJavaElement
                return buffer.toString();
        }
        /**
-        *  Debugging purposes
+        * Debugging purposes
         */
        protected void toStringAncestors(StringBuffer buffer) {
-               JavaElement parent = (JavaElement)this.getParent();
+               JavaElement parent = (JavaElement) this.getParent();
                if (parent != null && parent.getParent() != null) {
                        buffer.append(" [in "); //$NON-NLS-1$
                        parent.toStringInfo(0, buffer, NO_INFO);
@@ -696,26 +736,27 @@ public abstract class JavaElement extends PlatformObject implements IJavaElement
                }
        }
        /**
-        *  Debugging purposes
+        * Debugging purposes
         */
        protected void toStringChildren(int tab, StringBuffer buffer, Object info) {
-               if (info == null || !(info instanceof JavaElementInfo)) return;
-               IJavaElement[] children = ((JavaElementInfo)info).getChildren();
+               if (info == null || !(info instanceof JavaElementInfo))
+                       return;
+               IJavaElement[] children = ((JavaElementInfo) info).getChildren();
                for (int i = 0; i < children.length; i++) {
                        buffer.append("\n"); //$NON-NLS-1$
-                       ((JavaElement)children[i]).toString(tab + 1, buffer);
+                       ((JavaElement) children[i]).toString(tab + 1, buffer);
                }
        }
        /**
-        *  Debugging purposes
+        * Debugging purposes
         */
-//     public Object toStringInfo(int tab, StringBuffer buffer) {
-//             Object info = JavaModelManager.getJavaModelManager().peekAtInfo(this);
-//             this.toStringInfo(tab, buffer, info);
-//             return info;
-//     }
+       //      public Object toStringInfo(int tab, StringBuffer buffer) {
+       //              Object info = JavaModelManager.getJavaModelManager().peekAtInfo(this);
+       //              this.toStringInfo(tab, buffer, info);
+       //              return info;
+       //      }
        /**
-        *  Debugging purposes
+        * Debugging purposes
         */
        protected void toStringInfo(int tab, StringBuffer buffer, Object info) {
                buffer.append(this.tabString(tab));
@@ -724,4 +765,4 @@ public abstract class JavaElement extends PlatformObject implements IJavaElement
                        buffer.append(" (not open)"); //$NON-NLS-1$
                }
        }
-}
+}
\ No newline at end of file