*** empty log message ***
diff --git a/org.eclipse.jdt.core/model/org/eclipse/jdt/core/jdom/DOMException.java b/org.eclipse.jdt.core/model/org/eclipse/jdt/core/jdom/DOMException.java
index 9a382d1..7d18370 100644
--- a/org.eclipse.jdt.core/model/org/eclipse/jdt/core/jdom/DOMException.java
+++ b/org.eclipse.jdt.core/model/org/eclipse/jdt/core/jdom/DOMException.java
@@ -1,5 +1,16 @@
 package org.eclipse.jdt.core.jdom;

+/*

+ * (c) Copyright IBM Corp. 2000, 2001.

+ * All Rights Reserved.

+ */

+import org.eclipse.jdt.internal.core.*;

 

+/**

+ * Unchecked exception thrown when an illegal manipulation of the JDOM is 

+ * performed, or when an attempt is made to access/set an attribute of a

+ * JDOM node that source indexes cannot be determined for (in case the source

+ * was syntactically incorrect).

+ */

 public class DOMException extends RuntimeException {

 /**

  * Creates a new exception with no detail message.

diff --git a/org.eclipse.jdt.core/model/org/eclipse/jdt/core/jdom/IDOMCompilationUnit.java b/org.eclipse.jdt.core/model/org/eclipse/jdt/core/jdom/IDOMCompilationUnit.java
index e9702c1..83a6eac 100644
--- a/org.eclipse.jdt.core/model/org/eclipse/jdt/core/jdom/IDOMCompilationUnit.java
+++ b/org.eclipse.jdt.core/model/org/eclipse/jdt/core/jdom/IDOMCompilationUnit.java
@@ -1,5 +1,19 @@
 package org.eclipse.jdt.core.jdom;

+/*

+ * (c) Copyright IBM Corp. 2000, 2001.

+ * All Rights Reserved.

+ */

+import org.eclipse.jdt.internal.core.*;

 

+/**

+ * Represents a Java compilation unit (<code>.java</code> source file). 

+ * The corresponding syntactic unit is CompilationUnit (JLS2 7.3).  

+ * Allowable child types for a compilation unit are <code>IDOMPackage</code>, <code>IDOMImport</code>,

+ * and <code>IDOMType</code>.

+ * <p>

+ * This interface is not intended to be implemented by clients.

+ * </p>

+ */

 public interface IDOMCompilationUnit extends IDOMNode {

 /**

  * Returns the header comment for this compilation unit. The header comment

diff --git a/org.eclipse.jdt.core/model/org/eclipse/jdt/core/jdom/IDOMFactory.java b/org.eclipse.jdt.core/model/org/eclipse/jdt/core/jdom/IDOMFactory.java
index 878df04..9a5669a 100644
--- a/org.eclipse.jdt.core/model/org/eclipse/jdt/core/jdom/IDOMFactory.java
+++ b/org.eclipse.jdt.core/model/org/eclipse/jdt/core/jdom/IDOMFactory.java
@@ -1,5 +1,48 @@
 package org.eclipse.jdt.core.jdom;

+/*

+ * (c) Copyright IBM Corp. 2000, 2001.

+ * All Rights Reserved.

+ */

+import org.eclipse.jdt.internal.core.*;

 

+/**

+ * A factory used to create document fragment (DF) nodes. An 

+ * <code>IDOMCompilationUnit</code> represents the root of a complete JDOM (that

+ * is, a ".java" file). Other node types represent fragments of a compilation

+ * unit.

+ * <p>

+ * The factory can be used to create empty DFs or it can create DFs from source

+ * strings. All DFs created empty are assigned default values as required, such

+ * that a call to <code>IDOMNode.getContents</code> will generate a valid source

+ * string. See individual <code>create</code> methods for details on the default

+ * values supplied. The factory does its best to recognize Java structures in

+ * the source provided. If the factory is completely unable to recognize source

+ * constructs, the factory method returns <code>null</code>.

+ * </p>

+ * <p>

+ * Even if a DF is created successfully from source code, it does not guarantee

+ * that the source code will compile error free. Similary, the contents of a DF

+ * are not guaranteed to compile error free. However, syntactically correct 

+ * source code is guaranteed to be recognized and successfully generate a DF.

+ * Similarly, if all of the fragments of a JDOM are syntactically correct, the

+ * contents of the entire document will be correct too.

+ * </p>

+ * <p>

+ * The factory does not perform or provide any code formatting. Document 

+ * fragments created on source strings must be pre-formatted. The JDOM attempts

+ * to maintain the formatting of documents as best as possible. For this reason,

+ * document fragments created for nodes that are to be strung together should 

+ * end with a new-line character. Failing to do so will result in a document

+ * that has elements strung together on the same line. This is especially

+ * important if a source string ends with a // comment. In this case, it would

+ * be syntactically incorrect to omit the new line character.

+ * </p>

+ * <p>

+ * This interface is not intended to be implemented by clients.

+ * </p>

+ *

+ * @see IDOMNode

+ */

 public interface IDOMFactory {

 /**

  * Creates and return an empty JDOM. The initial content is an empty string.

diff --git a/org.eclipse.jdt.core/model/org/eclipse/jdt/core/jdom/IDOMField.java b/org.eclipse.jdt.core/model/org/eclipse/jdt/core/jdom/IDOMField.java
index c623cfc..9799b73 100644
--- a/org.eclipse.jdt.core/model/org/eclipse/jdt/core/jdom/IDOMField.java
+++ b/org.eclipse.jdt.core/model/org/eclipse/jdt/core/jdom/IDOMField.java
@@ -1,5 +1,19 @@
 package org.eclipse.jdt.core.jdom;

+/*

+ * (c) Copyright IBM Corp. 2000, 2001.

+ * All Rights Reserved.

+ */

+import org.eclipse.jdt.internal.core.*;

 

+/**

+ * Represents a field declaration. The corresponding

+ * syntactic units are FieldDeclaration (JLS2 8.3) and ConstantDeclaration

+ * (JLS2 9.3) restricted to a single VariableDeclarator clause.

+ * A field has no children. The parent of a field is a type.

+ * <p>

+ * This interface is not intended to be implemented by clients.

+ * </p>

+ */

 public interface IDOMField extends IDOMMember {

 /**

  * Returns the initializer expression for this field.

diff --git a/org.eclipse.jdt.core/model/org/eclipse/jdt/core/jdom/IDOMImport.java b/org.eclipse.jdt.core/model/org/eclipse/jdt/core/jdom/IDOMImport.java
index fc56e6a..c7596dd 100644
--- a/org.eclipse.jdt.core/model/org/eclipse/jdt/core/jdom/IDOMImport.java
+++ b/org.eclipse.jdt.core/model/org/eclipse/jdt/core/jdom/IDOMImport.java
@@ -1,5 +1,18 @@
 package org.eclipse.jdt.core.jdom;

+/*

+ * (c) Copyright IBM Corp. 2000, 2001.

+ * All Rights Reserved.

+ */

+import org.eclipse.jdt.internal.core.*;

 

+/**

+ * Represents an import declaration.

+ * The corresponding syntactic unit is ImportDeclaration (JLS2 7.5).

+ * An import has no children and its parent is a compilation unit.

+ * <p>

+ * This interface is not intended to be implemented by clients.

+ * </p>

+ */

 public interface IDOMImport extends IDOMNode {

 /**

  * The <code>IDOMImport</code> refinement of this <code>IDOMNode</code>

diff --git a/org.eclipse.jdt.core/model/org/eclipse/jdt/core/jdom/IDOMInitializer.java b/org.eclipse.jdt.core/model/org/eclipse/jdt/core/jdom/IDOMInitializer.java
index a8f82f4..beb3c51 100644
--- a/org.eclipse.jdt.core/model/org/eclipse/jdt/core/jdom/IDOMInitializer.java
+++ b/org.eclipse.jdt.core/model/org/eclipse/jdt/core/jdom/IDOMInitializer.java
@@ -1,5 +1,18 @@
 package org.eclipse.jdt.core.jdom;

+/*

+ * (c) Copyright IBM Corp. 2000, 2001.

+ * All Rights Reserved.

+ */

+import org.eclipse.jdt.internal.core.*;

 

+/**

+ * Represents an initializer. The corresponding syntactic

+ * units are InstanceInitializer (JLS2 8.6) and StaticDeclaration (JLS2 8.7).

+ * An initializer has no children and its parent is a type.

+ * <p>

+ * This interface is not intended to be implemented by clients.

+ * </p>

+ */

 public interface IDOMInitializer extends IDOMMember {

 /**

  * Returns the body of this initializer. The syntax for a body corresponds to

diff --git a/org.eclipse.jdt.core/model/org/eclipse/jdt/core/jdom/IDOMMember.java b/org.eclipse.jdt.core/model/org/eclipse/jdt/core/jdom/IDOMMember.java
index 6cb9542..916b1a2 100644
--- a/org.eclipse.jdt.core/model/org/eclipse/jdt/core/jdom/IDOMMember.java
+++ b/org.eclipse.jdt.core/model/org/eclipse/jdt/core/jdom/IDOMMember.java
@@ -1,5 +1,22 @@
 package org.eclipse.jdt.core.jdom;

+/*

+ * (c) Copyright IBM Corp. 2000, 2001.

+ * All Rights Reserved.

+ */

+import org.eclipse.jdt.internal.core.*;

 

+/**

+ * An <code>IDOMMember</code> defines functionality common to nodes which

+ * can be members of types.

+ * <p>

+ * This interface is not intended to be implemented by clients.

+ * </p>

+ *

+ * @see IDOMType

+ * @see IDOMMethod

+ * @see IDOMField

+ * @see IDOMInitializer

+ */

 public interface IDOMMember extends IDOMNode {

 /**

  * Returns the comment associated with this member (including comment delimiters).

diff --git a/org.eclipse.jdt.core/model/org/eclipse/jdt/core/jdom/IDOMMethod.java b/org.eclipse.jdt.core/model/org/eclipse/jdt/core/jdom/IDOMMethod.java
index a0b53d3..c9b1b14 100644
--- a/org.eclipse.jdt.core/model/org/eclipse/jdt/core/jdom/IDOMMethod.java
+++ b/org.eclipse.jdt.core/model/org/eclipse/jdt/core/jdom/IDOMMethod.java
@@ -1,5 +1,20 @@
 package org.eclipse.jdt.core.jdom;

+/*

+ * (c) Copyright IBM Corp. 2000, 2001.

+ * All Rights Reserved.

+ */

+import org.eclipse.jdt.internal.core.*;

 

+/**

+ * Represents a method declaration.

+ * The corresponding syntactic units are MethodDeclaration (JLS2 8.4),

+ * ConstructorDeclaration (JLS2 8.8), and AbstractMethodDeclaration (JLS2 9.4).

+ * A method has no children and its parent is a type.

+ * Local classes are considered to be part of the body of a method, not a child.

+ * <p>

+ * This interface is not intended to be implemented by clients.

+ * </p>

+ */

 public interface IDOMMethod extends IDOMMember {

 /**

  * Adds the given exception to the end of the list of exceptions this method

diff --git a/org.eclipse.jdt.core/model/org/eclipse/jdt/core/jdom/IDOMPackage.java b/org.eclipse.jdt.core/model/org/eclipse/jdt/core/jdom/IDOMPackage.java
index 5231e29..861cb91 100644
--- a/org.eclipse.jdt.core/model/org/eclipse/jdt/core/jdom/IDOMPackage.java
+++ b/org.eclipse.jdt.core/model/org/eclipse/jdt/core/jdom/IDOMPackage.java
@@ -1,5 +1,18 @@
 package org.eclipse.jdt.core.jdom;

+/*

+ * (c) Copyright IBM Corp. 2000, 2001.

+ * All Rights Reserved.

+ */

+import org.eclipse.jdt.internal.core.*;

 

+/**

+ * Represents a package declaration. 

+ * The corresponding syntactic unit is PackageDeclaration (JLS2 7.4). 

+ * A Package has no children, and its parent is a compilation unit.

+ * <p>

+ * This interface is not intended to be implemented by clients.

+ * </p>

+ */

 public interface IDOMPackage extends IDOMNode {

 /**

  * The <code>IDOMPackage</code> refinement of this <code>IDOMNode</code>

diff --git a/org.eclipse.jdt.core/model/org/eclipse/jdt/core/jdom/IDOMType.java b/org.eclipse.jdt.core/model/org/eclipse/jdt/core/jdom/IDOMType.java
index d5c1c2b..17a5f1a 100644
--- a/org.eclipse.jdt.core/model/org/eclipse/jdt/core/jdom/IDOMType.java
+++ b/org.eclipse.jdt.core/model/org/eclipse/jdt/core/jdom/IDOMType.java
@@ -1,5 +1,23 @@
 package org.eclipse.jdt.core.jdom;

+/*

+ * (c) Copyright IBM Corp. 2000, 2001.

+ * All Rights Reserved.

+ */

+import org.eclipse.jdt.internal.core.*;

 

+/**

+ * Represents a source type in a compilation unit, either as a top-level type or a member type.

+ * The corresponding syntactic units are ClassDeclaration (JLS2 8.1) and InterfaceDeclaration (JLS2 9.1).

+ * <p>

+ * Allowable child types for a type are <code>IDOMType</code>, <code>IDOMField</code>, 

+ * <code>IDOMMethod</code>, and <code>IDOMInitializer</code>.

+ * Children are listed in the order in which they appear in the source. The parent of a type

+ * is a type (in the case of a member type) or a compilation unit (in the case of a top-level type).

+ * </p>

+ * <p>

+ * This interface is not intended to be implemented by clients.

+ * </p>

+ */

 public interface IDOMType extends IDOMMember {

 /**

  * Adds the given interface name to the names of interfaces that this type implements or extends

diff --git a/org.eclipse.jdt.core/model/org/eclipse/jdt/internal/core/FailedReconciliationException.java b/org.eclipse.jdt.core/model/org/eclipse/jdt/internal/core/FailedReconciliationException.java
index 6f799b4..61eaed2 100644
--- a/org.eclipse.jdt.core/model/org/eclipse/jdt/internal/core/FailedReconciliationException.java
+++ b/org.eclipse.jdt.core/model/org/eclipse/jdt/internal/core/FailedReconciliationException.java
@@ -1,4 +1,9 @@
 package org.eclipse.jdt.internal.core;

+/*

+ * (c) Copyright IBM Corp. 2000, 2001.

+ * All Rights Reserved.

+ */

+import org.eclipse.jdt.core.*;

 

 public class FailedReconciliationException extends RuntimeException {

 /**

diff --git a/org.eclipse.jdt.core/model/org/eclipse/jdt/internal/core/IJavaReconciler.java b/org.eclipse.jdt.core/model/org/eclipse/jdt/internal/core/IJavaReconciler.java
index d407ea7..5d5778e 100644
--- a/org.eclipse.jdt.core/model/org/eclipse/jdt/internal/core/IJavaReconciler.java
+++ b/org.eclipse.jdt.core/model/org/eclipse/jdt/internal/core/IJavaReconciler.java
@@ -1,5 +1,22 @@
 package org.eclipse.jdt.internal.core;

+/*

+ * (c) Copyright IBM Corp. 2000, 2001.

+ * All Rights Reserved.

+ */

+import org.eclipse.jdt.core.*;

 

+/**

+ * An <code>IJavaReconciler</code> is used to incrementally update

+ * the structure of a working copy compilation unit as edits take

+ * place in its buffer. As each contiguous edit is performed on the

+ * buffer, calls are made to the reconciler which will update the

+ * internal structure of the working copy (i.e. add/remove elements),

+ * and report structural changes as <code>IJavaElementDelta</code>s.

+ * <p>

+ * Deltas are distributed via the <code>IElementChangedListener</code>

+ * mechanism. Interested listeners must register with the

+ * <code>IJavaModelManager</code>.

+ */

 public interface IJavaReconciler {

 /**

  * Reconciles a deletion of contiguous text.

diff --git a/org.eclipse.jdt.core/model/org/eclipse/jdt/internal/core/IPathRequestor.java b/org.eclipse.jdt.core/model/org/eclipse/jdt/internal/core/IPathRequestor.java
index 90e7c7a..7f2a20e 100644
--- a/org.eclipse.jdt.core/model/org/eclipse/jdt/internal/core/IPathRequestor.java
+++ b/org.eclipse.jdt.core/model/org/eclipse/jdt/internal/core/IPathRequestor.java
@@ -1,4 +1,9 @@
 package org.eclipse.jdt.internal.core;

+/*

+ * (c) Copyright IBM Corp. 2000, 2001.

+ * All Rights Reserved.

+ */

+import org.eclipse.jdt.core.*;

 

 public interface IPathRequestor {

 void acceptPath(String path);

diff --git a/org.eclipse.jdt.core/model/org/eclipse/jdt/internal/core/builder/BuildEvent.java b/org.eclipse.jdt.core/model/org/eclipse/jdt/internal/core/builder/BuildEvent.java
index 87c981d..54b687e 100644
--- a/org.eclipse.jdt.core/model/org/eclipse/jdt/internal/core/builder/BuildEvent.java
+++ b/org.eclipse.jdt.core/model/org/eclipse/jdt/internal/core/builder/BuildEvent.java
@@ -1,5 +1,13 @@
 package org.eclipse.jdt.internal.core.builder;

+/*

+ * (c) Copyright IBM Corp. 2000, 2001.

+ * All Rights Reserved.

+ */

+import org.eclipse.jdt.core.*;

 

+/**

+ * A BuildEvent encapsulates information passed to an IBuildListener.

+ */

 public class BuildEvent {

 	protected ISourceFragment fSourceFragment;

 	protected int fNewErrorCount;

diff --git a/org.eclipse.jdt.core/model/org/eclipse/jdt/internal/core/builder/IBuildMonitor.java b/org.eclipse.jdt.core/model/org/eclipse/jdt/internal/core/builder/IBuildMonitor.java
index 652126f..b79e3d6 100644
--- a/org.eclipse.jdt.core/model/org/eclipse/jdt/internal/core/builder/IBuildMonitor.java
+++ b/org.eclipse.jdt.core/model/org/eclipse/jdt/internal/core/builder/IBuildMonitor.java
@@ -1,5 +1,15 @@
 package org.eclipse.jdt.internal.core.builder;

+/*

+ * (c) Copyright IBM Corp. 2000, 2001.

+ * All Rights Reserved.

+ */

+import org.eclipse.jdt.core.*;

 

+/**

+ * A build monitor tracks what compilation units have been compiled during a

+ * given build.  This allows test suites to evaluate the efficiency of incremental

+ * compilation.

+ */

 public interface IBuildMonitor {

 	/**

 	 * Signals that a new build has begun

diff --git a/org.eclipse.jdt.core/model/org/eclipse/jdt/internal/core/builder/IConstructor.java b/org.eclipse.jdt.core/model/org/eclipse/jdt/internal/core/builder/IConstructor.java
index 341de55..04abc2d 100644
--- a/org.eclipse.jdt.core/model/org/eclipse/jdt/internal/core/builder/IConstructor.java
+++ b/org.eclipse.jdt.core/model/org/eclipse/jdt/internal/core/builder/IConstructor.java
@@ -1,5 +1,25 @@
 package org.eclipse.jdt.internal.core.builder;

+/*

+ * (c) Copyright IBM Corp. 2000, 2001.

+ * All Rights Reserved.

+ */

+import org.eclipse.jdt.core.*;

 

+/**

+ * Constructor provides information about a single

+ * constructor for a class.

+ *

+ * Changes from java.lang and java.lang.reflect:

+ * <ul>

+ * <li>toString() changed to be a handle-only method; 

+ *	 it ignores the modifiers and exceptions.</li>

+ * </ul>

+ *

+ * @see IMember

+ * @see IType

+ * @see IType#getConstructorHandle

+ * @see IType#getDeclaredConstructors

+ */

 public interface IConstructor extends IMember {

 

 

@@ -17,7 +37,7 @@
 	/**

 	 * Returns an array of Type objects that represent the types of

 	 * the checked exceptions thrown by the underlying constructor

-	 * represented by this Constructor object.	

+	 * represented by this Constructor object.  

 	 * Unchecked exceptions are not included in the result, even if

 	 * they are declared in the source.

 	 * Returns an array of length 0 if the constructor throws no checked 

@@ -30,7 +50,7 @@
 	/**

 	 * Returns an array of Type objects that represent the formal

 	 * parameter types, in declaration order, of the constructor

-	 * represented by this Constructor object.	

+	 * represented by this Constructor object.  

 	 * Returns an array of length 0 if the underlying constructor 

 	 * takes no parameters.

 	 * This is a handle-only method.

@@ -56,7 +76,7 @@
 	 * followed by a parenthesized, comma-separated list of the

 	 * constructor's formal parameter types.  For example:

 	 * <pre>

-	 *	  java.util.Hashtable(int,float)

+	 *    java.util.Hashtable(int,float)

 	 * </pre>

 	 *

 	 * @see IHandle#toString

diff --git a/org.eclipse.jdt.core/model/org/eclipse/jdt/internal/core/builder/IDeltaKey.java b/org.eclipse.jdt.core/model/org/eclipse/jdt/internal/core/builder/IDeltaKey.java
index 8118823..a8543cd 100644
--- a/org.eclipse.jdt.core/model/org/eclipse/jdt/internal/core/builder/IDeltaKey.java
+++ b/org.eclipse.jdt.core/model/org/eclipse/jdt/internal/core/builder/IDeltaKey.java
@@ -1,4 +1,9 @@
 package org.eclipse.jdt.internal.core.builder;

+/*

+ * (c) Copyright IBM Corp. 2000, 2001.

+ * All Rights Reserved.

+ */

+import org.eclipse.jdt.core.*;

 

 public interface IDeltaKey {

 	/**

@@ -29,16 +34,16 @@
 	 * Returns the key describing the receiver's parent, or null if the receiver

 	 * is the root key.

 	 */

-	 DeltaKey parent();

+	 DeltaKey parent(); 

 	/**

 	 * Returns a new key containing the first few local names in the

 	 * receiver.

 	 *

 	 * @param count

-	 *	number of local names to copy (length of prefix)

+	 *  number of local names to copy (length of prefix)

 	 * @exception IllegalArgumentException

-	 *	receiver contains fewer than count local names, or count is

-	 *	negative."

+	 *  receiver contains fewer than count local names, or count is

+	 *  negative."

 	 */

 	DeltaKey prefix (int count);

 	/**

@@ -50,10 +55,10 @@
 	 * names in the receiver.

 	 *

 	 * @param count

-	 *	number of local names in the key to leave out (length of prefix to cut)

+	 *  number of local names in the key to leave out (length of prefix to cut)

 	 * @exception IllegalArgumentException

-	 *	receiver contains fewer than count local names, or count is

-	 *	negative.

+	 *  receiver contains fewer than count local names, or count is

+	 *  negative.

 	 */

 	DeltaKey withoutPrefix (int count);

 }

diff --git a/org.eclipse.jdt.core/model/org/eclipse/jdt/internal/core/builder/IDependencyGraph.java b/org.eclipse.jdt.core/model/org/eclipse/jdt/internal/core/builder/IDependencyGraph.java
index acf201b..002e5b6 100644
--- a/org.eclipse.jdt.core/model/org/eclipse/jdt/internal/core/builder/IDependencyGraph.java
+++ b/org.eclipse.jdt.core/model/org/eclipse/jdt/internal/core/builder/IDependencyGraph.java
@@ -1,5 +1,14 @@
 package org.eclipse.jdt.internal.core.builder;

+/*

+ * (c) Copyright IBM Corp. 2000, 2001.

+ * All Rights Reserved.

+ */

+import org.eclipse.jdt.core.*;

 

+/**

+ * The dependency graph describes the dependencies between elements in a given state.

+ * It is navigated using non-state-specific class or interface handles.

+ */

 public interface IDependencyGraph {

 	/**

 	 * Returns the namespaces on which the given type depends.

diff --git a/org.eclipse.jdt.core/model/org/eclipse/jdt/internal/core/builder/IField.java b/org.eclipse.jdt.core/model/org/eclipse/jdt/internal/core/builder/IField.java
index 763e943..e4c8401 100644
--- a/org.eclipse.jdt.core/model/org/eclipse/jdt/internal/core/builder/IField.java
+++ b/org.eclipse.jdt.core/model/org/eclipse/jdt/internal/core/builder/IField.java
@@ -1,5 +1,28 @@
 package org.eclipse.jdt.internal.core.builder;

+/*

+ * (c) Copyright IBM Corp. 2000, 2001.

+ * All Rights Reserved.

+ */

+import org.eclipse.jdt.core.*;

 

+/**

+ * A Field provides information about a

+ * single field of a class or an interface.  The field may

+ * be a class (static) field or an instance field.

+ *

+ * Changes from java.lang and java.lang.reflect:

+ * <ul>

+ * <li>equals(Object) changed to ignore field type

+ *	 (field type is not an identity criterion for field handles).</li>

+ * <li>toString() changed to be a handle-only method; 

+ *	 it ignores the modifiers and field type.</li>

+ * </ul>

+ *

+ * @see IMember

+ * @see IType

+ * @see IType#getFieldHandle

+ * @see IType#getDeclaredFields

+ */

 public interface IField extends IMember {

 

 

@@ -38,8 +61,8 @@
 	 * followed by a period, followed by the name of the field.

 	 * For example:

 	 * <pre>

-	 *	  java.lang.Thread.MIN_PRIORITY

-	 *	  java.io.FileDescriptor.fd

+	 *    java.lang.Thread.MIN_PRIORITY

+	 *    java.io.FileDescriptor.fd

 	 * </pre>

 	 *

 	 * @see IHandle#toString

diff --git a/org.eclipse.jdt.core/model/org/eclipse/jdt/internal/core/builder/IHandle.java b/org.eclipse.jdt.core/model/org/eclipse/jdt/internal/core/builder/IHandle.java
index a341e51..a4233f5 100644
--- a/org.eclipse.jdt.core/model/org/eclipse/jdt/internal/core/builder/IHandle.java
+++ b/org.eclipse.jdt.core/model/org/eclipse/jdt/internal/core/builder/IHandle.java
@@ -1,5 +1,95 @@
 package org.eclipse.jdt.internal.core.builder;

+/*

+ * (c) Copyright IBM Corp. 2000, 2001.

+ * All Rights Reserved.

+ */

+import org.eclipse.jdt.core.*;

 

+/**

+ * The <code>IHandle</code> defines messages common to objects 

+ * in the image (for Java, these would be things such as packages, types, 

+ * methods, and fields).

+ * Each one of these has an identifying handle, which represents the object.

+ * There can only be at most one such object in the image.

+ * <p>

+ * Handles come in two flavours: state-specific, and non-state-specific.

+ * A state-specific handle is tied to a specific state and refers to an 

+ * object in that state.  The state of a state-specific handle cannot

+ * be changed.

+ * A non-state-specific handle is not tied to a specific state and refers

+ * to an object in whichever state is the current state of the development context.

+ * The current state may change, in which case all non-state-specific handles

+ * now refer to the object in the new current state.

+ * Normally a client is dealing with non state-specific handles, occasionally with

+ * state-specific handles, and very rarely with a combination of the two.

+ * <p>

+ * It is possible for the object refered to by a handle to be 

+ * missing from the image (e.g. a class which was deleted).  

+ * The isPresent() method can be used to determine whether the object 

+ * is present in a state of the development context or not.  

+ * For state-specific handles, isPresent() returns true if and only if the

+ * object is present in the state the handle is tied to.

+ * For non-state-specific handles, isPresent() returns true if and only if

+ * the object is present in the current state of the DC.

+ * <p>

+ * Certain methods on handles require that the object it represents be present

+ * (these are called 'non-handle-only methods'), whereas others operate only on 

+ * the handles themselves and will work correctly whether or not the object 

+ * is present (these are called 'handle-only methods').

+ * If a non-handle-only method is invoked on a handle whose object is not present,

+ * a <code>NotPresentException</code> is thrown (except for the isPresent() method).

+ * <p>

+ * The development context tries to ensure that any objects obtained by navigating

+ * from a present object are also present.  For example, in Java, the classes 

+ * returned by Package.getAllClasses() will all be present.

+ * For cases where an object referenced in the source is not present in the image, 

+ * the image builder either creates a <em>fictional</em> object to take its place or makes

+ * it appear as if the reference never existed. 

+ * These fictional objects are considered to be present (although it is not generally

+ * true that if an object is fictional then it is present).

+ * For example, if a class B subclasses a class A, and B is present in the image 

+ * but A is not, then the image builder could invent a fictional class A.  So the

+ * navigation B.getSuperclass() would result in an object that is present.

+ * For this reason, NotPresentException is an unchecked RuntimeException, to allow 

+ * clients to operate under the assumption that all reachable objects are present.

+ * Special care must be taken when creating handles 

+ * (i.e. <code>Package.getClassHandle(String)</type), since the objects 

+ * referred to may not be present.  Other methods where this assumption does not

+ * hold are explicitly marked (e.g. <code>Package.getReferencedPackages()</code>).

+ * <p>

+ * The following table defines the identity criteria for the principle kinds 

+ * of Java handles.	For two handles to be considered the same, they must satisfy 

+ * these criteria.	In addition, the handles must either both be non-state-specific,

+ * or both be state-specific on the same state.

+ * <p> 

+ * <dl> 

+ * <b><dt>Kind of handle</dt> <dd>Identity criteria</dd></b>

+ * <dt>Image</dt>		<dd>Same development context.</dd>

+ * <dt>Package</dt> 	<dd>Same development context, same package name.</dd>

+ * <dt>Type</dt>		

+ *		<dd>Same development context.

+ *		For classes and interfaces, same type name (same fully qualified name,

+ *      excluding package name) and same containing package.

+ *		For array types, same component type.

+ *		For primitive types, same primitive type name.</dd>

+ * <dt>Field</dt>		<dd>Same development context, same declaring type, same field name.</dd>

+ * <dt>Method</dt>		

+ *		<dd>Same development context, same declaring type, same method name,

+ *		same argument types.</dd>

+ * <dt>Constructor</dt> 	

+ *		<dd>Same development context, same declaring type, same argument types.</dd>

+ * </dl>

+ *

+ * @see IImage

+ * @see IPackage

+ * @see IType

+ * @see IField

+ * @see IMethod

+ * @see IConstructor

+ * @see INotPresentException

+ *

+ * @see #equals

+ */

 public interface IHandle 

 {

 	int K_JAVA_IMAGE = 1;

@@ -47,7 +137,7 @@
 	/**

 	 * Returns a state-specific object which refers to the same object 

 	 * as this object, but restricted to the given state.  This object

-	 * must be non-state-specific.	

+	 * must be non-state-specific.  

 	 * It is an error to invoke this on a state-specific object. 

 	 * This is a handle-only method; the object may or may not be present

 	 * in the given state.

@@ -99,7 +189,7 @@
 	 */

 	IHandle nonStateSpecific() throws StateSpecificException;

 	/**

-	 * Return a string describing this handle.	

+	 * Return a string describing this handle.  

 	 * This is a handle-only method.

 	 * Extending interfaces provide more details.

 	 *

diff --git a/org.eclipse.jdt.core/model/org/eclipse/jdt/internal/core/builder/IImageBuilder.java b/org.eclipse.jdt.core/model/org/eclipse/jdt/internal/core/builder/IImageBuilder.java
index 6192f06..ffe56bc 100644
--- a/org.eclipse.jdt.core/model/org/eclipse/jdt/internal/core/builder/IImageBuilder.java
+++ b/org.eclipse.jdt.core/model/org/eclipse/jdt/internal/core/builder/IImageBuilder.java
@@ -1,5 +1,17 @@
 package org.eclipse.jdt.internal.core.builder;

+/*

+ * (c) Copyright IBM Corp. 2000, 2001.

+ * All Rights Reserved.

+ */

+import org.eclipse.jdt.core.*;

 

+/**

+ * An ImageBuilder represents the process of building

+ * a state.  It can be queried for the State being built. 

+ * If the state is being built incrementally as a change to 

+ * a previous state, this object can be queried for the 

+ * image delta between the old state and the new state.

+ */

 public interface IImageBuilder 

 {

 

@@ -33,12 +45,12 @@
 	IState getOldState();

 /**

  * Return a string of the form:

- * 		batch image builder for:

- * 			new state: this.data.newstate

+ *      batch image builder for:

+ *          new state: this.data.newstate

  * OR

- * 		incremental image builder for:

- *			new state: this.data.newstate

- * 			old state: this.data.oldstate

+ *      incremental image builder for:

+ *          new state: this.data.newstate

+ *          old state: this.data.oldstate

  * Obviously, which string gets returned depends

  * on the type of image builder.

  * The string returned is only for debugging purposes,

diff --git a/org.eclipse.jdt.core/model/org/eclipse/jdt/internal/core/builder/IImageContext.java b/org.eclipse.jdt.core/model/org/eclipse/jdt/internal/core/builder/IImageContext.java
index 90deeba..9324d64 100644
--- a/org.eclipse.jdt.core/model/org/eclipse/jdt/internal/core/builder/IImageContext.java
+++ b/org.eclipse.jdt.core/model/org/eclipse/jdt/internal/core/builder/IImageContext.java
@@ -1,5 +1,27 @@
 package org.eclipse.jdt.internal.core.builder;

+/*

+ * (c) Copyright IBM Corp. 2000, 2001.

+ * All Rights Reserved.

+ */

+import org.eclipse.jdt.core.*;

 

+/**

+ * The <code>IImageContext</code> represents a subset of

+ * a Java image.  ImageContext objects are used in queries, such as 

+ * getSubclasses(), which require more context than just the local

+ * definition of a class.  This is to allow the Image to contain 

+ * a very large (conceptually infinite) number of packages, without 

+ * forcing them all to be considered when performing such non-local

+ * queries.

+ * 

+ * <p>For now, an ImageContext is defined as a set of non-state-specific packages.

+ * The ImageContext itself is conceptually non-state-specific.

+ * 

+ * @see IImage#createImageContext

+ * @see IImage#getPackages

+ * @see IImage#getAllClasses

+ * @see IType#getSubclasses

+ */

 public interface IImageContext 

 {

 

@@ -16,12 +38,12 @@
 	IPackage[] getPackages();

 /**

  * Return a string of the form:

- * 		image context with packages:

- * 			this.data.package[0]

- * 			this.data.package[1]

- *					...

- * 			this.data.package[n-1]

- * 			

+ *      image context with packages:

+ *          this.data.package[0]

+ *          this.data.package[1]

+ *                  ...

+ *          this.data.package[n-1]

+ *          

  * The string returned is only for debugging purposes,

  * and the contents of the string may change in the future.

  * @return java.lang.String

diff --git a/org.eclipse.jdt.core/model/org/eclipse/jdt/internal/core/builder/IMember.java b/org.eclipse.jdt.core/model/org/eclipse/jdt/internal/core/builder/IMember.java
index 39401fe..41d9055 100644
--- a/org.eclipse.jdt.core/model/org/eclipse/jdt/internal/core/builder/IMember.java
+++ b/org.eclipse.jdt.core/model/org/eclipse/jdt/internal/core/builder/IMember.java
@@ -1,5 +1,19 @@
 package org.eclipse.jdt.internal.core.builder;

+/*

+ * (c) Copyright IBM Corp. 2000, 2001.

+ * All Rights Reserved.

+ */

+import org.eclipse.jdt.core.*;

 

+/**

+ * Member is a mixin interface that represents identifying information about

+ * a single member (a field or method), a constructor, or a nested class.

+ *

+ * @see IType

+ * @see IField

+ * @see IMethod

+ * @see IConstructor

+ */

 public interface IMember extends IHandle {

 

 

@@ -34,8 +48,8 @@
 	 * A binary member is one for which the declaring class is in 

 	 * .class file format in the workspace.

 	 *

-	 * @return	<code>true</code> if this object represents a binary member;

-	 *			<code>false</code> otherwise.

+	 * @return  <code>true</code> if this object represents a binary member;

+	 *          <code>false</code> otherwise.

 	 * @exception NotPresentException if this type is not present.

 	 */

 	boolean isBinary() throws NotPresentException;

@@ -45,8 +59,8 @@
 	 * A deprecated object is one that has a 'deprecated' tag in 

 	 * its doc comment.

 	 *

-	 * @return	<code>true</code> if this object represents a deprecated member;

-	 *			<code>false</code> otherwise.

+	 * @return  <code>true</code> if this object represents a deprecated member;

+	 *          <code>false</code> otherwise.

 	 * @exception NotPresentException if this type is not present.

 	 */

 	boolean isDeprecated() throws NotPresentException;

diff --git a/org.eclipse.jdt.core/model/org/eclipse/jdt/internal/core/builder/IMethod.java b/org.eclipse.jdt.core/model/org/eclipse/jdt/internal/core/builder/IMethod.java
index 2de8e6e..b6eeafe 100644
--- a/org.eclipse.jdt.core/model/org/eclipse/jdt/internal/core/builder/IMethod.java
+++ b/org.eclipse.jdt.core/model/org/eclipse/jdt/internal/core/builder/IMethod.java
@@ -1,5 +1,26 @@
 package org.eclipse.jdt.internal.core.builder;

+/*

+ * (c) Copyright IBM Corp. 2000, 2001.

+ * All Rights Reserved.

+ */

+import org.eclipse.jdt.core.*;

 

+/**

+ * A Method provides information about a single method

+ * on a class or interface.  The method may be a class method

+ * or an instance method (including an abstract method).

+ *

+ * Changes from java.lang and java.lang.reflect:

+ * <ul>

+ * <li>toString() changed to be a handle-only method; 

+ *	 it ignores the modifiers, return type, and exceptions.</li>

+ * </ul>

+ *

+ * @see IMember

+ * @see IType

+ * @see IType#getMethodHandle

+ * @see IType#getDeclaredMethods()

+ */

 public interface IMethod extends IMember {

 

 

@@ -58,7 +79,7 @@
 	 */

 	boolean isPresent();

 	/**

-	 * Returns a string describing this Method handle.	The string is

+	 * Returns a string describing this Method handle.  The string is

 	 * formatted as the fully qualified name of the declaring class,

 	 * followed by a period, followed by the method name, 

 	 * followed by a parenthesized, comma-separated list of the method's 

diff --git a/org.eclipse.jdt.core/model/org/eclipse/jdt/internal/core/builder/IPackage.java b/org.eclipse.jdt.core/model/org/eclipse/jdt/internal/core/builder/IPackage.java
index 6b98250..3cfc9d3 100644
--- a/org.eclipse.jdt.core/model/org/eclipse/jdt/internal/core/builder/IPackage.java
+++ b/org.eclipse.jdt.core/model/org/eclipse/jdt/internal/core/builder/IPackage.java
@@ -1,5 +1,13 @@
 package org.eclipse.jdt.internal.core.builder;

+/*

+ * (c) Copyright IBM Corp. 2000, 2001.

+ * All Rights Reserved.

+ */

+import org.eclipse.jdt.core.*;

 

+/**

+ * The <code>IPackage</code> represents a package.

+ */

 public interface IPackage extends IHandle {

 

 

@@ -58,8 +66,8 @@
 	 * string of this unnamed packaged.

 	 * This is a handle-only method.

 	 *

-	 * @return	the fully qualified name of the package

-	 *			represented by this object.

+	 * @return  the fully qualified name of the package

+	 *          represented by this object.

 	 */

 	String getName();

 	/**

@@ -88,7 +96,7 @@
 	 *

 	 * @exception NotPresentException if this package is not present.

 	 */

-	 IPackage[] getReferencedPackages() throws NotPresentException;

+	 IPackage[] getReferencedPackages() throws NotPresentException; 

 	/**

 	 * Returns an array of Package objects representing all packages

 	 * in the given image context which directly reference this package.

diff --git a/org.eclipse.jdt.core/model/org/eclipse/jdt/internal/core/builder/IProblemDetail.java b/org.eclipse.jdt.core/model/org/eclipse/jdt/internal/core/builder/IProblemDetail.java
index fd1d212..e87937f 100644
--- a/org.eclipse.jdt.core/model/org/eclipse/jdt/internal/core/builder/IProblemDetail.java
+++ b/org.eclipse.jdt.core/model/org/eclipse/jdt/internal/core/builder/IProblemDetail.java
@@ -1,5 +1,16 @@
 package org.eclipse.jdt.internal.core.builder;

+/*

+ * (c) Copyright IBM Corp. 2000, 2001.

+ * All Rights Reserved.

+ */

+import org.eclipse.jdt.core.*;

 

+/**

+ * <code>IProblemDetail</code> provides details about a problem

+ * with the image.

+ *

+ * @see IState#getReportCard(IImageContext)

+ */ 

 public interface IProblemDetail {

 

 	/** 

diff --git a/org.eclipse.jdt.core/model/org/eclipse/jdt/internal/core/builder/ISearch.java b/org.eclipse.jdt.core/model/org/eclipse/jdt/internal/core/builder/ISearch.java
index 353f64c..68da8e8 100644
--- a/org.eclipse.jdt.core/model/org/eclipse/jdt/internal/core/builder/ISearch.java
+++ b/org.eclipse.jdt.core/model/org/eclipse/jdt/internal/core/builder/ISearch.java
@@ -1,5 +1,31 @@
 package org.eclipse.jdt.internal.core.builder;

+/*

+ * (c) Copyright IBM Corp. 2000, 2001.

+ * All Rights Reserved.

+ */

+import org.eclipse.jdt.core.*;

 

+/**

+ * An <code>ISearch</code> represents an image search and its results.

+ * <code>ISearch</code>es are created by <code>ISearchFactory</code> objects. 

+ * They can be queried for results and report progress as the search runs. A 

+ * search can be stopped before it finishes and can be run again. 

+ * <code>ISearch</code> is implemented in a thread safe manner.

+ * <p>

+ * The search is not precise. Instead it provides a best-effort search. 

+ * No occurrences of what is being searched for will be missed, and no duplicate 

+ * results will be returned.  However, the search may occasionally return additional 

+ * matches which don't actually relate to what was being searched for.

+ * This will only be an issue when searching for source references. An 

+ * example of this would be if a search for references to a field called <code>io</code> was

+ * performed. Any methods which contained a reference to <code>java.io.</code><i>something</i> 

+ * would be returned as matches, because in the source, it is unclear whether 

+ * <code>io</code> is a field in some class called <code>java</code> or not.

+ * <p>

+ * ISearchFactory shows examples of using ISearch.

+ *

+ * @see ISearchFactory

+ */

 public interface ISearch extends Runnable

 {

 /**

@@ -7,11 +33,11 @@
  * from this search. Progress events occur as a search examines the types

  * and packages in the search scope. Result events occur as a search finds

  * matches to the search criteria.

- * @param		listener the search listener

- * @see			ISearchListener 

- * @see			SearchProgressEvent

- * @see			SearchResultEvent

- * @see			ISearch#removeSearchListener

+ * @param       listener the search listener

+ * @see         ISearchListener 

+ * @see         SearchProgressEvent

+ * @see         SearchResultEvent

+ * @see         ISearch#removeSearchListener

  */

 void addSearchListener(ISearchListener listener);

 /** 

@@ -26,9 +52,9 @@
  * <ul>

  * <li> neither is equal to null AND

  * <li> both searches have the same kind (i.e.. search for type), name 

- * 		(i.e., type named 'Foo') return type, number and type of parameters 

- * 		(even if not used -- as in the case of search for type), and search 

- * 		context (i.e., ISearchFactory.SEARCH_FOR_DECLS)

+ *      (i.e., type named 'Foo') return type, number and type of parameters 

+ *      (even if not used -- as in the case of search for type), and search 

+ *      context (i.e., ISearchFactory.SEARCH_FOR_DECLS)

  * <li> their scopes are equal (contain the same IPackage and IType handles, in any order)

  * </ul>

  */

@@ -57,11 +83,11 @@
 /**

  * Removes the specified action listener so that it no longer

  * receives progress and result events from the search.

- * @param		listener the search listener

- * @see			ISearchListener 

- * @see			SearchProgressEvent

- * @see			SearchResultEvent

- * @see			ISearch#addSearchListener

+ * @param       listener the search listener

+ * @see         ISearchListener 

+ * @see         SearchProgressEvent

+ * @see         SearchResultEvent

+ * @see         ISearch#addSearchListener

  */

 void removeSearchListener(ISearchListener listener);

 /**

diff --git a/org.eclipse.jdt.core/model/org/eclipse/jdt/internal/core/builder/ISearchFactory.java b/org.eclipse.jdt.core/model/org/eclipse/jdt/internal/core/builder/ISearchFactory.java
index 217f472..3df5910 100644
--- a/org.eclipse.jdt.core/model/org/eclipse/jdt/internal/core/builder/ISearchFactory.java
+++ b/org.eclipse.jdt.core/model/org/eclipse/jdt/internal/core/builder/ISearchFactory.java
@@ -1,7 +1,62 @@
 package org.eclipse.jdt.internal.core.builder;

+/*

+ * (c) Copyright IBM Corp. 2000, 2001.

+ * All Rights Reserved.

+ */

+import org.eclipse.jdt.core.*;

 

+/**

+ * <code>ISearchFactory</code> creates <code>ISearch</code> objects which can 

+ * search some subset of the image.  These <code>ISearch</code> objects can 

+ * be configured with a name, a scope, and a search context.  

+ * <p>

+ * <ul>

+ * <li><b>Name:</b>

+ * The name of the search specifies what the search is actually looking for.  

+ * It can be the name of a type, a field, a package, a method, or a constructor. 

+ * Searches for methods and constructors may also supply parameter and return 

+ * type information. Wildcarding is supported.

+ * <li><b>Scope:</b>

+ * The scope of the search defines the subset of the image that is to be searched.  

+ * Including a type in the scope includes all inner types, fields, methods and 

+ * constructors of that type in the search.  Inner types also have all of their 

+ * inner types, fields, methods and constructors included in the scope of the 

+ * search, recursively. Including a package in the scope includes all types contained

+ * in the package in the scope and, therefore, all inner types, fields, methods and 

+ * constructors. The items in the scope must belong to the same state as the

+ * image from which this search engine was obtained. Results of the search will also 

+ * be in the same state as the image. If the image is non-state-specific, the

+ * items in the scope must be non-state-specific as well.  Furthermore, results

+ * found by the search will also be non-state-specific.

+ * <li><b>Context:</b>

+ * The search context is defined using flags which specify whether the search is 

+ * looking for declarations or references. Furthermore, when looking for 

+ * references, the search can look either in the principle structure or the 

+ * source of each type in the search scope. The flags can be 'OR'ed 

+ * together to allow searches for declarations and references.

+ * </ul>

+ * <p>

+ * <b>Example:</b><br>

+ * Search for all references to a type named "String" in the scope of the 

+ * package "hanoiExample".  Wait for the results, and then print them out.

+ * <pre><code>

+ * IImage image = dc.getImage();

+ * ISearchFactory sf = image.newSearchFactory();

+ * IHandle[] scope = {image.getPackageHandle("hanoiExample", false)};

+ * ISearch search = 

+ * 	sf.searchForType(

+ *		"String", 

+ *		scope, 

+ *		ISearchFactory.SEARCH_FOR_PRINCIPLE_STRUCTURE_REFS | 

+ *		ISearchFactory.SEARCH_FOR_SOURCE_REFS);

+ * search.run(); // perform the search

+ * for (int i = 0; i < search.getItemCount(); i++)

+ *	System.out.println(search.getItem(i));

+ * </code></pre>

+ * @see ISearch

+ */

 public interface ISearchFactory

-{	

+{   

 	/* Flags for search context */

 

 	/** 

@@ -35,26 +90,26 @@
  * name.  

  * <p>

  * <b>Example:</b> Searching for declarations of fields named <code>width</code> 

- * 		in package <code>java.awt</code>.

+ *      in package <code>java.awt</code>.

  * <pre><code>

  * IImage image = dc.getImage();

  * ISearchFactory sf = image.newSearchFactory();

  * IHandle[] scope = {image.getPackageHandle("java.awt", false)};

  * ISearch search = 

- * 	sf.searchForField(

- *		"width", 

- *		scope, 

- *		ISearchFactory.SEARCH_FOR_DECLS);

+ *  sf.searchForField(

+ *      "width", 

+ *      scope, 

+ *      ISearchFactory.SEARCH_FOR_DECLS);

  * search.run();

  * </code></pre> 

  * @param fieldName the name of the field to search for, possibly containing 

- *		wildcards ("*")

+ *      wildcards ("*")

  * @param scope the packages and types to search in

  * @param context the context flags.  SEARCH_FOR_DECLS, and 

- *		SEARCH_FOR_SOURCE_REFS are valid flags for field searches.

- *		SEARCH_FOR_PRINCIPLE_STRUCTURE_REFS will not have any effect on

- * 		the search because there are no field references in the principle

- * 		structure.

+ *      SEARCH_FOR_SOURCE_REFS are valid flags for field searches.

+ *      SEARCH_FOR_PRINCIPLE_STRUCTURE_REFS will not have any effect on

+ *      the search because there are no field references in the principle

+ *      structure.

  *

  *

  * @see ISearch

@@ -72,34 +127,34 @@
  * <b>Example:</b> Search for declarations of methods named <code>toString</code>

  * whose second argument is <code>int</code>. The search will be conducted 

  * in the scope of the <code>hanoiExample</code> package.

- *	<code><pre>

+ *  <code><pre>

  * IImage image = dc.getImage();

  * ISearchFactory factory = image.newSearchFactory();

  * IHandle[] scope = {image.getPackageHandle("hanoiExample")};

  * ISearch search = 

- * 	factory.searchForMethod(

- *		"toString", 

- *		new String[] {"*", "int"}, 

- *		"*",

- *		scope, 

- *		SEARCH_FOR_DECLS);

+ *  factory.searchForMethod(

+ *      "toString", 

+ *      new String[] {"*", "int"}, 

+ *      "*",

+ *      scope, 

+ *      SEARCH_FOR_DECLS);

  * search.run();

- *	</code></pre>

+ *  </code></pre>

  * <br>

  * @param methodName the method name to search for, possibly containing wildcards ("*")

  * @param paramTypes the names of parameter types the method being searched for must 

- *		have, possibly containing wildcards. An empty array	indicates a method with 

- * 		zero parameters.

+ *      have, possibly containing wildcards. An empty array indicates a method with 

+ *      zero parameters.

  * @param returnType the name of the return type the method being 

- * 		searched for must have, possibly containing wildcards. A return type 

- * 		of "*" effectively ignores the return type.

+ *      searched for must have, possibly containing wildcards. A return type 

+ *      of "*" effectively ignores the return type.

  * @param scope the packages and types to search in

  * @param context the context flags. SEARCH_FOR_DECLS make sense as a flag for 

- * 		this method search. Using SEARCH_FOR_PRINCIPLE_STRUCTURE_REFS will have no effect since methods

- * 		cannot be referenced in the principle structure. When searching the source,

- * 		SEARCH_FOR_SOURCE_REFS will ignore the return type, and only use the 

- * 		number of parameters, not the parameter types.  This is because at the source 

- * 		level only the method name and number of parameters are 

+ *      this method search. Using SEARCH_FOR_PRINCIPLE_STRUCTURE_REFS will have no effect since methods

+ *      cannot be referenced in the principle structure. When searching the source,

+ *      SEARCH_FOR_SOURCE_REFS will ignore the return type, and only use the 

+ *      number of parameters, not the parameter types.  This is because at the source 

+ *      level only the method name and number of parameters are 

  * known.

  * @see ISearch

  */

@@ -120,50 +175,50 @@
  * which have 2 arguments. The search will be conducted in the scope of the <code>hanoiExample</code>

  * package. Note that the principle structure is not searched for references 

  * since it never contains information about references to methods.

- *	<code><pre>

+ *  <code><pre>

  * IImage image = dc.getImage();

  * ISearchFactory factory = image.newSearchFactory();

  * IHandle[] scope = {image.getPackageHandle("hanoiExample")};

  * ISearch search = 

- * 	factory.searchForMethod(

- * 		"add", 

- *		2, 

- *		"*",

- *		scope, 

- *		SEARCH_FOR_DECLS | 

- *		SEARCH_FOR_SOURCE_REFS);

+ *  factory.searchForMethod(

+ *      "add", 

+ *      2, 

+ *      "*",

+ *      scope, 

+ *      SEARCH_FOR_DECLS | 

+ *      SEARCH_FOR_SOURCE_REFS);

  * search.run();

- *	</code></pre>

+ *  </code></pre>

  * <br>

  * <b>Example 2:</b> Search for references to a constructor for a class named 

  * <code>Disk</code> which takes any number of arguments. The search will be conducted in

  * the scope of the <code>hanoiExample</code> package. Note that the principle structure is not searched for references 

  * since it never contains information about references to methods.

- *	<code><pre>

+ *  <code><pre>

  * IImage image = dc.getImage();

  * ISearchFactory factory = image.newSearchFactory();

  * IHandle[] scope = {image.getPackageHandle("hanoiExample")};

  * ISearch search = 

- * 	factory.searchForMethod(

- * 		"Disk",

- *		-1, 

- *		"",	// return type ignored for constructors

- *		scope, 

- *		SEARCH_FOR_SOURCE_REFS);

+ *  factory.searchForMethod(

+ *      "Disk",

+ *      -1, 

+ *      "", // return type ignored for constructors

+ *      scope, 

+ *      SEARCH_FOR_SOURCE_REFS);

  * search.run();

- *	</code></pre> 

+ *  </code></pre> 

  *

  * @param methodName   the method name to search for, possibly containing wildcards ("*")

  * @param parameterCount the number of parameters the method being 

- *			searched for has. Use -1 if number of parameters doesn't matter

+ *          searched for has. Use -1 if number of parameters doesn't matter

  * @param returnType the name of the return type the method being 

- * 		searched for must have, possibly containing wildcards. A return type of

- * 		"*" effectively ignores return type.

+ *      searched for must have, possibly containing wildcards. A return type of

+ *      "*" effectively ignores return type.

  * @param scope the packages and types to search in

  * @param context the context flags. SEARCH_FOR_DECLS and 

- * 		SEARCH_FOR_SOURCE_REFS make sense as flags for this method search.

- * 		SEARCH_FOR_PRINCIPLE_STRUCTURE_REFS will not have any effect since 

- * 		principle structures cannot reference methods.

+ *      SEARCH_FOR_SOURCE_REFS make sense as flags for this method search.

+ *      SEARCH_FOR_PRINCIPLE_STRUCTURE_REFS will not have any effect since 

+ *      principle structures cannot reference methods.

  *

  * @see ISearch

  */

@@ -186,21 +241,21 @@
  * ISearchFactory sf = image.newSearchFactory();

  * IHandle[] scope = {image.getPackageHandle("hanoiExample", false)};

  * ISearch search = 

- * 	sf.searchForPackage(

- *		"java.aw*", 

- *		scope, 

- *		ISearchFactory.SEARCH_FOR_PRINCIPLE_STRUCTURE_REFS | 

- * 		ISearchFactory.SEARCH_FOR_SOURCE_REFS); 

+ *  sf.searchForPackage(

+ *      "java.aw*", 

+ *      scope, 

+ *      ISearchFactory.SEARCH_FOR_PRINCIPLE_STRUCTURE_REFS | 

+ *      ISearchFactory.SEARCH_FOR_SOURCE_REFS); 

  * search.run();

  * </code></pre>

  *

  * @param packageName the name of the package to search for, possibly

- * 		containing wildcards ("*")

+ *      containing wildcards ("*")

  * @param scope the packages and types to search in

  * @param context the context flags. SEARCH_FOR_PRINCIPLE_STRUCTURE_REFS,

- * 		and SEARCH_FOR_SOURCE_REFS make sense as flags for package 

- * 		searches. Using SEARCH_FOR_DECLS will not have any effect because

- * 		packages are not declared anywhere.

+ *      and SEARCH_FOR_SOURCE_REFS make sense as flags for package 

+ *      searches. Using SEARCH_FOR_DECLS will not have any effect because

+ *      packages are not declared anywhere.

  *

  * @see ISearch

  */

@@ -220,17 +275,17 @@
  * ISearchFactory sf = image.newSearchFactory();

  * IHandle[] scope = {image.getPackageHandle("hanoiExample", false)};

  * ISearch search = 

- * 	sf.searchForType(

- *		"Post", 

- *		scope, 

- *		ISearchFactory.SEARCH_FOR_DECLS); 

+ *  sf.searchForType(

+ *      "Post", 

+ *      scope, 

+ *      ISearchFactory.SEARCH_FOR_DECLS); 

  * search.run();

  * </code></pre>

  * @param typeName   the simple name of the type to search for, possibly

- * 		containing wildcards ("*")

+ *      containing wildcards ("*")

  * @param scope the packages and types to search in

  * @param context   the context flags.  SEARCH_FOR_DECLS, SEARCH_FOR_PRINCIPLE_STRUCTURE_REFS,

- * 		and SEARCH_FOR_SOURCE_REFS all make sense as flags for type searches.

+ *      and SEARCH_FOR_SOURCE_REFS all make sense as flags for type searches.

  *

  * @see ISearch

  */

diff --git a/org.eclipse.jdt.core/model/org/eclipse/jdt/internal/core/builder/ISearchListener.java b/org.eclipse.jdt.core/model/org/eclipse/jdt/internal/core/builder/ISearchListener.java
index d4031d2..c37af37 100644
--- a/org.eclipse.jdt.core/model/org/eclipse/jdt/internal/core/builder/ISearchListener.java
+++ b/org.eclipse.jdt.core/model/org/eclipse/jdt/internal/core/builder/ISearchListener.java
@@ -1,5 +1,16 @@
 package org.eclipse.jdt.internal.core.builder;

+/*

+ * (c) Copyright IBM Corp. 2000, 2001.

+ * All Rights Reserved.

+ */

+import org.eclipse.jdt.core.*;

 

+/**

+ * The event listener interface for receiving progress and result updates 

+ * from an <code>ISearch</code>.

+ * 

+ * @see ISearch

+ */

 public interface ISearchListener extends java.util.EventListener {

 /**

  * Reports that the search has been cancelled and is no longer running.

diff --git a/org.eclipse.jdt.core/model/org/eclipse/jdt/internal/core/builder/IType.java b/org.eclipse.jdt.core/model/org/eclipse/jdt/internal/core/builder/IType.java
index 2603694..7cbe537 100644
--- a/org.eclipse.jdt.core/model/org/eclipse/jdt/internal/core/builder/IType.java
+++ b/org.eclipse.jdt.core/model/org/eclipse/jdt/internal/core/builder/IType.java
@@ -1,10 +1,64 @@
 package org.eclipse.jdt.internal.core.builder;

+/*

+ * (c) Copyright IBM Corp. 2000, 2001.

+ * All Rights Reserved.

+ */

+import org.eclipse.jdt.core.*;

 

+/**

+ * The <code>Type</code> interface represents classes, interfaces, array

+ * types, the primitive Java types (boolean, byte, char, short, int, 

+ * long, float, and double) and the keyword void.

+ * 

+ * <p>This interface is based on the <code>java.lang.Class</code> class in JDK 1.1.

+ * 

+ * <p>The following terminology is used for inner classes, and applies also 

+ * to interfaces.

+ * This terminology is consistent with the Java Inner Classes Specification.

+ * 

+ * <p>A 'package member' class is declared as a member of a package.

+ * That is, a 'normal' class, as defined in the <em>Java Language Specification</em>.

+ * 

+ * <p>An 'inner class' is one which is declared in another class, either as a member

+ * of that class or within a method or other block within that class.

+ * The class in which an inner class is declared is referred to as its 'outer class'.

+ * An inner class must be instantiated in the context of an instance of its outer class.

+ * The instance of the outer class is referred to as the 'outer instance'.

+ * 

+ * <p>A 'top-level class' is declared either as a package member or as a 

+ * static member of another top-level class.  A top-level class can be referred to 

+ * by a fully qualified name (given the right access), and is instanciated 

+ * directly; it is not instanciated in the context of an outer instance.  

+ * A class can be either a top-level class or an inner class, but cannot be both.

+ * 

+ * <p>A 'nested class' is one which is not a package member: either an 

+ * inner class, or a top-level class declared as a member of a class.

+ * 

+ * <p>A 'local class' is an inner class declared within a method or other block 

+ * within its outer class.  Since a local class is a kind of inner class,

+ * it cannot be a top-level class.

+ * 

+ * <p>An 'anonymous class' is a local inner class with no declared name.

+ *

+ * Changes from java.lang and java.lang.reflect:

+ * <ul>

+ * <li>renamed to Type from Class

+ * <li>toString() clarified for array types</li>

+ * <li>major additions (see below)</li>

+ * <li>removed isAssignableFrom(Type)</li>

+ * <li>removed getFields()</li>

+ * <li>removed getMethods()</li>

+ * <li>removed getConstructors()</li>

+ * <li>removed getField(String), getMethod(String, Type[]), getConstructor(Type[])</li>

+ * <li>removed getDeclaredField(String), getDeclaredMethod(String, Type[]), getDeclaredConstructor(Type[])</li>

+ * <li>added handle methods getFieldHandle(String) etc.</li>

+ * </ul>

+ */

 public interface IType extends IMember {

 

 

 	/**

-	 * Compares this Type handle against the specified object.	Returns

+	 * Compares this Type handle against the specified object.  Returns

 	 * true if the objects are the same.  Two Types handles are the same if

 	 * they both represent a class or interface and have the same fully qualified name,

 	 * or if they both represent the same primitive type,

@@ -43,7 +97,7 @@
 	 * This is a handle-only method; the specified constructor may

 	 * or may not actually be present in the class or interface.

 	 *

-	 * @see 	IConstructor

+	 * @see     IConstructor

 	 */

 	IConstructor getConstructorHandle(IType[] parameterTypes);

 	/**

@@ -155,8 +209,8 @@
 	 * If this does not represent a class or interface, it returns 

 	 * a String of length 0.

 	 *

-	 * @return	the declared name of the class or interface

-	 *			represented by this object.

+	 * @return  the declared name of the class or interface

+	 *          represented by this object.

 	 * @exception NotPresentException if this class or interface is not present.

 	 */

 	String getDeclaredName() throws NotPresentException;

@@ -201,7 +255,7 @@
 	 * Returns an array of length 0 if this object does not represent

 	 * an interface.

 	 * The resulting Types are in no particular order.

-  	 * See <em>The Java Language Specification</em> section 8.1.4

+	 * See <em>The Java Language Specification</em> section 8.1.4

 	 * for more details.

 	 * 

 	 * @param imageContext the ImageContext in which to restrict the search.

@@ -228,10 +282,10 @@
 	 * object represents neither a class nor an interface, this method 

 	 * returns an array of length 0. 

 	 *

-  	 * See <em>The Java Language Specification</em> sections 8.1.4 and 9.1.3

+	 * See <em>The Java Language Specification</em> sections 8.1.4 and 9.1.3

 	 * for more details.

 	 *

-	 * @return	an array of interfaces implemented by this class.

+	 * @return  an array of interfaces implemented by this class.

 	 * @exception NotPresentException if this class or interface is not present.

 	 */

 	IType[] getInterfaces() throws NotPresentException;

@@ -246,7 +300,7 @@
 	 * This is a handle-only method; the specified method may

 	 * or may not actually be present in the class or interface.

 	 *

-	 * @see 	IMethod

+	 * @see     IMethod

 	 */

 	IMethod getMethodHandle(String name, IType[] parameterTypes);

 	/**

@@ -281,7 +335,7 @@
 	 * For primitive types, the name is the keyword for the primitive type.

 	 * This is a handle-only method.

 	 *

-	 * @return	the fully qualified name of the type represented by this object.

+	 * @return  the fully qualified name of the type represented by this object.

 	 */

 	String getName();

 	/**

@@ -299,7 +353,7 @@
 	 * For primitive types, this is the keyword for the primitive type.

 	 * This is a handle-only method.

 	 *

-	 * @return	the simple name of the type represented by this object.

+	 * @return  the simple name of the type represented by this object.

 	 */

 	String getSimpleName();

 	/**

@@ -319,7 +373,7 @@
 	 * Returns an array of length 0 if this object does not represent

 	 * a class.

 	 * The resulting Types are in no particular order.

-  	 * See <em>The Java Language Specification</em> sections 8.1.3 and 20.3.4

+	 * See <em>The Java Language Specification</em> sections 8.1.3 and 20.3.4

 	 * for more details.

 	 * 

 	 * @param imageContext the ImageContext in which to restrict the search.

@@ -333,7 +387,7 @@
 	 * Returns an array of length 0 if this object does not represent

 	 * an interface.

 	 * The resulting Types are in no particular order.

-  	 * See <em>The Java Language Specification</em> section 9.1.3

+	 * See <em>The Java Language Specification</em> section 9.1.3

 	 * for more details.

 	 * 

 	 * @param imageContext the ImageContext in which to restrict the search.

@@ -351,10 +405,10 @@
 	 * If this object represents an array type, then the Type that represents

 	 * class <code>java.lang.Object</code> is returned.

 	 * <p>

-  	 * See <em>The Java Language Specification</em> sections 8.1.3 and 20.3.4

+	 * See <em>The Java Language Specification</em> sections 8.1.3 and 20.3.4

 	 * for more details.

 	 *

-	 * @return	the superclass of the class represented by this object.

+	 * @return  the superclass of the class represented by this object.

 	 * @exception NotPresentException if this type is not present.

 	 */

 	IType getSuperclass() throws NotPresentException;

@@ -386,8 +440,8 @@
 	 * A binary type is one which is in .class file format in the workspace.

 	 * Returns <code>false</code> if this represents a primitive type or an array type.

 	 *

-	 * @return	<code>true</code> if this object represents a binary class or interface;

-	 *			<code>false</code> otherwise.

+	 * @return  <code>true</code> if this object represents a binary class or interface;

+	 *          <code>false</code> otherwise.

 	 * @exception NotPresentException if this type is not present.

 	 */

 	boolean isBinary() throws NotPresentException;

@@ -396,8 +450,8 @@
 	 * This returns false if this object represents an interface,

 	 * an array type, or a primitive type.

 	 *

-	 * @return	<code>true</code> if this object represents a class;

-	 *			<code>false</code> otherwise.

+	 * @return  <code>true</code> if this object represents a class;

+	 *          <code>false</code> otherwise.

 	 * @exception NotPresentException if this type is not present.

 	 *

 	 * @see #isArray

@@ -412,8 +466,8 @@
 	 * its doc comment.

 	 * Returns <code>false</code> if this represents a primitive type or an array type.

 	 *

-	 * @return	<code>true</code> if this object represents a deprecated member;

-	 *			<code>false</code> otherwise.

+	 * @return  <code>true</code> if this object represents a deprecated member;

+	 *          <code>false</code> otherwise.

 	 * @exception NotPresentException if this type is not present.

 	 */

 	boolean isDeprecated() throws NotPresentException;

@@ -421,8 +475,8 @@
 	 * Returns true if this object represents an inner class or interface,

 	 * false otherwise.

 	 * An inner class is one which can only be created in the context of

-	 * an instance of its outer class.	This does not include package member

-	 * classes or other top-level classes.	Such a class cannot be static.

+	 * an instance of its outer class.  This does not include package member

+	 * classes or other top-level classes.  Such a class cannot be static.

 	 * <p>

 	 * See the <em>Java Inner Classes Specification</em> for more details.

 	 *

@@ -436,8 +490,8 @@
 	 * This returns false if this object represents a class,

 	 * an array type, or a primitive type.

 	 *

-	 * @return	<code>true</code> if this object represents an interface;

-	 *			<code>false</code> otherwise.

+	 * @return  <code>true</code> if this object represents an interface;

+	 *          <code>false</code> otherwise.

 	 * @exception NotPresentException if this type is not present.

 	 *

 	 * @see #isArray

@@ -554,7 +608,7 @@
 	 * If this represents an array type, the string representation is

 	 * that of its component type followed by <code>"[]"</code>.

 	 *

-	 * @return	a string representation of this class object. 

+	 * @return  a string representation of this class object. 

 	 * @see IHandle#toString

 	 */

 	String toString();

diff --git a/org.eclipse.jdt.core/model/org/eclipse/jdt/internal/core/builder/InvalidKeyException.java b/org.eclipse.jdt.core/model/org/eclipse/jdt/internal/core/builder/InvalidKeyException.java
index e633ea9..4028f02 100644
--- a/org.eclipse.jdt.core/model/org/eclipse/jdt/internal/core/builder/InvalidKeyException.java
+++ b/org.eclipse.jdt.core/model/org/eclipse/jdt/internal/core/builder/InvalidKeyException.java
@@ -1,5 +1,23 @@
 package org.eclipse.jdt.internal.core.builder;

+/*

+ * (c) Copyright IBM Corp. 2000, 2001.

+ * All Rights Reserved.

+ */

+import org.eclipse.jdt.core.*;

 

+/**

+ * Thrown when a DeltaKey is invalid.

+ *

+ * This exception is indicative of design flaws in the code.

+ * The offending code has constructed a key which could not possibly

+ * appear in a Delta.

+ * This is an unchecked exception (a subclass of RuntimeException) 

+ * so that client code does not have to worry about catching this exception, 

+ * which should never be thrown (or caught) in properly written code.

+ *

+ * @see DeltaKey

+ * @see IDelta#follow

+ */

 public class InvalidKeyException extends RuntimeException {

 	/**

 	 * Constructs an <code>InvalidKeyException</code> without a detail message.

@@ -10,7 +28,7 @@
 	/**

 	 * Constructs an <code>InvalidKeyException</code> with a detail message. 

 	 *

-	 * @param	   s   the detail message.

+	 * @param      s   the detail message.

 	 */

 	public InvalidKeyException(String s) {

 		super(s);

diff --git a/org.eclipse.jdt.core/model/org/eclipse/jdt/internal/core/builder/NotPresentException.java b/org.eclipse.jdt.core/model/org/eclipse/jdt/internal/core/builder/NotPresentException.java
index 270104a..8547df4 100644
--- a/org.eclipse.jdt.core/model/org/eclipse/jdt/internal/core/builder/NotPresentException.java
+++ b/org.eclipse.jdt.core/model/org/eclipse/jdt/internal/core/builder/NotPresentException.java
@@ -1,5 +1,26 @@
 package org.eclipse.jdt.internal.core.builder;

+/*

+ * (c) Copyright IBM Corp. 2000, 2001.

+ * All Rights Reserved.

+ */

+import org.eclipse.jdt.core.*;

 

+/**

+ * Thrown when a method is invoked on a handle whose object

+ * is not present.  See <code>IHandle</code> for more details.

+ * 

+ * This is an unchecked exception (a subclass of RuntimeException)

+ * because most of the time, code can ignore it if it is known to be

+ * navigating a state (see <code>IHandle</code> for more details).  

+ * In some situations however, such as creating handles, the user 

+ * would have to either

+ * <ol>

+ * <li>catch the exception, or</li>

+ * <li>test with <code>isPresent()</code> before performing the operation.</li>

+ * </ol>

+ *

+ * @see IHandle

+ */

 public class NotPresentException extends RuntimeException

 {

 

@@ -13,7 +34,7 @@
 	/**

 	 * Constructs a <code>NotPresentException</code> with a detail message. 

 	 *

-	 * @param	   s   the detail message.

+	 * @param      s   the detail message.

 	 */

 	public NotPresentException(String s) {

 		super(s);

diff --git a/org.eclipse.jdt.core/model/org/eclipse/jdt/internal/core/builder/SearchProgressEvent.java b/org.eclipse.jdt.core/model/org/eclipse/jdt/internal/core/builder/SearchProgressEvent.java
index 7e36a1a..1cad2fb 100644
--- a/org.eclipse.jdt.core/model/org/eclipse/jdt/internal/core/builder/SearchProgressEvent.java
+++ b/org.eclipse.jdt.core/model/org/eclipse/jdt/internal/core/builder/SearchProgressEvent.java
@@ -1,5 +1,17 @@
 package org.eclipse.jdt.internal.core.builder;

+/*

+ * (c) Copyright IBM Corp. 2000, 2001.

+ * All Rights Reserved.

+ */

+import org.eclipse.jdt.core.*;

 

+/**

+ * The listener event which is sent to all <code>ISearchListener</code>s

+ * when an <code>ISearch</code> has progress to report.

+ *

+ * @see ISearch

+ * @see ISearchListener

+ */

 public class SearchProgressEvent extends java.util.EventObject {

 	String name;

 /**

diff --git a/org.eclipse.jdt.core/model/org/eclipse/jdt/internal/core/builder/SearchResultEvent.java b/org.eclipse.jdt.core/model/org/eclipse/jdt/internal/core/builder/SearchResultEvent.java
index 1e36d7c..37c2e86 100644
--- a/org.eclipse.jdt.core/model/org/eclipse/jdt/internal/core/builder/SearchResultEvent.java
+++ b/org.eclipse.jdt.core/model/org/eclipse/jdt/internal/core/builder/SearchResultEvent.java
@@ -1,5 +1,17 @@
 package org.eclipse.jdt.internal.core.builder;

+/*

+ * (c) Copyright IBM Corp. 2000, 2001.

+ * All Rights Reserved.

+ */

+import org.eclipse.jdt.core.*;

 

+/**

+ * The listener event which is sent to all <code>ISearchListener</code>s

+ * when an <code>ISearch</code> has a result to report.

+ *

+ * @see ISearch

+ * @see ISearchListener

+ */

 public class SearchResultEvent extends java.util.EventObject {

 	IHandle result;

 	int[] fMatchingPositions;

diff --git a/org.eclipse.jdt.core/model/org/eclipse/jdt/internal/core/builder/StateSpecificException.java b/org.eclipse.jdt.core/model/org/eclipse/jdt/internal/core/builder/StateSpecificException.java
index c8d38bf..972165a 100644
--- a/org.eclipse.jdt.core/model/org/eclipse/jdt/internal/core/builder/StateSpecificException.java
+++ b/org.eclipse.jdt.core/model/org/eclipse/jdt/internal/core/builder/StateSpecificException.java
@@ -1,5 +1,25 @@
 package org.eclipse.jdt.internal.core.builder;

+/*

+ * (c) Copyright IBM Corp. 2000, 2001.

+ * All Rights Reserved.

+ */

+import org.eclipse.jdt.core.*;

 

+/**

+ * Thrown when an operation is performed on a state-specific handle

+ * when it should be non-state-specific, or vice-versa.

+ * See <code>IHandle</code> for more details.

+ *

+ * This exception is indicative of design flaws in the code.

+ * The offending code is confused as to whether it is on the state-specific

+ * vs. non-state-specific side of the fence.

+ * This is an unchecked exception (a subclass of RuntimeException) 

+ * so that client code does not have to worry about catching this exception, 

+ * which should never be thrown (or caught) in properly written code.

+ *

+ * @see IHandle

+ * @see IState

+ */

 public class StateSpecificException extends RuntimeException

 {

 

@@ -13,7 +33,7 @@
 	/**

 	 * Constructs a <code>StateSpecificException</code> with a detail message. 

 	 *

-	 * @param	   s   the detail message.

+	 * @param      s   the detail message.

 	 */

 	public StateSpecificException(String s) {

 		super(s);

diff --git a/org.eclipse.jdt.core/model/org/eclipse/jdt/internal/core/builder/impl/FieldCollaboratorIndictment.java b/org.eclipse.jdt.core/model/org/eclipse/jdt/internal/core/builder/impl/FieldCollaboratorIndictment.java
index f7556bb..9f30f02 100644
--- a/org.eclipse.jdt.core/model/org/eclipse/jdt/internal/core/builder/impl/FieldCollaboratorIndictment.java
+++ b/org.eclipse.jdt.core/model/org/eclipse/jdt/internal/core/builder/impl/FieldCollaboratorIndictment.java
@@ -1,4 +1,9 @@
 package org.eclipse.jdt.internal.core.builder.impl;

+/*

+ * (c) Copyright IBM Corp. 2000, 2001.

+ * All Rights Reserved.

+ */

+import org.eclipse.jdt.core.*;

 

 class FieldCollaboratorIndictment extends Indictment {

 /**

diff --git a/org.eclipse.jdt.core/model/org/eclipse/jdt/internal/core/builder/impl/ImageBuilderInternalException.java b/org.eclipse.jdt.core/model/org/eclipse/jdt/internal/core/builder/impl/ImageBuilderInternalException.java
index e72f0bd..3c67b9e 100644
--- a/org.eclipse.jdt.core/model/org/eclipse/jdt/internal/core/builder/impl/ImageBuilderInternalException.java
+++ b/org.eclipse.jdt.core/model/org/eclipse/jdt/internal/core/builder/impl/ImageBuilderInternalException.java
@@ -1,5 +1,14 @@
 package org.eclipse.jdt.internal.core.builder.impl;

+/*

+ * (c) Copyright IBM Corp. 2000, 2001.

+ * All Rights Reserved.

+ */

+import org.eclipse.jdt.core.*;

 

+/**

+ * Exception thrown when there is an internal error in the image builder.

+ * May wrapper another exception.

+ */

 public class ImageBuilderInternalException extends RuntimeException {

 	protected Throwable fThrowable;

 /**

diff --git a/org.eclipse.jdt.core/model/org/eclipse/jdt/internal/core/builder/impl/NewBuilderType.java b/org.eclipse.jdt.core/model/org/eclipse/jdt/internal/core/builder/impl/NewBuilderType.java
index 115de37..1b40365 100644
--- a/org.eclipse.jdt.core/model/org/eclipse/jdt/internal/core/builder/impl/NewBuilderType.java
+++ b/org.eclipse.jdt.core/model/org/eclipse/jdt/internal/core/builder/impl/NewBuilderType.java
@@ -1,5 +1,13 @@
 package org.eclipse.jdt.internal.core.builder.impl;

+/*

+ * (c) Copyright IBM Corp. 2000, 2001.

+ * All Rights Reserved.

+ */

+import org.eclipse.jdt.core.*;

 

+/**

+ * A type that only exists in the new state (an addition)

+ */

 public class NewBuilderType extends BuilderType {

 	/**

 	 * The tsEntry in the new state

diff --git a/org.eclipse.jdt.core/model/org/eclipse/jdt/internal/core/builder/impl/OrderedSet.java b/org.eclipse.jdt.core/model/org/eclipse/jdt/internal/core/builder/impl/OrderedSet.java
index 84f5dc1..a37998d 100644
--- a/org.eclipse.jdt.core/model/org/eclipse/jdt/internal/core/builder/impl/OrderedSet.java
+++ b/org.eclipse.jdt.core/model/org/eclipse/jdt/internal/core/builder/impl/OrderedSet.java
@@ -1,4 +1,9 @@
 package org.eclipse.jdt.internal.core.builder.impl;

+/*

+ * (c) Copyright IBM Corp. 2000, 2001.

+ * All Rights Reserved.

+ */

+import org.eclipse.jdt.core.*;

 

 public class OrderedSet {

 	protected int elementCount;

@@ -21,7 +26,7 @@
  * Constructs a new OrderedSet using the specified capacity

  * and the default load factor.

  *

- * @param		capacity	the initial capacity

+ * @param       capacity    the initial capacity

  */

 public OrderedSet (int capacity) {

 	this(capacity, 0.75f);

@@ -30,7 +35,7 @@
  * Constructs a new OrderedSet using the specified capacity

  * and load factor.

  *

- * @param		loadFactor	the initial load factor

+ * @param       loadFactor  the initial load factor

  */

 public OrderedSet (int capacity, float loadFactor) {

 	if (capacity <= 0) throw new IllegalArgumentException();

@@ -62,11 +67,11 @@
  * Answers the object associated with the specified index in

  * this OrderedSet. 

  *

- * @param		index the index to use

- * @return		the object associated with the specified index

+ * @param       index the index to use

+ * @return      the object associated with the specified index

  * @throws      ArrayIndexOutOfBoundsException if the index is out of range

  *

- * @see			#put

+ * @see         #put

  */

 public Object get(int index) {

 	if (index >= elementCount) {

@@ -78,10 +83,10 @@
  * Answers whether the specified object is in

  * this OrderedSet.

  *

- * @param		obj	the object, which must not be null

- * @return		true if the object is in the set, false otherwise

+ * @param       obj the object, which must not be null

+ * @return      true if the object is in the set, false otherwise

  *

- * @see			#put

+ * @see         #put

  */

 public boolean includes(Object obj) {

 	if (obj == null) {

@@ -94,11 +99,11 @@
  * Answers the index associated with the specified object in

  * this OrderedSet.

  *

- * @param		obj	the object, which must not be null

- * @return		the index associated with the object

+ * @param       obj the object, which must not be null

+ * @return      the index associated with the object

  * @throws      IllegalArgumentException if the key is not in the pool

  *

- * @see			#put

+ * @see         #put

  */

 public int index(Object obj) {

 	if (obj == null) {

@@ -117,11 +122,11 @@
  * But the object is retrievable using get(int index).

  * The index must not yet have been assigned.

  *

- * @param		index the index of the object

- * @param		obj	the object to add

+ * @param       index the index of the object

+ * @param       obj the object to add

  *

- * @see			#get

- * @see			java.lang.Object#equals

+ * @see         #get

+ * @see         java.lang.Object#equals

  */

 public void put(int index, Object obj) {

 	if (obj == null) throw new NullPointerException ();

@@ -141,11 +146,11 @@
  * Associate the given object with the next index in this OrderedSet.

  * If the object is already present, its index is unchanged. The object cannot be null.

  *

- * @param		obj	the object to add

- * @return		the index associated with the specified obj

+ * @param       obj the object to add

+ * @return      the index associated with the specified obj

  *

- * @see			#index

- * @see			java.lang.Object#equals

+ * @see         #index

+ * @see         java.lang.Object#equals

  */

 public int put (Object obj) {

 	if (obj == null) throw new NullPointerException ();

@@ -192,7 +197,7 @@
 /**

  * Answers the number of objects in this OrderedSet.

  *

- * @return		the number of objects in this OrderedSet

+ * @return      the number of objects in this OrderedSet

  */

 public int size () {

 	return elementCount;

@@ -200,7 +205,7 @@
 /**

  * Answers the string representation of this OrderedSet.

  *

- * @return		the string representation of this OrderedSet

+ * @return      the string representation of this OrderedSet

  */

 public String toString () {

 	Object key;

diff --git a/org.eclipse.jdt.core/model/org/eclipse/jdt/internal/core/builder/impl/TypeCollaboratorIndictment.java b/org.eclipse.jdt.core/model/org/eclipse/jdt/internal/core/builder/impl/TypeCollaboratorIndictment.java
index d1fade3..622b1e5 100644
--- a/org.eclipse.jdt.core/model/org/eclipse/jdt/internal/core/builder/impl/TypeCollaboratorIndictment.java
+++ b/org.eclipse.jdt.core/model/org/eclipse/jdt/internal/core/builder/impl/TypeCollaboratorIndictment.java
@@ -1,5 +1,14 @@
 package org.eclipse.jdt.internal.core.builder.impl;

+/*

+ * (c) Copyright IBM Corp. 2000, 2001.

+ * All Rights Reserved.

+ */

+import org.eclipse.jdt.core.*;

 

+/**

+ * These indictments are issued when there is a T1 change to a

+ * type, including change of visibility, change of gender, abstractness, etc.

+ */

 class TypeCollaboratorIndictment extends Indictment {

 /**

  * Creates a new TypeCollaboratorIndictment.

diff --git a/org.eclipse.jdt.core/model/org/eclipse/jdt/internal/core/builder/impl/TypeHierarchyIndictment.java b/org.eclipse.jdt.core/model/org/eclipse/jdt/internal/core/builder/impl/TypeHierarchyIndictment.java
index bcbc993..cf0bf75 100644
--- a/org.eclipse.jdt.core/model/org/eclipse/jdt/internal/core/builder/impl/TypeHierarchyIndictment.java
+++ b/org.eclipse.jdt.core/model/org/eclipse/jdt/internal/core/builder/impl/TypeHierarchyIndictment.java
@@ -1,5 +1,14 @@
 package org.eclipse.jdt.internal.core.builder.impl;

+/*

+ * (c) Copyright IBM Corp. 2000, 2001.

+ * All Rights Reserved.

+ */

+import org.eclipse.jdt.core.*;

 

+/**

+ * Type hierarchy indictments are issued whenever there is any

+ * change to the supertype hierarchy graph for a given type.

+ */

 public class TypeHierarchyIndictment extends Indictment {

 /**

  * Creates a new TypeHierarchyIndictment.

diff --git a/org.eclipse.jdt.core/model/org/eclipse/jdt/internal/core/jdom/ILineStartFinder.java b/org.eclipse.jdt.core/model/org/eclipse/jdt/internal/core/jdom/ILineStartFinder.java
index 0c8ee08..e3b2d87 100644
--- a/org.eclipse.jdt.core/model/org/eclipse/jdt/internal/core/jdom/ILineStartFinder.java
+++ b/org.eclipse.jdt.core/model/org/eclipse/jdt/internal/core/jdom/ILineStartFinder.java
@@ -1,5 +1,14 @@
 package org.eclipse.jdt.internal.core.jdom;

+/*

+ * (c) Copyright IBM Corp. 2000, 2001.

+ * All Rights Reserved.

+ */

+import org.eclipse.jdt.core.*;

 

+/**

+ * The <coe>ILineSeparatorFinder</code> finds previous and next line separators

+ * in source.

+ */

 interface ILineStartFinder {

 /**

  * Returns the position of the start of the line at or before the given source position.

diff --git a/org.eclipse.jdt.core/model/org/eclipse/jdt/internal/core/lookup/ReferenceInfo.java b/org.eclipse.jdt.core/model/org/eclipse/jdt/internal/core/lookup/ReferenceInfo.java
index ea4d48b..6a73282 100644
--- a/org.eclipse.jdt.core/model/org/eclipse/jdt/internal/core/lookup/ReferenceInfo.java
+++ b/org.eclipse.jdt.core/model/org/eclipse/jdt/internal/core/lookup/ReferenceInfo.java
@@ -1,4 +1,9 @@
 package org.eclipse.jdt.internal.core.lookup;

+/*

+ * (c) Copyright IBM Corp. 2000, 2001.

+ * All Rights Reserved.

+ */

+import org.eclipse.jdt.core.*;

 

 public class ReferenceInfo {

 

@@ -23,7 +28,7 @@
 	public static final byte REFTYPE_type = 0x20;

 	public static final byte REFTYPE_class = 0x40;

 	public static final byte REFTYPE_constant = (byte)0x80;

-//	public static final byte REFTYPE_label = 256;

+//  public static final byte REFTYPE_label = 256;

 

 /**

  * Creates a new ReferenceInfo object.  There should be one per compilation unit.

diff --git a/org.eclipse.jdt.core/model/org/eclipse/jdt/internal/core/util/CharArrayBuffer.java b/org.eclipse.jdt.core/model/org/eclipse/jdt/internal/core/util/CharArrayBuffer.java
index 00b18b2..37fa2e5 100644
--- a/org.eclipse.jdt.core/model/org/eclipse/jdt/internal/core/util/CharArrayBuffer.java
+++ b/org.eclipse.jdt.core/model/org/eclipse/jdt/internal/core/util/CharArrayBuffer.java
@@ -1,5 +1,26 @@
 package org.eclipse.jdt.internal.core.util;

+/*

+ * (c) Copyright IBM Corp. 2000, 2001.

+ * All Rights Reserved.

+ */

+import org.eclipse.jdt.core.*;

 

+/**

+ * The <code>CharArrayBuffer</code> is intended as a lightweight partial implementation

+ * of the StringBuffer class, but using <code>char[]'s</code> instead of Strings.

+ *

+ * <p>The <code>CharArrayBuffer</code> maintains a list of <code>char[]'s</code>

+ * which don't get appended until the user asks for them.  The following

+ * code illustrates how to use the class.

+ *

+ * <code>

+ * CharArrayBuffer buffer = new CharArrayBuffer(myCharArray);

+ * buffer.append(moreBytes, 0, someLength);

+ * myCharArray = buffer.getContents();

+ * </code>

+ *

+ * <p>NOTE: This class is not Thread safe!

+ */

 public class CharArrayBuffer {

 	/**

 	 * This is the buffer of char arrays which must be appended together

diff --git a/org.eclipse.jdt.core/model/org/eclipse/jdt/internal/core/util/CharArrayOps.java b/org.eclipse.jdt.core/model/org/eclipse/jdt/internal/core/util/CharArrayOps.java
index f8c98a9..66c4306 100644
--- a/org.eclipse.jdt.core/model/org/eclipse/jdt/internal/core/util/CharArrayOps.java
+++ b/org.eclipse.jdt.core/model/org/eclipse/jdt/internal/core/util/CharArrayOps.java
@@ -1,5 +1,14 @@
 package org.eclipse.jdt.internal.core.util;

+/*

+ * (c) Copyright IBM Corp. 2000, 2001.

+ * All Rights Reserved.

+ */

+import org.eclipse.jdt.core.*;

 

+/**

+ * A class to do characters operations so that we can use

+ * char arrays more effectively.

+ */

 public class CharArrayOps {

 /**

  * Returns the char arrays as an array of Strings

@@ -80,9 +89,9 @@
  * Extracts a sub-array from the given array, starting

  * at the given startIndex and proceeding for length characters.

  * Returns null if:

- *	1. the src array is null

- *	2. the start index is out of bounds

- *	3. the length parameter specifies a end point which is out of bounds

+ *  1. the src array is null

+ *  2. the start index is out of bounds

+ *  3. the length parameter specifies a end point which is out of bounds

  * Does not return a copy of the array if possible, i.e. if start is zero

  * and length equals the length of the src array.

  *

@@ -110,9 +119,9 @@
  * Extracts a substring from the given array, starting

  * at the given startIndex and proceeding for length characters.

  * Returns null if:

- *	1. the src array is null

- *	2. the start index is out of bounds

- *	3. the length parameter specifies a end point which is out of bounds

+ *  1. the src array is null

+ *  2. the start index is out of bounds

+ *  3. the length parameter specifies a end point which is out of bounds

  * Does not return a copy of the array if possible, i.e. if start is zero

  * and length equals the length of the src array.

  *

diff --git a/org.eclipse.jdt.core/model/org/eclipse/jdt/internal/core/util/DiskCacheEntry.java b/org.eclipse.jdt.core/model/org/eclipse/jdt/internal/core/util/DiskCacheEntry.java
index d5d374f..085b429 100644
--- a/org.eclipse.jdt.core/model/org/eclipse/jdt/internal/core/util/DiskCacheEntry.java
+++ b/org.eclipse.jdt.core/model/org/eclipse/jdt/internal/core/util/DiskCacheEntry.java
@@ -1,5 +1,15 @@
 package org.eclipse.jdt.internal.core.util;

+/*

+ * (c) Copyright IBM Corp. 2000, 2001.

+ * All Rights Reserved.

+ */

+import org.eclipse.jdt.core.*;

 

+/**

+ * A <code>DiskCacheEntry</code> represents the results of looking up an

+ * entry in a <code>DiskCache</code>.  It is part of the DiskCache API and is

+ * not necessarily used as the internal representation.

+ */

 public class DiskCacheEntry {

 	String fKey;

 	int fSize;

diff --git a/org.eclipse.jdt.core/model/org/eclipse/jdt/internal/core/util/HackFinder.java b/org.eclipse.jdt.core/model/org/eclipse/jdt/internal/core/util/HackFinder.java
index a060884..71aae5a 100644
--- a/org.eclipse.jdt.core/model/org/eclipse/jdt/internal/core/util/HackFinder.java
+++ b/org.eclipse.jdt.core/model/org/eclipse/jdt/internal/core/util/HackFinder.java
@@ -1,4 +1,9 @@
 package org.eclipse.jdt.internal.core.util;

+/*

+ * (c) Copyright IBM Corp. 2000, 2001.

+ * All Rights Reserved.

+ */

+import org.eclipse.jdt.core.*;

 

 public class HackFinder {

 /**

diff --git a/org.eclipse.jdt.core/model/org/eclipse/jdt/internal/core/util/IComparator.java b/org.eclipse.jdt.core/model/org/eclipse/jdt/internal/core/util/IComparator.java
index 80b583d..24dfa25 100644
--- a/org.eclipse.jdt.core/model/org/eclipse/jdt/internal/core/util/IComparator.java
+++ b/org.eclipse.jdt.core/model/org/eclipse/jdt/internal/core/util/IComparator.java
@@ -1,5 +1,13 @@
 package org.eclipse.jdt.internal.core.util;

+/*

+ * (c) Copyright IBM Corp. 2000, 2001.

+ * All Rights Reserved.

+ */

+import org.eclipse.jdt.core.*;

 

+/**

+ * An interface for comparing two objects according to a partial order.

+ */

 public interface IComparator {

 	/**

 	 * Returns an integer < 0 if o1 is less than o2, > 0 if o1 is greater

diff --git a/org.eclipse.jdt.core/model/org/eclipse/jdt/internal/core/util/ILRUCacheable.java b/org.eclipse.jdt.core/model/org/eclipse/jdt/internal/core/util/ILRUCacheable.java
index e73634a..5b1e6d3 100644
--- a/org.eclipse.jdt.core/model/org/eclipse/jdt/internal/core/util/ILRUCacheable.java
+++ b/org.eclipse.jdt.core/model/org/eclipse/jdt/internal/core/util/ILRUCacheable.java
@@ -1,5 +1,17 @@
 package org.eclipse.jdt.internal.core.util;

+/*

+ * (c) Copyright IBM Corp. 2000, 2001.

+ * All Rights Reserved.

+ */

+import org.eclipse.jdt.core.*;

 

+/**

+ * Types implementing this interface can occupy a variable amount of space

+ * in an LRUCache.  Cached items that do not implement this interface are

+ * considered to occupy one unit of space.

+ *

+ * @see LRUCache

+ */

 public interface ILRUCacheable {

 	/**

 	 * Returns the space the receiver consumes in an LRU Cache.  The default space

diff --git a/org.eclipse.jdt.core/model/org/eclipse/jdt/internal/core/util/IProgressListener.java b/org.eclipse.jdt.core/model/org/eclipse/jdt/internal/core/util/IProgressListener.java
index ffce4a3..226cb7c 100644
--- a/org.eclipse.jdt.core/model/org/eclipse/jdt/internal/core/util/IProgressListener.java
+++ b/org.eclipse.jdt.core/model/org/eclipse/jdt/internal/core/util/IProgressListener.java
@@ -1,5 +1,27 @@
 package org.eclipse.jdt.internal.core.util;

+/*

+ * (c) Copyright IBM Corp. 2000, 2001.

+ * All Rights Reserved.

+ */

+import org.eclipse.jdt.core.*;

 

+/**

+The <code>IProgressListener</code> interface is implemented

+by objects that monitor the progress of an activity.

+

+<p> All activity is broken down into a linear sequence of tasks against

+which progress is reported. When a task begins, a <code>begin</code> 

+notification is reported, followed by any number and mixture of progress

+reports (<code>worked()</code>) and subtask 

+notifications (<code>nowDoing()</code>).  When the task

+is eventually completed, a <code>done()</code> notification is reported.

+

+<p> Since notification is synchronous with the activity itself,

+the listener should provide a fast and robust implementation.

+If the handling of notifications would involve blocking operations, 

+or operations which might throw uncaught exceptions, the notifications

+should be queued, and the actual processing delegated to a separate thread.

+ */

 public interface IProgressListener {

 

 /** Notifies that the main task is beginning.

diff --git a/org.eclipse.jdt.core/model/org/eclipse/jdt/internal/core/util/ReferenceInfoAdapter.java b/org.eclipse.jdt.core/model/org/eclipse/jdt/internal/core/util/ReferenceInfoAdapter.java
index 6c6e7c5..1ad3ebf 100644
--- a/org.eclipse.jdt.core/model/org/eclipse/jdt/internal/core/util/ReferenceInfoAdapter.java
+++ b/org.eclipse.jdt.core/model/org/eclipse/jdt/internal/core/util/ReferenceInfoAdapter.java
@@ -1,5 +1,14 @@
 package org.eclipse.jdt.internal.core.util;

+/*

+ * (c) Copyright IBM Corp. 2000, 2001.

+ * All Rights Reserved.

+ */

+import org.eclipse.jdt.core.*;

 

+/**

+ * An adapter which implements the methods for handling

+ * reference information from the parser.

+ */

 public abstract class ReferenceInfoAdapter {

 /**

  * Does nothing.

diff --git a/org.eclipse.jdt.core/model/org/eclipse/jdt/internal/core/util/StringHashtableOfInt.java b/org.eclipse.jdt.core/model/org/eclipse/jdt/internal/core/util/StringHashtableOfInt.java
index f9bd538..6846b44 100644
--- a/org.eclipse.jdt.core/model/org/eclipse/jdt/internal/core/util/StringHashtableOfInt.java
+++ b/org.eclipse.jdt.core/model/org/eclipse/jdt/internal/core/util/StringHashtableOfInt.java
@@ -1,5 +1,13 @@
 package org.eclipse.jdt.internal.core.util;

+/*

+ * (c) Copyright IBM Corp. 2000, 2001.

+ * All Rights Reserved.

+ */

+import org.eclipse.jdt.core.*;

 

+/**

+ * A hash table keyed by strings and with int values.

+ */

 public class StringHashtableOfInt {

 	// to avoid using Enumerations, walk the individual tables skipping nulls

 	public String[] keyTable;

diff --git a/org.eclipse.jdt.core/model/org/eclipse/jdt/internal/core/util/ToStringSorter.java b/org.eclipse.jdt.core/model/org/eclipse/jdt/internal/core/util/ToStringSorter.java
index ede2146..d2e6e66 100644
--- a/org.eclipse.jdt.core/model/org/eclipse/jdt/internal/core/util/ToStringSorter.java
+++ b/org.eclipse.jdt.core/model/org/eclipse/jdt/internal/core/util/ToStringSorter.java
@@ -1,17 +1,28 @@
 package org.eclipse.jdt.internal.core.util;

+/*

+ * (c) Copyright IBM Corp. 2000, 2001.

+ * All Rights Reserved.

+ */

+import org.eclipse.jdt.core.*;

 

+/**

+ * The SortOperation takes a collection of objects and returns

+ * a sorted collection of these objects. The sorting of these

+ * objects is based on their toString(). They are sorted in

+ * alphabetical order.

+ */

 public class ToStringSorter {

 	Object[] sortedObjects;

 	String[] sortedStrings;

 /**

- *	Returns true if stringTwo is 'greater than' stringOne

- *	This is the 'ordering' method of the sort operation.

+ *  Returns true if stringTwo is 'greater than' stringOne

+ *  This is the 'ordering' method of the sort operation.

  */

 public boolean compare(String stringOne, String stringTwo) {

 	return stringOne.compareTo(stringTwo) < 0;

 }

 /**

- *	Sort the objects in sorted collection and return that collection.

+ *  Sort the objects in sorted collection and return that collection.

  */

 private void quickSort(int left, int right) {

 	int originalLeft = left;

@@ -43,15 +54,15 @@
 		quickSort(left, originalRight);

 }

 /**

- *	Return a new sorted collection from this unsorted collection.

- *	Sort using quick sort.

+ *  Return a new sorted collection from this unsorted collection.

+ *  Sort using quick sort.

  */

 public void sort(Object[] unSortedObjects, String[] unsortedStrings) {

 	int size = unSortedObjects.length;

 	this.sortedObjects = new Object[size];

 	this.sortedStrings = new String[size];

 	

-	//copy the array so can return a new sorted collection	

+	//copy the array so can return a new sorted collection  

 	System.arraycopy(unSortedObjects, 0, this.sortedObjects, 0, size);

 	System.arraycopy(unsortedStrings, 0, this.sortedStrings, 0, size);

 	if (size > 1)