blob: c11968337e9b35d1abb87d0b1a854420c9f45892 [file] [log] [blame]
<?xml version="1.0" encoding="UTF-8"?>
<uml:Model xmi:version="2.1" xmlns:xmi="http://schema.omg.org/spec/XMI/2.1" xmlns:uml="http://www.eclipse.org/uml2/3.0.0/UML" xmi:id="_LfM0EWEMEeCdEc4VzBeWeQ" name="model">
<packagedElement xmi:type="uml:Model" xmi:id="_dBtBgGEMEeCdEc4VzBeWeQ" name="generated"/>
<packagedElement xmi:type="uml:Model" xmi:id="_dQTeMGEMEeCdEc4VzBeWeQ" name="jdt">
<packagedElement xmi:type="uml:Package" xmi:id="_dQTeMWEMEeCdEc4VzBeWeQ" name="org">
<packagedElement xmi:type="uml:Package" xmi:id="_dQTeMmEMEeCdEc4VzBeWeQ" name="eclipse">
<packagedElement xmi:type="uml:Package" xmi:id="_dQTeM2EMEeCdEc4VzBeWeQ" name="jdt">
<packagedElement xmi:type="uml:Package" xmi:id="_dQTeNGEMEeCdEc4VzBeWeQ" name="core">
<packagedElement xmi:type="uml:Class" xmi:id="_dR8c8GEMEeCdEc4VzBeWeQ" name="BindingKey" isLeaf="true">
<ownedComment xmi:id="_dR8c8WEMEeCdEc4VzBeWeQ">
<body>
* Utility class to decode or create a binding key.
* &lt;p>
* This class is not intended to be subclassed by clients.
* &lt;/p>
*
* @see org.eclipse.jdt.core.dom.IBinding#getKey()
* @since 3.1
</body>
</ownedComment>
<ownedAttribute xmi:id="_dTIvwGEMEeCdEc4VzBeWeQ" name="key" visibility="private" type="_dSiS02EMEeCdEc4VzBeWeQ" isUnique="false"/>
<ownedOperation xmi:id="_dT4WoGEMEeCdEc4VzBeWeQ" name="createArrayTypeBindingKey" visibility="public" isStatic="true">
<ownedComment xmi:id="_dT4WoWEMEeCdEc4VzBeWeQ">
<body>
* Creates a new array type binding key from the given type binding key and the given array dimension.
* &lt;p>
* For example:
* &lt;pre>
* &lt;code>
* createArrayTypeBindingKey(&quot;Ljava/lang/Object;&quot;, 1) -> &quot;[Ljava/lang/Object;&quot;
* createArrayTypeBindingKey(&quot;I&quot;, 2) -> &quot;[[I&quot;
* &lt;/code>
* &lt;/pre>
* &lt;/p>
*
* @param typeKey the binding key of the given type
* @param arrayDimension the given array dimension
* @return a new array type binding key
</body>
</ownedComment>
<ownedParameter xmi:id="_dUCHoGEMEeCdEc4VzBeWeQ" type="_dSiS02EMEeCdEc4VzBeWeQ" direction="return"/>
<ownedParameter xmi:id="_dULRkGEMEeCdEc4VzBeWeQ" name="typeKey" type="_dSiS02EMEeCdEc4VzBeWeQ"/>
<ownedParameter xmi:id="_dULRkWEMEeCdEc4VzBeWeQ" name="arrayDimension" type="_dTlbsGEMEeCdEc4VzBeWeQ"/>
</ownedOperation>
<ownedOperation xmi:id="_dULRkmEMEeCdEc4VzBeWeQ" name="createParameterizedTypeBindingKey" visibility="public" isStatic="true">
<ownedComment xmi:id="_dULRk2EMEeCdEc4VzBeWeQ">
<body>
* Creates a new parameterized type binding key from the given generic type binding key and the given argument type binding keys.
* If the argument type keys array is empty, then a raw type binding key is created.
* &lt;p>
* For example:
* &lt;pre>
* &lt;code>
* createParameterizedTypeBindingKey(
* &quot;Ljava/util/Map&amp;lt;TK;TV;&amp;gt;;&quot;,
* new String[] {&quot;Ljava/lang/String;&quot;, &quot;Ljava/lang/Object;&quot;}) -&amp;gt;
* &quot;Ljava/util/Map&amp;lt;Ljava/lang/String;Ljava/lang/Object;&amp;gt;;&quot;
* createParameterizedTypeBindingKey(
* &quot;Ljava/util/List&amp;lt;TE;&amp;gt;;&quot;, new String[] {}) -&amp;gt;
* &quot;Ljava/util/List&amp;lt;&amp;gt;;&quot;
* &lt;/code>
* &lt;/pre>
* &lt;/p>
*
* @param genericTypeKey the binding key of the generic type
* @param argumentTypeKeys the possibly empty list of binding keys of argument types
* @return a new parameterized type binding key
</body>
</ownedComment>
<ownedParameter xmi:id="_dULRlGEMEeCdEc4VzBeWeQ" type="_dSiS02EMEeCdEc4VzBeWeQ" direction="return"/>
<ownedParameter xmi:id="_dULRlWEMEeCdEc4VzBeWeQ" name="genericTypeKey" type="_dSiS02EMEeCdEc4VzBeWeQ"/>
<ownedParameter xmi:id="_dULRlmEMEeCdEc4VzBeWeQ" name="argumentTypeKeys" type="_dSiS02EMEeCdEc4VzBeWeQ">
<upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_dUezkWEMEeCdEc4VzBeWeQ" value="*"/>
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_dUezkGEMEeCdEc4VzBeWeQ"/>
</ownedParameter>
</ownedOperation>
<ownedOperation xmi:id="_dUezkmEMEeCdEc4VzBeWeQ" name="createTypeBindingKey" visibility="public" isStatic="true">
<ownedComment xmi:id="_dUezk2EMEeCdEc4VzBeWeQ">
<body>
* Creates a new type binding key from the given type name. The type name must be either
* a fully qualified name, an array type name or a primitive type name.
* If the type name is fully qualified, then it is expected to be dot-based.
* Note that inner types, generic types and parameterized types are not supported.
* &lt;p>
* For example:
* &lt;pre>
* &lt;code>
* createTypeBindingKey(&quot;int&quot;) -> &quot;I&quot;
* createTypeBindingKey(&quot;java.lang.String&quot;) -> &quot;Ljava/lang/String;&quot;
* createTypeBindingKey(&quot;boolean[]&quot;) -> &quot;[Z&quot;
* &lt;/code>
* &lt;/pre>
* &lt;/p>
*
* @param typeName the possibly qualified type name
* @return a new type binding key
</body>
</ownedComment>
<ownedParameter xmi:id="_dUezlGEMEeCdEc4VzBeWeQ" type="_dSiS02EMEeCdEc4VzBeWeQ" direction="return"/>
<ownedParameter xmi:id="_dUezlWEMEeCdEc4VzBeWeQ" name="typeName" type="_dSiS02EMEeCdEc4VzBeWeQ"/>
</ownedOperation>
<ownedOperation xmi:id="_dUezlmEMEeCdEc4VzBeWeQ" name="createTypeVariableBindingKey" visibility="public" isStatic="true">
<ownedComment xmi:id="_dUezl2EMEeCdEc4VzBeWeQ">
<body>
* Creates a new type variable binding key from the given type variable name and the given declaring key.
* The declaring key can either be a type binding key or a method binding key.
* &lt;p>
* For example:
* &lt;pre>
* &lt;code>
* createTypeVariableBindingKey(&quot;T&quot;, &quot;Ljava/util/List&amp;lt;TE;&amp;gt;;&quot;) -&amp;gt;
* &quot;Ljava/util/List&amp;lt;TE;&amp;gt;;:TT;&quot;
* createTypeVariableBindingKey(&quot;SomeTypeVariable&quot;, &quot;Lp/X;.foo()V&quot;) -&amp;gt;
* &quot;Lp/X;.foo()V:TSomeTypeVariable;&quot;
* &lt;/code>
* &lt;/pre>
* &lt;/p>
*
* @param typeVariableName the name of the given type variable
* @param declaringKey the binding key of the type or method the type variable belongs to
* @return a new type variable binding key
</body>
</ownedComment>
<ownedParameter xmi:id="_dUn9gGEMEeCdEc4VzBeWeQ" type="_dSiS02EMEeCdEc4VzBeWeQ" direction="return"/>
<ownedParameter xmi:id="_dUn9gWEMEeCdEc4VzBeWeQ" name="typeVariableName" type="_dSiS02EMEeCdEc4VzBeWeQ"/>
<ownedParameter xmi:id="_dUn9gmEMEeCdEc4VzBeWeQ" name="declaringKey" type="_dSiS02EMEeCdEc4VzBeWeQ"/>
</ownedOperation>
<ownedOperation xmi:id="_dUn9hGEMEeCdEc4VzBeWeQ" name="createWilcardTypeBindingKey" visibility="public" isStatic="true">
<ownedComment xmi:id="_dUn9hWEMEeCdEc4VzBeWeQ">
<body>
* Creates a new wildcard type binding key from the given type binding key and the given wildcard kind
* (one of {@link Signature#C_STAR}, {@link Signature#C_SUPER}, or {@link Signature#C_EXTENDS}.
* If the wildcard is {@link Signature#C_STAR}, the given type binding key is ignored.
* &lt;p>
* For example:
* &lt;pre>
* &lt;code>
* createWilcardTypeBindingKey(null, Signature.C_STAR) -&amp;gt; &quot;*&quot;
* createWilcardTypeBindingKey(&quot;Ljava/util/List&amp;lt;TE;&amp;gt;;&quot;,
* Signature.C_SUPER) -&amp;gt; &quot;-Ljava/util/List&amp;lt;TE;&amp;gt;;&quot;
* createWilcardTypeBindingKey(&quot;Ljava/util/ArrayList;&quot;, Signature.C_EXTENDS) -&amp;gt;
* &quot;+Ljava/util/ArrayList;&quot;
* &lt;/code>
* &lt;/pre>
* &lt;/p>
*
* @param typeKey the binding key of the given type
* @param kind one of {@link Signature#C_STAR}, {@link Signature#C_SUPER}, or {@link Signature#C_EXTENDS}
* @return a new wildcard type binding key
* @deprecated This method is missing crucial information necessary for proper wildcard binding key creation.
* @see org.eclipse.jdt.core.BindingKey#createWildcardTypeBindingKey(String, char, String, int)
</body>
</ownedComment>
<ownedParameter xmi:id="_dUxugGEMEeCdEc4VzBeWeQ" type="_dSiS02EMEeCdEc4VzBeWeQ" direction="return"/>
<ownedParameter xmi:id="_dU64cGEMEeCdEc4VzBeWeQ" name="typeKey" type="_dSiS02EMEeCdEc4VzBeWeQ"/>
<ownedParameter xmi:id="_dU64cWEMEeCdEc4VzBeWeQ" name="kind" type="_dUn9g2EMEeCdEc4VzBeWeQ"/>
</ownedOperation>
<ownedOperation xmi:id="_dU64cmEMEeCdEc4VzBeWeQ" name="createWildcardTypeBindingKey" visibility="public" isStatic="true">
<ownedComment xmi:id="_dU64c2EMEeCdEc4VzBeWeQ">
<body>
* Creates a new wildcard type binding key from the given generic type binding key, the given wildcard
* kind (one of {@link Signature#C_STAR}, {@link Signature#C_SUPER}, or {@link Signature#C_EXTENDS}
* the given bound type binding key and the given rank. If the wildcard kind is {@link Signature#C_STAR},
* the given bound type binding key is ignored.
* &lt;p>
* For example:
* &lt;pre>
* &lt;code>
* createWildcardTypeBindingKey(&quot;Ljava/util/ArrayList;&quot;, Signature.C_STAR, null, 0) -&amp;gt; &quot;Ljava/util/ArrayList;{0}*&quot;
* createWildcardTypeBindingKey(&quot;Ljava/util/ArrayList;&quot;, Signature.C_SUPER, &quot;Ljava/lang/String;&quot;, 0) -&amp;gt; &quot;Ljava/util/ArrayList;{0}-Ljava/lang/String;&quot;
* createWildcardTypeBindingKey(&quot;Ljava/util/HashMap;&quot;, Signature.C_EXTENDS, &quot;Ljava/lang/String;&quot;, 1) -&amp;gt;
* &quot;Ljava/util/HashMap;{1}+Ljava/lang/String;&quot;
* &lt;/code>
* &lt;/pre>
* &lt;/p>
*
* @param genericTypeKey the binding key of the generic type
* @param boundKind one of {@link Signature#C_STAR}, {@link Signature#C_SUPER}, or {@link Signature#C_EXTENDS}
* @param boundTypeKey the binding key of the bounding type.
* @param rank the relative position of this wild card type in the parameterization of the generic type.
* @return a new wildcard type binding key
* @since 3.5
</body>
</ownedComment>
<ownedParameter xmi:id="_dU64dGEMEeCdEc4VzBeWeQ" type="_dSiS02EMEeCdEc4VzBeWeQ" direction="return"/>
<ownedParameter xmi:id="_dU64dWEMEeCdEc4VzBeWeQ" name="genericTypeKey" type="_dSiS02EMEeCdEc4VzBeWeQ"/>
<ownedParameter xmi:id="_dU64dmEMEeCdEc4VzBeWeQ" name="boundKind" type="_dUn9g2EMEeCdEc4VzBeWeQ"/>
<ownedParameter xmi:id="_dU64d2EMEeCdEc4VzBeWeQ" name="boundTypeKey" type="_dSiS02EMEeCdEc4VzBeWeQ"/>
<ownedParameter xmi:id="_dVEpcGEMEeCdEc4VzBeWeQ" name="rank" type="_dTlbsGEMEeCdEc4VzBeWeQ"/>
</ownedOperation>
<ownedOperation xmi:id="_dVEpcWEMEeCdEc4VzBeWeQ" name="getThrownExceptions" visibility="public">
<ownedComment xmi:id="_dVEpcmEMEeCdEc4VzBeWeQ">
<body>
* Returns the thrown exception signatures of the element represented by this binding key.
* If this binding key does not represent a method or does not throw any exception,
* returns an empty array.
*
* @return the thrown exceptions signatures
* @since 3.3
</body>
</ownedComment>
<ownedParameter xmi:id="_dVEpc2EMEeCdEc4VzBeWeQ" type="_dSiS02EMEeCdEc4VzBeWeQ" direction="return">
<upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_dVEpdWEMEeCdEc4VzBeWeQ" value="*"/>
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_dVEpdGEMEeCdEc4VzBeWeQ"/>
</ownedParameter>
</ownedOperation>
<ownedOperation xmi:id="_dVEpdmEMEeCdEc4VzBeWeQ" name="getTypeArguments" visibility="public">
<ownedComment xmi:id="_dVEpd2EMEeCdEc4VzBeWeQ">
<body>
* Returns the type argument signatures of the element represented by this binding key.
* If this binding key doesn't represent a parameterized type or a parameterized method,
* returns an empty array.
*
* @return the type argument signatures
</body>
</ownedComment>
<ownedParameter xmi:id="_dVEpeGEMEeCdEc4VzBeWeQ" type="_dSiS02EMEeCdEc4VzBeWeQ" direction="return">
<upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_dVOacWEMEeCdEc4VzBeWeQ" value="*"/>
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_dVOacGEMEeCdEc4VzBeWeQ"/>
</ownedParameter>
</ownedOperation>
<ownedOperation xmi:id="_dVOacmEMEeCdEc4VzBeWeQ" name="isRawType" visibility="public">
<ownedComment xmi:id="_dVOac2EMEeCdEc4VzBeWeQ">
<body>
* Returns whether this binding key represents a raw type.
*
* @return whether this binding key represents a raw type
</body>
</ownedComment>
<ownedParameter xmi:id="_dVOadWEMEeCdEc4VzBeWeQ" type="_dVOadGEMEeCdEc4VzBeWeQ" direction="return"/>
</ownedOperation>
<ownedOperation xmi:id="_dVOadmEMEeCdEc4VzBeWeQ" name="isParameterizedType" visibility="public">
<ownedComment xmi:id="_dVOad2EMEeCdEc4VzBeWeQ">
<body>
* Returns whether this binding key represents a parameterized type, or if its declaring type is a parameterized type.
*
* @return whether this binding key represents a parameterized type
</body>
</ownedComment>
<ownedParameter xmi:id="_dVOaeGEMEeCdEc4VzBeWeQ" type="_dVOadGEMEeCdEc4VzBeWeQ" direction="return"/>
</ownedOperation>
<ownedOperation xmi:id="_dVOaeWEMEeCdEc4VzBeWeQ" name="isParameterizedMethod" visibility="public">
<ownedComment xmi:id="_dVOaemEMEeCdEc4VzBeWeQ">
<body>
* Returns whether this binding key represents a parameterized method, or if its declaring method is a parameterized method.
*
* @return whether this binding key represents a parameterized method
</body>
</ownedComment>
<ownedParameter xmi:id="_dVOae2EMEeCdEc4VzBeWeQ" type="_dVOadGEMEeCdEc4VzBeWeQ" direction="return"/>
</ownedOperation>
<ownedOperation xmi:id="_dVOafGEMEeCdEc4VzBeWeQ" name="toSignature" visibility="public">
<ownedComment xmi:id="_dVOafWEMEeCdEc4VzBeWeQ">
<body>
* Transforms this binding key into a resolved signature.
* If this binding key represents a field, the returned signature is
* the field type's signature.
*
* @return the resolved signature for this binding key
* @see Signature
* @since 3.2
</body>
</ownedComment>
<ownedParameter xmi:id="_dVOafmEMEeCdEc4VzBeWeQ" type="_dSiS02EMEeCdEc4VzBeWeQ" direction="return"/>
</ownedOperation>
<ownedOperation xmi:id="_dVXkYGEMEeCdEc4VzBeWeQ" name="toString" visibility="public">
<ownedParameter xmi:id="_dVXkYWEMEeCdEc4VzBeWeQ" type="_dSiS02EMEeCdEc4VzBeWeQ" direction="return"/>
</ownedOperation>
</packagedElement>
<packagedElement xmi:type="uml:Class" xmi:id="_dV-BUGEMEeCdEc4VzBeWeQ" name="BufferChangedEvent">
<ownedComment xmi:id="_dV-BUWEMEeCdEc4VzBeWeQ">
<body>
* A buffer changed event describes how a buffer has changed. These events are
* used in &lt;code>IBufferChangedListener&lt;/code> notifications.
* &lt;p>
* For text insertions, &lt;code>getOffset&lt;/code> is the offset
* of the first inserted character, &lt;code>getText&lt;/code> is the
* inserted text, and &lt;code>getLength&lt;/code> is 0.
* &lt;/p>
* &lt;p>
* For text removals, &lt;code>getOffset&lt;/code> is the offset
* of the first removed character, &lt;code>getText&lt;/code> is &lt;code>null&lt;/code>,
* and &lt;code>getLength&lt;/code> is the length of the text that was removed.
* &lt;/p>
* &lt;p>
* For replacements (including &lt;code>IBuffer.setContents&lt;/code>),
* &lt;code>getOffset&lt;/code> is the offset
* of the first replaced character, &lt;code>getText&lt;/code> is the replacement
* text, and &lt;code>getLength&lt;/code> is the length of the original text
* that was replaced.
* &lt;/p>
* &lt;p>
* When a buffer is closed, &lt;code>getOffset&lt;/code> is 0, &lt;code>getLength&lt;/code>
* is 0, and &lt;code>getText&lt;/code> is &lt;code>null&lt;/code>.
* &lt;/p>
*
* @see IBuffer
* @noextend This class is not intended to be subclassed by clients.
</body>
</ownedComment>
<generalization xmi:id="_dWHLQGEMEeCdEc4VzBeWeQ" general="_dV-BU2EMEeCdEc4VzBeWeQ"/>
<ownedAttribute xmi:id="_dWHLQWEMEeCdEc4VzBeWeQ" name="length" visibility="private" type="_dTlbsGEMEeCdEc4VzBeWeQ" isUnique="false">
<ownedComment xmi:id="_dWQ8QGEMEeCdEc4VzBeWeQ">
<body>
* The length of text that has been modified in the buffer.
</body>
</ownedComment>
</ownedAttribute>
<ownedAttribute xmi:id="_dWatQGEMEeCdEc4VzBeWeQ" name="offset" visibility="private" type="_dTlbsGEMEeCdEc4VzBeWeQ" isUnique="false">
<ownedComment xmi:id="_dWatQWEMEeCdEc4VzBeWeQ">
<body>
* The offset into the buffer where the modification took place.
</body>
</ownedComment>
</ownedAttribute>
<ownedAttribute xmi:id="_dWatQmEMEeCdEc4VzBeWeQ" name="text" visibility="private" type="_dSiS02EMEeCdEc4VzBeWeQ" isUnique="false">
<ownedComment xmi:id="_dWatQ2EMEeCdEc4VzBeWeQ">
<body>
* The text that was modified.
</body>
</ownedComment>
</ownedAttribute>
<ownedAttribute xmi:id="_dWatRWEMEeCdEc4VzBeWeQ" name="serialVersionUID" visibility="private" isLeaf="true" isStatic="true" type="_dWatRGEMEeCdEc4VzBeWeQ" isUnique="false"/>
<ownedOperation xmi:id="_dWatRmEMEeCdEc4VzBeWeQ" name="getBuffer" visibility="public">
<ownedComment xmi:id="_dWatR2EMEeCdEc4VzBeWeQ">
<body>
* Returns the buffer which has changed.
*
* @return the buffer affected by the change
</body>
</ownedComment>
</ownedOperation>
</packagedElement>
<packagedElement xmi:type="uml:Class" xmi:id="_jlnacGEMEeCdEc4VzBeWeQ" name="ClasspathVariableInitializer" isAbstract="true">
<ownedComment xmi:id="_jlnacWEMEeCdEc4VzBeWeQ">
<body>
* Abstract base implementation of all classpath variable initializers.
* Classpath variable initializers are used in conjunction with the
* &quot;org.eclipse.jdt.core.classpathVariableInitializer&quot; extension point.
* &lt;p>
* Clients should subclass this class to implement a specific classpath
* variable initializer. The subclass must have a public 0-argument
* constructor and a concrete implementation of &lt;code>initialize&lt;/code>.
*
* @see IClasspathEntry
* @since 2.0
</body>
</ownedComment>
<ownedOperation xmi:id="_jlnacmEMEeCdEc4VzBeWeQ" name="initialize" visibility="public" isAbstract="true">
<ownedComment xmi:id="_jlnac2EMEeCdEc4VzBeWeQ">
<body>
* Binds a value to the workspace classpath variable with the given name,
* or fails silently if this cannot be done.
* &lt;p>
* A variable initializer is automatically activated whenever a variable value
* is needed and none has been recorded so far. The implementation of
* the initializer can set the corresponding variable using
* &lt;code>JavaCore#setClasspathVariable&lt;/code>.
*
* @param variable the name of the workspace classpath variable
* that requires a binding
*
* @see JavaCore#getClasspathVariable(String)
* @see JavaCore#setClasspathVariable(String, org.eclipse.core.runtime.IPath, org.eclipse.core.runtime.IProgressMonitor)
* @see JavaCore#setClasspathVariables(String[], org.eclipse.core.runtime.IPath[], org.eclipse.core.runtime.IProgressMonitor)
</body>
</ownedComment>
<ownedParameter xmi:id="_jlxLcGEMEeCdEc4VzBeWeQ" name="variable" type="_dSiS02EMEeCdEc4VzBeWeQ"/>
</ownedOperation>
</packagedElement>
<packagedElement xmi:type="uml:Class" xmi:id="_jlxLcWEMEeCdEc4VzBeWeQ" name="CompletionContext">
<ownedComment xmi:id="_jl6VYGEMEeCdEc4VzBeWeQ">
<body>
* Completion context.
*
* Represent the context in which the completion occurs.
*
* @see CompletionRequestor#acceptContext(CompletionContext)
* @since 3.1
* @noinstantiate This class is not intended to be instantiated by clients.
</body>
</ownedComment>
<ownedAttribute xmi:id="_jl6VYWEMEeCdEc4VzBeWeQ" name="TL_MEMBER_START" visibility="public" isLeaf="true" isStatic="true" type="_dTlbsGEMEeCdEc4VzBeWeQ" isUnique="false">
<ownedComment xmi:id="_jl6VYmEMEeCdEc4VzBeWeQ">
<body>
* The completed token is the first token of a member declaration.&lt;br>
* e.g.
* &lt;pre>
* public class X {
* Foo| // completion occurs at |
* }
* &lt;/pre>
*
* @see #getTokenLocation()
*
* @since 3.4
</body>
</ownedComment>
</ownedAttribute>
<ownedAttribute xmi:id="_jl6VY2EMEeCdEc4VzBeWeQ" name="TL_STATEMENT_START" visibility="public" isLeaf="true" isStatic="true" type="_dTlbsGEMEeCdEc4VzBeWeQ" isUnique="false">
<ownedComment xmi:id="_jl6VZGEMEeCdEc4VzBeWeQ">
<body>
* The completed token is the first token of a statement.&lt;br>
* e.g.
* &lt;pre>
* public class X {
* public void bar() {
* Foo| // completion occurs at |
* }
* }
* &lt;/pre>
*
* @see #getTokenLocation()
*
* @since 3.4
</body>
</ownedComment>
</ownedAttribute>
<ownedAttribute xmi:id="_jl6VZWEMEeCdEc4VzBeWeQ" name="TOKEN_KIND_UNKNOWN" visibility="public" isLeaf="true" isStatic="true" type="_dTlbsGEMEeCdEc4VzBeWeQ" isUnique="false">
<ownedComment xmi:id="_jl6VZmEMEeCdEc4VzBeWeQ">
<body>
* The completion token is unknown.
* @since 3.2
</body>
</ownedComment>
</ownedAttribute>
<ownedAttribute xmi:id="_jl6VZ2EMEeCdEc4VzBeWeQ" name="TOKEN_KIND_NAME" visibility="public" isLeaf="true" isStatic="true" type="_dTlbsGEMEeCdEc4VzBeWeQ" isUnique="false">
<ownedComment xmi:id="_jl6VaGEMEeCdEc4VzBeWeQ">
<body>
* The completion token is a name.
* @since 3.2
</body>
</ownedComment>
</ownedAttribute>
<ownedAttribute xmi:id="_jl6VaWEMEeCdEc4VzBeWeQ" name="TOKEN_KIND_STRING_LITERAL" visibility="public" isLeaf="true" isStatic="true" type="_dTlbsGEMEeCdEc4VzBeWeQ" isUnique="false">
<ownedComment xmi:id="_jl6VamEMEeCdEc4VzBeWeQ">
<body>
* The completion token is a string literal.
* The string literal ends quote can be not present the source.
* &lt;code>&quot;foo&quot;&lt;/code> or &lt;code>&quot;foo&lt;/code>.
* @since 3.2
</body>
</ownedComment>
</ownedAttribute>
<ownedOperation xmi:id="_jl6Va2EMEeCdEc4VzBeWeQ" name="isInJavadoc" visibility="public">
<ownedComment xmi:id="_jl6VbGEMEeCdEc4VzBeWeQ">
<body>
* Tell user whether completion takes place in a javadoc comment or not.
*
* @return boolean true if completion takes place in a javadoc comment, false otherwise.
* @since 3.2
</body>
</ownedComment>
<ownedParameter xmi:id="_jl6VbWEMEeCdEc4VzBeWeQ" type="_dVOadGEMEeCdEc4VzBeWeQ" direction="return"/>
</ownedOperation>
<ownedOperation xmi:id="_jl6VbmEMEeCdEc4VzBeWeQ" name="isInJavadocText" visibility="public">
<ownedComment xmi:id="_jl6Vb2EMEeCdEc4VzBeWeQ">
<body>
* Tell user whether completion takes place in text area of a javadoc comment or not.
*
* @return boolean true if completion takes place in a text area of a javadoc comment, false otherwise.
* @since 3.2
</body>
</ownedComment>
<ownedParameter xmi:id="_jmEGYGEMEeCdEc4VzBeWeQ" type="_dVOadGEMEeCdEc4VzBeWeQ" direction="return"/>
</ownedOperation>
<ownedOperation xmi:id="_jmEGYWEMEeCdEc4VzBeWeQ" name="isInJavadocFormalReference" visibility="public">
<ownedComment xmi:id="_jmEGYmEMEeCdEc4VzBeWeQ">
<body>
* Tell user whether completion takes place in a formal reference of a javadoc tag or not.
* Tags with formal reference are:
* &lt;ul>
* &lt;li>&amp;#64;see&lt;/li>
* &lt;li>&amp;#64;throws&lt;/li>
* &lt;li>&amp;#64;exception&lt;/li>
* &lt;li>{&amp;#64;link Object}&lt;/li>
* &lt;li>{&amp;#64;linkplain Object}&lt;/li>
* &lt;li>{&amp;#64;value} when compiler compliance is set at leats to 1.5&lt;/li>
* &lt;/ul>
*
* @return boolean true if completion takes place in formal reference of a javadoc tag, false otherwise.
* @since 3.2
</body>
</ownedComment>
<ownedParameter xmi:id="_jmEGY2EMEeCdEc4VzBeWeQ" type="_dVOadGEMEeCdEc4VzBeWeQ" direction="return"/>
</ownedOperation>
<ownedOperation xmi:id="_jmN3YGEMEeCdEc4VzBeWeQ" name="isExtended" visibility="public">
<ownedComment xmi:id="_jmN3YWEMEeCdEc4VzBeWeQ">
<body>
* Returns whether this completion context is an extended context.
* Some methods of this context can be used only if this context is an extended context but an extended context consumes more memory.
*
* @return &lt;code>true&lt;/code> if this completion context is an extended context.
*
* @since 3.4
</body>
</ownedComment>
<ownedParameter xmi:id="_jmN3YmEMEeCdEc4VzBeWeQ" type="_dVOadGEMEeCdEc4VzBeWeQ" direction="return"/>
</ownedOperation>
<ownedOperation xmi:id="_jmN3Y2EMEeCdEc4VzBeWeQ" name="getExpectedTypesSignatures" visibility="public">
<ownedComment xmi:id="_jmN3ZGEMEeCdEc4VzBeWeQ">
<body>
* Return signatures of expected types of a potential completion proposal at the completion position.
*
* It's not mandatory to a completion proposal to respect this expectation.
*
* @return signatures expected types of a potential completion proposal at the completion position or
* &lt;code>null&lt;/code> if there is no expected types.
*
* @see Signature
</body>
</ownedComment>
<ownedParameter xmi:id="_jmN3ZWEMEeCdEc4VzBeWeQ" type="_dUn9g2EMEeCdEc4VzBeWeQ" direction="return">
<upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_jmN3Z2EMEeCdEc4VzBeWeQ" value="*"/>
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_jmN3ZmEMEeCdEc4VzBeWeQ"/>
</ownedParameter>
</ownedOperation>
<ownedOperation xmi:id="_jmN3aGEMEeCdEc4VzBeWeQ" name="getExpectedTypesKeys" visibility="public">
<ownedComment xmi:id="_jmN3aWEMEeCdEc4VzBeWeQ">
<body>
* Return keys of expected types of a potential completion proposal at the completion position.
*
* It's not mandatory to a completion proposal to respect this expectation.
*
* @return keys of expected types of a potential completion proposal at the completion position or
* &lt;code>null&lt;/code> if there is no expected types.
*
* @see org.eclipse.jdt.core.dom.ASTParser#createASTs(ICompilationUnit[], String[], org.eclipse.jdt.core.dom.ASTRequestor, org.eclipse.core.runtime.IProgressMonitor)
</body>
</ownedComment>
<ownedParameter xmi:id="_jmN3amEMEeCdEc4VzBeWeQ" type="_dUn9g2EMEeCdEc4VzBeWeQ" direction="return">
<upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_jmN3bGEMEeCdEc4VzBeWeQ" value="*"/>
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_jmN3a2EMEeCdEc4VzBeWeQ"/>
</ownedParameter>
</ownedOperation>
<ownedOperation xmi:id="_jmN3bWEMEeCdEc4VzBeWeQ" name="getToken" visibility="public">
<ownedComment xmi:id="_jmN3bmEMEeCdEc4VzBeWeQ">
<body>
* Returns the completed token.
* This token is either the identifier or Java language keyword
* or the string literal under, immediately preceding,
* the original request offset. If the original request offset
* is not within or immediately after an identifier or keyword or
* a string literal then the returned value is &lt;code>null&lt;/code>.
*
* @return completed token or &lt;code>null&lt;/code>
* @since 3.2
</body>
</ownedComment>
<ownedParameter xmi:id="_jmN3b2EMEeCdEc4VzBeWeQ" type="_dUn9g2EMEeCdEc4VzBeWeQ" direction="return">
<upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_jmN3cWEMEeCdEc4VzBeWeQ" value="*"/>
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_jmN3cGEMEeCdEc4VzBeWeQ"/>
</ownedParameter>
</ownedOperation>
<ownedOperation xmi:id="_jmN3cmEMEeCdEc4VzBeWeQ" name="getTokenKind" visibility="public">
<ownedComment xmi:id="_jmN3c2EMEeCdEc4VzBeWeQ">
<body>
* Returns the kind of completion token being proposed.
* &lt;p>
* The set of different kinds of completion token is
* expected to change over time. It is strongly recommended
* that clients do &lt;b>not&lt;/b> assume that the kind is one of the
* ones they know about, and code defensively for the
* possibility of unexpected future growth.
* &lt;/p>
*
* @return the kind; one of the kind constants declared on
* this class whose name starts with &lt;code>TOKEN_KIND&lt;/code>,
* or possibly a kind unknown to the caller
* @since 3.2
</body>
</ownedComment>
<ownedParameter xmi:id="_jmN3dGEMEeCdEc4VzBeWeQ" type="_dTlbsGEMEeCdEc4VzBeWeQ" direction="return"/>
</ownedOperation>
<ownedOperation xmi:id="_jmN3dWEMEeCdEc4VzBeWeQ" name="getTokenLocation" visibility="public">
<ownedComment xmi:id="_jmN3dmEMEeCdEc4VzBeWeQ">
<body>
* Returns the location of completion token being proposed.
* The returned location is a bit mask which can contain some values
* of the constants declared on this class whose name starts with &lt;code>TL&lt;/code>,
* or possibly values unknown to the caller.
*
* &lt;p>
* The set of different location values is expected to change over time.
* It is strongly recommended that clients do &lt;b>not&lt;/b> assume that
* the location contains only known value, and code defensively for
* the possibility of unexpected future growth.
* &lt;/p>
*
* @return the location
*
* @since 3.4
</body>
</ownedComment>
<ownedParameter xmi:id="_jmXBUGEMEeCdEc4VzBeWeQ" type="_dTlbsGEMEeCdEc4VzBeWeQ" direction="return"/>
</ownedOperation>
<ownedOperation xmi:id="_jmXBUWEMEeCdEc4VzBeWeQ" name="getTokenStart" visibility="public">
<ownedComment xmi:id="_jmXBUmEMEeCdEc4VzBeWeQ">
<body>
* Returns the character index of the start of the
* subrange in the source file buffer containing the
* relevant token being completed. This
* token is either the identifier or Java language keyword
* under, or immediately preceding, the original request
* offset. If the original request offset is not within
* or immediately after an identifier or keyword, then the
* position returned is original request offset and the
* token range is empty.
*
* @return character index of token start position (inclusive)
* @since 3.2
</body>
</ownedComment>
<ownedParameter xmi:id="_jmXBU2EMEeCdEc4VzBeWeQ" type="_dTlbsGEMEeCdEc4VzBeWeQ" direction="return"/>
</ownedOperation>
<ownedOperation xmi:id="_jmXBVGEMEeCdEc4VzBeWeQ" name="getTokenEnd" visibility="public">
<ownedParameter xmi:id="_jmXBVWEMEeCdEc4VzBeWeQ" type="_dTlbsGEMEeCdEc4VzBeWeQ" direction="return"/>
</ownedOperation>
<ownedOperation xmi:id="_jmXBVmEMEeCdEc4VzBeWeQ" name="getOffset" visibility="public">
<ownedComment xmi:id="_jmXBV2EMEeCdEc4VzBeWeQ">
<body>
* Returns the offset position in the source file buffer
* after which code assist is requested.
*
* @return offset position in the source file buffer
* @since 3.2
</body>
</ownedComment>
<ownedParameter xmi:id="_jmXBWGEMEeCdEc4VzBeWeQ" type="_dTlbsGEMEeCdEc4VzBeWeQ" direction="return"/>
</ownedOperation>
<ownedOperation xmi:id="_jmXBWWEMEeCdEc4VzBeWeQ" name="getEnclosingElement" visibility="public">
<ownedComment xmi:id="_jmXBWmEMEeCdEc4VzBeWeQ">
<body>
* Returns the innermost enclosing Java element which contains the completion location or &lt;code>null&lt;/code> if this element cannot be computed.
* The returned Java element and all Java elements in the same compilation unit which can be navigated to from the returned Java element are special Java elements:
* &lt;ul>
* &lt;li>they are based on the current content of the compilation unit's buffer, they are not the result of a reconcile operation&lt;/li>
* &lt;li>they are not updated if the buffer changes.&lt;/li>
* &lt;li>they do not contain local types which are not visible from the completion location.&lt;/li>
* &lt;li>they do not give information about categories. {@link IMember#getCategories()} will return an empty array&lt;/li>
* &lt;/ul>
*
* Reasons for returning &lt;code>null&lt;/code> include:
* &lt;ul>
* &lt;li>the compilation unit no longer exists&lt;/li>
* &lt;li>the completion occurred in a binary type. However this restriction might be relaxed in the future.&lt;/li>
* &lt;/ul>
*
* @return the innermost enclosing Java element which contains the completion location or &lt;code>null&lt;/code> if this element cannot be computed.
*
* @exception UnsupportedOperationException if the context is not an extended context
*
* @since 3.4
</body>
</ownedComment>
</ownedOperation>
</packagedElement>
<packagedElement xmi:type="uml:Class" xmi:id="_jmgyUGEMEeCdEc4VzBeWeQ" name="CompletionFlags" isLeaf="true">
<ownedComment xmi:id="_jmgyUWEMEeCdEc4VzBeWeQ">
<body>
* Utility class for decoding additional flags in completion proposal.
* &lt;p>
* This class provides static methods only; it is not intended to be
* instantiated or subclassed by clients.
* &lt;/p>
*
* @see CompletionProposal#getAdditionalFlags()
*
* @since 3.3
</body>
</ownedComment>
<ownedAttribute xmi:id="_jmgyUmEMEeCdEc4VzBeWeQ" name="Default" visibility="public" isLeaf="true" isStatic="true" type="_dTlbsGEMEeCdEc4VzBeWeQ" isUnique="false">
<ownedComment xmi:id="_jmgyU2EMEeCdEc4VzBeWeQ">
<body>
* Constant representing the absence of any flag
</body>
</ownedComment>
</ownedAttribute>
<ownedAttribute xmi:id="_jmp8QGEMEeCdEc4VzBeWeQ" name="StaticImport" visibility="public" isLeaf="true" isStatic="true" type="_dTlbsGEMEeCdEc4VzBeWeQ" isUnique="false">
<ownedComment xmi:id="_jmp8QWEMEeCdEc4VzBeWeQ">
<body>
* Constant representing a static import
</body>
</ownedComment>
</ownedAttribute>
<ownedOperation xmi:id="_jmp8QmEMEeCdEc4VzBeWeQ" name="isStaticImport" visibility="public" isStatic="true">
<ownedComment xmi:id="_jmp8Q2EMEeCdEc4VzBeWeQ">
<body>
* Returns whether the given integer includes the {@link #StaticImport} flag.
*
* @param flags the flags
* @return &lt;code>true&lt;/code> if the {@link #StaticImport} flag is included
</body>
</ownedComment>
<ownedParameter xmi:id="_jmp8RGEMEeCdEc4VzBeWeQ" type="_dVOadGEMEeCdEc4VzBeWeQ" direction="return"/>
<ownedParameter xmi:id="_jmp8RWEMEeCdEc4VzBeWeQ" name="flags" type="_dTlbsGEMEeCdEc4VzBeWeQ"/>
</ownedOperation>
</packagedElement>
<packagedElement xmi:type="uml:Class" xmi:id="_jnQZMGEMEeCdEc4VzBeWeQ" name="CompletionProposal">
<ownedComment xmi:id="_jnQZMWEMEeCdEc4VzBeWeQ">
<body>
* Completion proposal.
* &lt;p>
* In typical usage, the user working in a Java code editor issues
* a code assist command. This command results in a call to
* &lt;code>ICodeAssist.codeComplete(position, completionRequestor)&lt;/code>
* passing the current position in the source code. The code assist
* engine analyzes the code in the buffer, determines what kind of
* Java language construct is at that position, and proposes ways
* to complete that construct. These proposals are instances of
* the class &lt;code>CompletionProposal&lt;/code>. These proposals,
* perhaps after sorting and filtering, are presented to the user
* to make a choice.
* &lt;/p>
* &lt;p>
* The proposal is as follows: insert
* the {@linkplain #getCompletion() completion string} into the
* source file buffer, replacing the characters between
* {@linkplain #getReplaceStart() the start}
* and {@linkplain #getReplaceEnd() end}. The string
* can be arbitrary; for example, it might include not only the
* name of a method but a set of parentheses. Moreover, the source
* range may include source positions before or after the source
* position where &lt;code>ICodeAssist.codeComplete&lt;/code> was invoked.
* The rest of the information associated with the proposal is
* to provide context that may help a user to choose from among
* competing proposals.
* &lt;/p>
* &lt;p>
* The completion engine creates instances of this class.
* &lt;/p>
*
* @see ICodeAssist#codeComplete(int, CompletionRequestor)
* @since 3.0
* @noinstantiate This class is not intended to be instantiated by clients.
* @noextend This class is not intended to be subclassed by clients.
</body>
</ownedComment>
<ownedAttribute xmi:id="_jnQZMmEMEeCdEc4VzBeWeQ" name="ANONYMOUS_CLASS_DECLARATION" visibility="public" isLeaf="true" isStatic="true" type="_dTlbsGEMEeCdEc4VzBeWeQ" isUnique="false">
<ownedComment xmi:id="_jnQZM2EMEeCdEc4VzBeWeQ">
<body>
* Completion is a declaration of an anonymous class.
* This kind of completion might occur in a context like
* &lt;code>&quot;new List(^;&quot;&lt;/code> and complete it to
* &lt;code>&quot;new List() {}&quot;&lt;/code>.
* &lt;p>
* The following additional context information is available
* for this kind of completion proposal at little extra cost:
* &lt;ul>
* &lt;li>{@link #getDeclarationSignature()} -
* the type signature of the type being implemented or subclassed
* &lt;/li>
* &lt;li>{@link #getDeclarationKey()} -
* the type unique key of the type being implemented or subclassed
* &lt;/li>
* &lt;li>{@link #getSignature()} -
* the method signature of the constructor that is referenced
* &lt;/li>
* &lt;li>{@link #getKey()} -
* the method unique key of the constructor that is referenced
* if the declaring type is not an interface
* &lt;/li>
* &lt;li>{@link #getFlags()} -
* the modifiers flags of the constructor that is referenced
* &lt;/li>
* &lt;/ul>
* &lt;/p>
*
* @see #getKind()
</body>
</ownedComment>
</ownedAttribute>
<ownedAttribute xmi:id="_jnQZNGEMEeCdEc4VzBeWeQ" name="FIELD_REF" visibility="public" isLeaf="true" isStatic="true" type="_dTlbsGEMEeCdEc4VzBeWeQ" isUnique="false">
<ownedComment xmi:id="_jnQZNWEMEeCdEc4VzBeWeQ">
<body>
* Completion is a reference to a field.
* This kind of completion might occur in a context like
* &lt;code>&quot;this.ref^ = 0;&quot;&lt;/code> and complete it to
* &lt;code>&quot;this.refcount = 0;&quot;&lt;/code>.
* &lt;p>
* The following additional context information is available
* for this kind of completion proposal at little extra cost:
* &lt;ul>
* &lt;li>{@link #getDeclarationSignature()} -
* the type signature of the type that declares the field that is referenced
* &lt;/li>
* &lt;li>{@link #getFlags()} -
* the modifiers flags (including ACC_ENUM) of the field that is referenced
* &lt;/li>
* &lt;li>{@link #getName()} -
* the simple name of the field that is referenced
* &lt;/li>
* &lt;li>{@link #getSignature()} -
* the type signature of the field's type (as opposed to the
* signature of the type in which the referenced field
* is declared)
* &lt;/li>
* &lt;/ul>
* &lt;/p>
*
* @see #getKind()
</body>
</ownedComment>
</ownedAttribute>
<ownedAttribute xmi:id="_jnQZNmEMEeCdEc4VzBeWeQ" name="KEYWORD" visibility="public" isLeaf="true" isStatic="true" type="_dTlbsGEMEeCdEc4VzBeWeQ" isUnique="false">
<ownedComment xmi:id="_jnQZN2EMEeCdEc4VzBeWeQ">
<body>
* Completion is a keyword.
* This kind of completion might occur in a context like
* &lt;code>&quot;public cl^ Foo {}&quot;&lt;/code> and complete it to
* &lt;code>&quot;public class Foo {}&quot;&lt;/code>.
* &lt;p>
* The following additional context information is available
* for this kind of completion proposal at little extra cost:
* &lt;ul>
* &lt;li>{@link #getName()} -
* the keyword token
* &lt;/li>
* &lt;li>{@link #getFlags()} -
* the corresponding modifier flags if the keyword is a modifier
* &lt;/li>
* &lt;/ul>
* &lt;/p>
*
* @see #getKind()
</body>
</ownedComment>
</ownedAttribute>
<ownedAttribute xmi:id="_jnaKMGEMEeCdEc4VzBeWeQ" name="LABEL_REF" visibility="public" isLeaf="true" isStatic="true" type="_dTlbsGEMEeCdEc4VzBeWeQ" isUnique="false">
<ownedComment xmi:id="_jnaKMWEMEeCdEc4VzBeWeQ">
<body>
* Completion is a reference to a label.
* This kind of completion might occur in a context like
* &lt;code>&quot;break lo^;&quot;&lt;/code> and complete it to
* &lt;code>&quot;break loop;&quot;&lt;/code>.
* &lt;p>
* The following additional context information is available
* for this kind of completion proposal at little extra cost:
* &lt;ul>
* &lt;li>{@link #getName()} -
* the simple name of the label that is referenced
* &lt;/li>
* &lt;/ul>
* &lt;/p>
*
* @see #getKind()
</body>
</ownedComment>
</ownedAttribute>
<ownedAttribute xmi:id="_jnaKMmEMEeCdEc4VzBeWeQ" name="LOCAL_VARIABLE_REF" visibility="public" isLeaf="true" isStatic="true" type="_dTlbsGEMEeCdEc4VzBeWeQ" isUnique="false">
<ownedComment xmi:id="_jnaKM2EMEeCdEc4VzBeWeQ">
<body>
* Completion is a reference to a local variable.
* This kind of completion might occur in a context like
* &lt;code>&quot;ke^ = 4;&quot;&lt;/code> and complete it to
* &lt;code>&quot;keys = 4;&quot;&lt;/code>.
* &lt;p>
* The following additional context information is available
* for this kind of completion proposal at little extra cost:
* &lt;ul>
* &lt;li>{@link #getFlags()} -
* the modifiers flags of the local variable that is referenced
* &lt;/li>
* &lt;li>{@link #getName()} -
* the simple name of the local variable that is referenced
* &lt;/li>
* &lt;li>{@link #getSignature()} -
* the type signature of the local variable's type
* &lt;/li>
* &lt;/ul>
* &lt;/p>
*
* @see #getKind()
</body>
</ownedComment>
</ownedAttribute>
<ownedAttribute xmi:id="_jnaKNGEMEeCdEc4VzBeWeQ" name="METHOD_REF" visibility="public" isLeaf="true" isStatic="true" type="_dTlbsGEMEeCdEc4VzBeWeQ" isUnique="false">
<ownedComment xmi:id="_jnaKNWEMEeCdEc4VzBeWeQ">
<body>
* Completion is a reference to a method.
* This kind of completion might occur in a context like
* &lt;code>&quot;System.out.pr^();&quot;&lt;/code> and complete it to
* &lt;code>&quot;&quot;System.out.println();&quot;&lt;/code>.
* &lt;p>
* The following additional context information is available
* for this kind of completion proposal at little extra cost:
* &lt;ul>
* &lt;li>{@link #getDeclarationSignature()} -
* the type signature of the type that declares the method that is referenced
* &lt;/li>
* &lt;li>{@link #getFlags()} -
* the modifiers flags of the method that is referenced
* &lt;/li>
* &lt;li>{@link #getName()} -
* the simple name of the method that is referenced
* &lt;/li>
* &lt;li>{@link #getSignature()} -
* the method signature of the method that is referenced
* &lt;/li>
* &lt;/ul>
* &lt;/p>
*
* @see #getKind()
</body>
</ownedComment>
</ownedAttribute>
<ownedAttribute xmi:id="_jnaKNmEMEeCdEc4VzBeWeQ" name="METHOD_DECLARATION" visibility="public" isLeaf="true" isStatic="true" type="_dTlbsGEMEeCdEc4VzBeWeQ" isUnique="false">
<ownedComment xmi:id="_jnjUIGEMEeCdEc4VzBeWeQ">
<body>
* Completion is a declaration of a method.
* This kind of completion might occur in a context like
* &lt;code>&quot;new List() {si^};&quot;&lt;/code> and complete it to
* &lt;code>&quot;new List() {public int size() {} };&quot;&lt;/code>.
* &lt;p>
* The following additional context information is available
* for this kind of completion proposal at little extra cost:
* &lt;ul>
* &lt;li>{@link #getDeclarationSignature()} -
* the type signature of the type that declares the
* method that is being overridden or implemented
* &lt;/li>
* &lt;li>{@link #getDeclarationKey()} -
* the unique of the type that declares the
* method that is being overridden or implemented
* &lt;/li>
* &lt;li>{@link #getName()} -
* the simple name of the method that is being overridden
* or implemented
* &lt;/li>
* &lt;li>{@link #getSignature()} -
* the method signature of the method that is being
* overridden or implemented
* &lt;/li>
* &lt;li>{@link #getKey()} -
* the method unique key of the method that is being
* overridden or implemented
* &lt;/li>
* &lt;li>{@link #getFlags()} -
* the modifiers flags of the method that is being
* overridden or implemented
* &lt;/li>
* &lt;/ul>
* &lt;/p>
*
* @see #getKind()
</body>
</ownedComment>
</ownedAttribute>
<ownedAttribute xmi:id="_jnjUIWEMEeCdEc4VzBeWeQ" name="PACKAGE_REF" visibility="public" isLeaf="true" isStatic="true" type="_dTlbsGEMEeCdEc4VzBeWeQ" isUnique="false">
<ownedComment xmi:id="_jnjUImEMEeCdEc4VzBeWeQ">
<body>
* Completion is a reference to a package.
* This kind of completion might occur in a context like
* &lt;code>&quot;import java.u^.*;&quot;&lt;/code> and complete it to
* &lt;code>&quot;import java.util.*;&quot;&lt;/code>.
* &lt;p>
* The following additional context information is available
* for this kind of completion proposal at little extra cost:
* &lt;ul>
* &lt;li>{@link #getDeclarationSignature()} -
* the dot-based package name of the package that is referenced
* &lt;/li>
* &lt;/ul>
* &lt;/p>
*
* @see #getKind()
</body>
</ownedComment>
</ownedAttribute>
<ownedAttribute xmi:id="_jnjUI2EMEeCdEc4VzBeWeQ" name="TYPE_REF" visibility="public" isLeaf="true" isStatic="true" type="_dTlbsGEMEeCdEc4VzBeWeQ" isUnique="false">
<ownedComment xmi:id="_jnjUJGEMEeCdEc4VzBeWeQ">
<body>
* Completion is a reference to a type. Any kind of type
* is allowed, including primitive types, reference types,
* array types, parameterized types, and type variables.
* This kind of completion might occur in a context like
* &lt;code>&quot;public static Str^ key;&quot;&lt;/code> and complete it to
* &lt;code>&quot;public static String key;&quot;&lt;/code>.
* &lt;p>
* The following additional context information is available
* for this kind of completion proposal at little extra cost:
* &lt;ul>
* &lt;li>{@link #getDeclarationSignature()} -
* the dot-based package name of the package that contains
* the type that is referenced
* &lt;/li>
* &lt;li>{@link #getSignature()} -
* the type signature of the type that is referenced
* &lt;/li>
* &lt;li>{@link #getFlags()} -
* the modifiers flags (including Flags.AccInterface, AccEnum,
* and AccAnnotation) of the type that is referenced
* &lt;/li>
* &lt;/ul>
* &lt;/p>
*
* @see #getKind()
</body>
</ownedComment>
</ownedAttribute>
<ownedAttribute xmi:id="_jnjUJWEMEeCdEc4VzBeWeQ" name="VARIABLE_DECLARATION" visibility="public" isLeaf="true" isStatic="true" type="_dTlbsGEMEeCdEc4VzBeWeQ" isUnique="false">
<ownedComment xmi:id="_jnjUJmEMEeCdEc4VzBeWeQ">
<body>
* Completion is a declaration of a variable (locals, parameters,
* fields, etc.).
* &lt;p>
* The following additional context information is available
* for this kind of completion proposal at little extra cost:
* &lt;ul>
* &lt;li>{@link #getName()} -
* the simple name of the variable being declared
* &lt;/li>
* &lt;li>{@link #getSignature()} -
* the type signature of the type of the variable
* being declared
* &lt;/li>
* &lt;li>{@link #getFlags()} -
* the modifiers flags of the variable being declared
* &lt;/li>
* &lt;/ul>
* &lt;/p>
* @see #getKind()
</body>
</ownedComment>
</ownedAttribute>
<ownedAttribute xmi:id="_jnjUJ2EMEeCdEc4VzBeWeQ" name="POTENTIAL_METHOD_DECLARATION" visibility="public" isLeaf="true" isStatic="true" type="_dTlbsGEMEeCdEc4VzBeWeQ" isUnique="false">
<ownedComment xmi:id="_jnjUKGEMEeCdEc4VzBeWeQ">
<body>
* Completion is a declaration of a new potential method.
* This kind of completion might occur in a context like
* &lt;code>&quot;new List() {si^};&quot;&lt;/code> and complete it to
* &lt;code>&quot;new List() {public int si() {} };&quot;&lt;/code>.
* &lt;p>
* The following additional context information is available
* for this kind of completion proposal at little extra cost:
* &lt;ul>
* &lt;li>{@link #getDeclarationSignature()} -
* the type signature of the type that declares the
* method that is being created
* &lt;/li>
* &lt;li>{@link #getName()} -
* the simple name of the method that is being created
* &lt;/li>
* &lt;li>{@link #getSignature()} -
* the method signature of the method that is being
* created
* &lt;/li>
* &lt;li>{@link #getFlags()} -
* the modifiers flags of the method that is being
* created
* &lt;/li>
* &lt;/ul>
* &lt;/p>
*
* @see #getKind()
* @since 3.1
</body>
</ownedComment>
</ownedAttribute>
<ownedAttribute xmi:id="_jn2PEGEMEeCdEc4VzBeWeQ" name="METHOD_NAME_REFERENCE" visibility="public" isLeaf="true" isStatic="true" type="_dTlbsGEMEeCdEc4VzBeWeQ" isUnique="false">
<ownedComment xmi:id="_jn2PEWEMEeCdEc4VzBeWeQ">
<body>
* Completion is a reference to a method name.
* This kind of completion might occur in a context like
* &lt;code>&quot;import p.X.fo^&quot;&lt;/code> and complete it to
* &lt;code>&quot;import p.X.foo;&quot;&lt;/code>.
* &lt;p>
* The following additional context information is available
* for this kind of completion proposal at little extra cost:
* &lt;ul>
* &lt;li>{@link #getDeclarationSignature()} -
* the type signature of the type that declares the method that is referenced
* &lt;/li>
* &lt;li>{@link #getFlags()} -
* the modifiers flags of the method that is referenced
* &lt;/li>
* &lt;li>{@link #getName()} -
* the simple name of the method that is referenced
* &lt;/li>
* &lt;li>{@link #getSignature()} -
* the method signature of the method that is referenced
* &lt;/li>
* &lt;/ul>
* &lt;/p>
*
* @see #getKind()
* @since 3.1
</body>
</ownedComment>
</ownedAttribute>
<ownedAttribute xmi:id="_jn2PEmEMEeCdEc4VzBeWeQ" name="ANNOTATION_ATTRIBUTE_REF" visibility="public" isLeaf="true" isStatic="true" type="_dTlbsGEMEeCdEc4VzBeWeQ" isUnique="false">
<ownedComment xmi:id="_jn2PE2EMEeCdEc4VzBeWeQ">
<body>
* Completion is a reference to annotation's attribute.
* This kind of completion might occur in a context like
* &lt;code>&quot;@Annot(attr^=value)&quot;&lt;/code> and complete it to
* &lt;code>&quot;@Annot(attribute^=value)&quot;&lt;/code>.
* &lt;p>
* The following additional context information is available
* for this kind of completion proposal at little extra cost:
* &lt;ul>
* &lt;li>{@link #getDeclarationSignature()} -
* the type signature of the annotation that declares the attribute that is referenced
* &lt;/li>
* &lt;li>{@link #getFlags()} -
* the modifiers flags of the attribute that is referenced
* &lt;/li>
* &lt;li>{@link #getName()} -
* the simple name of the attribute that is referenced
* &lt;/li>
* &lt;li>{@link #getSignature()} -
* the type signature of the attribute's type (as opposed to the
* signature of the type in which the referenced attribute
* is declared)
* &lt;/li>
* &lt;/ul>
* &lt;/p>
*
* @see #getKind()
* @since 3.1
</body>
</ownedComment>
</ownedAttribute>
<ownedAttribute xmi:id="_jn2PFGEMEeCdEc4VzBeWeQ" name="JAVADOC_FIELD_REF" visibility="public" isLeaf="true" isStatic="true" type="_dTlbsGEMEeCdEc4VzBeWeQ" isUnique="false">
<ownedComment xmi:id="_jn2PFWEMEeCdEc4VzBeWeQ">
<body>
* Completion is a link reference to a field in a javadoc text.
* This kind of completion might occur in a context like
* &lt;code>&quot; * blabla System.o^ blabla&quot;&lt;/code> and complete it to
* &lt;code>&quot; * blabla {&amp;#64;link System#out } blabla&quot;&lt;/code>.
* &lt;p>
* The following additional context information is available
* for this kind of completion proposal at little extra cost:
* &lt;ul>
* &lt;li>{@link #getDeclarationSignature()} -
* the type signature of the type that declares the field that is referenced
* &lt;/li>
* &lt;li>{@link #getFlags()} -
* the modifiers flags (including ACC_ENUM) of the field that is referenced
* &lt;/li>
* &lt;li>{@link #getName()} -
* the simple name of the field that is referenced
* &lt;/li>
* &lt;li>{@link #getSignature()} -
* the type signature of the field's type (as opposed to the
* signature of the type in which the referenced field
* is declared)
* &lt;/li>
* &lt;/ul>
* &lt;/p>
*
* @see #getKind()
* @since 3.2
</body>
</ownedComment>
</ownedAttribute>
<ownedAttribute xmi:id="_jn2PFmEMEeCdEc4VzBeWeQ" name="JAVADOC_METHOD_REF" visibility="public" isLeaf="true" isStatic="true" type="_dTlbsGEMEeCdEc4VzBeWeQ" isUnique="false">
<ownedComment xmi:id="_jn2PF2EMEeCdEc4VzBeWeQ">
<body>
* Completion is a link reference to a method in a javadoc text.
* This kind of completion might occur in a context like
* &lt;code>&quot; * blabla Runtime#get^ blabla&quot;&lt;/code> and complete it to
* &lt;code>&quot; * blabla {&amp;#64;link Runtime#getRuntime() }&quot;&lt;/code>.
* &lt;p>
* The following additional context information is available
* for this kind of completion proposal at little extra cost:
* &lt;ul>
* &lt;li>{@link #getDeclarationSignature()} -
* the type signature of the type that declares the method that is referenced
* &lt;/li>
* &lt;li>{@link #getFlags()} -
* the modifiers flags of the method that is referenced
* &lt;/li>
* &lt;li>{@link #getName()} -
* the simple name of the method that is referenced
* &lt;/li>
* &lt;li>{@link #getSignature()} -
* the method signature of the method that is referenced
* &lt;/li>
* &lt;/ul>
* &lt;/p>
*
* @see #getKind()
* @since 3.2
</body>
</ownedComment>
</ownedAttribute>
<ownedAttribute xmi:id="_jn2PGGEMEeCdEc4VzBeWeQ" name="JAVADOC_TYPE_REF" visibility="public" isLeaf="true" isStatic="true" type="_dTlbsGEMEeCdEc4VzBeWeQ" isUnique="false">
<ownedComment xmi:id="_joAAEGEMEeCdEc4VzBeWeQ">
<body>
* Completion is a link reference to a type in a javadoc text.
* Any kind of type is allowed, including primitive types, reference types,
* array types, parameterized types, and type variables.
* This kind of completion might occur in a context like
* &lt;code>&quot; * blabla Str^ blabla&quot;&lt;/code> and complete it to
* &lt;code>&quot; * blabla {&amp;#64;link String } blabla&quot;&lt;/code>.
* &lt;p>
* The following additional context information is available
* for this kind of completion proposal at little extra cost:
* &lt;ul>
* &lt;li>{@link #getDeclarationSignature()} -
* the dot-based package name of the package that contains
* the type that is referenced
* &lt;/li>
* &lt;li>{@link #getSignature()} -
* the type signature of the type that is referenced
* &lt;/li>
* &lt;li>{@link #getFlags()} -
* the modifiers flags (including Flags.AccInterface, AccEnum,
* and AccAnnotation) of the type that is referenced
* &lt;/li>
* &lt;/ul>
* &lt;/p>
*
* @see #getKind()
* @since 3.2
</body>
</ownedComment>
</ownedAttribute>
<ownedAttribute xmi:id="_joAAEWEMEeCdEc4VzBeWeQ" name="JAVADOC_VALUE_REF" visibility="public" isLeaf="true" isStatic="true" type="_dTlbsGEMEeCdEc4VzBeWeQ" isUnique="false">
<ownedComment xmi:id="_joAAEmEMEeCdEc4VzBeWeQ">
<body>
* Completion is a value reference to a static field in a javadoc text.
* This kind of completion might occur in a context like
* &lt;code>&quot; * blabla System.o^ blabla&quot;&lt;/code> and complete it to
* &lt;code>&quot; * blabla {&amp;#64;value System#out } blabla&quot;&lt;/code>.
* &lt;p>
* The following additional context information is available
* for this kind of completion proposal at little extra cost:
* &lt;ul>
* &lt;li>{@link #getDeclarationSignature()} -
* the type signature of the type that declares the field that is referenced
* &lt;/li>
* &lt;li>{@link #getFlags()} -
* the modifiers flags (including ACC_ENUM) of the field that is referenced
* &lt;/li>
* &lt;li>{@link #getName()} -
* the simple name of the field that is referenced
* &lt;/li>
* &lt;li>{@link #getSignature()} -
* the type signature of the field's type (as opposed to the
* signature of the type in which the referenced field
* is declared)
* &lt;/li>
* &lt;/ul>
* &lt;/p>
*
* @see #getKind()
* @since 3.2
</body>
</ownedComment>
</ownedAttribute>
<ownedAttribute xmi:id="_joAAE2EMEeCdEc4VzBeWeQ" name="JAVADOC_PARAM_REF" visibility="public" isLeaf="true" isStatic="true" type="_dTlbsGEMEeCdEc4VzBeWeQ" isUnique="false">
<ownedComment xmi:id="_joAAFGEMEeCdEc4VzBeWeQ">
<body>
* Completion is a method argument or a class/method type parameter
* in javadoc param tag.
* This kind of completion might occur in a context like
* &lt;code>&quot; * @param arg^ blabla&quot;&lt;/code> and complete it to
* &lt;code>&quot; * @param argument blabla&quot;&lt;/code>.
* or
* &lt;code>&quot; * @param &amp;lt;T^ blabla&quot;&lt;/code> and complete it to
* &lt;code>&quot; * @param &amp;lt;TT&amp;gt; blabla&quot;&lt;/code>.
* &lt;p>
* The following additional context information is available
* for this kind of completion proposal at little extra cost:
* &lt;ul>
* &lt;li>{@link #getDeclarationSignature()} -
* the type signature of the type that declares the field that is referenced
* &lt;/li>
* &lt;li>{@link #getFlags()} -
* the modifiers flags (including ACC_ENUM) of the field that is referenced
* &lt;/li>
* &lt;li>{@link #getName()} -
* the simple name of the field that is referenced
* &lt;/li>
* &lt;li>{@link #getSignature()} -
* the type signature of the field's type (as opposed to the
* signature of the type in which the referenced field
* is declared)
* &lt;/li>
* &lt;/ul>
* &lt;/p>
*
* @see #getKind()
* @since 3.2
</body>
</ownedComment>
</ownedAttribute>
<ownedAttribute xmi:id="_joAAFWEMEeCdEc4VzBeWeQ" name="JAVADOC_BLOCK_TAG" visibility="public" isLeaf="true" isStatic="true" type="_dTlbsGEMEeCdEc4VzBeWeQ" isUnique="false">
<ownedComment xmi:id="_joAAFmEMEeCdEc4VzBeWeQ">
<body>
* Completion is a javadoc block tag.
* This kind of completion might occur in a context like
* &lt;code>&quot; * @s^ blabla&quot;&lt;/code> and complete it to
* &lt;code>&quot; * @see blabla&quot;&lt;/code>.
* &lt;p>
* The following additional context information is available
* for this kind of completion proposal at little extra cost:
* &lt;ul>
* &lt;li>{@link #getDeclarationSignature()} -
* the type signature of the type that declares the field that is referenced
* &lt;/li>
* &lt;li>{@link #getFlags()} -
* the modifiers flags (including ACC_ENUM) of the field that is referenced
* &lt;/li>
* &lt;li>{@link #getName()} -
* the simple name of the field that is referenced
* &lt;/li>
* &lt;li>{@link #getSignature()} -
* the type signature of the field's type (as opposed to the
* signature of the type in which the referenced field
* is declared)
* &lt;/li>
* &lt;/ul>
* &lt;/p>
*
* @see #getKind()
* @since 3.2
</body>
</ownedComment>
</ownedAttribute>
<ownedAttribute xmi:id="_joAAF2EMEeCdEc4VzBeWeQ" name="JAVADOC_INLINE_TAG" visibility="public" isLeaf="true" isStatic="true" type="_dTlbsGEMEeCdEc4VzBeWeQ" isUnique="false">
<ownedComment xmi:id="_joAAGGEMEeCdEc4VzBeWeQ">
<body>
* Completion is a javadoc inline tag.
* This kind of completion might occur in a context like
* &lt;code>&quot; * Insert @l^ Object&quot;&lt;/code> and complete it to
* &lt;code>&quot; * Insert {&amp;#64;link Object }&quot;&lt;/code>.
* &lt;p>
* The following additional context information is available
* for this kind of completion proposal at little extra cost:
* &lt;ul>
* &lt;li>{@link #getDeclarationSignature()} -
* the type signature of the type that declares the field that is referenced
* &lt;/li>
* &lt;li>{@link #getFlags()} -
* the modifiers flags (including ACC_ENUM) of the field that is referenced
* &lt;/li>
* &lt;li>{@link #getName()} -
* the simple name of the field that is referenced
* &lt;/li>
* &lt;li>{@link #getSignature()} -
* the type signature of the field's type (as opposed to the
* signature of the type in which the referenced field
* is declared)
* &lt;/li>
* &lt;/ul>
* &lt;/p>
*
* @see #getKind()
* @since 3.2
</body>
</ownedComment>
</ownedAttribute>
<ownedAttribute xmi:id="_joAAGWEMEeCdEc4VzBeWeQ" name="FIELD_IMPORT" visibility="public" isLeaf="true" isStatic="true" type="_dTlbsGEMEeCdEc4VzBeWeQ" isUnique="false">
<ownedComment xmi:id="_joAAGmEMEeCdEc4VzBeWeQ">
<body>
* Completion is an import of reference to a static field.
* &lt;p>
* The following additional context information is available
* for this kind of completion proposal at little extra cost:
* &lt;ul>
* &lt;li>{@link #getDeclarationSignature()} -
* the type signature of the type that declares the field that is imported
* &lt;/li>
* &lt;li>{@link #getFlags()} -
* the modifiers flags (including ACC_ENUM) of the field that is imported
* &lt;/li>
* &lt;li>{@link #getName()} -
* the simple name of the field that is imported
* &lt;/li>
* &lt;li>{@link #getSignature()} -
* the type signature of the field's type (as opposed to the
* signature of the type in which the referenced field
* is declared)
* &lt;/li>
* &lt;li>{@link #getAdditionalFlags()} -
* the completion flags (including ComletionFlags.StaticImport)
* of the proposed import
* &lt;/li>
* &lt;/ul>
* &lt;/p>
*
* @see #getKind()
*
* @since 3.3
</body>
</ownedComment>
</ownedAttribute>
<ownedAttribute xmi:id="_joAAG2EMEeCdEc4VzBeWeQ" name="METHOD_IMPORT" visibility="public" isLeaf="true" isStatic="true" type="_dTlbsGEMEeCdEc4VzBeWeQ" isUnique="false">
<ownedComment xmi:id="_joJxEGEMEeCdEc4VzBeWeQ">
<body>
* Completion is an import of reference to a static method.
* &lt;p>
* The following additional context information is available
* for this kind of completion proposal at little extra cost:
* &lt;ul>
* &lt;li>{@link #getDeclarationSignature()} -
* the type signature of the type that declares the method that is imported
* &lt;/li>
* &lt;li>{@link #getFlags()} -
* the modifiers flags of the method that is imported
* &lt;/li>
* &lt;li>{@link #getName()} -
* the simple name of the method that is imported
* &lt;/li>
* &lt;li>{@link #getSignature()} -
* the method signature of the method that is imported
* &lt;/li>
* &lt;li>{@link #getAdditionalFlags()} -
* the completion flags (including ComletionFlags.StaticImport)
* of the proposed import
* &lt;/li>
* &lt;/ul>
* &lt;/p>
*
* @see #getKind()
*
* @since 3.3
</body>
</ownedComment>
</ownedAttribute>
<ownedAttribute xmi:id="_joJxEWEMEeCdEc4VzBeWeQ" name="TYPE_IMPORT" visibility="public" isLeaf="true" isStatic="true" type="_dTlbsGEMEeCdEc4VzBeWeQ" isUnique="false">
<ownedComment xmi:id="_joJxEmEMEeCdEc4VzBeWeQ">
<body>
* Completion is an import of reference to a type.
* Only reference to reference types are allowed.
* &lt;p>
* The following additional context information is available
* for this kind of completion proposal at little extra cost:
* &lt;ul>
* &lt;li>{@link #getDeclarationSignature()} -
* the dot-based package name of the package that contains
* the type that is imported
* &lt;/li>
* &lt;li>{@link #getSignature()} -
* the type signature of the type that is imported
* &lt;/li>
* &lt;li>{@link #getFlags()} -
* the modifiers flags (including Flags.AccInterface, AccEnum,
* and AccAnnotation) of the type that is imported
* &lt;/li>
* &lt;li>{@link #getAdditionalFlags()} -
* the completion flags (including ComletionFlags.StaticImport)
* of the proposed import
* &lt;/li>
* &lt;/ul>
* &lt;/p>
*
* @see #getKind()
*
* @since 3.3
</body>
</ownedComment>
</ownedAttribute>
<ownedAttribute xmi:id="_joJxE2EMEeCdEc4VzBeWeQ" name="METHOD_REF_WITH_CASTED_RECEIVER" visibility="public" isLeaf="true" isStatic="true" type="_dTlbsGEMEeCdEc4VzBeWeQ" isUnique="false">
<ownedComment xmi:id="_joJxFGEMEeCdEc4VzBeWeQ">
<body>
* Completion is a reference to a method with a casted receiver.
* This kind of completion might occur in a context like
* &lt;code>&quot;receiver.fo^();&quot;&lt;/code> and complete it to
* &lt;code>&quot;&quot;((X)receiver).foo();&quot;&lt;/code>.
* &lt;p>
* The following additional context information is available
* for this kind of completion proposal at little extra cost:
* &lt;ul>
* &lt;li>{@link #getDeclarationSignature()} -
* the type signature of the type that declares the method that is referenced
* &lt;/li>
* &lt;li>{@link #getFlags()} -
* the modifiers flags of the method that is referenced
* &lt;/li>
* &lt;li>{@link #getName()} -
* the simple name of the method that is referenced
* &lt;/li>
* &lt;li>{@link #getReceiverSignature()} -
* the type signature of the receiver type. It's the type of the cast expression.
* &lt;/li>
* &lt;li>{@link #getSignature()} -
* the method signature of the method that is referenced
* &lt;/li>
* &lt;/ul>
* &lt;/p>
*
* @see #getKind()
*
* @since 3.4
</body>
</ownedComment>
</ownedAttribute>
<ownedAttribute xmi:id="_joJxFWEMEeCdEc4VzBeWeQ" name="FIELD_REF_WITH_CASTED_RECEIVER" visibility="public" isLeaf="true" isStatic="true" type="_dTlbsGEMEeCdEc4VzBeWeQ" isUnique="false">
<ownedComment xmi:id="_joJxFmEMEeCdEc4VzBeWeQ">
<body>
* Completion is a reference to a field with a casted receiver.
* This kind of completion might occur in a context like
* &lt;code>&quot;recevier.ref^ = 0;&quot;&lt;/code> and complete it to
* &lt;code>&quot;((X)receiver).refcount = 0;&quot;&lt;/code>.
* &lt;p>
* The following additional context information is available
* for this kind of completion proposal at little extra cost:
* &lt;ul>
* &lt;li>{@link #getDeclarationSignature()} -
* the type signature of the type that declares the field that is referenced
* &lt;/li>
* &lt;li>{@link #getFlags()} -
* the modifiers flags (including ACC_ENUM) of the field that is referenced
* &lt;/li>
* &lt;li>{@link #getName()} -
* the simple name of the field that is referenced
* &lt;/li>
* &lt;li>{@link #getReceiverSignature()} -
* the type signature of the receiver type. It's the type of the cast expression.
* &lt;/li>
* &lt;li>{@link #getSignature()} -
* the type signature of the field's type (as opposed to the
* signature of the type in which the referenced field
* is declared)
* &lt;/li>
*
* &lt;/ul>
* &lt;/p>
*
* @see #getKind()
*
* @since 3.4
</body>
</ownedComment>
</ownedAttribute>
<ownedAttribute xmi:id="_joJxF2EMEeCdEc4VzBeWeQ" name="CONSTRUCTOR_INVOCATION" visibility="public" isLeaf="true" isStatic="true" type="_dTlbsGEMEeCdEc4VzBeWeQ" isUnique="false">
<ownedComment xmi:id="_joJxGGEMEeCdEc4VzBeWeQ">
<body>
* Completion is a reference to a constructor.
* This kind of completion might occur in a context like
* &lt;code>&quot;new Lis&quot;&lt;/code> and complete it to
* &lt;code>&quot;new List();&quot;&lt;/code> if List is a class that is not abstract.
* &lt;p>
* The following additional context information is available
* for this kind of completion proposal at little extra cost:
* &lt;ul>
* &lt;li>{@link #getDeclarationSignature()} -
* the type signature of the type that declares the constructor that is referenced
* &lt;/li>
* &lt;li>{@link #getFlags()} -
* the modifiers flags of the constructor that is referenced
* &lt;/li>
* &lt;li>{@link #getName()} -
* the simple name of the constructor that is referenced
* &lt;/li>
* &lt;li>{@link #getSignature()} -
* the method signature of the constructor that is referenced
* &lt;/li>
* &lt;/ul>
* &lt;/p>
* &lt;p>
* This kind of proposal could require a long computation, so they are computed only if completion operation is called with a {@link IProgressMonitor}
* (e.g. {@link ICodeAssist#codeComplete(int, CompletionRequestor, IProgressMonitor)}).&lt;br>
* This kind of proposal is always is only proposals with a {@link #TYPE_REF} required proposal, so this kind of required proposal must be allowed:
* &lt;code>requestor.setAllowsRequiredProposals(CONSTRUCTOR_INVOCATION, TYPE_REF, true)&lt;/code>.
* &lt;/p>
*
* @see #getKind()
* @see CompletionRequestor#setAllowsRequiredProposals(int, int, boolean)
*
* @since 3.5
</body>
</ownedComment>
</ownedAttribute>
<ownedAttribute xmi:id="_joJxGWEMEeCdEc4VzBeWeQ" name="ANONYMOUS_CLASS_CONSTRUCTOR_INVOCATION" visibility="public" isLeaf="true" isStatic="true" type="_dTlbsGEMEeCdEc4VzBeWeQ" isUnique="false">
<ownedComment xmi:id="_joJxGmEMEeCdEc4VzBeWeQ">
<body>
* Completion is a reference of a constructor of an anonymous class.
* This kind of completion might occur in a context like
* &lt;code>&quot;new Lis^;&quot;&lt;/code> and complete it to
* &lt;code>&quot;new List() {}&quot;&lt;/code> if List is an interface or abstract class.
* &lt;p>
* The following additional context information is available
* for this kind of completion proposal at little extra cost:
* &lt;ul>
* &lt;li>{@link #getDeclarationSignature()} -
* the type signature of the type being implemented or subclassed
* &lt;/li>
* &lt;li>{@link #getDeclarationKey()} -
* the type unique key of the type being implemented or subclassed
* &lt;/li>
* &lt;li>{@link #getSignature()} -
* the method signature of the constructor that is referenced
* &lt;/li>
* &lt;li>{@link #getKey()} -
* the method unique key of the constructor that is referenced
* if the declaring type is not an interface
* &lt;/li>
* &lt;li>{@link #getFlags()} -
* the modifiers flags of the constructor that is referenced
* &lt;/li>
* &lt;/ul>
* &lt;/p>
* &lt;p>
* This kind of proposal could require a long computation, so they are computed only if completion operation is called with a {@link IProgressMonitor}
* (e.g. {@link ICodeAssist#codeComplete(int, CompletionRequestor, IProgressMonitor)})&lt;br>
* This kind of proposal is always is only proposals with a {@link #TYPE_REF} required proposal, so this kind of required proposal must be allowed:
* &lt;code>requestor.setAllowsRequiredProposals(CONSTRUCTOR_INVOCATION, TYPE_REF, true)&lt;/code>.
* &lt;/p>
*
* @see #getKind()
* @see CompletionRequestor#setAllowsRequiredProposals(int, int, boolean)
*
* @since 3.5
</body>
</ownedComment>
</ownedAttribute>
<ownedAttribute xmi:id="_joJxG2EMEeCdEc4VzBeWeQ" name="FIRST_KIND" visibility="protected" isLeaf="true" isStatic="true" type="_dTlbsGEMEeCdEc4VzBeWeQ" isUnique="false">
<ownedComment xmi:id="_joJxHGEMEeCdEc4VzBeWeQ">
<body>
* First valid completion kind.
*
* @since 3.1
</body>
</ownedComment>
</ownedAttribute>
<ownedAttribute xmi:id="_joS7AGEMEeCdEc4VzBeWeQ" name="LAST_KIND" visibility="protected" isLeaf="true" isStatic="true" type="_dTlbsGEMEeCdEc4VzBeWeQ" isUnique="false">
<ownedComment xmi:id="_joS7AWEMEeCdEc4VzBeWeQ">
<body>
* Last valid completion kind.
*
* @since 3.1
</body>
</ownedComment>
</ownedAttribute>
<ownedOperation xmi:id="_joS7AmEMEeCdEc4VzBeWeQ" name="create" visibility="public" isStatic="true">
<ownedComment xmi:id="_joS7A2EMEeCdEc4VzBeWeQ">
<body>
* Creates a basic completion proposal. All instance
* field have plausible default values unless otherwise noted.
* &lt;p>
* Note that the constructors for this class are internal to the
* Java model implementation. Clients cannot directly create
* CompletionProposal objects.
* &lt;/p>
*
* @param kind one of the kind constants declared on this class
* @param completionOffset original offset of code completion request
* @return a new completion proposal
</body>
</ownedComment>
<ownedParameter xmi:id="_joS7BGEMEeCdEc4VzBeWeQ" type="_jnQZMGEMEeCdEc4VzBeWeQ" direction="return"/>
<ownedParameter xmi:id="_joS7BWEMEeCdEc4VzBeWeQ" name="kind" type="_dTlbsGEMEeCdEc4VzBeWeQ"/>
<ownedParameter xmi:id="_joS7BmEMEeCdEc4VzBeWeQ" name="completionOffset" type="_dTlbsGEMEeCdEc4VzBeWeQ"/>
</ownedOperation>
<ownedOperation xmi:id="_jocsAGEMEeCdEc4VzBeWeQ" name="getAdditionalFlags" visibility="public">
<ownedComment xmi:id="_jocsAWEMEeCdEc4VzBeWeQ">
<body>
* Returns the completion flags relevant in the context, or
* &lt;code>CompletionFlags.Default&lt;/code> if none.
* &lt;p>
* This field is available for the following kinds of
* completion proposals:
* &lt;ul>
* &lt;li>&lt;code>FIELD_IMPORT&lt;/code> - completion flags
* of the attribute that is referenced. Completion flags for
* this proposal kind can only include &lt;code>CompletionFlags.StaticImport&lt;/code>&lt;/li>
* &lt;li>&lt;code>METHOD_IMPORT&lt;/code> - completion flags
* of the attribute that is referenced. Completion flags for
* this proposal kind can only include &lt;code>CompletionFlags.StaticImport&lt;/code>&lt;/li>
* &lt;li>&lt;code>TYPE_IMPORT&lt;/code> - completion flags
* of the attribute that is referenced. Completion flags for
* this proposal kind can only include &lt;code>CompletionFlags.StaticImport&lt;/code>&lt;/li>
* &lt;/ul>
* For other kinds of completion proposals, this method returns
* &lt;code>CompletionFlags.Default&lt;/code>.
* &lt;/p>
*
* @return the completion flags, or
* &lt;code>CompletionFlags.Default&lt;/code> if none
* @see CompletionFlags
*
* @since 3.3
</body>
</ownedComment>
<ownedParameter xmi:id="_jocsAmEMEeCdEc4VzBeWeQ" type="_dTlbsGEMEeCdEc4VzBeWeQ" direction="return"/>
</ownedOperation>
<ownedOperation xmi:id="_jocsA2EMEeCdEc4VzBeWeQ" name="setAdditionalFlags" visibility="public">
<ownedComment xmi:id="_jocsBGEMEeCdEc4VzBeWeQ">
<body>
* Sets the completion flags relevant in the context.
* &lt;p>
* If not set, defaults to none.
* &lt;/p>
* &lt;p>
* The completion engine creates instances of this class and sets
* its properties; this method is not intended to be used by other clients.
* &lt;/p>
*
* @param additionalFlags the completion flags, or
* &lt;code>CompletionFlags.Default&lt;/code> if none
*
* @since 3.3
</body>
</ownedComment>
<ownedParameter xmi:id="_jocsBWEMEeCdEc4VzBeWeQ" name="additionalFlags" type="_dTlbsGEMEeCdEc4VzBeWeQ"/>
</ownedOperation>
<ownedOperation xmi:id="_jocsBmEMEeCdEc4VzBeWeQ" name="getKind" visibility="public">
<ownedComment xmi:id="_jocsB2EMEeCdEc4VzBeWeQ">
<body>
* Returns the kind of completion being proposed.
* &lt;p>
* The set of different kinds of completion proposals is
* expected to change over time. It is strongly recommended
* that clients do &lt;b>not&lt;/b> assume that the kind is one of the
* ones they know about, and code defensively for the
* possibility of unexpected future growth.
* &lt;/p>
*
* @return the kind; one of the kind constants
* declared on this class, or possibly a kind unknown
* to the caller
</body>
</ownedComment>
<ownedParameter xmi:id="_jocsCGEMEeCdEc4VzBeWeQ" type="_dTlbsGEMEeCdEc4VzBeWeQ" direction="return"/>
</ownedOperation>
<ownedOperation xmi:id="_jocsCWEMEeCdEc4VzBeWeQ" name="getCompletionLocation" visibility="public">
<ownedParameter xmi:id="_jocsCmEMEeCdEc4VzBeWeQ" type="_dTlbsGEMEeCdEc4VzBeWeQ" direction="return"/>
</ownedOperation>
<ownedOperation xmi:id="_jocsC2EMEeCdEc4VzBeWeQ" name="getTokenStart" visibility="public">
<ownedComment xmi:id="_jocsDGEMEeCdEc4VzBeWeQ">
<body>
* Returns the character index of the start of the
* subrange in the source file buffer containing the
* relevant token being completed. This
* token is either the identifier or Java language keyword
* under, or immediately preceding, the original request
* offset. If the original request offset is not within
* or immediately after an identifier or keyword, then the
* position returned is original request offset and the
* token range is empty.
*
* @return character index of token start position (inclusive)
</body>
</ownedComment>
<ownedParameter xmi:id="_jocsDWEMEeCdEc4VzBeWeQ" type="_dTlbsGEMEeCdEc4VzBeWeQ" direction="return"/>
</ownedOperation>
<ownedOperation xmi:id="_jocsDmEMEeCdEc4VzBeWeQ" name="getTokenEnd" visibility="public">
<ownedComment xmi:id="_jocsD2EMEeCdEc4VzBeWeQ">
<body>
* Returns the character index of the end (exclusive) of the subrange
* in the source file buffer containing the
* relevant token. When there is no relevant token, the
* range is empty
* (&lt;code>getEndToken() == getStartToken()&lt;/code>).
*
* @return character index of token end position (exclusive)
</body>
</ownedComment>
<ownedParameter xmi:id="_jocsEGEMEeCdEc4VzBeWeQ" type="_dTlbsGEMEeCdEc4VzBeWeQ" direction="return"/>
</ownedOperation>
<ownedOperation xmi:id="_jocsEWEMEeCdEc4VzBeWeQ" name="setTokenRange" visibility="public">
<ownedComment xmi:id="_jocsEmEMEeCdEc4VzBeWeQ">
<body>
* Sets the character indices of the subrange in the
* source file buffer containing the relevant token being
* completed. This token is either the identifier or
* Java language keyword under, or immediately preceding,
* the original request offset. If the original request
* offset is not within or immediately after an identifier
* or keyword, then the source range begins at original
* request offset and is empty.
* &lt;p>
* If not set, defaults to empty subrange at [0,0).
* &lt;/p>
*
* @param startIndex character index of token start position (inclusive)
* @param endIndex character index of token end position (exclusive)
</body>
</ownedComment>
<ownedParameter xmi:id="_jocsE2EMEeCdEc4VzBeWeQ" name="startIndex" type="_dTlbsGEMEeCdEc4VzBeWeQ"/>
<ownedParameter xmi:id="_jocsFGEMEeCdEc4VzBeWeQ" name="endIndex" type="_dTlbsGEMEeCdEc4VzBeWeQ"/>
</ownedOperation>
<ownedOperation xmi:id="_jomdAGEMEeCdEc4VzBeWeQ" name="getCompletion" visibility="public">
<ownedComment xmi:id="_jomdAWEMEeCdEc4VzBeWeQ">
<body>
* Returns the proposed sequence of characters to insert into the
* source file buffer, replacing the characters at the specified
* source range. The string can be arbitrary; for example, it might
* include not only the name of a method but a set of parentheses.
* &lt;p>
* The client must not modify the array returned.
* &lt;/p>
*
* @return the completion string
</body>
</ownedComment>
<ownedParameter xmi:id="_jomdAmEMEeCdEc4VzBeWeQ" type="_dUn9g2EMEeCdEc4VzBeWeQ" direction="return">
<upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_jomdBGEMEeCdEc4VzBeWeQ" value="*"/>
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_jomdA2EMEeCdEc4VzBeWeQ"/>
</ownedParameter>
</ownedOperation>
<ownedOperation xmi:id="_jomdBWEMEeCdEc4VzBeWeQ" name="setCompletion" visibility="public">
<ownedComment xmi:id="_jomdBmEMEeCdEc4VzBeWeQ">
<body>
* Sets the proposed sequence of characters to insert into the
* source file buffer, replacing the characters at the specified
* source range. The string can be arbitrary; for example, it might
* include not only the name of a method but a set of parentheses.
* &lt;p>
* If not set, defaults to an empty character array.
* &lt;/p>
* &lt;p>
* The completion engine creates instances of this class and sets
* its properties; this method is not intended to be used by other clients.
* &lt;/p>
*
* @param completion the completion string
</body>
</ownedComment>
<ownedParameter xmi:id="_jomdB2EMEeCdEc4VzBeWeQ" name="completion" type="_dUn9g2EMEeCdEc4VzBeWeQ">
<upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_jomdCWEMEeCdEc4VzBeWeQ" value="*"/>
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_jomdCGEMEeCdEc4VzBeWeQ"/>
</ownedParameter>
</ownedOperation>
<ownedOperation xmi:id="_jomdCmEMEeCdEc4VzBeWeQ" name="getReplaceStart" visibility="public">
<ownedComment xmi:id="_jomdC2EMEeCdEc4VzBeWeQ">
<body>
* Returns the character index of the start of the
* subrange in the source file buffer to be replaced
* by the completion string. If the subrange is empty
* (&lt;code>getReplaceEnd() == getReplaceStart()&lt;/code>),
* the completion string is to be inserted at this
* index.
* &lt;p>
* Note that while the token subrange is precisely
* specified, the replacement range is loosely
* constrained and may not bear any direct relation
* to the original request offset. For example,
* it would be possible for a type completion to
* propose inserting an import declaration at the
* top of the compilation unit; or the completion
* might include trailing parentheses and
* punctuation for a method completion.
* &lt;/p>
*
* @return replacement start position (inclusive)
</body>
</ownedComment>
<ownedParameter xmi:id="_jomdDGEMEeCdEc4VzBeWeQ" type="_dTlbsGEMEeCdEc4VzBeWeQ" direction="return"/>
</ownedOperation>
<ownedOperation xmi:id="_jomdDWEMEeCdEc4VzBeWeQ" name="getReplaceEnd" visibility="public">
<ownedComment xmi:id="_jomdDmEMEeCdEc4VzBeWeQ">
<body>
* Returns the character index of the end of the
* subrange in the source file buffer to be replaced
* by the completion string. If the subrange is empty
* (&lt;code>getReplaceEnd() == getReplaceStart()&lt;/code>),
* the completion string is to be inserted at this
* index.
*
* @return replacement end position (exclusive)
</body>
</ownedComment>
<ownedParameter xmi:id="_jomdD2EMEeCdEc4VzBeWeQ" type="_dTlbsGEMEeCdEc4VzBeWeQ" direction="return"/>
</ownedOperation>
<ownedOperation xmi:id="_jovm8GEMEeCdEc4VzBeWeQ" name="setReplaceRange" visibility="public">
<ownedComment xmi:id="_jovm8WEMEeCdEc4VzBeWeQ">
<body>
* Sets the character indices of the subrange in the
* source file buffer to be replaced by the completion
* string. If the subrange is empty
* (&lt;code>startIndex == endIndex&lt;/code>),
* the completion string is to be inserted at this
* index.
* &lt;p>
* If not set, defaults to empty subrange at [0,0).
* &lt;/p>
* &lt;p>
* The completion engine creates instances of this class and sets
* its properties; this method is not intended to be used by other clients.
* &lt;/p>
*
* @param startIndex character index of replacement start position (inclusive)
* @param endIndex character index of replacement end position (exclusive)
</body>
</ownedComment>
<ownedParameter xmi:id="_jovm8mEMEeCdEc4VzBeWeQ" name="startIndex" type="_dTlbsGEMEeCdEc4VzBeWeQ"/>
<ownedParameter xmi:id="_jovm82EMEeCdEc4VzBeWeQ" name="endIndex" type="_dTlbsGEMEeCdEc4VzBeWeQ"/>
</ownedOperation>
<ownedOperation xmi:id="_jovm9GEMEeCdEc4VzBeWeQ" name="getRelevance" visibility="public">
<ownedComment xmi:id="_jovm9WEMEeCdEc4VzBeWeQ">
<body>
* Returns the relative relevance rating of this proposal.
*
* @return relevance rating of this proposal; ratings are positive; higher means better
</body>
</ownedComment>
<ownedParameter xmi:id="_jovm9mEMEeCdEc4VzBeWeQ" type="_dTlbsGEMEeCdEc4VzBeWeQ" direction="return"/>
</ownedOperation>
<ownedOperation xmi:id="_jovm92EMEeCdEc4VzBeWeQ" name="setRelevance" visibility="public">
<ownedComment xmi:id="_jovm-GEMEeCdEc4VzBeWeQ">
<body>
* Sets the relative relevance rating of this proposal.
* &lt;p>
* If not set, defaults to the lowest possible rating (1).
* &lt;/p>
* &lt;p>
* The completion engine creates instances of this class and sets
* its properties; this method is not intended to be used by other clients.
* &lt;/p>
*
* @param rating relevance rating of this proposal; ratings are positive; higher means better
</body>
</ownedComment>
<ownedParameter xmi:id="_jovm-WEMEeCdEc4VzBeWeQ" name="rating" type="_dTlbsGEMEeCdEc4VzBeWeQ"/>
</ownedOperation>
<ownedOperation xmi:id="_jovm-mEMEeCdEc4VzBeWeQ" name="getDeclarationSignature" visibility="public">
<ownedComment xmi:id="_jovm-2EMEeCdEc4VzBeWeQ">
<body>
* Returns the type signature or package name of the relevant
* declaration in the context, or &lt;code>null&lt;/code> if none.
* &lt;p>
* This field is available for the following kinds of
* completion proposals:
* &lt;ul>
* &lt;li>&lt;code>ANNOTATION_ATTRIBUT_REF&lt;/code> - type signature
* of the annotation that declares the attribute that is referenced&lt;/li>
* &lt;li>&lt;code>ANONYMOUS_CLASS_DECLARATION&lt;/code> - type signature
* of the type that is being subclassed or implemented&lt;/li>
* &lt;li>&lt;code>FIELD_IMPORT&lt;/code> - type signature
* of the type that declares the field that is imported&lt;/li>
* &lt;li>&lt;code>FIELD_REF&lt;/code> - type signature
* of the type that declares the field that is referenced&lt;/li>
* &lt;li>&lt;code>FIELD_REF_WITH_CASTED_RECEIVER&lt;/code> - type signature
* of the type that declares the field that is referenced&lt;/li>
* &lt;li>&lt;code>METHOD_IMPORT&lt;/code> - type signature
* of the type that declares the method that is imported&lt;/li>
* &lt;li>&lt;code>METHOD_REF&lt;/code> - type signature
* of the type that declares the method that is referenced&lt;/li>
* &lt;li>&lt;code>METHOD_REF_WITH_CASTED_RECEIVER&lt;/code> - type signature
* of the type that declares the method that is referenced&lt;/li>
* &lt;li>&lt;code>METHOD_DECLARATION&lt;/code> - type signature
* of the type that declares the method that is being
* implemented or overridden&lt;/li>
* &lt;li>&lt;code>PACKAGE_REF&lt;/code> - dot-based package
* name of the package that is referenced&lt;/li>
* &lt;li>&lt;code>TYPE_IMPORT&lt;/code> - dot-based package
* name of the package containing the type that is imported&lt;/li>
* &lt;li>&lt;code>TYPE_REF&lt;/code> - dot-based package
* name of the package containing the type that is referenced&lt;/li>
* &lt;li>&lt;code>POTENTIAL_METHOD_DECLARATION&lt;/code> - type signature
* of the type that declares the method that is being created&lt;/li>
* &lt;/ul>
* For kinds of completion proposals, this method returns
* &lt;code>null&lt;/code>. Clients must not modify the array
* returned.
* &lt;/p>
*
* @return a type signature or a package name (depending
* on the kind of completion), or &lt;code>null&lt;/code> if none
* @see Signature
</body>
</ownedComment>
<ownedParameter xmi:id="_jovm_GEMEeCdEc4VzBeWeQ" type="_dUn9g2EMEeCdEc4VzBeWeQ" direction="return">
<upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_jovm_mEMEeCdEc4VzBeWeQ" value="*"/>
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_jovm_WEMEeCdEc4VzBeWeQ"/>
</ownedParameter>
</ownedOperation>
<ownedOperation xmi:id="_jo5X8GEMEeCdEc4VzBeWeQ" name="getDeclarationKey" visibility="public">
<ownedComment xmi:id="_jo5X8WEMEeCdEc4VzBeWeQ">
<body>
* Returns the key of the relevant
* declaration in the context, or &lt;code>null&lt;/code> if none.
* &lt;p>
* This field is available for the following kinds of
* completion proposals:
* &lt;ul>
* &lt;li>&lt;code>ANONYMOUS_CLASS_DECLARATION&lt;/code> - key
* of the type that is being subclassed or implemented&lt;/li>
* &lt;li>&lt;code>METHOD_DECLARATION&lt;/code> - key
* of the type that declares the method that is being
* implemented or overridden&lt;/li>
* &lt;/ul>
* For kinds of completion proposals, this method returns
* &lt;code>null&lt;/code>. Clients must not modify the array
* returned.
* &lt;/p>
*
* @return a key, or &lt;code>null&lt;/code> if none
* @see org.eclipse.jdt.core.dom.ASTParser#createASTs(ICompilationUnit[], String[], org.eclipse.jdt.core.dom.ASTRequestor, IProgressMonitor)
* @since 3.1
</body>
</ownedComment>
<ownedParameter xmi:id="_jo5X8mEMEeCdEc4VzBeWeQ" type="_dUn9g2EMEeCdEc4VzBeWeQ" direction="return">
<upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_jo5X9GEMEeCdEc4VzBeWeQ" value="*"/>
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_jo5X82EMEeCdEc4VzBeWeQ"/>
</ownedParameter>
</ownedOperation>
<ownedOperation xmi:id="_jo5X9WEMEeCdEc4VzBeWeQ" name="setDeclarationSignature" visibility="public">
<ownedComment xmi:id="_jo5X9mEMEeCdEc4VzBeWeQ">
<body>
* Sets the type or package signature of the relevant
* declaration in the context, or &lt;code>null&lt;/code> if none.
* &lt;p>
* If not set, defaults to none.
* &lt;/p>
* &lt;p>
* The completion engine creates instances of this class and sets
* its properties; this method is not intended to be used by other clients.
* &lt;/p>
*
* @param signature the type or package signature, or
* &lt;code>null&lt;/code> if none
</body>
</ownedComment>
<ownedParameter xmi:id="_jo5X92EMEeCdEc4VzBeWeQ" name="signature" type="_dUn9g2EMEeCdEc4VzBeWeQ">
<upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_jo5X-WEMEeCdEc4VzBeWeQ" value="*"/>
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_jo5X-GEMEeCdEc4VzBeWeQ"/>
</ownedParameter>
</ownedOperation>
<ownedOperation xmi:id="_jo5X-mEMEeCdEc4VzBeWeQ" name="setDeclarationKey" visibility="public">
<ownedComment xmi:id="_jo5X-2EMEeCdEc4VzBeWeQ">
<body>
* Sets the type or package key of the relevant
* declaration in the context, or &lt;code>null&lt;/code> if none.
* &lt;p>
* If not set, defaults to none.
* &lt;/p>
* &lt;p>
* The completion engine creates instances of this class and sets
* its properties; this method is not intended to be used by other clients.
* &lt;/p>
*
* @param key the type or package key, or
* &lt;code>null&lt;/code> if none
* @since 3.1
</body>
</ownedComment>
<ownedParameter xmi:id="_jo5X_GEMEeCdEc4VzBeWeQ" name="key" type="_dUn9g2EMEeCdEc4VzBeWeQ">
<upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_jpCh4GEMEeCdEc4VzBeWeQ" value="*"/>
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_jo5X_WEMEeCdEc4VzBeWeQ"/>
</ownedParameter>
</ownedOperation>
<ownedOperation xmi:id="_jpCh4WEMEeCdEc4VzBeWeQ" name="getName" visibility="public">
<ownedComment xmi:id="_jpCh4mEMEeCdEc4VzBeWeQ">
<body>
* Returns the simple name of the method, field,
* member, or variable relevant in the context, or
* &lt;code>null&lt;/code> if none.
* &lt;p>
* This field is available for the following kinds of
* completion proposals:
* &lt;ul>
* &lt;li>&lt;code>ANNOTATION_ATTRIBUT_REF&lt;/code> - the name of the attribute&lt;/li>
* &lt;li>&lt;code>FIELD_IMPORT&lt;/code> - the name of the field&lt;/li>
* &lt;li>&lt;code>FIELD_REF&lt;/code> - the name of the field&lt;/li>
* &lt;li>&lt;code>FIELD_REF_WITH_CASTED_RECEIVER&lt;/code> - the name of the field&lt;/li>
* &lt;li>&lt;code>KEYWORD&lt;/code> - the keyword&lt;/li>
* &lt;li>&lt;code>LABEL_REF&lt;/code> - the name of the label&lt;/li>
* &lt;li>&lt;code>LOCAL_VARIABLE_REF&lt;/code> - the name of the local variable&lt;/li>
* &lt;li>&lt;code>METHOD_IMPORT&lt;/code> - the name of the method&lt;/li>
* &lt;li>&lt;code>METHOD_REF&lt;/code> - the name of the method (the type simple name for constructor)&lt;/li>
* &lt;li>&lt;code>METHOD_REF_WITH_CASTED_RECEIVER&lt;/code> - the name of the method&lt;/li>
* &lt;li>&lt;code>METHOD_DECLARATION&lt;/code> - the name of the method (the type simple name for constructor)&lt;/li>
* &lt;li>&lt;code>VARIABLE_DECLARATION&lt;/code> - the name of the variable&lt;/li>
* &lt;li>&lt;code>POTENTIAL_METHOD_DECLARATION&lt;/code> - the name of the method&lt;/li>
* &lt;/ul>
* For kinds of completion proposals, this method returns
* &lt;code>null&lt;/code>. Clients must not modify the array
* returned.
* &lt;/p>
*
* @return the keyword, field, method, local variable, or member
* name, or &lt;code>null&lt;/code> if none
</body>
</ownedComment>
<ownedParameter xmi:id="_jpCh42EMEeCdEc4VzBeWeQ" type="_dUn9g2EMEeCdEc4VzBeWeQ" direction="return">
<upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_jpCh5WEMEeCdEc4VzBeWeQ" value="*"/>
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_jpCh5GEMEeCdEc4VzBeWeQ"/>
</ownedParameter>
</ownedOperation>
<ownedOperation xmi:id="_jpCh5mEMEeCdEc4VzBeWeQ" name="setName" visibility="public">
<ownedComment xmi:id="_jpCh52EMEeCdEc4VzBeWeQ">
<body>
* Sets the simple name of the method (type simple name for constructor), field,
* member, or variable relevant in the context, or
* &lt;code>null&lt;/code> if none.
* &lt;p>
* If not set, defaults to none.
* &lt;/p>
* &lt;p>
* The completion engine creates instances of this class and sets
* its properties; this method is not intended to be used by other clients.
* &lt;/p>
*
* @param name the keyword, field, method, local variable,
* or member name, or &lt;code>null&lt;/code> if none
</body>
</ownedComment>
<ownedParameter xmi:id="_jpCh6GEMEeCdEc4VzBeWeQ" name="name" type="_dUn9g2EMEeCdEc4VzBeWeQ">
<upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_jpCh6mEMEeCdEc4VzBeWeQ" value="*"/>
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_jpCh6WEMEeCdEc4VzBeWeQ"/>
</ownedParameter>
</ownedOperation>
<ownedOperation xmi:id="_jpCh62EMEeCdEc4VzBeWeQ" name="getSignature" visibility="public">
<ownedComment xmi:id="_jpCh7GEMEeCdEc4VzBeWeQ">
<body>
* Returns the signature of the method or type
* relevant in the context, or &lt;code>null&lt;/code> if none.
* &lt;p>
* This field is available for the following kinds of
* completion proposals:
* &lt;ul>
* &lt;li>&lt;code>ANNOTATION_ATTRIBUT_REF&lt;/code> - the type signature
* of the referenced attribute's type&lt;/li>
* &lt;li>&lt;code>ANONYMOUS_CLASS_DECLARATION&lt;/code> - method signature
* of the constructor that is being invoked&lt;/li>
* &lt;li>&lt;code>FIELD_IMPORT&lt;/code> - the type signature
* of the referenced field's type&lt;/li>
* &lt;li>&lt;code>FIELD_REF&lt;/code> - the type signature
* of the referenced field's type&lt;/li>
* &lt;li>&lt;code>FIELD_REF_WITH_CASTED_RECEIVER&lt;/code> - the type signature
* of the referenced field's type&lt;/li>
* &lt;li>&lt;code>LOCAL_VARIABLE_REF&lt;/code> - the type signature
* of the referenced local variable's type&lt;/li>
* &lt;li>&lt;code>METHOD_IMPORT&lt;/code> - method signature
* of the method that is imported&lt;/li>
* &lt;li>&lt;code>METHOD_REF&lt;/code> - method signature
* of the method that is referenced&lt;/li>
* &lt;li>&lt;code>METHOD_REF_WITH_CASTED_RECEIVER&lt;/code> - method signature
* of the method that is referenced&lt;/li>
* &lt;li>&lt;code>METHOD_DECLARATION&lt;/code> - method signature
* of the method that is being implemented or overridden&lt;/li>
* &lt;li>&lt;code>TYPE_IMPORT&lt;/code> - type signature
* of the type that is imported&lt;/li>
* &lt;li>&lt;code>TYPE_REF&lt;/code> - type signature
* of the type that is referenced&lt;/li>
* &lt;li>&lt;code>VARIABLE_DECLARATION&lt;/code> - the type signature
* of the type of the variable being declared&lt;/li>
* &lt;li>&lt;code>POTENTIAL_METHOD_DECLARATION&lt;/code> - method signature
* of the method that is being created&lt;/li>
* &lt;/ul>
* For kinds of completion proposals, this method returns
* &lt;code>null&lt;/code>. Clients must not modify the array
* returned.
* &lt;/p>
*
* @return the signature, or &lt;code>null&lt;/code> if none
* @see Signature
</body>
</ownedComment>
<ownedParameter xmi:id="_jpCh7WEMEeCdEc4VzBeWeQ" type="_dUn9g2EMEeCdEc4VzBeWeQ" direction="return">
<upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_jpCh72EMEeCdEc4VzBeWeQ" value="*"/>
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_jpCh7mEMEeCdEc4VzBeWeQ"/>
</ownedParameter>
</ownedOperation>
<ownedOperation xmi:id="_jpCh8GEMEeCdEc4VzBeWeQ" name="getKey" visibility="public">
<ownedComment xmi:id="_jpCh8WEMEeCdEc4VzBeWeQ">
<body>
* Returns the key relevant in the context,
* or &lt;code>null&lt;/code> if none.
* &lt;p>
* This field is available for the following kinds of
* completion proposals:
* &lt;ul>
* &lt;li>&lt;code>ANONYMOUS_CLASS_DECLARATION&lt;/code> - method key
* of the constructor that is being invoked, or &lt;code>null&lt;/code> if
* the declaring type is an interface&lt;/li>
* &lt;li>&lt;code>METHOD_DECLARATION&lt;/code> - method key
* of the method that is being implemented or overridden&lt;/li>
* &lt;/ul>
* For kinds of completion proposals, this method returns
* &lt;code>null&lt;/code>. Clients must not modify the array
* returned.
* &lt;/p>
*
* @return the key, or &lt;code>null&lt;/code> if none
* @see org.eclipse.jdt.core.dom.ASTParser#createASTs(ICompilationUnit[], String[], org.eclipse.jdt.core.dom.ASTRequestor, IProgressMonitor)
* @since 3.1
</body>
</ownedComment>
<ownedParameter xmi:id="_jpCh8mEMEeCdEc4VzBeWeQ" type="_dUn9g2EMEeCdEc4VzBeWeQ" direction="return">
<upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_jpMS4WEMEeCdEc4VzBeWeQ" value="*"/>
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_jpMS4GEMEeCdEc4VzBeWeQ"/>
</ownedParameter>
</ownedOperation>
<ownedOperation xmi:id="_jpMS4mEMEeCdEc4VzBeWeQ" name="setSignature" visibility="public">
<ownedComment xmi:id="_jpMS42EMEeCdEc4VzBeWeQ">
<body>
* Sets the signature of the method, field type, member type,
* relevant in the context, or &lt;code>null&lt;/code> if none.
* &lt;p>
* If not set, defaults to none.
* &lt;/p>
* &lt;p>
* The completion engine creates instances of this class and sets
* its properties; this method is not intended to be used by other clients.
* &lt;/p>
*
* @param signature the signature, or &lt;code>null&lt;/code> if none
</body>
</ownedComment>
<ownedParameter xmi:id="_jpMS5GEMEeCdEc4VzBeWeQ" name="signature" type="_dUn9g2EMEeCdEc4VzBeWeQ">
<upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_jpMS5mEMEeCdEc4VzBeWeQ" value="*"/>
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_jpMS5WEMEeCdEc4VzBeWeQ"/>
</ownedParameter>
</ownedOperation>
<ownedOperation xmi:id="_jpMS52EMEeCdEc4VzBeWeQ" name="setKey" visibility="public">
<ownedComment xmi:id="_jpMS6GEMEeCdEc4VzBeWeQ">
<body>
* Sets the key of the method, field type, member type,
* relevant in the context, or &lt;code>null&lt;/code> if none.
* &lt;p>
* If not set, defaults to none.
* &lt;/p>
* &lt;p>
* The completion engine creates instances of this class and sets
* its properties; this method is not intended to be used by other clients.
* &lt;/p>
*
* @param key the key, or &lt;code>null&lt;/code> if none
* @since 3.1
</body>
</ownedComment>
<ownedParameter xmi:id="_jpMS6WEMEeCdEc4VzBeWeQ" name="key" type="_dUn9g2EMEeCdEc4VzBeWeQ">
<upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_jpMS62EMEeCdEc4VzBeWeQ" value="*"/>
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_jpMS6mEMEeCdEc4VzBeWeQ"/>
</ownedParameter>
</ownedOperation>
<ownedOperation xmi:id="_jpMS7GEMEeCdEc4VzBeWeQ" name="getFlags" visibility="public">
<ownedComment xmi:id="_jpMS7WEMEeCdEc4VzBeWeQ">
<body>
* Returns the modifier flags relevant in the context, or
* &lt;code>Flags.AccDefault&lt;/code> if none.
* &lt;p>
* This field is available for the following kinds of
* completion proposals:
* &lt;ul>
* &lt;li>&lt;code>ANNOTATION_ATTRIBUT_REF&lt;/code> - modifier flags
* of the attribute that is referenced;
* &lt;li>&lt;code>ANONYMOUS_CLASS_DECLARATION&lt;/code> - modifier flags
* of the constructor that is referenced&lt;/li>
* &lt;li>&lt;code>FIELD_IMPORT&lt;/code> - modifier flags
* of the field that is imported.&lt;/li>
* &lt;li>&lt;code>FIELD_REF&lt;/code> - modifier flags
* of the field that is referenced;
* &lt;code>Flags.AccEnum&lt;/code> can be used to recognize
* references to enum constants
* &lt;/li>
* &lt;li>&lt;code>FIELD_REF_WITH_CASTED_RECEIVER&lt;/code> - modifier flags
* of the field that is referenced.
* &lt;/li>
* &lt;li>&lt;code>KEYWORD&lt;/code> - modifier flag
* corresponding to the modifier keyword&lt;/li>
* &lt;li>&lt;code>LOCAL_VARIABLE_REF&lt;/code> - modifier flags
* of the local variable that is referenced&lt;/li>
* &lt;li>&lt;code>METHOD_IMPORT&lt;/code> - modifier flags
* of the method that is imported;
* &lt;/li>
* &lt;li>&lt;code>METHOD_REF&lt;/code> - modifier flags
* of the method that is referenced;
* &lt;code>Flags.AccAnnotation&lt;/code> can be used to recognize
* references to annotation type members
* &lt;/li>
* &lt;li>&lt;code>METHOD_REF_WITH_CASTED_RECEIVER&lt;/code> - modifier flags
* of the method that is referenced.
* &lt;/li>
* &lt;li>&lt;code>METHOD_DECLARATION&lt;/code> - modifier flags
* for the method that is being implemented or overridden&lt;/li>
* &lt;li>&lt;code>TYPE_IMPORT&lt;/code> - modifier flags
* of the type that is imported; &lt;code>Flags.AccInterface&lt;/code>
* can be used to recognize references to interfaces,
* &lt;code>Flags.AccEnum&lt;/code> enum types,
* and &lt;code>Flags.AccAnnotation&lt;/code> annotation types&lt;/li>
* &lt;li>&lt;code>TYPE_REF&lt;/code> - modifier flags
* of the type that is referenced; &lt;code>Flags.AccInterface&lt;/code>
* can be used to recognize references to interfaces,
* &lt;code>Flags.AccEnum&lt;/code> enum types,
* and &lt;code>Flags.AccAnnotation&lt;/code> annotation types
* &lt;/li>
* &lt;li>&lt;code>VARIABLE_DECLARATION&lt;/code> - modifier flags
* for the variable being declared&lt;/li>
* &lt;li>&lt;code>POTENTIAL_METHOD_DECLARATION&lt;/code> - modifier flags
* for the method that is being created&lt;/li>
* &lt;/ul>
* For other kinds of completion proposals, this method returns
* &lt;code>Flags.AccDefault&lt;/code>.
* &lt;/p>
*
* @return the modifier flags, or
* &lt;code>Flags.AccDefault&lt;/code> if none
* @see Flags
</body>
</ownedComment>
<ownedParameter xmi:id="_jpMS7mEMEeCdEc4VzBeWeQ" type="_dTlbsGEMEeCdEc4VzBeWeQ" direction="return"/>
</ownedOperation>
<ownedOperation xmi:id="_jpMS72EMEeCdEc4VzBeWeQ" name="setFlags" visibility="public">
<ownedComment xmi:id="_jpMS8GEMEeCdEc4VzBeWeQ">
<body>
* Sets the modifier flags relevant in the context.
* &lt;p>
* If not set, defaults to none.
* &lt;/p>
* &lt;p>
* The completion engine creates instances of this class and sets
* its properties; this method is not intended to be used by other clients.
* &lt;/p>
*
* @param flags the modifier flags, or
* &lt;code>Flags.AccDefault&lt;/code> if none
</body>
</ownedComment>
<ownedParameter xmi:id="_jpMS8WEMEeCdEc4VzBeWeQ" name="flags" type="_dTlbsGEMEeCdEc4VzBeWeQ"/>
</ownedOperation>
<ownedOperation xmi:id="_jpMS8mEMEeCdEc4VzBeWeQ" name="getRequiredProposals" visibility="public">
<ownedComment xmi:id="_jpMS82EMEeCdEc4VzBeWeQ">
<body>
* Returns the required completion proposals.
* The proposal can be apply only if these required completion proposals are also applied.
* If the required proposal aren't applied the completion could create completion problems.
*
* &lt;p>
* This field is available for the following kinds of
* completion proposals:
* &lt;ul>
* &lt;li>&lt;code>FIELD_REF&lt;/code> - The allowed required proposals for this kind are:
* &lt;ul>
* &lt;li>&lt;code>TYPE_REF&lt;/code>&lt;/li>
* &lt;li>&lt;code>TYPE_IMPORT&lt;/code>&lt;/li>
* &lt;li>&lt;code>FIELD_IMPORT&lt;/code>&lt;/li>
* &lt;/ul>
* &lt;/li>
* &lt;li>&lt;code>METHOD_REF&lt;/code> - The allowed required proposals for this kind are:
* &lt;ul>
* &lt;li>&lt;code>TYPE_REF&lt;/code>&lt;/li>
* &lt;li>&lt;code>TYPE_IMPORT&lt;/code>&lt;/li>
* &lt;li>&lt;code>METHOD_IMPORT&lt;/code>&lt;/li>
* &lt;/ul>
* &lt;/li>
* &lt;/li>
* &lt;li>&lt;code>TYPE_REF&lt;/code> - The allowed required proposals for this kind are:
* &lt;ul>
* &lt;li>&lt;code>TYPE_REF&lt;/code>&lt;/li>
* &lt;/ul>
* &lt;/li>
* &lt;li>&lt;code>CONSTRUCTOR_INVOCATION&lt;/code> - The allowed required proposals for this kind are:
* &lt;ul>
* &lt;li>&lt;code>TYPE_REF&lt;/code>&lt;/li>
* &lt;/ul>
* &lt;/li>
* &lt;li>&lt;code>ANONYMOUS_CLASS_CONSTRUCTOR_INVOCATION&lt;/code> - The allowed required proposals for this kind are:
* &lt;ul>
* &lt;li>&lt;code>TYPE_REF&lt;/code>&lt;/li>
* &lt;/ul>
* &lt;/li>
* &lt;li>&lt;code>ANONYMOUS_CLASS_DECLARATION&lt;/code> - The allowed required proposals for this kind are:
* &lt;ul>
* &lt;li>&lt;code>TYPE_REF&lt;/code>&lt;/li>
* &lt;/ul>
* &lt;/li>
* &lt;/ul>
* &lt;/p>
* &lt;p>
* Other kinds of required proposals will be returned in the future, therefore clients of this
* API must allow with {@link CompletionRequestor#setAllowsRequiredProposals(int, int, boolean)}
* only kinds which are in this list to avoid unexpected results in the future.
* &lt;/p>
* &lt;p>
* A required proposal of a given kind is proposed even if {@link CompletionRequestor#isIgnored(int)}
* return &lt;code>true&lt;/code> for that kind.
* &lt;/p>
* &lt;p>
* A required completion proposal cannot have required completion proposals.
* &lt;/p>
*
* @return the required completion proposals, or &lt;code>null&lt;/code> if none.
*
* @see CompletionRequestor#setAllowsRequiredProposals(int, int,boolean)
*
* @since 3.3
</body>
</ownedComment>
<ownedParameter xmi:id="_jpWD4GEMEeCdEc4VzBeWeQ" type="_jnQZMGEMEeCdEc4VzBeWeQ" direction="return">
<upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_jpWD4mEMEeCdEc4VzBeWeQ" value="*"/>
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_jpWD4WEMEeCdEc4VzBeWeQ"/>
</ownedParameter>
</ownedOperation>
<ownedOperation xmi:id="_jpWD42EMEeCdEc4VzBeWeQ" name="setRequiredProposals" visibility="public">
<ownedComment xmi:id="_jpWD5GEMEeCdEc4VzBeWeQ">
<body>
* Sets the list of required completion proposals, or &lt;code>null&lt;/code> if none.
* &lt;p>
* If not set, defaults to none.
* &lt;/p>
* &lt;p>
* The completion engine creates instances of this class and sets
* its properties; this method is not intended to be used by other clients.
* &lt;/p>
*
* @param proposals the list of required completion proposals, or
* &lt;code>null&lt;/code> if none
* @since 3.3
</body>
</ownedComment>
<ownedParameter xmi:id="_jpWD5WEMEeCdEc4VzBeWeQ" name="proposals" type="_jnQZMGEMEeCdEc4VzBeWeQ">
<upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_jpWD52EMEeCdEc4VzBeWeQ" value="*"/>
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_jpWD5mEMEeCdEc4VzBeWeQ"/>
</ownedParameter>
</ownedOperation>
<ownedOperation xmi:id="_jqFqwWEMEeCdEc4VzBeWeQ" name="findParameterNames" visibility="public">
<ownedComment xmi:id="_jqFqwmEMEeCdEc4VzBeWeQ">
<body>
* Finds the method parameter names.
* This information is relevant to method reference (and
* method declaration proposals). Returns &lt;code>null&lt;/code>
* if not available or not relevant.
* &lt;p>
* The client must not modify the array returned.
* &lt;/p>
* &lt;p>
* &lt;b>Note that this is an expensive thing to compute, which may require
* parsing Java source files, etc. Use sparingly.&lt;/b>
* &lt;/p>
*
* @param monitor the progress monitor, or &lt;code>null&lt;/code> if none
* @return the parameter names, or &lt;code>null&lt;/code> if none
* or not available or not relevant
</body>
</ownedComment>
<ownedParameter xmi:id="_jqFqw2EMEeCdEc4VzBeWeQ" type="_dUn9g2EMEeCdEc4VzBeWeQ" direction="return">
<upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_jqFqxWEMEeCdEc4VzBeWeQ" value="*"/>
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_jqFqxGEMEeCdEc4VzBeWeQ"/>
</ownedParameter>
<ownedParameter xmi:id="_jqFqxmEMEeCdEc4VzBeWeQ" name="monitor" type="_jqFqwGEMEeCdEc4VzBeWeQ"/>
</ownedOperation>
<ownedOperation xmi:id="_jqFqx2EMEeCdEc4VzBeWeQ" name="setParameterNames" visibility="public">
<ownedComment xmi:id="_jqFqyGEMEeCdEc4VzBeWeQ">
<body>
* Sets the method parameter names.
* This information is relevant to method reference (and
* method declaration proposals).
* &lt;p>
* The completion engine creates instances of this class and sets
* its properties; this method is not intended to be used by other clients.
* &lt;/p>
*
* @param parameterNames the parameter names, or &lt;code>null&lt;/code> if none
</body>
</ownedComment>
<ownedParameter xmi:id="_jqFqyWEMEeCdEc4VzBeWeQ" name="parameterNames" type="_dUn9g2EMEeCdEc4VzBeWeQ">
<upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_jqO0sWEMEeCdEc4VzBeWeQ" value="*"/>
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_jqO0sGEMEeCdEc4VzBeWeQ"/>
</ownedParameter>
</ownedOperation>
<ownedOperation xmi:id="_jqO0smEMEeCdEc4VzBeWeQ" name="getAccessibility" visibility="public">
<ownedComment xmi:id="_jqO0s2EMEeCdEc4VzBeWeQ">
<body>
* Returns the accessibility of the proposal.
* &lt;p>
* This field is available for the following kinds of
* completion proposals:
* &lt;ul>
* &lt;li>&lt;code>TYPE_REF&lt;/code> - accessibility of the type&lt;/li>
* &lt;/ul>
* For these kinds of completion proposals, this method returns
* {@link IAccessRule#K_ACCESSIBLE} or {@link IAccessRule#K_DISCOURAGED}
* or {@link IAccessRule#K_NON_ACCESSIBLE}.
* By default this method return {@link IAccessRule#K_ACCESSIBLE}.
* &lt;/p>
*
* @see IAccessRule
*
* @return the accessibility of the proposal
*
* @since 3.1
</body>
</ownedComment>
<ownedParameter xmi:id="_jqO0tGEMEeCdEc4VzBeWeQ" type="_dTlbsGEMEeCdEc4VzBeWeQ" direction="return"/>
</ownedOperation>
<ownedOperation xmi:id="_jqO0tWEMEeCdEc4VzBeWeQ" name="isConstructor" visibility="public">
<ownedComment xmi:id="_jqO0tmEMEeCdEc4VzBeWeQ">
<body>
* Returns whether this proposal is a constructor.
* &lt;p>
* This field is available for the following kinds of
* completion proposals:
* &lt;ul>
* &lt;li>&lt;code>METHOD_REF&lt;/code> - return &lt;code>true&lt;/code>
* if the referenced method is a constructor&lt;/li>
* &lt;li>&lt;code>METHOD_DECLARATION&lt;/code> - return &lt;code>true&lt;/code>
* if the declared method is a constructor&lt;/li>
* &lt;/ul>
* For kinds of completion proposals, this method returns
* &lt;code>false&lt;/code>.
* &lt;/p>
*
* @return &lt;code>true&lt;/code> if the proposal is a constructor.
* @since 3.1
</body>
</ownedComment>
<ownedParameter xmi:id="_jqO0t2EMEeCdEc4VzBeWeQ" type="_dVOadGEMEeCdEc4VzBeWeQ" direction="return"/>
</ownedOperation>
<ownedOperation xmi:id="_jqO0uGEMEeCdEc4VzBeWeQ" name="getReceiverSignature" visibility="public">
<ownedComment xmi:id="_jqO0uWEMEeCdEc4VzBeWeQ">
<body>
* Returns the type signature or package name of the relevant
* receiver in the context, or &lt;code>null&lt;/code> if none.
* &lt;p>
* This field is available for the following kinds of
* completion proposals:
* &lt;ul>
* &lt;li>&lt;code>FIELD_REF_WITH_CASTED_RECEIVER&lt;/code> - type signature
* of the type that cast the receiver of the field that is referenced&lt;/li>
* &lt;li>&lt;code>METHOD_REF_WITH_CASTED_RECEIVER&lt;/code> - type signature
* of the type that cast the receiver of the method that is referenced&lt;/li>
* &lt;/ul>
* For kinds of completion proposals, this method returns
* &lt;code>null&lt;/code>. Clients must not modify the array
* returned.
* &lt;/p>
*
* @return a type signature or a package name (depending
* on the kind of completion), or &lt;code>null&lt;/code> if none
* @see Signature
*
* @since 3.4
</body>
</ownedComment>
<ownedParameter xmi:id="_jqO0umEMEeCdEc4VzBeWeQ" type="_dUn9g2EMEeCdEc4VzBeWeQ" direction="return">
<upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_jqO0vGEMEeCdEc4VzBeWeQ" value="*"/>
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_jqO0u2EMEeCdEc4VzBeWeQ"/>
</ownedParameter>
</ownedOperation>
<ownedOperation xmi:id="_jqO0vWEMEeCdEc4VzBeWeQ" name="getReceiverStart" visibility="public">
<ownedComment xmi:id="_jqO0vmEMEeCdEc4VzBeWeQ">
<body>
* Returns the character index of the start of the
* subrange in the source file buffer containing the
* relevant receiver of the member being completed. This
* receiver is an expression.
*
* &lt;p>
* This field is available for the following kinds of
* completion proposals:
* &lt;ul>
* &lt;li>&lt;code>FIELD_REF_WITH_CASTED_RECEIVER&lt;/code>&lt;/li>
* &lt;li>&lt;code>METHOD_REF_WITH_CASTED_RECEIVER&lt;/code>&lt;/li>
* &lt;/ul>
* For kinds of completion proposals, this method returns &lt;code>0&lt;/code>.
* &lt;/p>
*
* @return character index of receiver start position (inclusive)
*
* @since 3.4
</body>
</ownedComment>
<ownedParameter xmi:id="_jqYlsGEMEeCdEc4VzBeWeQ" type="_dTlbsGEMEeCdEc4VzBeWeQ" direction="return"/>
</ownedOperation>
<ownedOperation xmi:id="_jqYlsWEMEeCdEc4VzBeWeQ" name="getReceiverEnd" visibility="public">
<ownedComment xmi:id="_jqYlsmEMEeCdEc4VzBeWeQ">
<body>
* Returns the character index of the end (exclusive) of the subrange
* in the source file buffer containing the
* relevant receiver of the member being completed.
*
* * &lt;p>
* This field is available for the following kinds of
* completion proposals:
* &lt;ul>
* &lt;li>&lt;code>FIELD_REF_WITH_CASTED_RECEIVER&lt;/code>&lt;/li>
* &lt;li>&lt;code>METHOD_REF_WITH_CASTED_RECEIVER&lt;/code>&lt;/li>
* &lt;/ul>
* For kinds of completion proposals, this method returns &lt;code>0&lt;/code>.
* &lt;/p>
*
* @return character index of receiver end position (exclusive)
*
* @since 3.4
</body>
</ownedComment>
<ownedParameter xmi:id="_jqYls2EMEeCdEc4VzBeWeQ" type="_dTlbsGEMEeCdEc4VzBeWeQ" direction="return"/>
</ownedOperation>
<ownedOperation xmi:id="_jqYltGEMEeCdEc4VzBeWeQ" name="setReceiverSignature" visibility="public">
<ownedComment xmi:id="_jqYltWEMEeCdEc4VzBeWeQ">
<body>
* Sets the type or package signature of the relevant
* receiver in the context, or &lt;code>null&lt;/code> if none.
* &lt;p>
* If not set, defaults to none.
* &lt;/p>
* &lt;p>
* The completion engine creates instances of this class and sets
* its properties; this method is not intended to be used by other clients.
* &lt;/p>
*
* @param signature the type or package signature, or
* &lt;code>null&lt;/code> if none
*
* @since 3.4
</body>
</ownedComment>
<ownedParameter xmi:id="_jqYltmEMEeCdEc4VzBeWeQ" name="signature" type="_dUn9g2EMEeCdEc4VzBeWeQ">
<upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_jqYluGEMEeCdEc4VzBeWeQ" value="*"/>
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_jqYlt2EMEeCdEc4VzBeWeQ"/>
</ownedParameter>
</ownedOperation>
<ownedOperation xmi:id="_jqYluWEMEeCdEc4VzBeWeQ" name="setReceiverRange" visibility="public">
<ownedComment xmi:id="_jqYlumEMEeCdEc4VzBeWeQ">
<body>
* Sets the character indices of the subrange in the
* source file buffer containing the relevant receiver
* of the member being completed.
*
* &lt;p>
* If not set, defaults to empty subrange at [0,0).
* &lt;/p>
*
* @param startIndex character index of receiver start position (inclusive)
* @param endIndex character index of receiver end position (exclusive)
*
* @since 3.4
</body>
</ownedComment>
<ownedParameter xmi:id="_jqiWsGEMEeCdEc4VzBeWeQ" name="startIndex" type="_dTlbsGEMEeCdEc4VzBeWeQ"/>
<ownedParameter xmi:id="_jqiWsWEMEeCdEc4VzBeWeQ" name="endIndex" type="_dTlbsGEMEeCdEc4VzBeWeQ"/>
</ownedOperation>
</packagedElement>
<packagedElement xmi:type="uml:Class" xmi:id="_jq_CoGEMEeCdEc4VzBeWeQ" name="CompletionRequestor" isAbstract="true">
<ownedComment xmi:id="_jq_CoWEMEeCdEc4VzBeWeQ">
<body>
* Abstract base class for a completion requestor which is passed completion
* proposals as they are generated in response to a code assist request.
* &lt;p>
* This class is intended to be subclassed by clients.
* &lt;/p>
* &lt;p>
* The code assist engine normally invokes methods on completion
* requestor in the following sequence:
* &lt;pre>
* requestor.beginReporting();
* requestor.acceptContext(context);
* requestor.accept(proposal_1);
* requestor.accept(proposal_2);
* ...
* requestor.endReporting();
* &lt;/pre>
* If, however, the engine is unable to offer completion proposals
* for whatever reason, &lt;code>completionFailure&lt;/code> is called
* with a problem object describing why completions were unavailable.
* In this case, the sequence of calls is:
* &lt;pre>
* requestor.beginReporting();
* requestor.acceptContext(context);
* requestor.completionFailure(problem);
* requestor.endReporting();
* &lt;/pre>
* In either case, the bracketing &lt;code>beginReporting&lt;/code>
* &lt;code>endReporting&lt;/code> calls are always made as well as
* &lt;code>acceptContext&lt;/code> call.
* &lt;/p>
* &lt;p>
* The class was introduced in 3.0 as a more evolvable replacement
* for the &lt;code>ICompletionRequestor&lt;/code> interface.
* &lt;/p>
*
* @see ICodeAssist
* @since 3.0
</body>
</ownedComment>
<ownedAttribute xmi:id="_jrIMkGEMEeCdEc4VzBeWeQ" name="ignoreSet" visibility="private" type="_dTlbsGEMEeCdEc4VzBeWeQ" isUnique="false">
<ownedComment xmi:id="_jrIMkWEMEeCdEc4VzBeWeQ">
<body>
* The set of CompletionProposal kinds that this requestor
* ignores; &lt;code>0&lt;/code> means the set is empty.
* 1 &lt;&lt; completionProposalKind
</body>
</ownedComment>
</ownedAttribute>
<ownedAttribute xmi:id="_jrIMkmEMEeCdEc4VzBeWeQ" name="favoriteReferences" visibility="private" type="_dSiS02EMEeCdEc4VzBeWeQ" isUnique="false">
<upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_jrIMlGEMEeCdEc4VzBeWeQ" value="*"/>
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_jrIMk2EMEeCdEc4VzBeWeQ"/>
</ownedAttribute>
<ownedAttribute xmi:id="_jrIMlWEMEeCdEc4VzBeWeQ" name="requiredProposalAllowSet" visibility="private" type="_dTlbsGEMEeCdEc4VzBeWeQ" isUnique="false">
<ownedComment xmi:id="_jrIMlmEMEeCdEc4VzBeWeQ">
<body>
* The set of CompletionProposal kinds that this requestor
* allows for required proposals; &lt;code>0&lt;/code> means the set is empty.
* 1 &lt;&lt; completionProposalKind
</body>
</ownedComment>
</ownedAttribute>
<ownedAttribute xmi:id="_jrIMl2EMEeCdEc4VzBeWeQ" name="requireExtendedContext" visibility="private" type="_dVOadGEMEeCdEc4VzBeWeQ" isUnique="false"/>
<ownedOperation xmi:id="_jrIMmGEMEeCdEc4VzBeWeQ" name="isIgnored" visibility="public">
<ownedComment xmi:id="_jrIMmWEMEeCdEc4VzBeWeQ">
<body>
* Returns whether the given kind of completion proposal is ignored.
*
* @param completionProposalKind one of the kind constants declared
* on &lt;code>CompletionProposal&lt;/code>
* @return &lt;code>true&lt;/code> if the given kind of completion proposal
* is ignored by this requestor, and &lt;code>false&lt;/code> if it is of
* interest
* @see #setIgnored(int, boolean)
* @see CompletionProposal#getKind()
</body>
</ownedComment>
<ownedParameter xmi:id="_jrIMmmEMEeCdEc4VzBeWeQ" type="_dVOadGEMEeCdEc4VzBeWeQ" direction="return"/>
<ownedParameter xmi:id="_jrIMm2EMEeCdEc4VzBeWeQ" name="completionProposalKind" type="_dTlbsGEMEeCdEc4VzBeWeQ"/>
</ownedOperation>
<ownedOperation xmi:id="_jrR9kGEMEeCdEc4VzBeWeQ" name="setIgnored" visibility="public">
<ownedComment xmi:id="_jrR9kWEMEeCdEc4VzBeWeQ">
<body>
* Sets whether the given kind of completion proposal is ignored.
*
* @param completionProposalKind one of the kind constants declared
* on &lt;code>CompletionProposal&lt;/code>
* @param ignore &lt;code>true&lt;/code> if the given kind of completion proposal
* is ignored by this requestor, and &lt;code>false&lt;/code> if it is of
* interest
* @see #isIgnored(int)
* @see CompletionProposal#getKind()
</body>
</ownedComment>
<ownedParameter xmi:id="_jrR9kmEMEeCdEc4VzBeWeQ" name="completionProposalKind" type="_dTlbsGEMEeCdEc4VzBeWeQ"/>
<ownedParameter xmi:id="_jrR9k2EMEeCdEc4VzBeWeQ" name="ignore" type="_dVOadGEMEeCdEc4VzBeWeQ"/>
</ownedOperation>
<ownedOperation xmi:id="_jrR9lGEMEeCdEc4VzBeWeQ" name="isAllowingRequiredProposals" visibility="public">
<ownedComment xmi:id="_jrR9lWEMEeCdEc4VzBeWeQ">
<body>
* Returns whether a proposal of a given kind with a required proposal
* of the given kind is allowed.
*
* @param proposalKind one of the kind constants declared
* @param requiredProposalKind one of the kind constants declared
* on &lt;code>CompletionProposal&lt;/code>
* @return &lt;code>true&lt;/code> if a proposal of a given kind with a required proposal
* of the given kind is allowed by this requestor, and &lt;code>false&lt;/code>
* if it isn't of interest.
* &lt;p>
* By default, all kinds of required proposals aren't allowed.
* &lt;/p>
* @see #setAllowsRequiredProposals(int, int, boolean)
* @see CompletionProposal#getKind()
* @see CompletionProposal#getRequiredProposals()
*
* @since 3.3
</body>
</ownedComment>
<ownedParameter xmi:id="_jrR9lmEMEeCdEc4VzBeWeQ" type="_dVOadGEMEeCdEc4VzBeWeQ" direction="return"/>
<ownedParameter xmi:id="_jrR9l2EMEeCdEc4VzBeWeQ" name="proposalKind" type="_dTlbsGEMEeCdEc4VzBeWeQ"/>
<ownedParameter xmi:id="_jrbHgGEMEeCdEc4VzBeWeQ" name="requiredProposalKind" type="_dTlbsGEMEeCdEc4VzBeWeQ"/>
</ownedOperation>
<ownedOperation xmi:id="_jrbHgWEMEeCdEc4VzBeWeQ" name="setAllowsRequiredProposals" visibility="public">
<ownedComment xmi:id="_jrbHgmEMEeCdEc4VzBeWeQ">
<body>
* Sets whether a proposal of a given kind with a required proposal
* of the given kind is allowed.
*
* A required proposal of a given kind is proposed even if {@link #isIgnored(int)}
* return &lt;code>true&lt;/code> for that kind.
*
* Currently only a subset of kinds support required proposals. To see what combinations
* are supported you must look at {@link CompletionProposal#getRequiredProposals()}
* documentation.
*
* @param proposalKind one of the kind constants declared
* @param requiredProposalKind one of the kind constants declared
* on &lt;code>CompletionProposal&lt;/code>
* @param allow &lt;code>true&lt;/code> if a proposal of a given kind with a required proposal
* of the given kind is allowed by this requestor, and &lt;code>false&lt;/code>
* if it isn't of interest
* @see #isAllowingRequiredProposals(int, int)
* @see CompletionProposal#getKind()
* @see CompletionProposal#getRequiredProposals()
*
* @since 3.3
</body>
</ownedComment>
<ownedParameter xmi:id="_jrbHg2EMEeCdEc4VzBeWeQ" name="proposalKind" type="_dTlbsGEMEeCdEc4VzBeWeQ"/>
<ownedParameter xmi:id="_jrbHhGEMEeCdEc4VzBeWeQ" name="requiredProposalKind" type="_dTlbsGEMEeCdEc4VzBeWeQ"/>
<ownedParameter xmi:id="_jrbHhWEMEeCdEc4VzBeWeQ" name="allow" type="_dVOadGEMEeCdEc4VzBeWeQ"/>
</ownedOperation>
<ownedOperation xmi:id="_jrbHhmEMEeCdEc4VzBeWeQ" name="getFavoriteReferences" visibility="public">
<ownedComment xmi:id="_jrbHh2EMEeCdEc4VzBeWeQ">
<body>
* Returns the favorite references which are used to compute some completion proposals.
* &lt;p>
* A favorite reference is a qualified reference as it can be seen in an import statement.&lt;br>
* e.g. &lt;code>{&quot;java.util.Arrays&quot;}&lt;/code>&lt;br>
* It can be an on demand reference.&lt;br>
* e.g. &lt;code>{&quot;java.util.Arrays.*&quot;}&lt;/code>
* It can be a reference to a static method or field (as in a static import)&lt;br>
* e.g. &lt;code>{&quot;java.util.Arrays.equals&quot;}&lt;/code>
* &lt;/p>
* &lt;p>
* Currently only on demand type references (&lt;code>&quot;java.util.Arrays.*&quot;&lt;/code>),
* references to a static method or a static field are used to compute completion proposals.
* Other kind of reference could be used in the future.
* &lt;/p>
* @return favorite imports
*
* @since 3.3
</body>
</ownedComment>
<ownedParameter xmi:id="_jrbHiGEMEeCdEc4VzBeWeQ" type="_dSiS02EMEeCdEc4VzBeWeQ" direction="return">
<upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_jrbHimEMEeCdEc4VzBeWeQ" value="*"/>
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_jrbHiWEMEeCdEc4VzBeWeQ"/>
</ownedParameter>
</ownedOperation>
<ownedOperation xmi:id="_jrbHi2EMEeCdEc4VzBeWeQ" name="setFavoriteReferences" visibility="public">
<ownedComment xmi:id="_jrbHjGEMEeCdEc4VzBeWeQ">
<body>
* Set the favorite references which will be used to compute some completion proposals.
* A favorite reference is a qualified reference as it can be seen in an import statement.&lt;br>
*
* @param favoriteImports
*
* @see #getFavoriteReferences()
*
* @since 3.3
</body>
</ownedComment>
<ownedParameter xmi:id="_jrbHjWEMEeCdEc4VzBeWeQ" name="favoriteImports" type="_dSiS02EMEeCdEc4VzBeWeQ">
<upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_jrbHj2EMEeCdEc4VzBeWeQ" value="*"/>
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_jrbHjmEMEeCdEc4VzBeWeQ"/>
</ownedParameter>
</ownedOperation>
<ownedOperation xmi:id="_jrk4gGEMEeCdEc4VzBeWeQ" name="beginReporting" visibility="public">
<ownedComment xmi:id="_jrk4gWEMEeCdEc4VzBeWeQ">
<body>
* Pro forma notification sent before reporting a batch of
* completion proposals.
* &lt;p>
* The default implementation of this method does nothing.
* Clients may override.
* &lt;/p>
</body>
</ownedComment>
</ownedOperation>
<ownedOperation xmi:id="_jrk4gmEMEeCdEc4VzBeWeQ" name="endReporting" visibility="public">
<ownedComment xmi:id="_jrk4g2EMEeCdEc4VzBeWeQ">
<body>
* Pro forma notification sent after reporting a batch of
* completion proposals.
* &lt;p>
* The default implementation of this method does nothing.
* Clients may override.
* &lt;/p>
</body>
</ownedComment>
</ownedOperation>
<ownedOperation xmi:id="_jrk4hmEMEeCdEc4VzBeWeQ" name="completionFailure" visibility="public">
<ownedComment xmi:id="_jrk4h2EMEeCdEc4VzBeWeQ">
<body>
* Notification of failure to produce any completions.
* The problem object explains what prevented completing.
* &lt;p>
* The default implementation of this method does nothing.
* Clients may override to receive this kind of notice.
* &lt;/p>
*
* @param problem the problem object
</body>
</ownedComment>
<ownedParameter xmi:id="_jrk4iGEMEeCdEc4VzBeWeQ" name="problem" type="_jrk4hWEMEeCdEc4VzBeWeQ"/>
</ownedOperation>
<ownedOperation xmi:id="_jrk4iWEMEeCdEc4VzBeWeQ" name="accept" visibility="public" isAbstract="true">
<ownedComment xmi:id="_jrk4imEMEeCdEc4VzBeWeQ">
<body>
* Proposes a completion. Has no effect if the kind of proposal
* is being ignored by this requestor. Callers should consider
* checking {@link #isIgnored(int)} before avoid creating proposal
* objects that would only be ignored.
* &lt;p>
* Similarly, implementers should check
* {@link #isIgnored(int) isIgnored(proposal.getKind())}
* and ignore proposals that have been declared as uninteresting.
* The proposal object passed is only valid for the duration of
* completion operation.
*
* @param proposal the completion proposal
* @exception IllegalArgumentException if the proposal is null
</body>
</ownedComment>
<ownedParameter xmi:id="_jrk4i2EMEeCdEc4VzBeWeQ" name="proposal" type="_jnQZMGEMEeCdEc4VzBeWeQ"/>
</ownedOperation>
<ownedOperation xmi:id="_jrk4jGEMEeCdEc4VzBeWeQ" name="acceptContext" visibility="public">
<ownedComment xmi:id="_jrk4jWEMEeCdEc4VzBeWeQ">
<body>
* Propose the context in which the completion occurs.
* &lt;p>
* This method is called one and only one time before any call to
* {@link #accept(CompletionProposal)}.
* The default implementation of this method does nothing.
* Clients may override.
* &lt;/p>
* @param context the completion context
*
* @since 3.1
</body>
</ownedComment>
<ownedParameter xmi:id="_jrk4jmEMEeCdEc4VzBeWeQ" name="context" type="_jlxLcWEMEeCdEc4VzBeWeQ"/>
</ownedOperation>
<ownedOperation xmi:id="_jrk4j2EMEeCdEc4VzBeWeQ" name="isExtendedContextRequired" visibility="public">
<ownedComment xmi:id="_jrk4kGEMEeCdEc4VzBeWeQ">
<body>
* Returns whether this requestor requires an extended context.
*
* By default this method return &lt;code>false&lt;/code>.
*
* @return &lt;code>true&lt;/code> if this requestor requires an extended context.
*
* @see CompletionContext#isExtended()
*
* @since 3.4
</body>
</ownedComment>
<ownedParameter xmi:id="_jrupgGEMEeCdEc4VzBeWeQ" type="_dVOadGEMEeCdEc4VzBeWeQ" direction="return"/>
</ownedOperation>
<ownedOperation xmi:id="_jrupgWEMEeCdEc4VzBeWeQ" name="setRequireExtendedContext" visibility="public">
<ownedComment xmi:id="_jrupgmEMEeCdEc4VzBeWeQ">
<body>
* Sets whether this requestor requires an extended context.
*
* @param require &lt;code>true&lt;/code> if this requestor requires an extended context.
*
* @see CompletionContext#isExtended()
*
* @since 3.4
</body>
</ownedComment>
<ownedParameter xmi:id="_jrupg2EMEeCdEc4VzBeWeQ" name="require" type="_dVOadGEMEeCdEc4VzBeWeQ"/>
</ownedOperation>
</packagedElement>
<packagedElement xmi:type="uml:Package" xmi:id="_jrk4hGEMEeCdEc4VzBeWeQ" name="compiler">
<packagedElement xmi:type="uml:Interface" xmi:id="_jrk4hWEMEeCdEc4VzBeWeQ" name="IProblem"/>
<packagedElement xmi:type="uml:Interface" xmi:id="_nGVIIGEMEeCdEc4VzBeWeQ" name="IScanner"/>
</packagedElement>
<packagedElement xmi:type="uml:Class" xmi:id="_jsLVcGEMEeCdEc4VzBeWeQ" name="CompletionRequestorAdapter">
<ownedComment xmi:id="_jsLVcWEMEeCdEc4VzBeWeQ">
<body>
* Adapter of the requestor interface &lt;code>ICompletionRequestor&lt;/code>.
* &lt;p>
* This class is intended to be instantiated and subclassed by clients.
* &lt;/p>
*
* @see ICompletionRequestor
* @since 2.0
* @deprecated Subclass {@link CompletionRequestor} instead.
</body>
</ownedComment>
</packagedElement>
<packagedElement xmi:type="uml:Class" xmi:id="_jv5X0GEMEeCdEc4VzBeWeQ" name="CorrectionEngine">
<ownedComment xmi:id="_jv5X0WEMEeCdEc4VzBeWeQ">
<body>
* This class is the entry point for source corrections.
*
* This class is intended to be instantiated by clients.
*
* @since 2.0
* @noextend This class is not intended to be subclassed by clients.
</body>
</ownedComment>
<ownedAttribute xmi:id="_jv5X0mEMEeCdEc4VzBeWeQ" name="correctionStart" visibility="protected" type="_dTlbsGEMEeCdEc4VzBeWeQ" isUnique="false">
<ownedComment xmi:id="_jv5X02EMEeCdEc4VzBeWeQ">
<body>
* This field is not intended to be used by client.
</body>
</ownedComment>
</ownedAttribute>
<ownedAttribute xmi:id="_jv5X1GEMEeCdEc4VzBeWeQ" name="correctionEnd" visibility="protected" type="_dTlbsGEMEeCdEc4VzBeWeQ" isUnique="false">
<ownedComment xmi:id="_jv5X1WEMEeCdEc4VzBeWeQ">
<body>
* This field is not intended to be used by client.
</body>
</ownedComment>
</ownedAttribute>
<ownedAttribute xmi:id="_jv5X1mEMEeCdEc4VzBeWeQ" name="prefixLength" visibility="protected" type="_dTlbsGEMEeCdEc4VzBeWeQ" isUnique="false">
<ownedComment xmi:id="_jwDI0GEMEeCdEc4VzBeWeQ">
<body>
* This field is not intended to be used by client.
</body>
</ownedComment>
</ownedAttribute>
</packagedElement>
<packagedElement xmi:type="uml:Class" xmi:id="_jwf0wGEMEeCdEc4VzBeWeQ" name="ElementChangedEvent">
<ownedComment xmi:id="_jwf0wWEMEeCdEc4VzBeWeQ">
<body>
* An element changed event describes a change to the structure or contents
* of a tree of Java elements. The changes to the elements are described by
* the associated delta object carried by this event.
* &lt;p>
* This class is not intended to be instantiated or subclassed by clients.
* Instances of this class are automatically created by the Java model.
* &lt;/p>
*
* @see IElementChangedListener
* @see IJavaElementDelta
* @noinstantiate This class is not intended to be instantiated by clients.
* @noextend This class is not intended to be subclassed by clients.
</body>
</ownedComment>
<generalization xmi:id="_jwf0wmEMEeCdEc4VzBeWeQ" general="_dV-BU2EMEeCdEc4VzBeWeQ"/>
<ownedAttribute xmi:id="_jwo-sGEMEeCdEc4VzBeWeQ" name="POST_CHANGE" visibility="public" isLeaf="true" isStatic="true" type="_dTlbsGEMEeCdEc4VzBeWeQ" isUnique="false">
<ownedComment xmi:id="_jwo-sWEMEeCdEc4VzBeWeQ">
<body>
* Event type constant (bit mask) indicating an after-the-fact
* report of creations, deletions, and modifications
* to one or more Java element(s) expressed as a hierarchical
* java element delta as returned by &lt;code>getDelta()&lt;/code>.
*
* Note: this notification occurs during the corresponding POST_CHANGE
* resource change notification, and contains a full delta accounting for
* any JavaModel operation and/or resource change.
*
* @see IJavaElementDelta
* @see org.eclipse.core.resources.IResourceChangeEvent
* @see #getDelta()
* @since 2.0
</body>
</ownedComment>
</ownedAttribute>
<ownedAttribute xmi:id="_jwo-smEMEeCdEc4VzBeWeQ" name="PRE_AUTO_BUILD" visibility="public" isLeaf="true" isStatic="true" type="_dTlbsGEMEeCdEc4VzBeWeQ" isUnique="false">
<ownedComment xmi:id="_jwo-s2EMEeCdEc4VzBeWeQ">
<body>
* Event type constant (bit mask) indicating an after-the-fact
* report of creations, deletions, and modifications
* to one or more Java element(s) expressed as a hierarchical
* java element delta as returned by &lt;code>getDelta&lt;/code>.
*
* Note: this notification occurs during the corresponding PRE_AUTO_BUILD
* resource change notification. The delta, which is notified here, only contains
* information relative to the previous JavaModel operations (in other words,
* it ignores the possible resources which have changed outside Java operations).
* In particular, it is possible that the JavaModel be inconsistent with respect to
* resources, which got modified outside JavaModel operations (it will only be
* fully consistent once the POST_CHANGE notification has occurred).
*
* @see IJavaElementDelta
* @see org.eclipse.core.resources.IResourceChangeEvent
* @see #getDelta()
* @since 2.0
* @deprecated - no longer used, such deltas are now notified during POST_CHANGE
</body>
</ownedComment>
</ownedAttribute>
<ownedAttribute xmi:id="_jwo-tGEMEeCdEc4VzBeWeQ" name="POST_RECONCILE" visibility="public" isLeaf="true" isStatic="true" type="_dTlbsGEMEeCdEc4VzBeWeQ" isUnique="false">
<ownedComment xmi:id="_jwo-tWEMEeCdEc4VzBeWeQ">
<body>
* Event type constant (bit mask) indicating an after-the-fact
* report of creations, deletions, and modifications
* to one or more Java element(s) expressed as a hierarchical
* java element delta as returned by &lt;code>getDelta&lt;/code>.
*
* Note: this notification occurs as a result of a working copy reconcile
* operation.
*
* @see IJavaElementDelta
* @see org.eclipse.core.resources.IResourceChangeEvent
* @see #getDelta()
* @since 2.0
</body>
</ownedComment>
</ownedAttribute>
<ownedAttribute xmi:id="_jwo-tmEMEeCdEc4VzBeWeQ" name="serialVersionUID" visibility="private" isLeaf="true" isStatic="true" type="_dWatRGEMEeCdEc4VzBeWeQ" isUnique="false"/>
<ownedAttribute xmi:id="_jwyvsGEMEeCdEc4VzBeWeQ" name="type" visibility="private" type="_dTlbsGEMEeCdEc4VzBeWeQ" isUnique="false"/>
<ownedOperation xmi:id="_jwyvsWEMEeCdEc4VzBeWeQ" name="getDelta" visibility="public">
<ownedComment xmi:id="_jwyvsmEMEeCdEc4VzBeWeQ">
<body>
* Returns the delta describing the change.
*
* @return the delta describing the change
</body>
</ownedComment>
</ownedOperation>
</packagedElement>
<packagedElement xmi:type="uml:Class" xmi:id="_jxYlkGEMEeCdEc4VzBeWeQ" name="Flags" isLeaf="true">
<ownedComment xmi:id="_jxYlkWEMEeCdEc4VzBeWeQ">
<body>
* Utility class for decoding modifier flags in Java elements.
* &lt;p>
* This class provides static methods only.
* &lt;/p>
* &lt;p>
* Note that the numeric values of these flags match the ones for class files
* as described in the Java Virtual Machine Specification. The AST class
* &lt;code>Modifier&lt;/code> provides the same functionality as this class, only in
* the &lt;code>org.eclipse.jdt.core.dom&lt;/code> package.
* &lt;/p>
*
* @see IMember#getFlags()
* @noinstantiate This class is not intended to be instantiated by clients.
</body>
</ownedComment>
<ownedAttribute xmi:id="_jxiWkGEMEeCdEc4VzBeWeQ" name="AccDefault" visibility="public" isLeaf="true" isStatic="true" type="_dTlbsGEMEeCdEc4VzBeWeQ" isUnique="false">
<ownedComment xmi:id="_jxiWkWEMEeCdEc4VzBeWeQ">
<body>
* Constant representing the absence of any flag
* @since 3.0
</body>
</ownedComment>
</ownedAttribute>
<ownedAttribute xmi:id="_jxiWkmEMEeCdEc4VzBeWeQ" name="AccPublic" visibility="public" isLeaf="true" isStatic="true" type="_dTlbsGEMEeCdEc4VzBeWeQ" isUnique="false">
<ownedComment xmi:id="_jxiWk2EMEeCdEc4VzBeWeQ">
<body>
* Public access flag. See The Java Virtual Machine Specification for more details.
* @since 2.0
</body>
</ownedComment>
</ownedAttribute>
<ownedAttribute xmi:id="_jxiWlGEMEeCdEc4VzBeWeQ" name="AccPrivate" visibility="public" isLeaf="true" isStatic="true" type="_dTlbsGEMEeCdEc4VzBeWeQ" isUnique="false">
<ownedComment xmi:id="_jxiWlWEMEeCdEc4VzBeWeQ">
<body>
* Private access flag. See The Java Virtual Machine Specification for more details.
* @since 2.0
</body>
</ownedComment>
</ownedAttribute>
<ownedAttribute xmi:id="_jxsHkGEMEeCdEc4VzBeWeQ" name="AccProtected" visibility="public" isLeaf="true" isStatic="true" type="_dTlbsGEMEeCdEc4VzBeWeQ" isUnique="false">
<ownedComment xmi:id="_jx1RgGEMEeCdEc4VzBeWeQ">
<body>
* Protected access flag. See The Java Virtual Machine Specification for more details.
* @since 2.0
</body>
</ownedComment>
</ownedAttribute>
<ownedAttribute xmi:id="_jx1RgWEMEeCdEc4VzBeWeQ" name="AccStatic" visibility="public" isLeaf="true" isStatic="true" type="_dTlbsGEMEeCdEc4VzBeWeQ" isUnique="false">
<ownedComment xmi:id="_jx1RgmEMEeCdEc4VzBeWeQ">
<body>
* Static access flag. See The Java Virtual Machine Specification for more details.
* @since 2.0
</body>
</ownedComment>
</ownedAttribute>
<ownedAttribute xmi:id="_jx1Rg2EMEeCdEc4VzBeWeQ" name="AccFinal" visibility="public" isLeaf="true" isStatic="true" type="_dTlbsGEMEeCdEc4VzBeWeQ" isUnique="false">
<ownedComment xmi:id="_jx1RhGEMEeCdEc4VzBeWeQ">
<body>
* Final access flag. See The Java Virtual Machine Specification for more details.
* @since 2.0
</body>
</ownedComment>
</ownedAttribute>
<ownedAttribute xmi:id="_jx1RhWEMEeCdEc4VzBeWeQ" name="AccSynchronized" visibility="public" isLeaf="true" isStatic="true" type="_dTlbsGEMEeCdEc4VzBeWeQ" isUnique="false">
<ownedComment xmi:id="_jx_CgGEMEeCdEc4VzBeWeQ">
<body>
* Synchronized access flag. See The Java Virtual Machine Specification for more details.
* @since 2.0
</body>
</ownedComment>
</ownedAttribute>
<ownedAttribute xmi:id="_jx_CgWEMEeCdEc4VzBeWeQ" name="AccVolatile" visibility="public" isLeaf="true" isStatic="true" type="_dTlbsGEMEeCdEc4VzBeWeQ" isUnique="false">
<ownedComment xmi:id="_jx_CgmEMEeCdEc4VzBeWeQ">
<body>
* Volatile property flag. See The Java Virtual Machine Specification for more details.
* @since 2.0
</body>
</ownedComment>
</ownedAttribute>
<ownedAttribute xmi:id="_jx_Cg2EMEeCdEc4VzBeWeQ" name="AccTransient" visibility="public" isLeaf="true" isStatic="true" type="_dTlbsGEMEeCdEc4VzBeWeQ" isUnique="false">
<ownedComment xmi:id="_jx_ChGEMEeCdEc4VzBeWeQ">
<body>
* Transient property flag. See The Java Virtual Machine Specification for more details.
* @since 2.0
</body>
</ownedComment>
</ownedAttribute>
<ownedAttribute xmi:id="_jx_ChWEMEeCdEc4VzBeWeQ" name="AccNative" visibility="public" isLeaf="true" isStatic="true" type="_dTlbsGEMEeCdEc4VzBeWeQ" isUnique="false">
<ownedComment xmi:id="_jx_ChmEMEeCdEc4VzBeWeQ">
<body>
* Native property flag. See The Java Virtual Machine Specification for more details.
* @since 2.0
</body>
</ownedComment>
</ownedAttribute>
<ownedAttribute xmi:id="_jyIzgGEMEeCdEc4VzBeWeQ" name="AccInterface" visibility="public" isLeaf="true" isStatic="true" type="_dTlbsGEMEeCdEc4VzBeWeQ" isUnique="false">
<ownedComment xmi:id="_jyIzgWEMEeCdEc4VzBeWeQ">
<body>
* Interface property flag. See The Java Virtual Machine Specification for more details.
* @since 2.0
</body>
</ownedComment>
</ownedAttribute>
<ownedAttribute xmi:id="_jyIzgmEMEeCdEc4VzBeWeQ" name="AccAbstract" visibility="public" isLeaf="true" isStatic="true" type="_dTlbsGEMEeCdEc4VzBeWeQ" isUnique="false">
<ownedComment xmi:id="_jyIzg2EMEeCdEc4VzBeWeQ">
<body>
* Abstract property flag. See The Java Virtual Machine Specification for more details.
* @since 2.0
</body>
</ownedComment>
</ownedAttribute>
<ownedAttribute xmi:id="_jyIzhGEMEeCdEc4VzBeWeQ" name="AccStrictfp" visibility="public" isLeaf="true" isStatic="true" type="_dTlbsGEMEeCdEc4VzBeWeQ" isUnique="false">
<ownedComment xmi:id="_jyIzhWEMEeCdEc4VzBeWeQ">
<body>
* Strictfp property flag. See The Java Virtual Machine Specification for more details.
* @since 2.0
</body>
</ownedComment>
</ownedAttribute>
<ownedAttribute xmi:id="_jyR9cGEMEeCdEc4VzBeWeQ" name="AccSuper" visibility="public" isLeaf="true" isStatic="true" type="_dTlbsGEMEeCdEc4VzBeWeQ" isUnique="false">
<ownedComment xmi:id="_jyR9cWEMEeCdEc4VzBeWeQ">
<body>
* Super property flag. See The Java Virtual Machine Specification for more details.
* @since 2.0
</body>
</ownedComment>
</ownedAttribute>
<ownedAttribute xmi:id="_jyR9cmEMEeCdEc4VzBeWeQ" name="AccSynthetic" visibility="public" isLeaf="true" isStatic="true" type="_dTlbsGEMEeCdEc4VzBeWeQ" isUnique="false">
<ownedComment xmi:id="_jyR9c2EMEeCdEc4VzBeWeQ">
<body>
* Synthetic property flag. See The Java Virtual Machine Specification for more details.
* @since 2.0
</body>
</ownedComment>
</ownedAttribute>
<ownedAttribute xmi:id="_jyR9dGEMEeCdEc4VzBeWeQ" name="AccDeprecated" visibility="public" isLeaf="true" isStatic="true" type="_dTlbsGEMEeCdEc4VzBeWeQ" isUnique="false">
<ownedComment xmi:id="_jyR9dWEMEeCdEc4VzBeWeQ">
<body>
* Deprecated property flag. See The Java Virtual Machine Specification for more details.
* @since 2.0
</body>
</ownedComment>
</ownedAttribute>
<ownedAttribute xmi:id="_jybucGEMEeCdEc4VzBeWeQ" name="AccBridge" visibility="public" isLeaf="true" isStatic="true" type="_dTlbsGEMEeCdEc4VzBeWeQ" isUnique="false">
<ownedComment xmi:id="_jybucWEMEeCdEc4VzBeWeQ">
<body>
* Bridge method property flag (added in J2SE 1.5). Used to flag a compiler-generated
* bridge methods.
* See The Java Virtual Machine Specification for more details.
* @since 3.0
</body>
</ownedComment>
</ownedAttribute>
<ownedAttribute xmi:id="_jybucmEMEeCdEc4VzBeWeQ" name="AccVarargs" visibility="public" isLeaf="true" isStatic="true" type="_dTlbsGEMEeCdEc4VzBeWeQ" isUnique="false">
<ownedComment xmi:id="_jybuc2EMEeCdEc4VzBeWeQ">
<body>
* Varargs method property flag (added in J2SE 1.5).
* Used to flag variable arity method declarations.
* See The Java Virtual Machine Specification for more details.
* @since 3.0
</body>
</ownedComment>
</ownedAttribute>
<ownedAttribute xmi:id="_jybudGEMEeCdEc4VzBeWeQ" name="AccEnum" visibility="public" isLeaf="true" isStatic="true" type="_dTlbsGEMEeCdEc4VzBeWeQ" isUnique="false">
<ownedComment xmi:id="_jybudWEMEeCdEc4VzBeWeQ">
<body>
* Enum property flag (added in J2SE 1.5).
* See The Java Virtual Machine Specification for more details.
* @since 3.0
</body>
</ownedComment>
</ownedAttribute>
<ownedAttribute xmi:id="_jybudmEMEeCdEc4VzBeWeQ" name="AccAnnotation" visibility="public" isLeaf="true" isStatic="true" type="_dTlbsGEMEeCdEc4VzBeWeQ" isUnique="false">
<ownedComment xmi:id="_jyk4YGEMEeCdEc4VzBeWeQ">
<body>
* Annotation property flag (added in J2SE 1.5).
* See The Java Virtual Machine Specification for more details.
* @since 3.0
</body>
</ownedComment>
</ownedAttribute>
<ownedOperation xmi:id="_jyk4YWEMEeCdEc4VzBeWeQ" name="isAbstract" visibility="public" isStatic="true">
<ownedComment xmi:id="_jyk4YmEMEeCdEc4VzBeWeQ">
<body>
* Returns whether the given integer includes the &lt;code>abstract&lt;/code> modifier.
*
* @param flags the flags
* @return &lt;code>true&lt;/code> if the &lt;code>abstract&lt;/code> modifier is included
</body>
</ownedComment>
<ownedParameter xmi:id="_jyk4Y2EMEeCdEc4VzBeWeQ" type="_dVOadGEMEeCdEc4VzBeWeQ" direction="return"/>
<ownedParameter xmi:id="_jy4aYGEMEeCdEc4VzBeWeQ" name="flags" type="_dTlbsGEMEeCdEc4VzBeWeQ"/>
</ownedOperation>
<ownedOperation xmi:id="_jy4aYWEMEeCdEc4VzBeWeQ" name="isDeprecated" visibility="public" isStatic="true">
<ownedComment xmi:id="_jy4aYmEMEeCdEc4VzBeWeQ">
<body>
* Returns whether the given integer includes the indication that the
* element is deprecated (&lt;code>@deprecated&lt;/code> tag in Javadoc comment).
*
* @param flags the flags
* @return &lt;code>true&lt;/code> if the element is marked as deprecated
</body>
</ownedComment>
<ownedParameter xmi:id="_jy4aY2EMEeCdEc4VzBeWeQ" type="_dVOadGEMEeCdEc4VzBeWeQ" direction="return"/>
<ownedParameter xmi:id="_jy4aZGEMEeCdEc4VzBeWeQ" name="flags" type="_dTlbsGEMEeCdEc4VzBeWeQ"/>
</ownedOperation>
<ownedOperation xmi:id="_jy4aZWEMEeCdEc4VzBeWeQ" name="isFinal" visibility="public" isStatic="true">
<ownedComment xmi:id="_jy4aZmEMEeCdEc4VzBeWeQ">
<body>
* Returns whether the given integer includes the &lt;code>final&lt;/code> modifier.
*
* @param flags the flags
* @return &lt;code>true&lt;/code> if the &lt;code>final&lt;/code> modifier is included
</body>
</ownedComment>
<ownedParameter xmi:id="_jzBkUGEMEeCdEc4VzBeWeQ" type="_dVOadGEMEeCdEc4VzBeWeQ" direction="return"/>
<ownedParameter xmi:id="_jzBkUWEMEeCdEc4VzBeWeQ" name="flags" type="_dTlbsGEMEeCdEc4VzBeWeQ"/>
</ownedOperation>
<ownedOperation xmi:id="_jzBkUmEMEeCdEc4VzBeWeQ" name="isInterface" visibility="public" isStatic="true">
<ownedComment xmi:id="_jzBkU2EMEeCdEc4VzBeWeQ">
<body>
* Returns whether the given integer includes the &lt;code>interface&lt;/code> modifier.
*
* @param flags the flags
* @return &lt;code>true&lt;/code> if the &lt;code>interface&lt;/code> modifier is included
* @since 2.0
</body>
</ownedComment>
<ownedParameter xmi:id="_jzBkVGEMEeCdEc4VzBeWeQ" type="_dVOadGEMEeCdEc4VzBeWeQ" direction="return"/>
<ownedParameter xmi:id="_jzBkVWEMEeCdEc4VzBeWeQ" name="flags" type="_dTlbsGEMEeCdEc4VzBeWeQ"/>
</ownedOperation>
<ownedOperation xmi:id="_jzLVUGEMEeCdEc4VzBeWeQ" name="isNative" visibility="public" isStatic="true">
<ownedComment xmi:id="_jzLVUWEMEeCdEc4VzBeWeQ">
<body>
* Returns whether the given integer includes the &lt;code>native&lt;/code> modifier.
*
* @param flags the flags
* @return &lt;code>true&lt;/code> if the &lt;code>native&lt;/code> modifier is included
</body>
</ownedComment>
<ownedParameter xmi:id="_jzLVUmEMEeCdEc4VzBeWeQ" type="_dVOadGEMEeCdEc4VzBeWeQ" direction="return"/>
<ownedParameter xmi:id="_jzLVU2EMEeCdEc4VzBeWeQ" name="flags" type="_dTlbsGEMEeCdEc4VzBeWeQ"/>
</ownedOperation>
<ownedOperation xmi:id="_jzLVVGEMEeCdEc4VzBeWeQ" name="isPackageDefault" visibility="public" isStatic="true">
<ownedComment xmi:id="_jzLVVWEMEeCdEc4VzBeWeQ">
<body>
* Returns whether the given integer does not include one of the
* &lt;code>public&lt;/code>, &lt;code>private&lt;/code>, or &lt;code>protected&lt;/code> flags.
*
* @param flags the flags
* @return &lt;code>true&lt;/code> if no visibility flag is set
* @since 3.2
</body>
</ownedComment>
<ownedParameter xmi:id="_jzLVVmEMEeCdEc4VzBeWeQ" type="_dVOadGEMEeCdEc4VzBeWeQ" direction="return"/>
<ownedParameter xmi:id="_jzLVV2EMEeCdEc4VzBeWeQ" name="flags" type="_dTlbsGEMEeCdEc4VzBeWeQ"/>
</ownedOperation>
<ownedOperation xmi:id="_jzLVWGEMEeCdEc4VzBeWeQ" name="isPrivate" visibility="public" isStatic="true">
<ownedComment xmi:id="_jzLVWWEMEeCdEc4VzBeWeQ">
<body>
* Returns whether the given integer includes the &lt;code>private&lt;/code> modifier.
*
* @param flags the flags
* @return &lt;code>true&lt;/code> if the &lt;code>private&lt;/code> modifier is included
</body>
</ownedComment>
<ownedParameter xmi:id="_jzVGUGEMEeCdEc4VzBeWeQ" type="_dVOadGEMEeCdEc4VzBeWeQ" direction="return"/>
<ownedParameter xmi:id="_jzVGUWEMEeCdEc4VzBeWeQ" name="flags" type="_dTlbsGEMEeCdEc4VzBeWeQ"/>
</ownedOperation>
<ownedOperation xmi:id="_jzVGUmEMEeCdEc4VzBeWeQ" name="isProtected" visibility="public" isStatic="true">
<ownedComment xmi:id="_jzVGU2EMEeCdEc4VzBeWeQ">
<body>
* Returns whether the given integer includes the &lt;code>protected&lt;/code> modifier.
*
* @param flags the flags
* @return &lt;code>true&lt;/code> if the &lt;code>protected&lt;/code> modifier is included
</body>
</ownedComment>
<ownedParameter xmi:id="_jzVGVGEMEeCdEc4VzBeWeQ" type="_dVOadGEMEeCdEc4VzBeWeQ" direction="return"/>
<ownedParameter xmi:id="_jzVGVWEMEeCdEc4VzBeWeQ" name="flags" type="_dTlbsGEMEeCdEc4VzBeWeQ"/>
</ownedOperation>
<ownedOperation xmi:id="_jzVGVmEMEeCdEc4VzBeWeQ" name="isPublic" visibility="public" isStatic="true">
<ownedComment xmi:id="_jzVGV2EMEeCdEc4VzBeWeQ">
<body>
* Returns whether the given integer includes the &lt;code>public&lt;/code> modifier.
*
* @param flags the flags
* @return &lt;code>true&lt;/code> if the &lt;code>public&lt;/code> modifier is included
</body>
</ownedComment>
<ownedParameter xmi:id="_jzeQQGEMEeCdEc4VzBeWeQ" type="_dVOadGEMEeCdEc4VzBeWeQ" direction="return"/>
<ownedParameter xmi:id="_jzeQQWEMEeCdEc4VzBeWeQ" name="flags" type="_dTlbsGEMEeCdEc4VzBeWeQ"/>
</ownedOperation>
<ownedOperation xmi:id="_jzeQQmEMEeCdEc4VzBeWeQ" name="isStatic" visibility="public" isStatic="true">
<ownedComment xmi:id="_jzeQQ2EMEeCdEc4VzBeWeQ">
<body>
* Returns whether the given integer includes the &lt;code>static&lt;/code> modifier.
*
* @param flags the flags
* @return &lt;code>true&lt;/code> if the &lt;code>static&lt;/code> modifier is included
</body>
</ownedComment>
<ownedParameter xmi:id="_jzeQRGEMEeCdEc4VzBeWeQ" type="_dVOadGEMEeCdEc4VzBeWeQ" direction="return"/>
<ownedParameter xmi:id="_jzeQRWEMEeCdEc4VzBeWeQ" name="flags" type="_dTlbsGEMEeCdEc4VzBeWeQ"/>
</ownedOperation>
<ownedOperation xmi:id="_jzeQRmEMEeCdEc4VzBeWeQ" name="isSuper" visibility="public" isStatic="true">
<ownedComment xmi:id="_jzeQR2EMEeCdEc4VzBeWeQ">
<body>
* Returns whether the given integer includes the &lt;code>super&lt;/code> modifier.
*
* @param flags the flags
* @return &lt;code>true&lt;/code> if the &lt;code>super&lt;/code> modifier is included
* @since 3.2
</body>
</ownedComment>
<ownedParameter xmi:id="_jzeQSGEMEeCdEc4VzBeWeQ" type="_dVOadGEMEeCdEc4VzBeWeQ" direction="return"/>
<ownedParameter xmi:id="_jzoBQGEMEeCdEc4VzBeWeQ" name="flags" type="_dTlbsGEMEeCdEc4VzBeWeQ"/>
</ownedOperation>
<ownedOperation xmi:id="_jzoBQWEMEeCdEc4VzBeWeQ" name="isStrictfp" visibility="public" isStatic="true">
<ownedComment xmi:id="_jzoBQmEMEeCdEc4VzBeWeQ">
<body>
* Returns whether the given integer includes the &lt;code>strictfp&lt;/code> modifier.
*
* @param flags the flags
* @return &lt;code>true&lt;/code> if the &lt;code>strictfp&lt;/code> modifier is included
</body>
</ownedComment>
<ownedParameter xmi:id="_jzoBQ2EMEeCdEc4VzBeWeQ" type="_dVOadGEMEeCdEc4VzBeWeQ" direction="return"/>
<ownedParameter xmi:id="_jzoBRGEMEeCdEc4VzBeWeQ" name="flags" type="_dTlbsGEMEeCdEc4VzBeWeQ"/>
</ownedOperation>
<ownedOperation xmi:id="_jzoBRWEMEeCdEc4VzBeWeQ" name="isSynchronized" visibility="public" isStatic="true">
<ownedComment xmi:id="_jzoBRmEMEeCdEc4VzBeWeQ">
<body>
* Returns whether the given integer includes the &lt;code>synchronized&lt;/code> modifier.
*
* @param flags the flags
* @return &lt;code>true&lt;/code> if the &lt;code>synchronized&lt;/code> modifier is included
</body>
</ownedComment>
<ownedParameter xmi:id="_jzoBR2EMEeCdEc4VzBeWeQ" type="_dVOadGEMEeCdEc4VzBeWeQ" direction="return"/>
<ownedParameter xmi:id="_jzoBSGEMEeCdEc4VzBeWeQ" name="flags" type="_dTlbsGEMEeCdEc4VzBeWeQ"/>
</ownedOperation>
<ownedOperation xmi:id="_jzxLMGEMEeCdEc4VzBeWeQ" name="isSynthetic" visibility="public" isStatic="true">
<ownedComment xmi:id="_jzxLMWEMEeCdEc4VzBeWeQ">
<body>
* Returns whether the given integer includes the indication that the
* element is synthetic.
*
* @param flags the flags
* @return &lt;code>true&lt;/code> if the element is marked synthetic
</body>
</ownedComment>
<ownedParameter xmi:id="_jzxLMmEMEeCdEc4VzBeWeQ" type="_dVOadGEMEeCdEc4VzBeWeQ" direction="return"/>
<ownedParameter xmi:id="_jzxLM2EMEeCdEc4VzBeWeQ" name="flags" type="_dTlbsGEMEeCdEc4VzBeWeQ"/>
</ownedOperation>
<ownedOperation xmi:id="_jzxLNGEMEeCdEc4VzBeWeQ" name="isTransient" visibility="public" isStatic="true">
<ownedComment xmi:id="_jzxLNWEMEeCdEc4VzBeWeQ">
<body>
* Returns whether the given integer includes the &lt;code>transient&lt;/code> modifier.
*
* @param flags the flags
* @return &lt;code>true&lt;/code> if the &lt;code>transient&lt;/code> modifier is included
</body>
</ownedComment>
<ownedParameter xmi:id="_jzxLNmEMEeCdEc4VzBeWeQ" type="_dVOadGEMEeCdEc4VzBeWeQ" direction="return"/>
<ownedParameter xmi:id="_jzxLN2EMEeCdEc4VzBeWeQ" name="flags" type="_dTlbsGEMEeCdEc4VzBeWeQ"/>
</ownedOperation>
<ownedOperation xmi:id="_jzxLOGEMEeCdEc4VzBeWeQ" name="isVolatile" visibility="public" isStatic="true">
<ownedComment xmi:id="_jzxLOWEMEeCdEc4VzBeWeQ">
<body>
* Returns whether the given integer includes the &lt;code>volatile&lt;/code> modifier.
*
* @param flags the flags
* @return &lt;code>true&lt;/code> if the &lt;code>volatile&lt;/code> modifier is included
</body>
</ownedComment>
<ownedParameter xmi:id="_jzxLOmEMEeCdEc4VzBeWeQ" type="_dVOadGEMEeCdEc4VzBeWeQ" direction="return"/>
<ownedParameter xmi:id="_jz68MGEMEeCdEc4VzBeWeQ" name="flags" type="_dTlbsGEMEeCdEc4VzBeWeQ"/>
</ownedOperation>
<ownedOperation xmi:id="_jz68MWEMEeCdEc4VzBeWeQ" name="isBridge" visibility="public" isStatic="true">
<ownedComment xmi:id="_jz68MmEMEeCdEc4VzBeWeQ">
<body>
* Returns whether the given integer has the &lt;code>AccBridge&lt;/code>
* bit set.
*
* @param flags the flags
* @return &lt;code>true&lt;/code> if the &lt;code>AccBridge&lt;/code> flag is included
* @see #AccBridge
* @since 3.0
</body>
</ownedComment>
<ownedParameter xmi:id="_jz68M2EMEeCdEc4VzBeWeQ" type="_dVOadGEMEeCdEc4VzBeWeQ" direction="return"/>
<ownedParameter xmi:id="_jz68NGEMEeCdEc4VzBeWeQ" name="flags" type="_dTlbsGEMEeCdEc4VzBeWeQ"/>
</ownedOperation>
<ownedOperation xmi:id="_jz68NWEMEeCdEc4VzBeWeQ" name="isVarargs" visibility="public" isStatic="true">
<ownedComment xmi:id="_jz68NmEMEeCdEc4VzBeWeQ">
<body>
* Returns whether the given integer has the &lt;code>AccVarargs&lt;/code>
* bit set.
*
* @param flags the flags
* @return &lt;code>true&lt;/code> if the &lt;code>AccVarargs&lt;/code> flag is included
* @see #AccVarargs
* @since 3.0
</body>
</ownedComment>
<ownedParameter xmi:id="_jz68N2EMEeCdEc4VzBeWeQ" type="_dVOadGEMEeCdEc4VzBeWeQ" direction="return"/>
<ownedParameter xmi:id="_jz68OGEMEeCdEc4VzBeWeQ" name="flags" type="_dTlbsGEMEeCdEc4VzBeWeQ"/>
</ownedOperation>
<ownedOperation xmi:id="_j0EtMGEMEeCdEc4VzBeWeQ" name="isEnum" visibility="public" isStatic="true">
<ownedComment xmi:id="_j0EtMWEMEeCdEc4VzBeWeQ">
<body>
* Returns whether the given integer has the &lt;code>AccEnum&lt;/code>
* bit set.
*
* @param flags the flags
* @return &lt;code>true&lt;/code> if the &lt;code>AccEnum&lt;/code> flag is included
* @see #AccEnum
* @since 3.0
</body>
</ownedComment>
<ownedParameter xmi:id="_j0EtMmEMEeCdEc4VzBeWeQ" type="_dVOadGEMEeCdEc4VzBeWeQ" direction="return"/>
<ownedParameter xmi:id="_j0EtM2EMEeCdEc4VzBeWeQ" name="flags" type="_dTlbsGEMEeCdEc4VzBeWeQ"/>
</ownedOperation>
<ownedOperation xmi:id="_j0EtNGEMEeCdEc4VzBeWeQ" name="isAnnotation" visibility="public" isStatic="true">
<ownedComment xmi:id="_j0EtNWEMEeCdEc4VzBeWeQ">
<body>
* Returns whether the given integer has the &lt;code>AccAnnotation&lt;/code>
* bit set.
*
* @param flags the flags
* @return &lt;code>true&lt;/code> if the &lt;code>AccAnnotation&lt;/code> flag is included
* @see #AccAnnotation
* @since 3.0
</body>
</ownedComment>
<ownedParameter xmi:id="_j0EtNmEMEeCdEc4VzBeWeQ" type="_dVOadGEMEeCdEc4VzBeWeQ" direction="return"/>
<ownedParameter xmi:id="_j0EtN2EMEeCdEc4VzBeWeQ" name="flags" type="_dTlbsGEMEeCdEc4VzBeWeQ"/>
</ownedOperation>
<ownedOperation xmi:id="_j0EtOGEMEeCdEc4VzBeWeQ" name="toString" visibility="public" isStatic="true">
<ownedComment xmi:id="_j0EtOWEMEeCdEc4VzBeWeQ">
<body>
* Returns a standard string describing the given modifier flags.
* Only modifier flags are included in the output; deprecated,
* synthetic, bridge, etc. flags are ignored.
* &lt;p>
* The flags are output in the following order:
* &lt;pre>
* &lt;code>public&lt;/code> &lt;code>protected&lt;/code> &lt;code>private&lt;/code>
* &lt;code>static&lt;/code>
* &lt;code>abstract&lt;/code> &lt;code>final&lt;/code> &lt;code>native&lt;/code> &lt;code>synchronized&lt;/code> &lt;code>transient&lt;/code> &lt;code>volatile&lt;/code> &lt;code>strictfp&lt;/code>
* &lt;/pre>
* This is a compromise between the orders specified in sections 8.1.1,
* 8.3.1, 8.4.3, 8.8.3, 9.1.1, and 9.3 of &lt;em>The Java Language
* Specification, Second Edition&lt;/em> (JLS2).
* &lt;/p>
* &lt;p>
* Note that the flags of a method can include the AccVarargs flag that has no standard description. Since the AccVarargs flag has the same value as
* the AccTransient flag (valid for fields only), attempting to get the description of method modifiers with the AccVarargs flag set would result in an
* unexpected description. Clients should ensure that the AccVarargs is not included in the flags of a method as follows:
* &lt;pre>
* IMethod method = ...
* int flags = method.getFlags() &amp; ~Flags.AccVarargs;
* return Flags.toString(flags);
* &lt;/pre>
* &lt;/p>
* &lt;p>
* Examples results:
* &lt;pre>
* &lt;code>&quot;public static final&quot;&lt;/code>
* &lt;code>&quot;private native&quot;&lt;/code>
* &lt;/pre>
* &lt;/p>
*
* @param flags the flags
* @return the standard string representation of the given flags
</body>
</ownedComment>
<ownedParameter xmi:id="_j0EtOmEMEeCdEc4VzBeWeQ" type="_dSiS02EMEeCdEc4VzBeWeQ" direction="return"/>
<ownedParameter xmi:id="_j0N3IGEMEeCdEc4VzBeWeQ" name="flags" type="_dTlbsGEMEeCdEc4VzBeWeQ"/>
</ownedOperation>
</packagedElement>
<packagedElement xmi:type="uml:Interface" xmi:id="_j0hZIGEMEeCdEc4VzBeWeQ" name="IAccessRule">
<ownedComment xmi:id="_j0qjEGEMEeCdEc4VzBeWeQ">
<body>
* Describes an access rule to source and class files on a classpath entry.
* An access rule is composed of a file pattern and a kind (accessible,
* non accessible, or discouraged).
* &lt;p>
* On a given classpath entry, the access rules are considered in the order given
* when the entry was created. When a source or class file matches an access
* rule's pattern, the access rule's kind define whether the file is considered
* accessible, non accessible, or its access is discouraged. If the source or class
* file doesn't match any accessible rule, it is considered accessible. A source or class
* file that is not accessible or discouraged can still be refered to but it is tagged as being not
* accessible - the Java builder will create a problem marker for example.
* The severity of the marker created from a non accessible rule is controled through
* the {@link JavaCore#COMPILER_PB_FORBIDDEN_REFERENCE} compiler option.
* The severity of the marker created from a discouraged rule is controled through
* the {@link JavaCore#COMPILER_PB_DISCOURAGED_REFERENCE} compiler option.
* Note this is different from inclusion and exclusion patterns on source classpath entries,
* where a source file that is excluded is not even compiled.
* Files patterns look like relative file paths with wildcards and are interpreted relative
* to each entry's path.
* File patterns are case-sensitive and they can contain '**', '*' or '?' wildcards (see
* {@link IClasspathEntry#getExclusionPatterns()} for the full description
* of their syntax and semantics).
* Note that file patterns must not include the file extension.
* &lt;code>com/xyz/tests/MyClass&lt;/code> is a valid file pattern, whereas
* &lt;code>com/xyz/tests/MyClass.class&lt;/code> is not valid.
* &lt;/p>
* &lt;p>
* For example, if one of the entry path is &lt;code>/Project/someLib.jar&lt;/code>,
* there are no accessible rules, and there is one non accessible rule whith pattern
* &lt;code>com/xyz/tests/&amp;#42;&amp;#42;&lt;/code>, then class files
* like &lt;code>/Project/someLib.jar/com/xyz/Foo.class&lt;/code>
* and &lt;code>/Project/someLib.jar/com/xyz/utils/Bar.class&lt;/code> would be accessible,
* whereas &lt;code>/Project/someLib.jar/com/xyz/tests/T1.class&lt;/code>
* and &lt;code>/Project/someLib.jar/com/xyz/tests/quick/T2.class&lt;/code> would not be
* accessible.
* &lt;/p>
* &lt;p>
* This interface is not intended to be implemented by clients.
* &lt;/p>
*
* @since 3.1
</body>
</ownedComment>
<ownedAttribute xmi:id="_j0qjEWEMEeCdEc4VzBeWeQ" name="K_ACCESSIBLE" type="_dTlbsGEMEeCdEc4VzBeWeQ" isUnique="false">
<ownedComment xmi:id="_j0qjEmEMEeCdEc4VzBeWeQ">
<body>
* Constant indicating that files matching the rule's pattern are accessible.
</body>
</ownedComment>
</ownedAttribute>
<ownedAttribute xmi:id="_j0qjE2EMEeCdEc4VzBeWeQ" name="K_NON_ACCESSIBLE" type="_dTlbsGEMEeCdEc4VzBeWeQ" isUnique="false">
<ownedComment xmi:id="_j0qjFGEMEeCdEc4VzBeWeQ">
<body>
* Constant indicating that files matching the rule's pattern are non accessible.
</body>
</ownedComment>
</ownedAttribute>
<ownedAttribute xmi:id="_j0qjFWEMEeCdEc4VzBeWeQ" name="K_DISCOURAGED" type="_dTlbsGEMEeCdEc4VzBeWeQ" isUnique="false">
<ownedComment xmi:id="_j0qjFmEMEeCdEc4VzBeWeQ">
<body>
* Constant indicating that access to the files matching the rule's pattern is discouraged.
</body>
</ownedComment>
</ownedAttribute>
<ownedAttribute xmi:id="_j0qjF2EMEeCdEc4VzBeWeQ" name="IGNORE_IF_BETTER" type="_dTlbsGEMEeCdEc4VzBeWeQ" isUnique="false">
<ownedComment xmi:id="_j0qjGGEMEeCdEc4VzBeWeQ">
<body>
* &lt;p>Flag indicating that whether a type matching this rule should be ignored iff a type with
* the same qualified name can be found on a later classpath entry with a better
* accessibility.&lt;/p>
* &lt;p>E.g. if a type p.X matches a rule K_NON_ACCESSIBLE | IGNORE_IF_BETTER
* on a library entry 'lib1' and another type p.X also matches a rule
* K_DISCOURAGED on library entry 'lib2' ('lib2' being after 'lib1' on the
* classpath), then p.X from 'lib2' will be used and reported as
* discouraged.&lt;/p>
*
* @since 3.2
</body>
</ownedComment>
</ownedAttribute>
<ownedOperation xmi:id="_j00UEGEMEeCdEc4VzBeWeQ" name="getPattern">
<ownedComment xmi:id="_j00UEWEMEeCdEc4VzBeWeQ">
<body>
* Returns the file pattern for this access rule.
*
* @return the file pattern for this access rule
</body>
</ownedComment>
<ownedParameter xmi:id="_j00UE2EMEeCdEc4VzBeWeQ" type="_j00UEmEMEeCdEc4VzBeWeQ" direction="return"/>
</ownedOperation>
<ownedOperation xmi:id="_j00UFGEMEeCdEc4VzBeWeQ" name="getKind">
<ownedComment xmi:id="_j00UFWEMEeCdEc4VzBeWeQ">
<body>
* Returns the kind of this access rule (one of {@link #K_ACCESSIBLE}, {@link #K_NON_ACCESSIBLE}
* or {@link #K_DISCOURAGED}).
*
* @return the kind of this access rule
</body>
</ownedComment>
<ownedParameter xmi:id="_j00UFmEMEeCdEc4VzBeWeQ" type="_dTlbsGEMEeCdEc4VzBeWeQ" direction="return"/>
</ownedOperation>
<ownedOperation xmi:id="_j00UF2EMEeCdEc4VzBeWeQ" name="ignoreIfBetter">
<ownedComment xmi:id="_j00UGGEMEeCdEc4VzBeWeQ">
<body>
* &lt;p>Returns whether a type matching this rule should be ignored iff a type with
* the same qualified name can be found on a later classpath entry with a better
* accessibility.&lt;/p>
* &lt;p>E.g. if a type p.X matches a rule K_NON_ACCESSIBLE | IGNORE_IF_BETTER
* on a library entry 'lib1' and another type p.X also matches a rule
* K_DISCOURAGED on library entry 'lib2' ('lib2' being after 'lib1' on the
* classpath), then p.X from 'lib2' will be used and reported as
* discouraged.&lt;/p>
*
* @return whether a type matching this rule should be ignored iff a type
* with the same qualified name can be found on a later classpath
* entry with a better accessibility
* @since 3.2
</body>
</ownedComment>
<ownedParameter xmi:id="_j00UGWEMEeCdEc4VzBeWeQ" type="_dVOadGEMEeCdEc4VzBeWeQ" direction="return"/>
</ownedOperation>
</packagedElement>
<packagedElement xmi:type="uml:Interface" xmi:id="_j09eAGEMEeCdEc4VzBeWeQ" name="IAnnotatable">
<ownedComment xmi:id="_j09eAWEMEeCdEc4VzBeWeQ">
<body>
* Common protocol for Java elements that can be annotated.
* &lt;p>
* This interface is not intended to be implemented by clients.
* &lt;/p>
*
* @since 3.4
</body>
</ownedComment>
<ownedOperation xmi:id="_j09eAmEMEeCdEc4VzBeWeQ" name="getAnnotation">
<ownedComment xmi:id="_j09eA2EMEeCdEc4VzBeWeQ">
<body>
* Returns the annotation with the given name declared on this element.
* This is a handle-only method. The annotation may or may not exist.
*
* @param name the given simple name
* @return the annotation with the given name declared on this element
</body>
</ownedComment>
</ownedOperation>
</packagedElement>
<packagedElement xmi:type="uml:Interface" xmi:id="_j1HPAGEMEeCdEc4VzBeWeQ" name="IAnnotation">
<ownedComment xmi:id="_j1HPAWEMEeCdEc4VzBeWeQ">
<body>
* Represents an annotation on a package declaration, a type, a method, a field
* or a local variable in a compilation unit or a class file.
* &lt;p>
* Annotations are obtained using {@link IAnnotatable#getAnnotation(String)}.
* &lt;/p>&lt;p>
* Note that annotations are not children of their declaring element.
* To get a list of the annotations use {@link IAnnotatable#getAnnotations()}.
* &lt;/p>
* &lt;p>
* This interface is not intended to be implemented or extended by clients.
* &lt;/p>
*
* @since 3.4
</body>
</ownedComment>
</packagedElement>
<packagedElement xmi:type="uml:Interface" xmi:id="_j1aJ8GEMEeCdEc4VzBeWeQ" name="IBuffer">
<ownedComment xmi:id="_j1aJ8WEMEeCdEc4VzBeWeQ">
<body>
* A buffer contains the text contents of a resource. It is not language-specific.
* The contents may be in the process of being edited, differing from the actual contents of the
* underlying resource. A buffer has an owner, which is an &lt;code>IOpenable&lt;/code>.
* If a buffer does not have an underlying resource, saving the buffer has no effect.
* Buffers can be read-only.
* &lt;p>
* Note that java model operations that manipulate an &lt;code>IBuffer&lt;/code> (for example,
* &lt;code>IType.createMethod(...)&lt;/code>) ensures that the same line delimiter
* (either &lt;code>&quot;\n&quot;&lt;/code> or &lt;code>&quot;\r&quot;&lt;/code> or &lt;code>&quot;\r\n&quot;&lt;/code>) is
* used across the whole buffer. Thus these operations may change the line delimiter(s)
* included in the string to be append, or replaced.
* However implementers of this interface should be aware that other clients of &lt;code>IBuffer&lt;/code>
* might not do such transformations beforehand.
* &lt;p>
* This interface may be implemented by clients.
* &lt;/p>
</body>
</ownedComment>
<nestedClassifier xmi:type="uml:Interface" xmi:id="_j1aJ8mEMEeCdEc4VzBeWeQ" name="ITextEditCapability">
<ownedComment xmi:id="_j1aJ82EMEeCdEc4VzBeWeQ">
<body>
* Implementors of {@link IBuffer} can additionally implement {@link IBuffer.ITextEditCapability}.
* This adds the capability to apply text edits to the buffer and will be used by
* {@link ICompilationUnit#applyTextEdit(TextEdit, IProgressMonitor)}.
*
* &lt;p>
* This interface may be implemented by clients.
* &lt;/p>
* @since 3.4
</body>
</ownedComment>
<ownedOperation xmi:id="_j1j68GEMEeCdEc4VzBeWeQ" name="applyTextEdit" visibility="public">
<ownedComment xmi:id="_j1j68WEMEeCdEc4VzBeWeQ">
<body>
* Applies a text edit to this underlying buffer.
*
* @param edit the edit to apply
* @param monitor the progress monitor to use or &lt;code>null&lt;/code> if no progress should be reported
* @return the undo edit
* @throws JavaModelException if this edit can not be applied to the buffer. Reasons include:
* &lt;ul>
* &lt;li>The provided edit can not be applied as there is a problem with the text edit locations ({@link IJavaModelStatusConstants#BAD_TEXT_EDIT_LOCATION})}.&lt;/li>
* &lt;/ul>
</body>
</ownedComment>
<ownedParameter xmi:id="_j1j682EMEeCdEc4VzBeWeQ" type="_j1j68mEMEeCdEc4VzBeWeQ" direction="return"/>
<ownedParameter xmi:id="_j1j69GEMEeCdEc4VzBeWeQ" name="edit" type="_j1aJ-WEMEeCdEc4VzBeWeQ"/>
<ownedParameter xmi:id="_j1j69WEMEeCdEc4VzBeWeQ" name="monitor" type="_jqFqwGEMEeCdEc4VzBeWeQ"/>
</ownedOperation>
</nestedClassifier>
</packagedElement>
<packagedElement xmi:type="uml:Interface" xmi:id="_j1214GEMEeCdEc4VzBeWeQ" name="IBufferChangedListener">
<ownedComment xmi:id="_j1214WEMEeCdEc4VzBeWeQ">
<body>
* A listener, which gets notified when the contents of a specific buffer
* have changed, or when the buffer is closed.
* When a buffer is closed, the listener is notified &lt;em>after&lt;/em> the buffer has been closed.
* A listener is not notified when a buffer is saved.
* &lt;p>
* This interface may be implemented by clients.
* &lt;/p>
</body>
</ownedComment>
<ownedOperation xmi:id="_j1214mEMEeCdEc4VzBeWeQ" name="bufferChanged" visibility="public">
<ownedComment xmi:id="_j12142EMEeCdEc4VzBeWeQ">
<body>
* Notifies that the given event has occurred.
*
* @param event the change event
</body>
</ownedComment>
<ownedParameter xmi:id="_j1215GEMEeCdEc4VzBeWeQ" name="event" type="_dV-BUGEMEeCdEc4VzBeWeQ"/>
</ownedOperation>
</packagedElement>
<packagedElement xmi:type="uml:Interface" xmi:id="_j2Am4GEMEeCdEc4VzBeWeQ" name="IBufferFactory">
<ownedComment xmi:id="_j2Am4WEMEeCdEc4VzBeWeQ">
<body>
* A factory that creates &lt;code>IBuffer&lt;/code>s for openables.
* &lt;p>
* This interface may be implemented by clients.
* &lt;/p>
* @since 2.0
* @deprecated Use {@link WorkingCopyOwner} instead
</body>
</ownedComment>
</packagedElement>
<packagedElement xmi:type="uml:Interface" xmi:id="_j2Jw0GEMEeCdEc4VzBeWeQ" name="IClassFile">
<ownedComment xmi:id="_j2Jw0WEMEeCdEc4VzBeWeQ">
<body>
* Represents an entire binary type (single &lt;code>.class&lt;/code> file).
* A class file has a single child of type &lt;code>IType&lt;/code>.
* Class file elements need to be opened before they can be navigated.
* If a class file cannot be parsed, its structure remains unknown. Use
* &lt;code>IJavaElement.isStructureKnown&lt;/code> to determine whether this is the
* case.
* &lt;p>
* Note: &lt;code>IClassFile&lt;/code> extends &lt;code>ISourceReference&lt;/code>.
* Source can be obtained for a class file if and only if source has been attached to this
* class file. The source associated with a class file is the source code of
* the compilation unit it was (nominally) generated from.
* &lt;/p>
*
* @see IPackageFragmentRoot#attachSource(org.eclipse.core.runtime.IPath, org.eclipse.core.runtime.IPath, IProgressMonitor)
* @noimplement This interface is not intended to be implemented by clients.
</body>
</ownedComment>
<generalization xmi:id="_pnrtwGEQEeCdEc4VzBeWeQ" general="_kyNJYGEMEeCdEc4VzBeWeQ"/>
<ownedOperation xmi:id="_pnrtwWEQEeCdEc4VzBeWeQ" name="becomeWorkingCopy">
<ownedComment xmi:id="_pnrtwmEQEeCdEc4VzBeWeQ">
<body>
* Changes this class file handle into a working copy. A new {@link IBuffer} is
* created using the given owner. Uses the primary owner if &lt;code>null&lt;/code> is
* specified.
* &lt;p>
* When switching to working copy mode, problems are reported to the given
* {@link IProblemRequestor}. Note that once in working copy mode, the given
* {@link IProblemRequestor} is ignored. Only the original {@link IProblemRequestor}
* is used to report subsequent problems.
* &lt;/p>
* &lt;p>
* Once in working copy mode, changes to this working copy or its children are done in memory.
* Only the new buffer is affected.
* &lt;/p>
* &lt;p>
* Using {@link ICompilationUnit#commitWorkingCopy(boolean, IProgressMonitor)} on the working copy
* will throw a &lt;code>JavaModelException&lt;/code> as a class file is implicetly read-only.
* &lt;/p>
* &lt;p>
* If this class file was already in working copy mode, an internal counter is incremented and no
* other action is taken on this working copy. To bring this working copy back into the original mode
* (where it reflects the underlying resource), {@link ICompilationUnit#discardWorkingCopy} must be call as many
* times as {@link #becomeWorkingCopy(IProblemRequestor, WorkingCopyOwner, IProgressMonitor)}.
* &lt;/p>
* &lt;p>
* The primary compilation unit of a class file's working copy does not exist if the class file is not
* in working copy mode (&lt;code>classFileWorkingCopy.getPrimary().exists() == false&lt;/code>).
* &lt;/p>
* &lt;p>
* The resource of a class file's working copy is &lt;code>null&lt;/code> if the class file is in an external jar file.
* &lt;/p>
*
* @param problemRequestor a requestor which will get notified of problems detected during
* reconciling as they are discovered. The requestor can be set to &lt;code>null&lt;/code> indicating
* that the client is not interested in problems.
* @param owner the given {@link WorkingCopyOwner}, or &lt;code>null&lt;/code> for the primary owner
* @param monitor a progress monitor used to report progress while opening this compilation unit
* or &lt;code>null&lt;/code> if no progress should be reported
* @return a working copy for this class file
* @throws JavaModelException if this compilation unit could not become a working copy.
* @see ICompilationUnit#discardWorkingCopy()
* @since 3.2
* @deprecated Use {@link ITypeRoot#getWorkingCopy(WorkingCopyOwner, IProgressMonitor)} instead.
* Note that if this deprecated method is used, problems will be reported to the given problem requestor
* as well as the problem requestor returned by the working copy owner (if not null).
</body>
</ownedComment>
<ownedParameter xmi:id="_pn03sGEQEeCdEc4VzBeWeQ" type="_j-plgGEMEeCdEc4VzBeWeQ" direction="return"/>
<ownedParameter xmi:id="_pn03sWEQEeCdEc4VzBeWeQ" name="problemRequestor" type="_krNJgGEMEeCdEc4VzBeWeQ"/>
<ownedParameter xmi:id="_pn-osGEQEeCdEc4VzBeWeQ" name="owner" type="_nI23sGEMEeCdEc4VzBeWeQ"/>
<ownedParameter xmi:id="_pn-osWEQEeCdEc4VzBeWeQ" name="monitor" type="_jqFqwGEMEeCdEc4VzBeWeQ"/>
</ownedOperation>
<ownedOperation xmi:id="_poIZsGEQEeCdEc4VzBeWeQ" name="getBytes">
<ownedComment xmi:id="_poIZsWEQEeCdEc4VzBeWeQ">
<body>
* Returns the bytes contained in this class file.
*
* @return the bytes contained in this class file
*
* @exception JavaModelException if this element does not exist or if an
* exception occurs while accessing its corresponding resource
* @since 3.3
</body>
</ownedComment>
<ownedParameter xmi:id="_poIZs2EQEeCdEc4VzBeWeQ" type="_poIZsmEQEeCdEc4VzBeWeQ" direction="return">
<upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_poRjoWEQEeCdEc4VzBeWeQ" value="*"/>
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_poRjoGEQEeCdEc4VzBeWeQ"/>
</ownedParameter>
</ownedOperation>
<ownedOperation xmi:id="_pobUoGEQEeCdEc4VzBeWeQ" name="getType">
<ownedComment xmi:id="_pobUoWEQEeCdEc4VzBeWeQ">
<body>
* Returns the type contained in this class file.
* This is a handle-only method. The type may or may not exist.
*
* @return the type contained in this class file
</body>
</ownedComment>
<ownedParameter xmi:id="_pobUomEQEeCdEc4VzBeWeQ" type="_kvE84GEMEeCdEc4VzBeWeQ" direction="return"/>
</ownedOperation>
<ownedOperation xmi:id="_pobUo2EQEeCdEc4VzBeWeQ" name="getWorkingCopy">
<ownedComment xmi:id="_pobUpGEQEeCdEc4VzBeWeQ">
<body>
* Returns a working copy on the source associated with this class file using the given
* factory to create the buffer, or &lt;code>null&lt;/code> if there is no source associated
* with the class file.
* &lt;p>
* The buffer will be automatically initialized with the source of the class file
* upon creation.
* &lt;p>
* The only valid operations on this working copy are &lt;code>getBuffer()&lt;/code> or &lt;code>getOriginalElement&lt;/code>.
*
* @param monitor a progress monitor used to report progress while opening this compilation unit
* or &lt;code>null&lt;/code> if no progress should be reported
* @param factory the factory that creates a buffer that is used to get the content of the working copy
* or &lt;code>null&lt;/code> if the internal factory should be used
* @return a a working copy on the source associated with this class file
* @exception JavaModelException if the source of this class file can
* not be determined. Reasons include:
* &lt;ul>
* &lt;li> This class file does not exist (ELEMENT_DOES_NOT_EXIST)&lt;/li>
* &lt;/ul>
* @since 2.0
* @deprecated Use {@link ITypeRoot#getWorkingCopy(WorkingCopyOwner, IProgressMonitor)} instead
</body>
</ownedComment>
<ownedParameter xmi:id="_polFoGEQEeCdEc4VzBeWeQ" type="_kO5A8GEMEeCdEc4VzBeWeQ" direction="return"/>
<ownedParameter xmi:id="_polFoWEQEeCdEc4VzBeWeQ" name="monitor" type="_jqFqwGEMEeCdEc4VzBeWeQ"/>
<ownedParameter xmi:id="_pouPkGEQEeCdEc4VzBeWeQ" name="factory" type="_j2Am4GEMEeCdEc4VzBeWeQ"/>
</ownedOperation>
<ownedOperation xmi:id="_pouPkWEQEeCdEc4VzBeWeQ" name="isClass">
<ownedComment xmi:id="_pouPkmEQEeCdEc4VzBeWeQ">
<body>
* Returns whether this type represents a class. This is not guaranteed to be
* instantaneous, as it may require parsing the underlying file.
*
* @return &lt;code>true&lt;/code> if the class file represents a class.
*
* @exception JavaModelException if this element does not exist or if an
* exception occurs while accessing its corresponding resource
</body>
</ownedComment>
<ownedParameter xmi:id="_po4AkGEQEeCdEc4VzBeWeQ" type="_dVOadGEMEeCdEc4VzBeWeQ" direction="return"/>
</ownedOperation>
<ownedOperation xmi:id="_po4AkWEQEeCdEc4VzBeWeQ" name="isInterface">
<ownedComment xmi:id="_po4AkmEQEeCdEc4VzBeWeQ">
<body>
* Returns whether this type represents an interface. This is not guaranteed to
* be instantaneous, as it may require parsing the underlying file.
*
* @return &lt;code>true&lt;/code> if the class file represents an interface.
*
* @exception JavaModelException if this element does not exist or if an
* exception occurs while accessing its corresponding resource
</body>
</ownedComment>
<ownedParameter xmi:id="_po4Ak2EQEeCdEc4VzBeWeQ" type="_dVOadGEMEeCdEc4VzBeWeQ" direction="return"/>
</ownedOperation>
</packagedElement>
<packagedElement xmi:type="uml:Interface" xmi:id="_j25-wGEMEeCdEc4VzBeWeQ" name="IClasspathAttribute">
<ownedComment xmi:id="_j25-wWEMEeCdEc4VzBeWeQ">
<body>
* A classpath attribute defines a name/value pair that can be persisted with a classpath entry. Such an attribute
* can be created using the factory method {@link JavaCore#newClasspathAttribute(String, String) newClasspathAttribute(String name, String value)}.
*
* @see JavaCore#newContainerEntry(
* org.eclipse.core.runtime.IPath containerPath,
* IAccessRule[] accessRules,
* IClasspathAttribute[] extraAttributes,
* boolean isExported)
* @see JavaCore#newLibraryEntry(
* org.eclipse.core.runtime.IPath path,
* org.eclipse.core.runtime.IPath sourceAttachmentPath,
* org.eclipse.core.runtime.IPath sourceAttachmentRootPath,
* IAccessRule[] accessRules,
* IClasspathAttribute[] extraAttributes,
* boolean isExported)
* @see JavaCore#newProjectEntry(
* org.eclipse.core.runtime.IPath path,
* IAccessRule[] accessRules,
* boolean combineAccessRestrictions,
* IClasspathAttribute[] extraAttributes,
* boolean isExported)
* @see JavaCore#newSourceEntry(
* org.eclipse.core.runtime.IPath path,
* org.eclipse.core.runtime.IPath[] inclusionPatterns,
* org.eclipse.core.runtime.IPath[] exclusionPatterns,
* org.eclipse.core.runtime.IPath specificOutputLocation,
* IClasspathAttribute[] extraAttributes)
* @see JavaCore#newVariableEntry(
* org.eclipse.core.runtime.IPath variablePath,
* org.eclipse.core.runtime.IPath variableSourceAttachmentPath,
* org.eclipse.core.runtime.IPath variableSourceAttachmentRootPath,
* IAccessRule[] accessRules,
* IClasspathAttribute[] extraAttributes,
* boolean isExported)
* @since 3.1
* @noimplement This interface is not intended to be implemented by clients.
</body>
</ownedComment>
<ownedAttribute xmi:id="_j25-wmEMEeCdEc4VzBeWeQ" name="JAVADOC_LOCATION_ATTRIBUTE_NAME" type="_dSiS02EMEeCdEc4VzBeWeQ" isUnique="false">
<ownedComment xmi:id="_j25-w2EMEeCdEc4VzBeWeQ">
<body>
* Constant for the name of the javadoc location attribute.
*
* &lt;p>The value for this attribute has to be the string representation of a URL.&lt;/p>
*
* @since 3.1
</body>
</ownedComment>
</ownedAttribute>
<ownedAttribute xmi:id="_j25-xGEMEeCdEc4VzBeWeQ" name="OPTIONAL" type="_dSiS02EMEeCdEc4VzBeWeQ" isUnique="false">
<ownedComment xmi:id="_j25-xWEMEeCdEc4VzBeWeQ">
<body>
* Constant for the name of the optional attribute. The possible values
* for this attribute are &lt;code>&quot;true&quot;&lt;/code> or &lt;code>&quot;false&quot;&lt;/code>.
* When not present, &lt;code>&quot;false&quot;&lt;/code> is assumed.
* If the value of this attribute is &lt;code>&quot;true&quot;&lt;/code>, the classpath entry
* is optional. If the underlying resource or jar file doesn't exist, no error
* is reported and the classpath entry is ignored.
*
* @since 3.2
</body>
</ownedComment>
</ownedAttribute>
<ownedOperation xmi:id="_j25-xmEMEeCdEc4VzBeWeQ" name="getName">
<ownedComment xmi:id="_j25-x2EMEeCdEc4VzBeWeQ">
<body>
* Returns the name of this classpath attribute.
*
* @return the name of this classpath attribute.
* @since 3.1
</body>
</ownedComment>
<ownedParameter xmi:id="_j3DIsGEMEeCdEc4VzBeWeQ" type="_dSiS02EMEeCdEc4VzBeWeQ" direction="return"/>
</ownedOperation>
<ownedOperation xmi:id="_j3DIsWEMEeCdEc4VzBeWeQ" name="getValue">
<ownedComment xmi:id="_j3DIsmEMEeCdEc4VzBeWeQ">
<body>
* Returns the value of this classpath attribute.
*
* @return the value of this classpath attribute.
* @since 3.1
</body>
</ownedComment>
<ownedParameter xmi:id="_j3DIs2EMEeCdEc4VzBeWeQ" type="_dSiS02EMEeCdEc4VzBeWeQ" direction="return"/>
</ownedOperation>
</packagedElement>
<packagedElement xmi:type="uml:Interface" xmi:id="_j3DItGEMEeCdEc4VzBeWeQ" name="IClasspathContainer">
<ownedComment xmi:id="_j3M5sGEMEeCdEc4VzBeWeQ">
<body>
* Interface of a classpath container.
* A classpath container provides a way to indirectly reference a set of classpath entries through
* a classpath entry of kind &lt;code>CPE_CONTAINER&lt;/code>. Typically, a classpath container can
* be used to describe a complex library composed of multiple JARs or projects, considering also
* that containers can map to different set of entries on each project, in other words, several
* projects can reference the same generic container path, but have each of them actually bound
* to a different container object.
* &lt;p>
* The set of entries associated with a classpath container may contain any of the following:
* &lt;ul>
* &lt;li> library entries (&lt;code>CPE_LIBRARY&lt;/code>) &lt;/li>
* &lt;li> project entries (&lt;code>CPE_PROJECT&lt;/code>) &lt;/li>
* &lt;/ul>
* In particular, a classpath container can neither reference further classpath containers or classpath variables.
* &lt;p>
* A library entry can reference other libraries through the Class-Path section of the JAR's MANIFEST.MF file. If the
* container wants such referenced entries to be part of the classpath, the container must explicitly add them to the
* array returned from {@link #getClasspathEntries()}.
* &lt;p>
* Classpath container values are persisted locally to the workspace, but are not preserved from a
* session to another. It is thus highly recommended to register a &lt;code>ClasspathContainerInitializer&lt;/code>
* for each referenced container (through the extension point &quot;org.eclipse.jdt.core.ClasspathContainerInitializer&quot;).
* &lt;p>
* @see IClasspathEntry
* @since 2.0
</body>
</ownedComment>
<ownedAttribute xmi:id="_j3M5sWEMEeCdEc4VzBeWeQ" name="K_APPLICATION" type="_dTlbsGEMEeCdEc4VzBeWeQ" isUnique="false">
<ownedComment xmi:id="_j3M5smEMEeCdEc4VzBeWeQ">
<body>
* Kind for a container mapping to an application library
</body>
</ownedComment>
</ownedAttribute>
<ownedAttribute xmi:id="_j3M5s2EMEeCdEc4VzBeWeQ" name="K_SYSTEM" type="_dTlbsGEMEeCdEc4VzBeWeQ" isUnique="false">
<ownedComment xmi:id="_j3M5tGEMEeCdEc4VzBeWeQ">
<body>
* Kind for a container mapping to a system library
</body>
</ownedComment>
</ownedAttribute>
<ownedAttribute xmi:id="_j3M5tWEMEeCdEc4VzBeWeQ" name="K_DEFAULT_SYSTEM" type="_dTlbsGEMEeCdEc4VzBeWeQ" isUnique="false">
<ownedComment xmi:id="_j3M5tmEMEeCdEc4VzBeWeQ">
<body>
* Kind for a container mapping to a default system library, implicitly contributed by the runtime
</body>
</ownedComment>
</ownedAttribute>
<ownedOperation xmi:id="_j3M5t2EMEeCdEc4VzBeWeQ" name="getClasspathEntries">
<ownedComment xmi:id="_j3M5uGEMEeCdEc4VzBeWeQ">
<body>
* Answers the set of classpath entries this container is mapping to.
* &lt;p>
* The set of entries associated with a classpath container may contain any of the following:
* &lt;ul>
* &lt;li> library entries (&lt;code>CPE_LIBRARY&lt;/code>) &lt;/li>
* &lt;li> project entries (&lt;code>CPE_PROJECT&lt;/code>) &lt;/li>
* &lt;/ul>
* A classpath container can neither reference further classpath containers
* or classpath variables.
* &lt;p>
* A library entry can reference other libraries through the Class-Path section of the JAR's MANIFEST.MF file. If
* the container wants such referenced entries to be part of the classpath, the container must explicitly add them
* to the result.
* &lt;p>
* This method is called by the Java model when it needs to resolve this
* classpath container entry into a list of library and project entries.
* The method is typically called exactly once for a given Java project,
* and the resulting list of entries cached internally by the Java model.
* This method must not be called by other clients.
* &lt;p>
* There are a wide variety of conditions under which this method may be
* invoked. To ensure that the implementation does not interfere with
* correct functioning of the Java model, the implementation should use
* only the following Java model APIs:
* &lt;ul>
* &lt;li>{@link JavaCore#newLibraryEntry(IPath, IPath, IPath, boolean)} and variants&lt;/li>
* &lt;li>{@link JavaCore#newProjectEntry(IPath, boolean)} and variants&lt;/li>
* &lt;li>{@link JavaCore#create(org.eclipse.core.resources.IWorkspaceRoot)}&lt;/li>
* &lt;li>{@link JavaCore#create(org.eclipse.core.resources.IProject)}&lt;/li>
* &lt;li>{@link JavaCore#getReferencedClasspathEntries(IClasspathEntry, IJavaProject)} with &lt;code>null&lt;/code> as project&lt;/li>
* &lt;li>{@link IJavaModel#getJavaProjects()}&lt;/li>
* &lt;li>{@link IJavaProject#getRawClasspath()}&lt;/li>
* &lt;li>{@link IJavaProject#readRawClasspath()}&lt;/li>
* &lt;li>{@link IJavaProject#getOutputLocation()}&lt;/li>
* &lt;li>{@link IJavaProject#readOutputLocation()}&lt;/li>
* &lt;li>Java element operations marked as &quot;handle-only&quot;&lt;/li>
* &lt;/ul>
* The effects of using other Java model APIs are unspecified.
* &lt;/p>
*
* @return IClasspathEntry[] - the classpath entries this container represents
* @see IClasspathEntry
</body>
</ownedComment>
</ownedOperation>
</packagedElement>
<packagedElement xmi:type="uml:Interface" xmi:id="_j4GRkGEMEeCdEc4VzBeWeQ" name="IClasspathEntry">
<ownedComment xmi:id="_j4GRkWEMEeCdEc4VzBeWeQ">
<body>
* An entry on a Java project classpath identifying one or more package fragment
* roots. A classpath entry has a content kind (either source,
* {@link IPackageFragmentRoot#K_SOURCE}, or binary, {@link IPackageFragmentRoot#K_BINARY}), which is inherited
* by each package fragment root and package fragment associated with the entry.
* &lt;p>
* A classpath entry can refer to any of the following:&lt;ul>
*
* &lt;li>Source code in the current project. In this case, the entry identifies a
* root folder in the current project containing package fragments and
* source files with one of the {@link JavaCore#getJavaLikeExtensions()
* Java-like extensions}. The root folder itself represents a default
* package, subfolders represent package fragments, and files with a
* Java-like extension (e.g. &lt;code>.java&lt;/code> files)
* represent compilation units. All compilation units will be compiled when
* the project is built. The classpath entry must specify the
* absolute path to the root folder. Entries of this kind are
* associated with the {@link #CPE_SOURCE} constant.
* Source classpath entries can carry inclusion and exclusion patterns for
* selecting which source files appear as compilation
* units and get compiled when the project is built.
* &lt;/li>
*
* &lt;li>A binary library in the current project, in another project, or in the external
* file system. In this case the entry identifies a JAR (or root folder) containing
* package fragments and &lt;code>.class&lt;/code> files. The classpath entry
* must specify the absolute path to the JAR (or root folder), and in case it refers
* to an external JAR, then there is no associated resource in the workbench. Entries
* of this kind are associated with the {@link #CPE_LIBRARY} constant.&lt;/li>
*
* &lt;li>A required project. In this case the entry identifies another project in
* the workspace. The required project is used as a binary library when compiling
* (that is, the builder looks in the output location of the required project
* for required &lt;code>.class&lt;/code> files when building). When performing other
* &quot;development&quot; operations - such as code assist, code resolve, type hierarchy
* creation, etc. - the source code of the project is referred to. Thus, development
* is performed against a required project's source code, and compilation is
* performed against a required project's last built state. The
* classpath entry must specify the absolute path to the
* project. Entries of this kind are associated with the {@link #CPE_PROJECT}
* constant.
* Note: referencing a required project with a classpath entry refers to the source
* code or associated &lt;code>.class&lt;/code> files located in its output location.
* It will also automatically include any other libraries or projects that the required project's classpath
* refers to, iff the corresponding classpath entries are tagged as being exported
* ({@link IClasspathEntry#isExported}).
* Unless exporting some classpath entries, classpaths are not chained by default -
* each project must specify its own classpath in its entirety.&lt;/li>
*
* &lt;li> A path beginning in a classpath variable defined globally to the workspace.
* Entries of this kind are associated with the {@link #CPE_VARIABLE} constant.
* Classpath variables are created using {@link JavaCore#setClasspathVariable(String, IPath, org.eclipse.core.runtime.IProgressMonitor)},
* and gets resolved, to either a project or library entry, using
* {@link JavaCore#getResolvedClasspathEntry(IClasspathEntry)}.
* It is also possible to register an automatic initializer ({@link ClasspathVariableInitializer}),
* which will be invoked through the extension point &quot;org.eclipse.jdt.core.classpathVariableInitializer&quot;.
* After resolution, a classpath variable entry may either correspond to a project or a library entry. &lt;/li>
*
* &lt;li> A named classpath container identified by its container path.
* A classpath container provides a way to indirectly reference a set of classpath entries through
* a classpath entry of kind {@link #CPE_CONTAINER}. Typically, a classpath container can
* be used to describe a complex library composed of multiple JARs, projects or classpath variables,
* considering also that containers can be mapped differently on each project. Several projects can
* reference the same generic container path, but have each of them actually bound to a different
* container object.
* The container path is a formed by a first ID segment followed with extra segments,
* which can be used as additional hints for resolving this container reference. If no container was ever
* recorded for this container path onto this project (using {@link JavaCore#setClasspathContainer},
* then a {@link ClasspathContainerInitializer} will be activated if any was registered for this
* container ID onto the extension point &quot;org.eclipse.jdt.core.classpathContainerInitializer&quot;.
* A classpath container entry can be resolved explicitly using {@link JavaCore#getClasspathContainer}
* and the resulting container entries can contain any non-container entry. In particular, it may contain variable
* entries, which in turn needs to be resolved before being directly used.
* &lt;br> Also note that the container resolution APIs include an IJavaProject argument, so as to allow the same
* container path to be interpreted in different ways for different projects. &lt;/li>
* &lt;/ul>
* &lt;/p>
* The result of {@link IJavaProject#getResolvedClasspath} will have all entries of type
* {@link #CPE_VARIABLE} and {@link #CPE_CONTAINER} resolved to a set of
* {@link #CPE_SOURCE}, {@link #CPE_LIBRARY} or {@link #CPE_PROJECT}
* classpath entries.
* &lt;p>
* Any classpath entry other than a source folder (kind {@link #CPE_SOURCE}) can
* be marked as being exported. Exported entries are automatically contributed to
* dependent projects, along with the project's default output folder, which is
* implicitly exported, and any auxiliary output folders specified on source
* classpath entries. The project's output folder(s) are always listed first,
* followed by the any exported entries.
* &lt;p>
* Classpath entries can be created via methods on {@link JavaCore}.
* &lt;/p>
*
* @see JavaCore#newLibraryEntry(org.eclipse.core.runtime.IPath, org.eclipse.core.runtime.IPath, org.eclipse.core.runtime.IPath)
* @see JavaCore#newProjectEntry(org.eclipse.core.runtime.IPath)
* @see JavaCore#newSourceEntry(org.eclipse.core.runtime.IPath)
* @see JavaCore#newVariableEntry(org.eclipse.core.runtime.IPath, org.eclipse.core.runtime.IPath, org.eclipse.core.runtime.IPath)
* @see JavaCore#newContainerEntry(org.eclipse.core.runtime.IPath)
* @see ClasspathVariableInitializer
* @see ClasspathContainerInitializer
* @noimplement This interface is not intended to be implemented by clients.
</body>
</ownedComment>
<ownedAttribute xmi:id="_j4PbgGEMEeCdEc4VzBeWeQ" name="CPE_LIBRARY" type="_dTlbsGEMEeCdEc4VzBeWeQ" isUnique="false">
<ownedComment xmi:id="_j4PbgWEMEeCdEc4VzBeWeQ">
<body>
* Entry kind constant describing a classpath entry identifying a
* library. A library is a folder or JAR containing package
* fragments consisting of pre-compiled binaries.
</body>
</ownedComment>
</ownedAttribute>
<ownedAttribute xmi:id="_j4PbgmEMEeCdEc4VzBeWeQ" name="CPE_PROJECT" type="_dTlbsGEMEeCdEc4VzBeWeQ" isUnique="false">
<ownedComment xmi:id="_j4Pbg2EMEeCdEc4VzBeWeQ">
<body>
* Entry kind constant describing a classpath entry identifying a
* required project.
</body>
</ownedComment>
</ownedAttribute>
<ownedAttribute xmi:id="_j4PbhGEMEeCdEc4VzBeWeQ" name="CPE_SOURCE" type="_dTlbsGEMEeCdEc4VzBeWeQ" isUnique="false">
<ownedComment xmi:id="_j4ZMgGEMEeCdEc4VzBeWeQ">
<body>
* Entry kind constant describing a classpath entry identifying a
* folder containing package fragments with source code
* to be compiled.
</body>
</ownedComment>
</ownedAttribute>
<ownedAttribute xmi:id="_j4ZMgWEMEeCdEc4VzBeWeQ" name="CPE_VARIABLE" type="_dTlbsGEMEeCdEc4VzBeWeQ" isUnique="false">
<ownedComment xmi:id="_j4ZMgmEMEeCdEc4VzBeWeQ">
<body>
* Entry kind constant describing a classpath entry defined using
* a path that begins with a classpath variable reference.
</body>
</ownedComment>
</ownedAttribute>
<ownedAttribute xmi:id="_j4ZMg2EMEeCdEc4VzBeWeQ" name="CPE_CONTAINER" type="_dTlbsGEMEeCdEc4VzBeWeQ" isUnique="false">
<ownedComment xmi:id="_j4ZMhGEMEeCdEc4VzBeWeQ">
<body>
* Entry kind constant describing a classpath entry representing
* a name classpath container.
*
* @since 2.0
</body>
</ownedComment>
</ownedAttribute>
<ownedOperation xmi:id="_j4ZMhWEMEeCdEc4VzBeWeQ" name="combineAccessRules">
<ownedComment xmi:id="_j4ZMhmEMEeCdEc4VzBeWeQ">
<body>
* Returns whether the access rules of the project's exported entries should be combined with this entry's access rules.
* Returns true for container entries.
* Returns false otherwise.
*
* @return whether the access rules of the project's exported entries should be combined with this entry's access rules
* @since 3.1
</body>
</ownedComment>
<ownedParameter xmi:id="_j4ZMh2EMEeCdEc4VzBeWeQ" type="_dVOadGEMEeCdEc4VzBeWeQ" direction="return"/>
</ownedOperation>
<ownedOperation xmi:id="_j4ZMiGEMEeCdEc4VzBeWeQ" name="getAccessRules">
<ownedComment xmi:id="_j4ZMiWEMEeCdEc4VzBeWeQ">
<body>
* Returns the possibly empty list of access rules for this entry.
*
* @return the possibly empty list of access rules for this entry
* @since 3.1
</body>
</ownedComment>
<ownedParameter xmi:id="_j4iWcGEMEeCdEc4VzBeWeQ" type="_j0hZIGEMEeCdEc4VzBeWeQ" direction="return">
<upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_j4iWcmEMEeCdEc4VzBeWeQ" value="*"/>
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_j4iWcWEMEeCdEc4VzBeWeQ"/>
</ownedParameter>
</ownedOperation>
<ownedOperation xmi:id="_j4iWc2EMEeCdEc4VzBeWeQ" name="getContentKind">
<ownedComment xmi:id="_j4iWdGEMEeCdEc4VzBeWeQ">
<body>
* Returns the kind of files found in the package fragments identified by this
* classpath entry.
*
* @return {@link IPackageFragmentRoot#K_SOURCE} for files containing
* source code, and {@link IPackageFragmentRoot#K_BINARY} for binary
* class files.
* There is no specified value for an entry denoting a variable ({@link #CPE_VARIABLE})
* or a classpath container ({@link #CPE_CONTAINER}).
</body>
</ownedComment>
<ownedParameter xmi:id="_j4iWdWEMEeCdEc4VzBeWeQ" type="_dTlbsGEMEeCdEc4VzBeWeQ" direction="return"/>
</ownedOperation>
<ownedOperation xmi:id="_j4iWdmEMEeCdEc4VzBeWeQ" name="getEntryKind">
<ownedComment xmi:id="_j4iWd2EMEeCdEc4VzBeWeQ">
<body>
* Returns the kind of this classpath entry.
*
* @return one of:
* &lt;ul>
* &lt;li>{@link #CPE_SOURCE} - this entry describes a source root in
its project
* &lt;li>{@link #CPE_LIBRARY} - this entry describes a folder or JAR
containing binaries
* &lt;li>{@link #CPE_PROJECT} - this entry describes another project
*
* &lt;li>{@link #CPE_VARIABLE} - this entry describes a project or library
* indirectly via a classpath variable in the first segment of the path
* *
* &lt;li>{@link #CPE_CONTAINER} - this entry describes set of entries
* referenced indirectly via a classpath container
* &lt;/ul>
</body>
</ownedComment>
<ownedParameter xmi:id="_j4iWeGEMEeCdEc4VzBeWeQ" type="_dTlbsGEMEeCdEc4VzBeWeQ" direction="return"/>
</ownedOperation>
<ownedOperation xmi:id="_j4iWeWEMEeCdEc4VzBeWeQ" name="getExclusionPatterns">
<ownedComment xmi:id="_j4iWemEMEeCdEc4VzBeWeQ">
<body>
* Returns the set of patterns used to exclude resources or classes associated with
* this classpath entry.
* &lt;p>
* For source classpath entries,
* exclusion patterns allow specified portions of the resource tree rooted
* at this source entry's path to be filtered out. If no exclusion patterns
* are specified, this source entry includes all relevent files. Each path
* specified must be a relative path, and will be interpreted relative
* to this source entry's path. File patterns are case-sensitive. A file
* matched by one or more of these patterns is excluded from the
* corresponding package fragment root.
* Exclusion patterns have higher precedence than inclusion patterns;
* in other words, exclusion patterns can remove files for the ones that
* are to be included, not the other way around.
* &lt;/p>
* &lt;p>
* Note that there is no need to supply a pattern to exclude &quot;.class&quot; files
* because a source entry filters these out automatically.
* &lt;/p>
* &lt;p>
* The pattern mechanism is similar to Ant's. Each pattern is represented as
* a relative path. The path segments can be regular file or folder names or simple patterns
* involving standard wildcard characters.
* &lt;/p>
* &lt;p>
* '*' matches 0 or more characters within a segment. So
* &lt;code>*.java&lt;/code> matches &lt;code>.java&lt;/code>, &lt;code>a.java&lt;/code>
* and &lt;code>Foo.java&lt;/code>, but not &lt;code>Foo.properties&lt;/code>
* (does not end with &lt;code>.java&lt;/code>).
* &lt;/p>
* &lt;p>
* '?' matches 1 character within a segment. So &lt;code>?.java&lt;/code>
* matches &lt;code>a.java&lt;/code>, &lt;code>A.java&lt;/code>,
* but not &lt;code>.java&lt;/code> or &lt;code>xyz.java&lt;/code> (neither have
* just one character before &lt;code>.java&lt;/code>).
* &lt;/p>
* &lt;p>
* Combinations of *'s and ?'s are allowed.
* &lt;/p>
* &lt;p>
* The special pattern '**' matches zero or more segments. In a source entry,
* a path like &lt;code>tests/&lt;/code> that ends in a trailing separator is interpreted
* as &lt;code>tests/&amp;#42;&amp;#42;&lt;/code>, and would match everything under
* the folder named &lt;code>tests&lt;/code>.
* &lt;/p>
* &lt;p>
* Example patterns in source entries (assuming that &quot;java&quot; is the only {@link JavaCore#getJavaLikeExtensions() Java-like extension}):
* &lt;ul>
* &lt;li>
* &lt;code>tests/&amp;#42;&amp;#42;&lt;/code> (or simply &lt;code>tests/&lt;/code>)
* matches all files under a root folder
* named &lt;code>tests&lt;/code>. This includes &lt;code>tests/Foo.java&lt;/code>
* and &lt;code>tests/com/example/Foo.java&lt;/code>, but not
* &lt;code>com/example/tests/Foo.java&lt;/code> (not under a root folder named
* &lt;code>tests&lt;/code>).
* &lt;/li>
* &lt;li>
* &lt;code>tests/&amp;#42;&lt;/code> matches all files directly below a root
* folder named &lt;code>tests&lt;/code>. This includes &lt;code>tests/Foo.java&lt;/code>
* and &lt;code>tests/FooHelp.java&lt;/code>
* but not &lt;code>tests/com/example/Foo.java&lt;/code> (not directly under
* a folder named &lt;code>tests&lt;/code>) or
* &lt;code>com/Foo.java&lt;/code> (not under a folder named &lt;code>tests&lt;/code>).
* &lt;/li>
* &lt;li>
* &lt;code>&amp;#42;&amp;#42;/tests/&amp;#42;&amp;#42;&lt;/code> matches all files under any
* folder named &lt;code>tests&lt;/code>. This includes &lt;code>tests/Foo.java&lt;/code>,
* &lt;code>com/examples/tests/Foo.java&lt;/code>, and
* &lt;code>com/examples/tests/unit/Foo.java&lt;/code>, but not
* &lt;code>com/example/Foo.java&lt;/code> (not under a folder named
* &lt;code>tests&lt;/code>).
* &lt;/li>
* &lt;/ul>
* &lt;/p>
*
* @return the possibly empty list of resource exclusion patterns
* associated with this classpath entry, or &lt;code>null&lt;/code> if this kind
* of classpath entry does not support exclusion patterns
* @since 2.1
</body>
</ownedComment>
<ownedParameter xmi:id="_j4iWe2EMEeCdEc4VzBeWeQ" type="_j00UEmEMEeCdEc4VzBeWeQ" direction="return">
<upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_j4sHcWEMEeCdEc4VzBeWeQ" value="*"/>
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_j4sHcGEMEeCdEc4VzBeWeQ"/>
</ownedParameter>
</ownedOperation>
<ownedOperation xmi:id="_j4sHcmEMEeCdEc4VzBeWeQ" name="getExtraAttributes">
<ownedComment xmi:id="_j4sHc2EMEeCdEc4VzBeWeQ">
<body>
* Returns the extra classpath attributes for this classpath entry. Returns an empty array if this entry
* has no extra attributes.
*
* @return the possibly empty list of extra classpath attributes for this classpath entry
* @since 3.1
</body>
</ownedComment>
<ownedParameter xmi:id="_j4sHdGEMEeCdEc4VzBeWeQ" type="_j25-wGEMEeCdEc4VzBeWeQ" direction="return">
<upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_j4sHdmEMEeCdEc4VzBeWeQ" value="*"/>
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_j4sHdWEMEeCdEc4VzBeWeQ"/>
</ownedParameter>
</ownedOperation>
<ownedOperation xmi:id="_j4sHd2EMEeCdEc4VzBeWeQ" name="getInclusionPatterns">
<ownedComment xmi:id="_j4sHeGEMEeCdEc4VzBeWeQ">
<body>
* Returns the set of patterns used to explicitly define resources or classes
* to be included with this classpath entry.
* &lt;p>
* For source classpath entries,
* when no inclusion patterns are specified, the source entry includes all
* relevent files in the resource tree rooted at this source entry's path.
* Specifying one or more inclusion patterns means that only the specified
* portions of the resource tree are to be included. Each path specified
* must be a relative path, and will be interpreted relative to this source
* entry's path. File patterns are case-sensitive. A file matched by one or
* more of these patterns is included in the corresponding package fragment
* root unless it is excluded by one or more of this entrie's exclusion
* patterns. Exclusion patterns have higher precedence than inclusion
* patterns; in other words, exclusion patterns can remove files for the
* ones that are to be included, not the other way around.
* &lt;/p>
* &lt;p>
* See {@link #getExclusionPatterns()} for a discussion of the syntax and
* semantics of path patterns. The absence of any inclusion patterns is
* semantically equivalent to the explicit inclusion pattern
* &lt;code>&amp;#42;&amp;#42;&lt;/code>.
* &lt;/p>
* &lt;p>
* Example patterns in source entries:
* &lt;ul>
* &lt;li>
* The inclusion pattern &lt;code>src/&amp;#42;&amp;#42;&lt;/code> by itself includes all
* files under a root folder named &lt;code>src&lt;/code>.
* &lt;/li>
* &lt;li>
* The inclusion patterns &lt;code>src/&amp;#42;&amp;#42;&lt;/code> and
* &lt;code>tests/&amp;#42;&amp;#42;&lt;/code> includes all files under the root folders
* named &lt;code>src&lt;/code> and &lt;code>tests&lt;/code>.
* &lt;/li>
* &lt;li>
* The inclusion pattern &lt;code>src/&amp;#42;&amp;#42;&lt;/code> together with the
* exclusion pattern &lt;code>src/&amp;#42;&amp;#42;/Foo.java&lt;/code> includes all
* files under a root folder named &lt;code>src&lt;/code> except for ones
* named &lt;code>Foo.java&lt;/code>.
* &lt;/li>
* &lt;/ul>
* &lt;/p>
*
* @return the possibly empty list of resource inclusion patterns
* associated with this classpath entry, or &lt;code>null&lt;/code> if this kind
* of classpath entry does not support inclusion patterns
* @since 3.0
</body>
</ownedComment>
<ownedParameter xmi:id="_j4sHeWEMEeCdEc4VzBeWeQ" type="_j00UEmEMEeCdEc4VzBeWeQ" direction="return">
<upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_j4sHe2EMEeCdEc4VzBeWeQ" value="*"/>
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_j4sHemEMEeCdEc4VzBeWeQ"/>
</ownedParameter>
</ownedOperation>
<ownedOperation xmi:id="_j414cGEMEeCdEc4VzBeWeQ" name="getOutputLocation">
<ownedComment xmi:id="_j414cWEMEeCdEc4VzBeWeQ">
<body>
* Returns the full path to the specific location where the builder writes
* &lt;code>.class&lt;/code> files generated for this source entry
* (entry kind {@link #CPE_SOURCE}).
* &lt;p>
* Source entries can optionally be associated with a specific output location.
* If none is provided, the source entry will be implicitly associated with its project
* default output location (see {@link IJavaProject#getOutputLocation}).
* &lt;/p>&lt;p>
* NOTE: A specific output location cannot coincidate with another source/library entry.
* &lt;/p>
*
* @return the full path to the specific location where the builder writes
* &lt;code>.class&lt;/code> files for this source entry, or &lt;code>null&lt;/code>
* if using default output folder
* @since 2.1
</body>
</ownedComment>
<ownedParameter xmi:id="_j414cmEMEeCdEc4VzBeWeQ" type="_j00UEmEMEeCdEc4VzBeWeQ" direction="return"/>
</ownedOperation>
<ownedOperation xmi:id="_j414c2EMEeCdEc4VzBeWeQ" name="getPath">
<ownedComment xmi:id="_j414dGEMEeCdEc4VzBeWeQ">
<body>
* Returns the path of this classpath entry.
*
* The meaning of the path of a classpath entry depends on its entry kind:&lt;ul>
* &lt;li>Source code in the current project ({@link #CPE_SOURCE}) -
* The path associated with this entry is the absolute path to the root folder. &lt;/li>
* &lt;li>A binary library in the current project ({@link #CPE_LIBRARY}) - the path
* associated with this entry is the absolute path to the JAR (or root folder), and
* in case it refers to an external library, then there is no associated resource in
* the workbench.
* &lt;li>A required project ({@link #CPE_PROJECT}) - the path of the entry denotes the
* path to the corresponding project resource.&lt;/li>
* &lt;li>A variable entry ({@link #CPE_VARIABLE}) - the first segment of the path
* is the name of a classpath variable. If this classpath variable
* is bound to the path &lt;i>P&lt;/i>, the path of the corresponding classpath entry
* is computed by appending to &lt;i>P&lt;/i> the segments of the returned
* path without the variable.&lt;/li>
* &lt;li> A container entry ({@link #CPE_CONTAINER}) - the path of the entry
* is the name of the classpath container, which can be bound indirectly to a set of classpath
* entries after resolution. The containerPath is a formed by a first ID segment followed with
* extra segments that can be used as additional hints for resolving this container
* reference (also see {@link IClasspathContainer}).
* &lt;/li>
* &lt;/ul>
*
* @return the path of this classpath entry
</body>
</ownedComment>
<ownedParameter xmi:id="_j414dWEMEeCdEc4VzBeWeQ" type="_j00UEmEMEeCdEc4VzBeWeQ" direction="return"/>
</ownedOperation>
<ownedOperation xmi:id="_j414dmEMEeCdEc4VzBeWeQ" name="getSourceAttachmentPath">
<ownedComment xmi:id="_j414d2EMEeCdEc4VzBeWeQ">
<body>
* Returns the path to the source archive or folder associated with this
* classpath entry, or &lt;code>null&lt;/code> if this classpath entry has no
* source attachment.
* &lt;p>
* Only library and variable classpath entries may have source attachments.
* For library classpath entries, the result path (if present) locates a source
* archive or folder. This archive or folder can be located in a project of the
* workspace or outside the workspace. For variable classpath entries, the
* result path (if present) has an analogous form and meaning as the
* variable path, namely the first segment is the name of a classpath variable.
* &lt;/p>
*
* @return the path to the source archive or folder, or &lt;code>null&lt;/code> if none
</body>
</ownedComment>
<ownedParameter xmi:id="_j414eGEMEeCdEc4VzBeWeQ" type="_j00UEmEMEeCdEc4VzBeWeQ" direction="return"/>
</ownedOperation>
<ownedOperation xmi:id="_j5IzYGEMEeCdEc4VzBeWeQ" name="getSourceAttachmentRootPath">
<ownedComment xmi:id="_j5IzYWEMEeCdEc4VzBeWeQ">
<body>
* Returns the path within the source archive or folder where package fragments
* are located. An empty path indicates that packages are located at
* the root of the source archive or folder. Returns a non-&lt;code>null&lt;/code> value
* if and only if {@link #getSourceAttachmentPath} returns
* a non-&lt;code>null&lt;/code> value.
*
* @return the path within the source archive or folder, or &lt;code>null&lt;/code> if
* not applicable
</body>
</ownedComment>
<ownedParameter xmi:id="_j5IzYmEMEeCdEc4VzBeWeQ" type="_j00UEmEMEeCdEc4VzBeWeQ" direction="return"/>
</ownedOperation>
<ownedOperation xmi:id="_j5IzY2EMEeCdEc4VzBeWeQ" name="getReferencingEntry">
<ownedComment xmi:id="_j5IzZGEMEeCdEc4VzBeWeQ">
<body>
* Returns the classpath entry that is making a reference to this classpath entry. For entry kinds
* {@link #CPE_LIBRARY}, the return value is the entry that is representing the JAR that includes
* &lt;code>this&lt;/code> in the MANIFEST.MF file's Class-Path section. For entry kinds other than
* {@link #CPE_LIBRARY}, this returns &lt;code>null&lt;/code>. For those entries that are on the raw classpath already,
* this returns &lt;code>null&lt;/code>.
* &lt;p>
* It is possible that multiple library entries refer to the same entry
* via the MANIFEST.MF file. In those cases, this method returns the first classpath entry
* that appears in the raw classpath. However, this does not mean that the other referencing
* entries do not relate to their referenced entries.
* See {@link JavaCore#getReferencedClasspathEntries(IClasspathEntry, IJavaProject)} for
* more details.
* &lt;/p>
*
* @return the classpath entry that is referencing this entry or &lt;code>null&lt;/code> if
* not applicable.
* @since 3.6
</body>
</ownedComment>
<ownedParameter xmi:id="_j5IzZWEMEeCdEc4VzBeWeQ" type="_j4GRkGEMEeCdEc4VzBeWeQ" direction="return"/>
</ownedOperation>
<ownedOperation xmi:id="_j5IzZmEMEeCdEc4VzBeWeQ" name="isExported">
<ownedComment xmi:id="_j5IzZ2EMEeCdEc4VzBeWeQ">
<body>
* Returns whether this entry is exported to dependent projects.
* Always returns &lt;code>false&lt;/code> for source entries (kind
* {@link #CPE_SOURCE}), which cannot be exported.
*
* @return &lt;code>true&lt;/code> if exported, and &lt;code>false&lt;/code> otherwise
* @since 2.0
</body>
</ownedComment>
<ownedParameter xmi:id="_j5SkYGEMEeCdEc4VzBeWeQ" type="_dVOadGEMEeCdEc4VzBeWeQ" direction="return"/>
</ownedOperation>
<ownedOperation xmi:id="_j5SkYWEMEeCdEc4VzBeWeQ" name="getResolvedEntry">
<ownedComment xmi:id="_j5SkYmEMEeCdEc4VzBeWeQ">
<body>
* This is a helper method, which returns the resolved classpath entry denoted
* by an entry (if it is a variable entry). It is obtained by resolving the variable
* reference in the first segment. Returns &lt;code>null&lt;/code> if unable to resolve using
* the following algorithm:
* &lt;ul>
* &lt;li> if variable segment cannot be resolved, returns &lt;code>null&lt;/code>&lt;/li>
* &lt;li> finds a project, JAR or binary folder in the workspace at the resolved path location&lt;/li>
* &lt;li> if none finds an external JAR file or folder outside the workspace at the resolved path location &lt;/li>
* &lt;li> if none returns &lt;code>null&lt;/code>&lt;/li>
* &lt;/ul>
* &lt;p>
* Variable source attachment is also resolved and recorded in the resulting classpath entry.
* &lt;p>
* @return the resolved library or project classpath entry, or &lt;code>null&lt;/code>
* if the given path could not be resolved to a classpath entry
* &lt;p>
* Note that this deprecated API doesn't handle CPE_CONTAINER entries.
*
* @deprecated Use {@link JavaCore#getResolvedClasspathEntry(IClasspathEntry)} instead
</body>
</ownedComment>
<ownedParameter xmi:id="_j5SkY2EMEeCdEc4VzBeWeQ" type="_j4GRkGEMEeCdEc4VzBeWeQ" direction="return"/>
</ownedOperation>
</packagedElement>
<packagedElement xmi:type="uml:Interface" xmi:id="_j54aQGEMEeCdEc4VzBeWeQ" name="ICodeAssist">
<ownedComment xmi:id="_j54aQWEMEeCdEc4VzBeWeQ">
<body>
* Common protocol for Java elements that support source code assist and code
* resolve.
*
* @noimplement This interface is not intended to be implemented by clients.
</body>
</ownedComment>
</packagedElement>
<packagedElement xmi:type="uml:Interface" xmi:id="_j6LVMGEMEeCdEc4VzBeWeQ" name="ICodeCompletionRequestor">
<ownedComment xmi:id="_j6LVMWEMEeCdEc4VzBeWeQ">
<body>
* A completion requestor accepts results as they are computed and is aware
* of source positions to complete the various different results.
* &lt;p>
* This interface may be implemented by clients.
* &lt;/p>
*
* @see ICodeAssist
* @deprecated Use {@link CompletionRequestor} instead.
</body>
</ownedComment>
<ownedOperation xmi:id="_j6LVMmEMEeCdEc4VzBeWeQ" name="acceptClass">
<ownedComment xmi:id="_j6VGMGEMEeCdEc4VzBeWeQ">
<body>
* Code assist notification of a class completion.
*
* @param packageName Declaring package name of the class.
* @param className Name of the class.
* @param completionName The completion for the class.
* Can include ';' for imported classes.
* @param modifiers The modifiers of the class.
* @param completionStart The start position of insertion of the name of the class.
* @param completionEnd The end position of insertion of the name of the class.
*
* NOTE - All package and type names are presented in their readable form:
* Package names are in the form &quot;a.b.c&quot;.
* Nested type names are in the qualified form &quot;A.M&quot;.
* The default package is represented by an empty array.
</body>
</ownedComment>
<ownedParameter xmi:id="_j6VGMWEMEeCdEc4VzBeWeQ" name="packageName" type="_dUn9g2EMEeCdEc4VzBeWeQ">
<upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_j6VGM2EMEeCdEc4VzBeWeQ" value="*"/>
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_j6VGMmEMEeCdEc4VzBeWeQ"/>
</ownedParameter>
<ownedParameter xmi:id="_j6VGNGEMEeCdEc4VzBeWeQ" name="className" type="_dUn9g2EMEeCdEc4VzBeWeQ">
<upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_j6VGNmEMEeCdEc4VzBeWeQ" value="*"/>
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_j6VGNWEMEeCdEc4VzBeWeQ"/>
</ownedParameter>
<ownedParameter xmi:id="_j6VGN2EMEeCdEc4VzBeWeQ" name="completionName" type="_dUn9g2EMEeCdEc4VzBeWeQ">
<upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_j6e3MWEMEeCdEc4VzBeWeQ" value="*"/>
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_j6e3MGEMEeCdEc4VzBeWeQ"/>
</ownedParameter>
<ownedParameter xmi:id="_j6e3MmEMEeCdEc4VzBeWeQ" name="modifiers" type="_dTlbsGEMEeCdEc4VzBeWeQ"/>
<ownedParameter xmi:id="_j6e3M2EMEeCdEc4VzBeWeQ" name="completionStart" type="_dTlbsGEMEeCdEc4VzBeWeQ"/>
<ownedParameter xmi:id="_j6e3NGEMEeCdEc4VzBeWeQ" name="completionEnd" type="_dTlbsGEMEeCdEc4VzBeWeQ"/>
</ownedOperation>
<ownedOperation xmi:id="_j6oBIWEMEeCdEc4VzBeWeQ" name="acceptError">
<ownedComment xmi:id="_j6oBImEMEeCdEc4VzBeWeQ">
<body>
* Code assist notification of a compilation error detected during completion.
* @param marker Only problems which are categorized as errors are notified to the requestor,
* warnings are silently ignored.
* In case an error got signaled, no other completions might be available,
* therefore the problem message should be presented to the user.
* The source positions of the problem are related to the source where it was
* detected (might be in another compilation unit, if it was indirectly requested
* during the code assist process).
* Note: the problem knows its originating file name.
</body>
</ownedComment>
<ownedParameter xmi:id="_j6oBI2EMEeCdEc4VzBeWeQ" name="marker" type="_j6oBIGEMEeCdEc4VzBeWeQ"/>
</ownedOperation>
<ownedOperation xmi:id="_j6oBJGEMEeCdEc4VzBeWeQ" name="acceptField">
<ownedComment xmi:id="_j6oBJWEMEeCdEc4VzBeWeQ">
<body>
* Code assist notification of a field completion.
*
* @param declaringTypePackageName Name of the package in which the type that contains this field is declared.
*
* @param declaringTypeName Name of the type declaring this new field.
*
* @param name Name of the field.
*
* @param typePackageName Name of the package in which the type of this field is declared.
*
* @param typeName Name of the type of this field.
*
* @param completionName The completion for the field.
*
* @param modifiers The modifiers of this field.
*
* @param completionStart The start position of insertion of the name of this field.
*
* @param completionEnd The end position of insertion of the name of this field.
*
* NOTE - All package and type names are presented in their readable form:
* Package names are in the form &quot;a.b.c&quot;.
* Base types are in the form &quot;int&quot; or &quot;boolean&quot;.
* Array types are in the qualified form &quot;M[]&quot; or &quot;int[]&quot;.
* Nested type names are in the qualified form &quot;A.M&quot;.
* The default package is represented by an empty array.
</body>
</ownedComment>
<ownedParameter xmi:id="_j6oBJmEMEeCdEc4VzBeWeQ" name="declaringTypePackageName" type="_dUn9g2EMEeCdEc4VzBeWeQ">
<upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_j6xyIWEMEeCdEc4VzBeWeQ" value="*"/>
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_j6xyIGEMEeCdEc4VzBeWeQ"/>
</ownedParameter>
<ownedParameter xmi:id="_j6xyImEMEeCdEc4VzBeWeQ" name="declaringTypeName" type="_dUn9g2EMEeCdEc4VzBeWeQ">
<upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_j6xyJGEMEeCdEc4VzBeWeQ" value="*"/>
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_j6xyI2EMEeCdEc4VzBeWeQ"/>
</ownedParameter>
<ownedParameter xmi:id="_j6xyJWEMEeCdEc4VzBeWeQ" name="name" type="_dUn9g2EMEeCdEc4VzBeWeQ">
<upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_j6xyJ2EMEeCdEc4VzBeWeQ" value="*"/>
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_j6xyJmEMEeCdEc4VzBeWeQ"/>
</ownedParameter>
<ownedParameter xmi:id="_j668EGEMEeCdEc4VzBeWeQ" name="typePackageName" type="_dUn9g2EMEeCdEc4VzBeWeQ">
<upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_j668EmEMEeCdEc4VzBeWeQ" value="*"/>
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_j668EWEMEeCdEc4VzBeWeQ"/>
</ownedParameter>
<ownedParameter xmi:id="_j668E2EMEeCdEc4VzBeWeQ" name="typeName" type="_dUn9g2EMEeCdEc4VzBeWeQ">
<upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_j668FWEMEeCdEc4VzBeWeQ" value="*"/>
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_j668FGEMEeCdEc4VzBeWeQ"/>
</ownedParameter>
<ownedParameter xmi:id="_j668FmEMEeCdEc4VzBeWeQ" name="completionName" type="_dUn9g2EMEeCdEc4VzBeWeQ">
<upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_j7EtEGEMEeCdEc4VzBeWeQ" value="*"/>
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_j668F2EMEeCdEc4VzBeWeQ"/>
</ownedParameter>
<ownedParameter xmi:id="_j7EtEWEMEeCdEc4VzBeWeQ" name="modifiers" type="_dTlbsGEMEeCdEc4VzBeWeQ"/>
<ownedParameter xmi:id="_j7EtEmEMEeCdEc4VzBeWeQ" name="completionStart" type="_dTlbsGEMEeCdEc4VzBeWeQ"/>
<ownedParameter xmi:id="_j7OeEGEMEeCdEc4VzBeWeQ" name="completionEnd" type="_dTlbsGEMEeCdEc4VzBeWeQ"/>
</ownedOperation>
<ownedOperation xmi:id="_j7XoAGEMEeCdEc4VzBeWeQ" name="acceptInterface">
<ownedComment xmi:id="_j7XoAWEMEeCdEc4VzBeWeQ">
<body>
* Code assist notification of an interface completion.
*
* @param packageName Declaring package name of the interface.
* @param interfaceName Name of the interface.
* @param completionName The completion for the interface.
* Can include ';' for imported interfaces.
* @param modifiers The modifiers of the interface.
* @param completionStart The start position of insertion of the name of the interface.
* @param completionEnd The end position of insertion of the name of the interface.
*
* NOTE - All package and type names are presented in their readable form:
* Package names are in the form &quot;a.b.c&quot;.
* Nested type names are in the qualified form &quot;A.M&quot;.
* The default package is represented by an empty array.
</body>
</ownedComment>
<ownedParameter xmi:id="_j7XoAmEMEeCdEc4VzBeWeQ" name="packageName" type="_dUn9g2EMEeCdEc4VzBeWeQ">
<upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_j7XoBGEMEeCdEc4VzBeWeQ" value="*"/>
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_j7XoA2EMEeCdEc4VzBeWeQ"/>
</ownedParameter>
<ownedParameter xmi:id="_j7XoBWEMEeCdEc4VzBeWeQ" name="interfaceName" type="_dUn9g2EMEeCdEc4VzBeWeQ">
<upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_j7XoB2EMEeCdEc4VzBeWeQ" value="*"/>
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_j7XoBmEMEeCdEc4VzBeWeQ"/>
</ownedParameter>
<ownedParameter xmi:id="_j7XoCGEMEeCdEc4VzBeWeQ" name="completionName" type="_dUn9g2EMEeCdEc4VzBeWeQ">
<upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_j7hZAWEMEeCdEc4VzBeWeQ" value="*"/>
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_j7hZAGEMEeCdEc4VzBeWeQ"/>
</ownedParameter>
<ownedParameter xmi:id="_j7hZAmEMEeCdEc4VzBeWeQ" name="modifiers" type="_dTlbsGEMEeCdEc4VzBeWeQ"/>
<ownedParameter xmi:id="_j7hZA2EMEeCdEc4VzBeWeQ" name="completionStart" type="_dTlbsGEMEeCdEc4VzBeWeQ"/>
<ownedParameter xmi:id="_j7hZBGEMEeCdEc4VzBeWeQ" name="completionEnd" type="_dTlbsGEMEeCdEc4VzBeWeQ"/>
</ownedOperation>
<ownedOperation xmi:id="_j7hZBWEMEeCdEc4VzBeWeQ" name="acceptKeyword">
<ownedComment xmi:id="_j7hZBmEMEeCdEc4VzBeWeQ">
<body>
* Code assist notification of a keyword completion.
*
* @param keywordName The keyword source.
* @param completionStart The start position of insertion of the name of this keyword.
* @param completionEnd The end position of insertion of the name of this keyword.
</body>
</ownedComment>
<ownedParameter xmi:id="_j7hZB2EMEeCdEc4VzBeWeQ" name="keywordName" type="_dUn9g2EMEeCdEc4VzBeWeQ">
<upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_j7rKAGEMEeCdEc4VzBeWeQ" value="*"/>
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_j7hZCGEMEeCdEc4VzBeWeQ"/>
</ownedParameter>
<ownedParameter xmi:id="_j7rKAWEMEeCdEc4VzBeWeQ" name="completionStart" type="_dTlbsGEMEeCdEc4VzBeWeQ"/>
<ownedParameter xmi:id="_j70T8GEMEeCdEc4VzBeWeQ" name="completionEnd" type="_dTlbsGEMEeCdEc4VzBeWeQ"/>
</ownedOperation>
<ownedOperation xmi:id="_j70T8WEMEeCdEc4VzBeWeQ" name="acceptLabel">
<ownedComment xmi:id="_j70T8mEMEeCdEc4VzBeWeQ">
<body>
* Code assist notification of a label completion.
*
* @param labelName The label source.
* @param completionStart The start position of insertion of the name of this label.
* @param completionEnd The end position of insertion of the name of this label.
</body>
</ownedComment>
<ownedParameter xmi:id="_j70T82EMEeCdEc4VzBeWeQ" name="labelName" type="_dUn9g2EMEeCdEc4VzBeWeQ">
<upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_j70T9WEMEeCdEc4VzBeWeQ" value="*"/>
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_j70T9GEMEeCdEc4VzBeWeQ"/>
</ownedParameter>
<ownedParameter xmi:id="_j70T9mEMEeCdEc4VzBeWeQ" name="completionStart" type="_dTlbsGEMEeCdEc4VzBeWeQ"/>
<ownedParameter xmi:id="_j7-E8GEMEeCdEc4VzBeWeQ" name="completionEnd" type="_dTlbsGEMEeCdEc4VzBeWeQ"/>
</ownedOperation>
<ownedOperation xmi:id="_j7-E8WEMEeCdEc4VzBeWeQ" name="acceptLocalVariable">
<ownedComment xmi:id="_j7-E8mEMEeCdEc4VzBeWeQ">
<body>
* Code assist notification of a local variable completion.
*
* @param name Name of the new local variable.
*
* @param typePackageName Name of the package in which the type of this new local variable is declared.
*
* @param typeName Name of the type of this new local variable.
*
* @param modifiers The modifiers of this new local variable.
*
* @param completionStart The start position of insertion of the name of this new local variable.
*
* @param completionEnd The end position of insertion of the name of this new local variable.
*
* NOTE - All package and type names are presented in their readable form:
* Package names are in the form &quot;a.b.c&quot;.
* Base types are in the form &quot;int&quot; or &quot;boolean&quot;.
* Array types are in the qualified form &quot;M[]&quot; or &quot;int[]&quot;.
* Nested type names are in the qualified form &quot;A.M&quot;.
* The default package is represented by an empty array.
</body>
</ownedComment>
<ownedParameter xmi:id="_j7-E82EMEeCdEc4VzBeWeQ" name="name" type="_dUn9g2EMEeCdEc4VzBeWeQ">
<upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_j7-E9WEMEeCdEc4VzBeWeQ" value="*"/>
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_j7-E9GEMEeCdEc4VzBeWeQ"/>
</ownedParameter>
<ownedParameter xmi:id="_j7-E9mEMEeCdEc4VzBeWeQ" name="typePackageName" type="_dUn9g2EMEeCdEc4VzBeWeQ">
<upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_j7-E-GEMEeCdEc4VzBeWeQ" value="*"/>
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_j7-E92EMEeCdEc4VzBeWeQ"/>
</ownedParameter>
<ownedParameter xmi:id="_j8HO4GEMEeCdEc4VzBeWeQ" name="typeName" type="_dUn9g2EMEeCdEc4VzBeWeQ">
<upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_j8HO4mEMEeCdEc4VzBeWeQ" value="*"/>
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_j8HO4WEMEeCdEc4VzBeWeQ"/>
</ownedParameter>
<ownedParameter xmi:id="_j8HO42EMEeCdEc4VzBeWeQ" name="modifiers" type="_dTlbsGEMEeCdEc4VzBeWeQ"/>
<ownedParameter xmi:id="_j8HO5GEMEeCdEc4VzBeWeQ" name="completionStart" type="_dTlbsGEMEeCdEc4VzBeWeQ"/>
<ownedParameter xmi:id="_j8Q_4GEMEeCdEc4VzBeWeQ" name="completionEnd" type="_dTlbsGEMEeCdEc4VzBeWeQ"/>
</ownedOperation>
<ownedOperation xmi:id="_j8aw4GEMEeCdEc4VzBeWeQ" name="acceptMethod">
<ownedComment xmi:id="_j8aw4WEMEeCdEc4VzBeWeQ">
<body>
* Code assist notification of a method completion.
*
* @param declaringTypePackageName Name of the package in which the type that contains this new method is declared.
*
* @param declaringTypeName Name of the type declaring this new method.
*
* @param selector Name of the new method.
*
* @param parameterPackageNames Names of the packages in which the parameter types are declared.
* Should contain as many elements as parameterTypeNames.
*
* @param parameterTypeNames Names of the parameters types.
* Should contain as many elements as parameterPackageNames.
*
* @param returnTypePackageName Name of the package in which the return type is declared.
*
* @param returnTypeName Name of the return type of this new method, should be &lt;code>null&lt;/code> for a constructor.
*
* @param completionName The completion for the method.
* Can include zero, one or two brackets. If the closing bracket is included, then the cursor should be placed before it.
*
* @param modifiers The modifiers of this new method.
*
* @param completionStart The start position of insertion of the name of this new method.
*
* @param completionEnd The end position of insertion of the name of this new method.
*
* NOTE - All package and type names are presented in their readable form:
* Package names are in the form &quot;a.b.c&quot;.
* Base types are in the form &quot;int&quot; or &quot;boolean&quot;.
* Array types are in the qualified form &quot;M[]&quot; or &quot;int[]&quot;.
* Nested type names are in the qualified form &quot;A.M&quot;.
* The default package is represented by an empty array.
*
* NOTE: parameter names can be retrieved from the source model after the user selects a specific method.
</body>
</ownedComment>
<ownedParameter xmi:id="_j8aw4mEMEeCdEc4VzBeWeQ" name="declaringTypePackageName" type="_dUn9g2EMEeCdEc4VzBeWeQ">
<upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_j8aw5GEMEeCdEc4VzBeWeQ" value="*"/>
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_j8aw42EMEeCdEc4VzBeWeQ"/>
</ownedParameter>
<ownedParameter xmi:id="_j8aw5WEMEeCdEc4VzBeWeQ" name="declaringTypeName" type="_dUn9g2EMEeCdEc4VzBeWeQ">
<upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_j8aw52EMEeCdEc4VzBeWeQ" value="*"/>
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_j8aw5mEMEeCdEc4VzBeWeQ"/>
</ownedParameter>
<ownedParameter xmi:id="_j8j60GEMEeCdEc4VzBeWeQ" name="selector" type="_dUn9g2EMEeCdEc4VzBeWeQ">
<upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_j8j60mEMEeCdEc4VzBeWeQ" value="*"/>
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_j8j60WEMEeCdEc4VzBeWeQ"/>
</ownedParameter>
<ownedParameter xmi:id="_j8j602EMEeCdEc4VzBeWeQ" name="parameterPackageNames" type="_dUn9g2EMEeCdEc4VzBeWeQ">
<upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_j8j61WEMEeCdEc4VzBeWeQ" value="*"/>
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_j8j61GEMEeCdEc4VzBeWeQ"/>
</ownedParameter>
<ownedParameter xmi:id="_j8tr0GEMEeCdEc4VzBeWeQ" name="parameterTypeNames" type="_dUn9g2EMEeCdEc4VzBeWeQ">
<upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_j8tr0mEMEeCdEc4VzBeWeQ" value="*"/>
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_j8tr0WEMEeCdEc4VzBeWeQ"/>
</ownedParameter>
<ownedParameter xmi:id="_j8tr02EMEeCdEc4VzBeWeQ" name="returnTypePackageName" type="_dUn9g2EMEeCdEc4VzBeWeQ">
<upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_j83c0WEMEeCdEc4VzBeWeQ" value="*"/>
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_j83c0GEMEeCdEc4VzBeWeQ"/>
</ownedParameter>
<ownedParameter xmi:id="_j83c0mEMEeCdEc4VzBeWeQ" name="returnTypeName" type="_dUn9g2EMEeCdEc4VzBeWeQ">
<upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_j83c1GEMEeCdEc4VzBeWeQ" value="*"/>
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_j83c02EMEeCdEc4VzBeWeQ"/>
</ownedParameter>
<ownedParameter xmi:id="_j83c1WEMEeCdEc4VzBeWeQ" name="completionName" type="_dUn9g2EMEeCdEc4VzBeWeQ">
<upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_j9AmwWEMEeCdEc4VzBeWeQ" value="*"/>
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_j9AmwGEMEeCdEc4VzBeWeQ"/>
</ownedParameter>
<ownedParameter xmi:id="_j9AmwmEMEeCdEc4VzBeWeQ" name="modifiers" type="_dTlbsGEMEeCdEc4VzBeWeQ"/>
<ownedParameter xmi:id="_j9Amw2EMEeCdEc4VzBeWeQ" name="completionStart" type="_dTlbsGEMEeCdEc4VzBeWeQ"/>
<ownedParameter xmi:id="_j9AmxGEMEeCdEc4VzBeWeQ" name="completionEnd" type="_dTlbsGEMEeCdEc4VzBeWeQ"/>
</ownedOperation>
<ownedOperation xmi:id="_j9AmxWEMEeCdEc4VzBeWeQ" name="acceptModifier">
<ownedComment xmi:id="_j9AmxmEMEeCdEc4VzBeWeQ">
<body>
* Code assist notification of a modifier completion.
*
* @param modifierName The new modifier.
* @param completionStart The start position of insertion of the name of this new modifier.
* @param completionEnd The end position of insertion of the name of this new modifier.
</body>
</ownedComment>
<ownedParameter xmi:id="_j9Amx2EMEeCdEc4VzBeWeQ" name="modifierName" type="_dUn9g2EMEeCdEc4VzBeWeQ">
<upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_j9KXwWEMEeCdEc4VzBeWeQ" value="*"/>
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_j9KXwGEMEeCdEc4VzBeWeQ"/>
</ownedParameter>
<ownedParameter xmi:id="_j9KXwmEMEeCdEc4VzBeWeQ" name="completionStart" type="_dTlbsGEMEeCdEc4VzBeWeQ"/>
<ownedParameter xmi:id="_j9KXw2EMEeCdEc4VzBeWeQ" name="completionEnd" type="_dTlbsGEMEeCdEc4VzBeWeQ"/>
</ownedOperation>
<ownedOperation xmi:id="_j9KXxGEMEeCdEc4VzBeWeQ" name="acceptPackage">
<ownedComment xmi:id="_j9KXxWEMEeCdEc4VzBeWeQ">
<body>
* Code assist notification of a package completion.
*
* @param packageName The package name.
* @param completionName The completion for the package.
* Can include '.*;' for imports.
* @param completionStart The start position of insertion of the name of this new package.
* @param completionEnd The end position of insertion of the name of this new package.
*
* NOTE - All package names are presented in their readable form:
* Package names are in the form &quot;a.b.c&quot;.
* The default package is represented by an empty array.
</body>
</ownedComment>
<ownedParameter xmi:id="_j9ThsGEMEeCdEc4VzBeWeQ" name="packageName" type="_dUn9g2EMEeCdEc4VzBeWeQ">
<upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_j9ThsmEMEeCdEc4VzBeWeQ" value="*"/>
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_j9ThsWEMEeCdEc4VzBeWeQ"/>
</ownedParameter>
<ownedParameter xmi:id="_j9Ths2EMEeCdEc4VzBeWeQ" name="completionName" type="_dUn9g2EMEeCdEc4VzBeWeQ">
<upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_j9dSsWEMEeCdEc4VzBeWeQ" value="*"/>
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_j9dSsGEMEeCdEc4VzBeWeQ"/>
</ownedParameter>
<ownedParameter xmi:id="_j9dSsmEMEeCdEc4VzBeWeQ" name="completionStart" type="_dTlbsGEMEeCdEc4VzBeWeQ"/>
<ownedParameter xmi:id="_j9dSs2EMEeCdEc4VzBeWeQ" name="completionEnd" type="_dTlbsGEMEeCdEc4VzBeWeQ"/>
</ownedOperation>
<ownedOperation xmi:id="_j9dStGEMEeCdEc4VzBeWeQ" name="acceptType">
<ownedComment xmi:id="_j9dStWEMEeCdEc4VzBeWeQ">
<body>
* Code assist notification of a type completion.
*
* @param packageName Declaring package name of the type.
* @param typeName Name of the type.
* @param completionName The completion for the type.
* Can include ';' for imported types.
* @param completionStart The start position of insertion of the name of the type.
* @param completionEnd The end position of insertion of the name of the type.
*
* NOTE - All package and type names are presented in their readable form:
* Package names are in the form &quot;a.b.c&quot;.
* Nested type names are in the qualified form &quot;A.M&quot;.
* The default package is represented by an empty array.
</body>
</ownedComment>
<ownedParameter xmi:id="_j9dStmEMEeCdEc4VzBeWeQ" name="packageName" type="_dUn9g2EMEeCdEc4VzBeWeQ">
<upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_j9nDsWEMEeCdEc4VzBeWeQ" value="*"/>
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_j9nDsGEMEeCdEc4VzBeWeQ"/>
</ownedParameter>
<ownedParameter xmi:id="_j9nDsmEMEeCdEc4VzBeWeQ" name="typeName" type="_dUn9g2EMEeCdEc4VzBeWeQ">
<upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_j9nDtGEMEeCdEc4VzBeWeQ" value="*"/>
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_j9nDs2EMEeCdEc4VzBeWeQ"/>
</ownedParameter>
<ownedParameter xmi:id="_j9nDtWEMEeCdEc4VzBeWeQ" name="completionName" type="_dUn9g2EMEeCdEc4VzBeWeQ">
<upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_j9wNoGEMEeCdEc4VzBeWeQ" value="*"/>
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_j9nDtmEMEeCdEc4VzBeWeQ"/>
</ownedParameter>
<ownedParameter xmi:id="_j9wNoWEMEeCdEc4VzBeWeQ" name="completionStart" type="_dTlbsGEMEeCdEc4VzBeWeQ"/>
<ownedParameter xmi:id="_j9wNomEMEeCdEc4VzBeWeQ" name="completionEnd" type="_dTlbsGEMEeCdEc4VzBeWeQ"/>
</ownedOperation>
</packagedElement>
<packagedElement xmi:type="uml:Interface" xmi:id="_j-M5kGEMEeCdEc4VzBeWeQ" name="ICodeFormatter">
<ownedComment xmi:id="_j-M5kWEMEeCdEc4VzBeWeQ">
<body>
* Specification for a generic source code formatter. Client plug-ins can contribute
* an implementation for an ICodeFormatter, through the extension point &quot;org.eclipse.jdt.core.codeFormatter&quot;.
* In case none is found, a default formatter can be provided through the ToolFactory.
*
* @see ToolFactory#createCodeFormatter()
* @see ToolFactory#createDefaultCodeFormatter(java.util.Map options)
* @since 2.0
* @deprecated Use {@link org.eclipse.jdt.core.formatter.CodeFormatter} instead (note: options have changed)
</body>
</ownedComment>
<ownedOperation xmi:id="_j-M5kmEMEeCdEc4VzBeWeQ" name="format">
<ownedComment xmi:id="_j-M5k2EMEeCdEc4VzBeWeQ">
<body>
* Formats the String &lt;code>sourceString&lt;/code>,
* and returns a string containing the formatted version.
*
* @param string the string to format
* @param indentationLevel the initial indentation level, used
* to shift left/right the entire source fragment. An initial indentation
* level of zero has no effect.
* @param positions an array of positions to map. These are
* character-based source positions inside the original source,
* arranged in non-decreasing order, for which corresponding positions in
* the formatted source will be computed (so as to relocate elements associated
* with the original source). It updates the positions array with updated
* positions. If set to &lt;code>null&lt;/code>, then no positions are mapped.
* @param lineSeparator the line separator to use in formatted source,
* if set to &lt;code>null&lt;/code>, then the platform default one will be used.
* @return the formatted output string.
</body>
</ownedComment>
<ownedParameter xmi:id="_j-M5lGEMEeCdEc4VzBeWeQ" type="_dSiS02EMEeCdEc4VzBeWeQ" direction="return"/>
<ownedParameter xmi:id="_j-M5lWEMEeCdEc4VzBeWeQ" name="string" type="_dSiS02EMEeCdEc4VzBeWeQ"/>
<ownedParameter xmi:id="_j-M5lmEMEeCdEc4VzBeWeQ" name="indentationLevel" type="_dTlbsGEMEeCdEc4VzBeWeQ"/>
<ownedParameter xmi:id="_j-M5l2EMEeCdEc4VzBeWeQ" name="positions" type="_dTlbsGEMEeCdEc4VzBeWeQ">
<upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_j-WqkWEMEeCdEc4VzBeWeQ" value="*"/>
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_j-WqkGEMEeCdEc4VzBeWeQ"/>
</ownedParameter>
<ownedParameter xmi:id="_j-WqkmEMEeCdEc4VzBeWeQ" name="lineSeparator" type="_dSiS02EMEeCdEc4VzBeWeQ"/>
</ownedOperation>
</packagedElement>
<packagedElement xmi:type="uml:Interface" xmi:id="_j-plgGEMEeCdEc4VzBeWeQ" name="ICompilationUnit">
<ownedComment xmi:id="_j-zWgGEMEeCdEc4VzBeWeQ">
<body>
* Represents an entire Java compilation unit (source file with one of the
* {@link JavaCore#getJavaLikeExtensions() Java-like extensions}).
* Compilation unit elements need to be opened before they can be navigated or manipulated.
* The children are of type {@link IPackageDeclaration},
* {@link IImportContainer}, and {@link IType},
* and appear in the order in which they are declared in the source.
* If a source file cannot be parsed, its structure remains unknown.
* Use {@link IJavaElement#isStructureKnown} to determine whether this is
* the case.
*
* @noimplement This interface is not intended to be implemented by clients.
</body>
</ownedComment>
<generalization xmi:id="_82Y7IGEMEeCdEc4VzBeWeQ" general="_kyNJYGEMEeCdEc4VzBeWeQ"/>
<generalization xmi:id="_82isIGEMEeCdEc4VzBeWeQ" general="_ky8wQGEMEeCdEc4VzBeWeQ"/>
<generalization xmi:id="_82isIWEMEeCdEc4VzBeWeQ" general="_kssXQGEMEeCdEc4VzBeWeQ"/>
<ownedAttribute xmi:id="_82isImEMEeCdEc4VzBeWeQ" name="NO_AST" visibility="public" isLeaf="true" isStatic="true" type="_dTlbsGEMEeCdEc4VzBeWeQ" isUnique="false">
<ownedComment xmi:id="_82sdIGEMEeCdEc4VzBeWeQ">
<body>
* Constant indicating that a reconcile operation should not return an AST.
* @since 3.0
</body>
</ownedComment>
</ownedAttribute>
<ownedAttribute xmi:id="_821nEGEMEeCdEc4VzBeWeQ" name="FORCE_PROBLEM_DETECTION" visibility="public" isLeaf="true" isStatic="true" type="_dTlbsGEMEeCdEc4VzBeWeQ" isUnique="false">
<ownedComment xmi:id="_82_YEGEMEeCdEc4VzBeWeQ">
<body>
* Constant indicating that a reconcile operation should recompute the problems
* even if the source hasn't changed.
* @since 3.3
</body>
</ownedComment>
</ownedAttribute>
<ownedAttribute xmi:id="_83IiAGEMEeCdEc4VzBeWeQ" name="ENABLE_STATEMENTS_RECOVERY" visibility="public" isLeaf="true" isStatic="true" type="_dTlbsGEMEeCdEc4VzBeWeQ" isUnique="false">
<ownedComment xmi:id="_83IiAWEMEeCdEc4VzBeWeQ">
<body>
* Constant indicating that a reconcile operation should enable the statements recovery.
* @see ASTParser#setStatementsRecovery(boolean)
* @since 3.3
</body>
</ownedComment>
</ownedAttribute>
<ownedAttribute xmi:id="_83cEAGEMEeCdEc4VzBeWeQ" name="ENABLE_BINDINGS_RECOVERY" visibility="public" isLeaf="true" isStatic="true" type="_dTlbsGEMEeCdEc4VzBeWeQ" isUnique="false">
<ownedComment xmi:id="_83lN8GEMEeCdEc4VzBeWeQ">
<body>
* Constant indicating that a reconcile operation should enable the bindings recovery
* @see ASTParser#setBindingsRecovery(boolean)
* @see IBinding#isRecovered()
* @since 3.3
</body>
</ownedComment>
</ownedAttribute>
<ownedAttribute xmi:id="_83lN8WEMEeCdEc4VzBeWeQ" name="IGNORE_METHOD_BODIES" visibility="public" isLeaf="true" isStatic="true" type="_dTlbsGEMEeCdEc4VzBeWeQ" isUnique="false">
<ownedComment xmi:id="_83u-8GEMEeCdEc4VzBeWeQ">
<body>
* Constant indicating that a reconcile operation could ignore to parse the method bodies.
* @see ASTParser#setIgnoreMethodBodies(boolean)
* @since 3.5.2
</body>
</ownedComment>
</ownedAttribute>
<ownedOperation xmi:id="_834v8GEMEeCdEc4VzBeWeQ" name="applyTextEdit" visibility="public">
<ownedComment xmi:id="_834v8WEMEeCdEc4VzBeWeQ">
<body>
* Applies a text edit to the compilation unit's buffer.
* &lt;p>
* Note that the edit is simply applied to the compilation unit's buffer.
* In particular the undo edit is not grouped with previous undo edits
* if the buffer doesn't implement {@link IBuffer.ITextEditCapability}.
* If it does, the exact semantics for grouping undo edit depends
* on how {@link IBuffer.ITextEditCapability#applyTextEdit(TextEdit, IProgressMonitor)}
* is implemented.
* &lt;/p>
*
* @param edit the edit to apply
* @param monitor the progress monitor to use or &lt;code>null&lt;/code> if no progress should be reported
* @return the undo edit
* @throws JavaModelException if this edit can not be applied to the compilation unit's buffer. Reasons include:
* &lt;ul>
* &lt;li>This compilation unit does not exist ({@link IJavaModelStatusConstants#ELEMENT_DOES_NOT_EXIST}).&lt;/li>
* &lt;li>The provided edit can not be applied as there is a problem with the text edit locations ({@link IJavaModelStatusConstants#BAD_TEXT_EDIT_LOCATION}).&lt;/li>
* &lt;/ul>
*
* @since 3.4
</body>
</ownedComment>
<ownedParameter xmi:id="_84B54GEMEeCdEc4VzBeWeQ" type="_j1j68mEMEeCdEc4VzBeWeQ" direction="return"/>
<ownedParameter xmi:id="_84B54WEMEeCdEc4VzBeWeQ" name="edit" type="_j1aJ-WEMEeCdEc4VzBeWeQ"/>
<ownedParameter xmi:id="_84Lq4GEMEeCdEc4VzBeWeQ" name="monitor" type="_jqFqwGEMEeCdEc4VzBeWeQ"/>
</ownedOperation>
<ownedOperation xmi:id="_84Lq4WEMEeCdEc4VzBeWeQ" name="becomeWorkingCopy">
<ownedComment xmi:id="_84Lq4mEMEeCdEc4VzBeWeQ">
<body>
* Changes this compilation unit handle into a working copy. A new {@link IBuffer} is
* created using this compilation unit handle's owner. Uses the primary owner if none was
* specified when this compilation unit handle was created.
* &lt;p>
* When switching to working copy mode, problems are reported to given
* {@link IProblemRequestor}. Note that once in working copy mode, the given
* {@link IProblemRequestor} is ignored. Only the original {@link IProblemRequestor}
* is used to report subsequent problems.
* &lt;/p>
* &lt;p>
* Once in working copy mode, changes to this compilation unit or its children are done in memory.
* Only the new buffer is affected. Using {@link #commitWorkingCopy(boolean, IProgressMonitor)}
* will bring the underlying resource in sync with this compilation unit.
* &lt;/p>
* &lt;p>
* If this compilation unit was already in working copy mode, an internal counter is incremented and no
* other action is taken on this compilation unit. To bring this compilation unit back into the original mode
* (where it reflects the underlying resource), {@link #discardWorkingCopy} must be call as many
* times as {@link #becomeWorkingCopy(IProblemRequestor, IProgressMonitor)}.
* &lt;/p>
*
* @param problemRequestor a requestor which will get notified of problems detected during
* reconciling as they are discovered. The requestor can be set to &lt;code>null&lt;/code> indicating
* that the client is not interested in problems.
* @param monitor a progress monitor used to report progress while opening this compilation unit
* or &lt;code>null&lt;/code> if no progress should be reported
* @throws JavaModelException if this compilation unit could not become a working copy.
* @see #discardWorkingCopy()
* @since 3.0
*
* @deprecated Use {@link #becomeWorkingCopy(IProgressMonitor)} instead.
* Note that if this deprecated method is used, problems will be reported to the given problem requestor
* as well as the problem requestor returned by the working copy owner (if not null).
</body>
</ownedComment>
<ownedParameter xmi:id="_84U00GEMEeCdEc4VzBeWeQ" name="problemRequestor" type="_krNJgGEMEeCdEc4VzBeWeQ"/>
<ownedParameter xmi:id="_84U00WEMEeCdEc4VzBeWeQ" name="monitor" type="_jqFqwGEMEeCdEc4VzBeWeQ"/>
</ownedOperation>
<ownedOperation xmi:id="_84el0GEMEeCdEc4VzBeWeQ" name="becomeWorkingCopy">
<ownedComment xmi:id="_84el0WEMEeCdEc4VzBeWeQ">
<body>
* Changes this compilation unit handle into a working copy. A new {@link IBuffer} is
* created using this compilation unit handle's owner. Uses the primary owner if none was
* specified when this compilation unit handle was created.
* &lt;p>
* When switching to working copy mode, problems are reported to the {@link IProblemRequestor
* problem requestor} of the {@link WorkingCopyOwner working copy owner}.
* &lt;/p>&lt;p>
* Once in working copy mode, changes to this compilation unit or its children are done in memory.
* Only the new buffer is affected. Using {@link #commitWorkingCopy(boolean, IProgressMonitor)}
* will bring the underlying resource in sync with this compilation unit.
* &lt;/p>&lt;p>
* If this compilation unit was already in working copy mode, an internal counter is incremented and no
* other action is taken on this compilation unit. To bring this compilation unit back into the original mode
* (where it reflects the underlying resource), {@link #discardWorkingCopy} must be call as many
* times as {@link #becomeWorkingCopy(IProblemRequestor, IProgressMonitor)}.
* &lt;/p>
*
* @param monitor a progress monitor used to report progress while opening this compilation unit
* or &lt;code>null&lt;/code> if no progress should be reported
* @throws JavaModelException if this compilation unit could not become a working copy.
* @see #discardWorkingCopy()
* @since 3.3
</body>
</ownedComment>
<ownedParameter xmi:id="_84el0mEMEeCdEc4VzBeWeQ" name="monitor" type="_jqFqwGEMEeCdEc4VzBeWeQ"/>
</ownedOperation>
<ownedOperation xmi:id="_84el02EMEeCdEc4VzBeWeQ" name="commitWorkingCopy">
<ownedComment xmi:id="_84el1GEMEeCdEc4VzBeWeQ">
<body>
* Commits the contents of this working copy to its underlying resource.
*
* &lt;p>It is possible that the contents of the original resource have changed
* since this working copy was created, in which case there is an update conflict.
* The value of the &lt;code>force&lt;/code> parameter affects the resolution of
* such a conflict:&lt;ul>
* &lt;li> &lt;code>true&lt;/code> - in this case the contents of this working copy are applied to
* the underlying resource even though this working copy was created before
* a subsequent change in the resource&lt;/li>
* &lt;li> &lt;code>false&lt;/code> - in this case a {@link JavaModelException} is thrown&lt;/li>
* &lt;/ul>
* &lt;p>
* Since 2.1, a working copy can be created on a not-yet existing compilation
* unit. In particular, such a working copy can then be committed in order to create
* the corresponding compilation unit.
* &lt;/p>
* @param force a flag to handle the cases when the contents of the original resource have changed
* since this working copy was created
* @param monitor the given progress monitor
* @throws JavaModelException if this working copy could not commit. Reasons include:
* &lt;ul>
* &lt;li> A {@link org.eclipse.core.runtime.CoreException} occurred while updating an underlying resource
* &lt;li> This element is not a working copy (INVALID_ELEMENT_TYPES)
* &lt;li> A update conflict (described above) (UPDATE_CONFLICT)
* &lt;/ul>
* @since 3.0
</body>
</ownedComment>
<ownedParameter xmi:id="_84oW0GEMEeCdEc4VzBeWeQ" name="force" type="_dVOadGEMEeCdEc4VzBeWeQ"/>
<ownedParameter xmi:id="_84xgwGEMEeCdEc4VzBeWeQ" name="monitor" type="_jqFqwGEMEeCdEc4VzBeWeQ"/>
</ownedOperation>
<ownedOperation xmi:id="_847RwGEMEeCdEc4VzBeWeQ" name="createImport">
<ownedComment xmi:id="_847RwWEMEeCdEc4VzBeWeQ">
<body>
* Creates and returns an non-static import declaration in this compilation unit
* with the given name. This method is equivalent to
* &lt;code>createImport(name, Flags.AccDefault, sibling, monitor)&lt;/code>.
*
* @param name the name of the import declaration to add as defined by JLS2 7.5. (For example: &lt;code>&quot;java.io.File&quot;&lt;/code> or
* &lt;code>&quot;java.awt.*&quot;&lt;/code>)
* @param sibling the existing element which the import declaration will be inserted immediately before (if
* &lt;code> null &lt;/code>, then this import will be inserted as the last import declaration.
* @param monitor the progress monitor to notify
* @return the newly inserted import declaration (or the previously existing one in case attempting to create a duplicate)
*
* @throws JavaModelException if the element could not be created. Reasons include:
* &lt;ul>
* &lt;li> This Java element does not exist or the specified sibling does not exist (ELEMENT_DOES_NOT_EXIST)&lt;/li>
* &lt;li> A {@link org.eclipse.core.runtime.CoreException} occurred while updating an underlying resource
* &lt;li> The specified sibling is not a child of this compilation unit (INVALID_SIBLING)
* &lt;li> The name is not a valid import name (INVALID_NAME)
* &lt;/ul>
* @see #createImport(String, IJavaElement, int, IProgressMonitor)
</body>
</ownedComment>
<ownedParameter xmi:id="_847RwmEMEeCdEc4VzBeWeQ" type="_kNjkMGEMEeCdEc4VzBeWeQ" direction="return"/>
<ownedParameter xmi:id="_847Rw2EMEeCdEc4VzBeWeQ" name="name" type="_dSiS02EMEeCdEc4VzBeWeQ"/>
<ownedParameter xmi:id="_85FCwGEMEeCdEc4VzBeWeQ" name="sibling" type="_kO5A8GEMEeCdEc4VzBeWeQ"/>
<ownedParameter xmi:id="_85FCwWEMEeCdEc4VzBeWeQ" name="monitor" type="_jqFqwGEMEeCdEc4VzBeWeQ"/>
</ownedOperation>
<ownedOperation xmi:id="_85X9sGEMEeCdEc4VzBeWeQ" name="createImport">
<ownedComment xmi:id="_85X9sWEMEeCdEc4VzBeWeQ">
<body>
* Creates and returns an import declaration in this compilation unit
* with the given name.
* &lt;p>
* Optionally, the new element can be positioned before the specified
* sibling. If no sibling is specified, the element will be inserted
* as the last import declaration in this compilation unit.
* &lt;p>
* If the compilation unit already includes the specified import declaration,
* the import is not generated (it does not generate duplicates).
* Note that it is valid to specify both a single-type import and an on-demand import
* for the same package, for example &lt;code>&quot;java.io.File&quot;&lt;/code> and
* &lt;code>&quot;java.io.*&quot;&lt;/code>, in which case both are preserved since the semantics
* of this are not the same as just importing &lt;code>&quot;java.io.*&quot;&lt;/code>.
* Importing &lt;code>&quot;java.lang.*&quot;&lt;/code>, or the package in which the compilation unit
* is defined, are not treated as special cases. If they are specified, they are
* included in the result.
* &lt;p>
* Note: This API element is only needed for dealing with Java code that uses
* new language features of J2SE 5.0.
* &lt;/p>
*
* @param name the name of the import declaration to add as defined by JLS2 7.5. (For example: &lt;code>&quot;java.io.File&quot;&lt;/code> or
* &lt;code>&quot;java.awt.*&quot;&lt;/code>)
* @param sibling the existing element which the import declaration will be inserted immediately before (if
* &lt;code> null &lt;/code>, then this import will be inserted as the last import declaration.
* @param flags {@link Flags#AccStatic} for static imports, or
* {@link Flags#AccDefault} for regular imports; other modifier flags
* are ignored
* @param monitor the progress monitor to notify
* @return the newly inserted import declaration (or the previously existing one in case attempting to create a duplicate)
*
* @throws JavaModelException if the element could not be created. Reasons include:
* &lt;ul>
* &lt;li> This Java element does not exist or the specified sibling does not exist (ELEMENT_DOES_NOT_EXIST)&lt;/li>
* &lt;li> A {@link org.eclipse.core.runtime.CoreException} occurred while updating an underlying resource
* &lt;li> The specified sibling is not a child of this compilation unit (INVALID_SIBLING)
* &lt;li> The name is not a valid import name (INVALID_NAME)
* &lt;/ul>
* @see Flags
* @since 3.0
</body>
</ownedComment>
<ownedParameter xmi:id="_85X9smEMEeCdEc4VzBeWeQ" type="_kNjkMGEMEeCdEc4VzBeWeQ" direction="return"/>
<ownedParameter xmi:id="_85X9s2EMEeCdEc4VzBeWeQ" name="name" type="_dSiS02EMEeCdEc4VzBeWeQ"/>
<ownedParameter xmi:id="_85hHoGEMEeCdEc4VzBeWeQ" name="sibling" type="_kO5A8GEMEeCdEc4VzBeWeQ"/>
<ownedParameter xmi:id="_85hHoWEMEeCdEc4VzBeWeQ" name="flags" type="_dTlbsGEMEeCdEc4VzBeWeQ"/>
<ownedParameter xmi:id="_85q4oGEMEeCdEc4VzBeWeQ" name="monitor" type="_jqFqwGEMEeCdEc4VzBeWeQ"/>
</ownedOperation>
<ownedOperation xmi:id="_85q4oWEMEeCdEc4VzBeWeQ" name="createPackageDeclaration">
<ownedComment xmi:id="_85q4omEMEeCdEc4VzBeWeQ">
<body>
* Creates and returns a package declaration in this compilation unit
* with the given package name.
*
* &lt;p>If the compilation unit already includes the specified package declaration,
* it is not generated (it does not generate duplicates).
*
* @param name the name of the package declaration to add as defined by JLS2 7.4. (For example, &lt;code>&quot;java.lang&quot;&lt;/code>)
* @param monitor the progress monitor to notify
* @return the newly inserted package declaration (or the previously existing one in case attempting to create a duplicate)
*
* @throws JavaModelException if the element could not be created. Reasons include:
* &lt;ul>
* &lt;li>This Java element does not exist (ELEMENT_DOES_NOT_EXIST)&lt;/li>
* &lt;li> A {@link org.eclipse.core.runtime.CoreException} occurred while updating an underlying resource
* &lt;li> The name is not a valid package name (INVALID_NAME)
* &lt;/ul>
</body>
</ownedComment>
<ownedParameter xmi:id="_850poGEMEeCdEc4VzBeWeQ" type="_kqKnsGEMEeCdEc4VzBeWeQ" direction="return"/>
<ownedParameter xmi:id="_850poWEMEeCdEc4VzBeWeQ" name="name" type="_dSiS02EMEeCdEc4VzBeWeQ"/>
<ownedParameter xmi:id="_859zkGEMEeCdEc4VzBeWeQ" name="monitor" type="_jqFqwGEMEeCdEc4VzBeWeQ"/>
</ownedOperation>
<ownedOperation xmi:id="_859zkWEMEeCdEc4VzBeWeQ" name="createType">
<ownedComment xmi:id="_859zkmEMEeCdEc4VzBeWeQ">
<body>
* Creates and returns a type in this compilation unit with the
* given contents. If this compilation unit does not exist, one
* will be created with an appropriate package declaration.
* &lt;p>
* Optionally, the new type can be positioned before the specified
* sibling. If &lt;code>sibling&lt;/code> is &lt;code>null&lt;/code>, the type will be appended
* to the end of this compilation unit.
*
* &lt;p>It is possible that a type with the same name already exists in this compilation unit.
* The value of the &lt;code>force&lt;/code> parameter affects the resolution of
* such a conflict:&lt;ul>
* &lt;li> &lt;code>true&lt;/code> - in this case the type is created with the new contents&lt;/li>
* &lt;li> &lt;code>false&lt;/code> - in this case a {@link JavaModelException} is thrown&lt;/li>
* &lt;/ul>
*
* @param contents the source contents of the type declaration to add.
* @param sibling the existing element which the type will be inserted immediately before (if
* &lt;code>null&lt;/code>, then this type will be inserted as the last type declaration.
* @param force a &lt;code>boolean&lt;/code> flag indicating how to deal with duplicates
* @param monitor the progress monitor to notify
* @return the newly inserted type
*
* @throws JavaModelException if the element could not be created. Reasons include:
* &lt;ul>
* &lt;li>The specified sibling element does not exist (ELEMENT_DOES_NOT_EXIST)&lt;/li>
* &lt;li> A {@link org.eclipse.core.runtime.CoreException} occurred while updating an underlying resource
* &lt;li> The specified sibling is not a child of this compilation unit (INVALID_SIBLING)
* &lt;li> The contents could not be recognized as a type declaration (INVALID_CONTENTS)
* &lt;li> There was a naming collision with an existing type (NAME_COLLISION)
* &lt;/ul>
</body>
</ownedComment>
<ownedParameter xmi:id="_859zk2EMEeCdEc4VzBeWeQ" type="_kvE84GEMEeCdEc4VzBeWeQ" direction="return"/>
<ownedParameter xmi:id="_86HkkGEMEeCdEc4VzBeWeQ" name="contents" type="_dSiS02EMEeCdEc4VzBeWeQ"/>
<ownedParameter xmi:id="_86HkkWEMEeCdEc4VzBeWeQ" name="sibling" type="_kO5A8GEMEeCdEc4VzBeWeQ"/>
<ownedParameter xmi:id="_86RVkGEMEeCdEc4VzBeWeQ" name="force" type="_dVOadGEMEeCdEc4VzBeWeQ"/>
<ownedParameter xmi:id="_86RVkWEMEeCdEc4VzBeWeQ" name="monitor" type="_jqFqwGEMEeCdEc4VzBeWeQ"/>
</ownedOperation>
<ownedOperation xmi:id="_86afgGEMEeCdEc4VzBeWeQ" name="discardWorkingCopy">
<ownedComment xmi:id="_86afgWEMEeCdEc4VzBeWeQ">
<body>
* Changes this compilation unit in working copy mode back to its original mode.
* &lt;p>
* This has no effect if this compilation unit was not in working copy mode.
* &lt;/p>
* &lt;p>
* If {@link #becomeWorkingCopy(IProgressMonitor)} method was called several
* times on this compilation unit, {@link #discardWorkingCopy()} must be called
* as many times before it switches back to the original mode. Same as
* for method {@link #getWorkingCopy(IProgressMonitor)}.
* &lt;/p>
*
* @throws JavaModelException if this working copy could not return in its original mode.
* @see #becomeWorkingCopy(IProblemRequestor, IProgressMonitor)
* @since 3.0
</body>
</ownedComment>
</ownedOperation>
<ownedOperation xmi:id="_86afgmEMEeCdEc4VzBeWeQ" name="findElements">
<ownedComment xmi:id="_86afg2EMEeCdEc4VzBeWeQ">
<body>
* Finds the elements in this compilation unit that correspond to
* the given element.
* An element A corresponds to an element B if:
* &lt;ul>
* &lt;li>A has the same element name as B.
* &lt;li>If A is a method, A must have the same number of arguments as
* B and the simple names of the argument types must be equals.
* &lt;li>The parent of A corresponds to the parent of B recursively up to
* their respective compilation units.
* &lt;li>A exists.
* &lt;/ul>
* Returns &lt;code>null&lt;/code> if no such java elements can be found
* or if the given element is not included in a compilation unit.
*
* @param element the given element
* @return the found elements in this compilation unit that correspond to the given element
* @since 3.0
</body>
</ownedComment>
<ownedParameter xmi:id="_86afhGEMEeCdEc4VzBeWeQ" type="_kO5A8GEMEeCdEc4VzBeWeQ" direction="return">
<upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_86kQgWEMEeCdEc4VzBeWeQ" value="*"/>
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_86kQgGEMEeCdEc4VzBeWeQ"/>
</ownedParameter>
<ownedParameter xmi:id="_86tacGEMEeCdEc4VzBeWeQ" name="element" type="_kO5A8GEMEeCdEc4VzBeWeQ"/>
</ownedOperation>
<ownedOperation xmi:id="_86tacWEMEeCdEc4VzBeWeQ" name="findWorkingCopy">
<ownedComment xmi:id="_86tacmEMEeCdEc4VzBeWeQ">
<body>
* Finds the working copy for this compilation unit, given a {@link WorkingCopyOwner}.
* If no working copy has been created for this compilation unit associated with this
* working copy owner, returns &lt;code>null&lt;/code>.
* &lt;p>
* Users of this method must not destroy the resulting working copy.
*
* @param owner the given {@link WorkingCopyOwner}
* @return the found working copy for this compilation unit, &lt;code>null&lt;/code> if none
* @see WorkingCopyOwner
* @since 3.0
</body>
</ownedComment>
<ownedParameter xmi:id="_86tac2EMEeCdEc4VzBeWeQ" type="_j-plgGEMEeCdEc4VzBeWeQ" direction="return"/>
<ownedParameter xmi:id="_863LcGEMEeCdEc4VzBeWeQ" name="owner" type="_nI23sGEMEeCdEc4VzBeWeQ"/>
</ownedOperation>
<ownedOperation xmi:id="_87A8cGEMEeCdEc4VzBeWeQ" name="getAllTypes">
<ownedComment xmi:id="_87A8cWEMEeCdEc4VzBeWeQ">
<body>
* Returns all types declared in this compilation unit in the order
* in which they appear in the source.
* This includes all top-level types and nested member types.
* It does NOT include local types (types defined in methods).
*
* @return the array of top-level and member types defined in a compilation unit, in declaration order.
* @throws JavaModelException if this element does not exist or if an
* exception occurs while accessing its corresponding resource
</body>
</ownedComment>
<ownedParameter xmi:id="_87A8cmEMEeCdEc4VzBeWeQ" type="_kvE84GEMEeCdEc4VzBeWeQ" direction="return">
<upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_87KGYWEMEeCdEc4VzBeWeQ" value="*"/>
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_87KGYGEMEeCdEc4VzBeWeQ"/>
</ownedParameter>
</ownedOperation>
<ownedOperation xmi:id="_87KGYmEMEeCdEc4VzBeWeQ" name="getImport">
<ownedComment xmi:id="_87KGY2EMEeCdEc4VzBeWeQ">
<body>
* Returns the first import declaration in this compilation unit with the given name.
* This is a handle-only method. The import declaration may or may not exist. This
* is a convenience method - imports can also be accessed from a compilation unit's
* import container.
*
* @param name the name of the import to find as defined by JLS2 7.5. (For example: &lt;code>&quot;java.io.File&quot;&lt;/code>
* or &lt;code>&quot;java.awt.*&quot;&lt;/code>)
* @return a handle onto the corresponding import declaration. The import declaration may or may not exist.
</body>
</ownedComment>
<ownedParameter xmi:id="_87T3YGEMEeCdEc4VzBeWeQ" type="_kNjkMGEMEeCdEc4VzBeWeQ" direction="return"/>
<ownedParameter xmi:id="_87T3YWEMEeCdEc4VzBeWeQ" name="name" type="_dSiS02EMEeCdEc4VzBeWeQ"/>
</ownedOperation>
<ownedOperation xmi:id="_87doYGEMEeCdEc4VzBeWeQ" name="getImportContainer">
<ownedComment xmi:id="_87doYWEMEeCdEc4VzBeWeQ">
<body>
* Returns the import container for this compilation unit.
* This is a handle-only method. The import container may or
* may not exist. The import container can used to access the
* imports.
* @return a handle onto the corresponding import container. The
* import contain may or may not exist.
</body>
</ownedComment>
<ownedParameter xmi:id="_87doYmEMEeCdEc4VzBeWeQ" type="_kNZzMGEMEeCdEc4VzBeWeQ" direction="return"/>
</ownedOperation>
<ownedOperation xmi:id="_87doY2EMEeCdEc4VzBeWeQ" name="getImports">
<ownedComment xmi:id="_87doZGEMEeCdEc4VzBeWeQ">
<body>
* Returns the import declarations in this compilation unit
* in the order in which they appear in the source. This is
* a convenience method - import declarations can also be
* accessed from a compilation unit's import container.
*
* @return the import declarations in this compilation unit
* @throws JavaModelException if this element does not exist or if an
* exception occurs while accessing its corresponding resource
</body>
</ownedComment>
<ownedParameter xmi:id="_87myUGEMEeCdEc4VzBeWeQ" type="_kNjkMGEMEeCdEc4VzBeWeQ" direction="return">
<upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_87wjUGEMEeCdEc4VzBeWeQ" value="*"/>
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_87myUWEMEeCdEc4VzBeWeQ"/>
</ownedParameter>
</ownedOperation>
<ownedOperation xmi:id="_87wjUWEMEeCdEc4VzBeWeQ" name="getPrimary">
<ownedComment xmi:id="_87wjUmEMEeCdEc4VzBeWeQ">
<body>
* Returns the primary compilation unit (whose owner is the primary owner)
* this working copy was created from, or this compilation unit if this a primary
* compilation unit.
* &lt;p>
* Note that the returned primary compilation unit can be in working copy mode.
* &lt;/p>
*
* @return the primary compilation unit this working copy was created from,
* or this compilation unit if it is primary
* @since 3.0
</body>
</ownedComment>
<ownedParameter xmi:id="_87wjU2EMEeCdEc4VzBeWeQ" type="_j-plgGEMEeCdEc4VzBeWeQ" direction="return"/>
</ownedOperation>
<ownedOperation xmi:id="_875tQGEMEeCdEc4VzBeWeQ" name="getOwner">
<ownedComment xmi:id="_875tQWEMEeCdEc4VzBeWeQ">
<body>
* Returns &lt;tt>null&lt;/tt> if this &lt;code>ICompilationUnit&lt;/code> is the primary
* working copy, or this &lt;code>ICompilationUnit&lt;/code> is not a working copy,
* otherwise the &lt;code>WorkingCopyOwner&lt;/code>
*
* @return &lt;tt>null&lt;/tt> if this &lt;code>ICompilationUnit&lt;/code> is the primary
* working copy, or this &lt;code>ICompilationUnit&lt;/code> is not a working copy,
* otherwise the &lt;code>WorkingCopyOwner&lt;/code>
* @since 3.0
</body>
</ownedComment>
<ownedParameter xmi:id="_875tQmEMEeCdEc4VzBeWeQ" type="_nI23sGEMEeCdEc4VzBeWeQ" direction="return"/>
</ownedOperation>
<ownedOperation xmi:id="_88DeQGEMEeCdEc4VzBeWeQ" name="getPackageDeclaration">
<ownedComment xmi:id="_88DeQWEMEeCdEc4VzBeWeQ">
<body>
* Returns the first package declaration in this compilation unit with the given package name
* (there normally is at most one package declaration).
* This is a handle-only method. The package declaration may or may not exist.
*
* @param name the name of the package declaration as defined by JLS2 7.4. (For example, &lt;code>&quot;java.lang&quot;&lt;/code>)
* @return the first package declaration in this compilation unit with the given package name
</body>
</ownedComment>
<ownedParameter xmi:id="_88DeQmEMEeCdEc4VzBeWeQ" type="_kqKnsGEMEeCdEc4VzBeWeQ" direction="return"/>
<ownedParameter xmi:id="_88DeQ2EMEeCdEc4VzBeWeQ" name="name" type="_dSiS02EMEeCdEc4VzBeWeQ"/>
</ownedOperation>
<ownedOperation xmi:id="_88NPQGEMEeCdEc4VzBeWeQ" name="getPackageDeclarations">
<ownedComment xmi:id="_88NPQWEMEeCdEc4VzBeWeQ">
<body>
* Returns the package declarations in this compilation unit
* in the order in which they appear in the source.
* There normally is at most one package declaration.
*
* @return an array of package declaration (normally of size one)
*
* @throws JavaModelException if this element does not exist or if an
* exception occurs while accessing its corresponding resource
</body>
</ownedComment>
<ownedParameter xmi:id="_88NPQmEMEeCdEc4VzBeWeQ" type="_kqKnsGEMEeCdEc4VzBeWeQ" direction="return">
<upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_88WZMGEMEeCdEc4VzBeWeQ" value="*"/>
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_88NPQ2EMEeCdEc4VzBeWeQ"/>
</ownedParameter>
</ownedOperation>
<ownedOperation xmi:id="_88WZMWEMEeCdEc4VzBeWeQ" name="getType">
<ownedComment xmi:id="_88WZMmEMEeCdEc4VzBeWeQ">
<body>
* Returns the top-level type declared in this compilation unit with the given simple type name.
* The type name has to be a valid compilation unit name.
* This is a handle-only method. The type may or may not exist.
*
* @param name the simple name of the requested type in the compilation unit
* @return a handle onto the corresponding type. The type may or may not exist.
* @see JavaConventions#validateCompilationUnitName(String name, String sourceLevel, String complianceLevel)
</body>
</ownedComment>
<ownedParameter xmi:id="_88gKMGEMEeCdEc4VzBeWeQ" type="_kvE84GEMEeCdEc4VzBeWeQ" direction="return"/>
<ownedParameter xmi:id="_88p7MGEMEeCdEc4VzBeWeQ" name="name" type="_dSiS02EMEeCdEc4VzBeWeQ"/>
</ownedOperation>
<ownedOperation xmi:id="_88p7MWEMEeCdEc4VzBeWeQ" name="getTypes">
<ownedComment xmi:id="_88p7MmEMEeCdEc4VzBeWeQ">
<body>
* Returns the top-level types declared in this compilation unit
* in the order in which they appear in the source.
*
* @return the top-level types declared in this compilation unit
* @throws JavaModelException if this element does not exist or if an
* exception occurs while accessing its corresponding resource
</body>
</ownedComment>
<ownedParameter xmi:id="_88zFIGEMEeCdEc4VzBeWeQ" type="_kvE84GEMEeCdEc4VzBeWeQ" direction="return">
<upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_8882IGEMEeCdEc4VzBeWeQ" value="*"/>
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_88zFIWEMEeCdEc4VzBeWeQ"/>
</ownedParameter>
</ownedOperation>
<ownedOperation xmi:id="_8882IWEMEeCdEc4VzBeWeQ" name="getWorkingCopy">
<ownedComment xmi:id="_8882ImEMEeCdEc4VzBeWeQ">
<body>
* Returns a new working copy of this compilation unit if it is a primary compilation unit,
* or this compilation unit if it is already a non-primary working copy.
* &lt;p>
* Note: if intending to share a working copy amongst several clients, then
* {@link #getWorkingCopy(WorkingCopyOwner, IProblemRequestor, IProgressMonitor)}
* should be used instead.
* &lt;/p>&lt;p>
* When the working copy instance is created, an ADDED IJavaElementDelta is
* reported on this working copy.
* &lt;/p>&lt;p>
* Once done with the working copy, users of this method must discard it using
* {@link #discardWorkingCopy()}.
* &lt;/p>&lt;p>
* Since 2.1, a working copy can be created on a not-yet existing compilation
* unit. In particular, such a working copy can then be committed in order to create
* the corresponding compilation unit.
* &lt;/p>
* @param monitor a progress monitor used to report progress while opening this compilation unit
* or &lt;code>null&lt;/code> if no progress should be reported
* @throws JavaModelException if the contents of this element can
* not be determined.
* @return a new working copy of this element if this element is not
* a working copy, or this element if this element is already a working copy
* @since 3.0
</body>
</ownedComment>
<ownedParameter xmi:id="_8882I2EMEeCdEc4VzBeWeQ" type="_j-plgGEMEeCdEc4VzBeWeQ" direction="return"/>
<ownedParameter xmi:id="_89GAEGEMEeCdEc4VzBeWeQ" name="monitor" type="_jqFqwGEMEeCdEc4VzBeWeQ"/>
</ownedOperation>
<ownedOperation xmi:id="_89GAEWEMEeCdEc4VzBeWeQ" name="getWorkingCopy">
<ownedComment xmi:id="_89GAEmEMEeCdEc4VzBeWeQ">
<body>
* Returns a shared working copy on this compilation unit using the given working copy owner to create
* the buffer, or this compilation unit if it is already a non-primary working copy.
* This API can only answer an already existing working copy if it is based on the same
* original compilation unit AND was using the same working copy owner (that is, as defined by {@link Object#equals}).
* &lt;p>
* The life time of a shared working copy is as follows:
* &lt;ul>
* &lt;li>The first call to {@link #getWorkingCopy(WorkingCopyOwner, IProblemRequestor, IProgressMonitor)}
* creates a new working copy for this element&lt;/li>
* &lt;li>Subsequent calls increment an internal counter.&lt;/li>
* &lt;li>A call to {@link #discardWorkingCopy()} decrements the internal counter.&lt;/li>
* &lt;li>When this counter is 0, the working copy is discarded.
* &lt;/ul>
* So users of this method must discard exactly once the working copy.
* &lt;p>
* Note that the working copy owner will be used for the life time of this working copy, that is if the
* working copy is closed then reopened, this owner will be used.
* The buffer will be automatically initialized with the original's compilation unit content
* upon creation.
* &lt;p>
* When the shared working copy instance is created, an ADDED IJavaElementDelta is reported on this
* working copy.
* &lt;/p>&lt;p>
* Since 2.1, a working copy can be created on a not-yet existing compilation
* unit. In particular, such a working copy can then be committed in order to create
* the corresponding compilation unit.
* &lt;/p>
* @param owner the working copy owner that creates a buffer that is used to get the content
* of the working copy
* @param problemRequestor a requestor which will get notified of problems detected during
* reconciling as they are discovered. The requestor can be set to &lt;code>null&lt;/code> indicating
* that the client is not interested in problems.
* @param monitor a progress monitor used to report progress while opening this compilation unit
* or &lt;code>null&lt;/code> if no progress should be reported
* @throws JavaModelException if the contents of this element can
* not be determined.
* @return a new working copy of this element using the given factory to create
* the buffer, or this element if this element is already a working copy
* @since 3.0
* @deprecated Use {@link ITypeRoot#getWorkingCopy(WorkingCopyOwner, IProgressMonitor)} instead.
* Note that if this deprecated method is used, problems will be reported on the passed problem requester
* as well as on the problem requestor returned by the working copy owner (if not null).
</body>
</ownedComment>
<ownedParameter xmi:id="_89PxEGEMEeCdEc4VzBeWeQ" type="_j-plgGEMEeCdEc4VzBeWeQ" direction="return"/>
<ownedParameter xmi:id="_89PxEWEMEeCdEc4VzBeWeQ" name="owner" type="_nI23sGEMEeCdEc4VzBeWeQ"/>
<ownedParameter xmi:id="_89ZiEGEMEeCdEc4VzBeWeQ" name="problemRequestor" type="_krNJgGEMEeCdEc4VzBeWeQ"/>
<ownedParameter xmi:id="_89ZiEWEMEeCdEc4VzBeWeQ" name="monitor" type="_jqFqwGEMEeCdEc4VzBeWeQ"/>
</ownedOperation>
<ownedOperation xmi:id="_89isAGEMEeCdEc4VzBeWeQ" name="hasResourceChanged" visibility="public">
<ownedComment xmi:id="_89isAWEMEeCdEc4VzBeWeQ">
<body>
* Returns whether the resource of this working copy has changed since the
* inception of this working copy.
* Returns &lt;code>false&lt;/code> if this compilation unit is not in working copy mode.
*
* @return whether the resource has changed
* @since 3.0
</body>
</ownedComment>
<ownedParameter xmi:id="_89isAmEMEeCdEc4VzBeWeQ" type="_dVOadGEMEeCdEc4VzBeWeQ" direction="return"/>
</ownedOperation>
<ownedOperation xmi:id="_89sdAGEMEeCdEc4VzBeWeQ" name="isWorkingCopy">
<ownedComment xmi:id="_89sdAWEMEeCdEc4VzBeWeQ">
<body>
* Returns whether this element is a working copy.
*
* @return true if this element is a working copy, false otherwise
* @since 3.0
</body>
</ownedComment>
<ownedParameter xmi:id="_89sdAmEMEeCdEc4VzBeWeQ" type="_dVOadGEMEeCdEc4VzBeWeQ" direction="return"/>
</ownedOperation>
<ownedOperation xmi:id="_89sdA2EMEeCdEc4VzBeWeQ" name="reconcile">
<ownedComment xmi:id="_89sdBGEMEeCdEc4VzBeWeQ">
<body>
* Reconciles the contents of this working copy, sends out a Java delta
* notification indicating the nature of the change of the working copy since
* the last time it was either reconciled or made consistent
* ({@link IOpenable#makeConsistent(IProgressMonitor)}), and returns a
* compilation unit AST if requested.
* &lt;p>
* It performs the reconciliation by locally caching the contents of
* the working copy, updating the contents, then creating a delta
* over the cached contents and the new contents, and finally firing
* this delta.
* &lt;p>
* The boolean argument allows to force problem detection even if the
* working copy is already consistent.
* &lt;/p>
* &lt;p>
* This functionality allows to specify a working copy owner which is used
* during problem detection. All references contained in the working copy are
* resolved against other units; for which corresponding owned working copies
* are going to take precedence over their original compilation units. If
* &lt;code>null&lt;/code> is passed in, then the primary working copy owner is used.
* &lt;/p>
* &lt;p>
* Compilation problems found in the new contents are notified through the
* {@link IProblemRequestor} interface which was passed at
* creation, and no longer as transient markers.
* &lt;/p>
* &lt;p>
* Note: Since 3.0, added/removed/changed inner types generate change deltas.
* &lt;/p>
* &lt;p>
* If requested, a DOM AST representing the compilation unit is returned.
* Its bindings are computed only if the problem requestor is active.
* This method returns &lt;code>null&lt;/code> if the creation of the DOM AST was not requested,
* or if the requested level of AST API is not supported, or if the working copy was
* already consistent.
* &lt;/p>
*
* &lt;p>
* This method doesn't perform statements recovery. To recover statements with syntax
* errors, {@link #reconcile(int, boolean, boolean, WorkingCopyOwner, IProgressMonitor)} must be use.
* &lt;/p>
*
* @param astLevel either {@link #NO_AST} if no AST is wanted,
* or the {@linkplain AST#newAST(int) AST API level} of the AST if one is wanted
* @param forceProblemDetection boolean indicating whether problem should be
* recomputed even if the source hasn't changed
* @param owner the owner of working copies that take precedence over the
* original compilation units, or &lt;code>null&lt;/code> if the primary working
* copy owner should be used
* @param monitor a progress monitor
* @return the compilation unit AST or &lt;code>null&lt;/code> if not requested,
* or if the requested level of AST API is not supported,
* or if the working copy was consistent
* @throws JavaModelException if the contents of the original element
* cannot be accessed. Reasons include:
* &lt;ul>
* &lt;li> The original Java element does not exist (ELEMENT_DOES_NOT_EXIST)&lt;/li>
* &lt;/ul>
* @since 3.0
</body>
</ownedComment>
<ownedParameter xmi:id="_892OAGEMEeCdEc4VzBeWeQ" type="_kUjkE2EMEeCdEc4VzBeWeQ" direction="return"/>
<ownedParameter xmi:id="_892OAWEMEeCdEc4VzBeWeQ" name="astLevel" type="_dTlbsGEMEeCdEc4VzBeWeQ"/>
<ownedParameter xmi:id="_89_X8GEMEeCdEc4VzBeWeQ" name="forceProblemDetection" type="_dVOadGEMEeCdEc4VzBeWeQ"/>
<ownedParameter xmi:id="_89_X8WEMEeCdEc4VzBeWeQ" name="owner" type="_nI23sGEMEeCdEc4VzBeWeQ"/>
<ownedParameter xmi:id="_8-JI8GEMEeCdEc4VzBeWeQ" name="monitor" type="_jqFqwGEMEeCdEc4VzBeWeQ"/>
</ownedOperation>
<ownedOperation xmi:id="_8-JI8WEMEeCdEc4VzBeWeQ" name="reconcile">
<ownedComment xmi:id="_8-JI8mEMEeCdEc4VzBeWeQ">
<body>
* Reconciles the contents of this working copy, sends out a Java delta
* notification indicating the nature of the change of the working copy since
* the last time it was either reconciled or made consistent
* ({@link IOpenable#makeConsistent(IProgressMonitor)}), and returns a
* compilation unit AST if requested.
* &lt;p>
* It performs the reconciliation by locally caching the contents of
* the working copy, updating the contents, then creating a delta
* over the cached contents and the new contents, and finally firing
* this delta.
* &lt;p>
* The boolean argument allows to force problem detection even if the
* working copy is already consistent.
* &lt;/p>
* &lt;p>
* This functionality allows to specify a working copy owner which is used
* during problem detection. All references contained in the working copy are
* resolved against other units; for which corresponding owned working copies
* are going to take precedence over their original compilation units. If
* &lt;code>null&lt;/code> is passed in, then the primary working copy owner is used.
* &lt;/p>
* &lt;p>
* Compilation problems found in the new contents are notified through the
* {@link IProblemRequestor} interface which was passed at
* creation, and no longer as transient markers.
* &lt;/p>
* &lt;p>
* Note: Since 3.0, added/removed/changed inner types generate change deltas.
* &lt;/p>
* &lt;p>
* If requested, a DOM AST representing the compilation unit is returned.
* Its bindings are computed only if the problem requestor is active.
* This method returns &lt;code>null&lt;/code> if the creation of the DOM AST was not requested,
* or if the requested level of AST API is not supported, or if the working copy was
* already consistent.
* &lt;/p>
*
* &lt;p>
* If statements recovery is enabled then this method tries to rebuild statements
* with syntax error. Otherwise statements with syntax error won't be present in
* the returning DOM AST.
* &lt;/p>
*
* @param astLevel either {@link #NO_AST} if no AST is wanted,
* or the {@linkplain AST#newAST(int) AST API level} of the AST if one is wanted
* @param forceProblemDetection boolean indicating whether problem should be
* recomputed even if the source hasn't changed
* @param enableStatementsRecovery if &lt;code>true&lt;/code> statements recovery is enabled.
* @param owner the owner of working copies that take precedence over the
* original compilation units, or &lt;code>null&lt;/code> if the primary working
* copy owner should be used
* @param monitor a progress monitor
* @return the compilation unit AST or &lt;code>null&lt;/code> if not requested,
* or if the requested level of AST API is not supported,
* or if the working copy was consistent
* @throws JavaModelException if the contents of the original element
* cannot be accessed. Reasons include:
* &lt;ul>
* &lt;li> The original Java element does not exist (ELEMENT_DOES_NOT_EXIST)&lt;/li>
* &lt;/ul>
* @since 3.2
</body>
</ownedComment>
<ownedParameter xmi:id="_8-JI82EMEeCdEc4VzBeWeQ" type="_kUjkE2EMEeCdEc4VzBeWeQ" direction="return"/>
<ownedParameter xmi:id="_8-SS4GEMEeCdEc4VzBeWeQ" name="astLevel" type="_dTlbsGEMEeCdEc4VzBeWeQ"/>
<ownedParameter xmi:id="_8-cD4GEMEeCdEc4VzBeWeQ" name="forceProblemDetection" type="_dVOadGEMEeCdEc4VzBeWeQ"/>
<ownedParameter xmi:id="_8-cD4WEMEeCdEc4VzBeWeQ" name="enableStatementsRecovery" type="_dVOadGEMEeCdEc4VzBeWeQ"/>
<ownedParameter xmi:id="_8-l04GEMEeCdEc4VzBeWeQ" name="owner" type="_nI23sGEMEeCdEc4VzBeWeQ"/>
<ownedParameter xmi:id="_8-l04WEMEeCdEc4VzBeWeQ" name="monitor" type="_jqFqwGEMEeCdEc4VzBeWeQ"/>
</ownedOperation>
<ownedOperation xmi:id="_8-u-0GEMEeCdEc4VzBeWeQ" name="reconcile">
<ownedComment xmi:id="_8-u-0WEMEeCdEc4VzBeWeQ">
<body>
* Reconciles the contents of this working copy, sends out a Java delta
* notification indicating the nature of the change of the working copy since
* the last time it was either reconciled or made consistent
* ({@link IOpenable#makeConsistent(IProgressMonitor)}), and returns a
* compilation unit AST if requested.
*
* &lt;p>
* If the problem detection is forced by passing the {@link #FORCE_PROBLEM_DETECTION} bit in the given reconcile flag,
* problem detection is run even if the working copy is already consistent.
* &lt;/p>
*
* &lt;p>
* It performs the reconciliation by locally caching the contents of
* the working copy, updating the contents, then creating a delta
* over the cached contents and the new contents, and finally firing
* this delta.&lt;/p>
*
* &lt;p>
* This functionality allows to specify a working copy owner which is used
* during problem detection. All references contained in the working copy are
* resolved against other units; for which corresponding owned working copies
* are going to take precedence over their original compilation units. If
* &lt;code>null&lt;/code> is passed in, then the primary working copy owner is used.
* &lt;/p>
* &lt;p>
* Compilation problems found in the new contents are notified through the
* {@link IProblemRequestor} interface which was passed at
* creation, and no longer as transient markers.
* &lt;/p>
* &lt;p>
* Note: Since 3.0, added/removed/changed inner types generate change deltas.
* &lt;/p>
* &lt;p>
* If requested, a DOM AST representing the compilation unit is returned.
* Its bindings are computed only if the problem requestor is active.
* This method returns &lt;code>null&lt;/code> if the creation of the DOM AST was not requested,
* or if the requested level of AST API is not supported, or if the working copy was
* already consistent.
* &lt;/p>
*
* &lt;p>
* If statements recovery is enabled by passing the {@link #ENABLE_STATEMENTS_RECOVERY} bit in the given reconcile flag
* then this method tries to rebuild statements with syntax error. Otherwise statements with syntax error won't be
* present in the returning DOM AST.&lt;/p>
* &lt;p>
* If bindings recovery is enabled by passing the {@link #ENABLE_BINDINGS_RECOVERY} bit in the given reconcile flag
* then this method tries to resolve bindings even if the type resolution contains errors.&lt;/p>
* &lt;p>
* The given reconcile flags is a bit-mask of the different constants ({@link #ENABLE_BINDINGS_RECOVERY},
* {@link #ENABLE_STATEMENTS_RECOVERY}, {@link #FORCE_PROBLEM_DETECTION}). Unspecified values are left for future use.
* &lt;/p>
*
* @param astLevel either {@link #NO_AST} if no AST is wanted,
* or the {@linkplain AST#newAST(int) AST API level} of the AST if one is wanted
* @param reconcileFlags the given reconcile flags
* @param owner the owner of working copies that take precedence over the
* original compilation units, or &lt;code>null&lt;/code> if the primary working
* copy owner should be used
* @param monitor a progress monitor
* @return the compilation unit AST or &lt;code>null&lt;/code> if not requested,
* or if the requested level of AST API is not supported,
* or if the working copy was consistent
* @throws JavaModelException if the contents of the original element
* cannot be accessed. Reasons include:
* &lt;ul>
* &lt;li> The original Java element does not exist (ELEMENT_DOES_NOT_EXIST)&lt;/li>
* &lt;/ul>
* @see #FORCE_PROBLEM_DETECTION
* @see #ENABLE_BINDINGS_RECOVERY
* @see #ENABLE_STATEMENTS_RECOVERY
* @since 3.3
</body>
</ownedComment>
<ownedParameter xmi:id="_8-u-0mEMEeCdEc4VzBeWeQ" type="_kUjkE2EMEeCdEc4VzBeWeQ" direction="return"/>
<ownedParameter xmi:id="_8-4v0GEMEeCdEc4VzBeWeQ" name="astLevel" type="_dTlbsGEMEeCdEc4VzBeWeQ"/>
<ownedParameter xmi:id="_8_Cg0GEMEeCdEc4VzBeWeQ" name="reconcileFlags" type="_dTlbsGEMEeCdEc4VzBeWeQ"/>
<ownedParameter xmi:id="_8_Cg0WEMEeCdEc4VzBeWeQ" name="owner" type="_nI23sGEMEeCdEc4VzBeWeQ"/>
<ownedParameter xmi:id="_8_LqwGEMEeCdEc4VzBeWeQ" name="monitor" type="_jqFqwGEMEeCdEc4VzBeWeQ"/>
</ownedOperation>
<ownedOperation xmi:id="_8_LqwWEMEeCdEc4VzBeWeQ" name="restore">
<ownedComment xmi:id="_8_LqwmEMEeCdEc4VzBeWeQ">
<body>
* Restores the contents of this working copy to the current contents of
* this working copy's original element. Has no effect if this element
* is not a working copy.
*
* &lt;p>Note: This is the inverse of committing the content of the
* working copy to the original element with {@link #commitWorkingCopy(boolean, IProgressMonitor)}.
*
* @throws JavaModelException if the contents of the original element
* cannot be accessed. Reasons include:
* &lt;ul>
* &lt;li> The original Java element does not exist (ELEMENT_DOES_NOT_EXIST)&lt;/li>
* &lt;/ul>
* @since 3.0
</body>
</ownedComment>
</ownedOperation>
</packagedElement>
<packagedElement xmi:type="uml:Interface" xmi:id="_j_i9YGEMEeCdEc4VzBeWeQ" name="ICompletionRequestor">
<ownedComment xmi:id="_j_i9YWEMEeCdEc4VzBeWeQ">
<body>
* A completion requestor accepts results as they are computed and is aware
* of source positions to complete the various different results.
* &lt;p>
* This interface may be implemented by clients.
* &lt;/p>
*
* @see ICodeAssist
* @since 2.0
* @deprecated Use {@link CompletionRequestor} instead.
</body>
</ownedComment>
<ownedOperation xmi:id="_j_i9YmEMEeCdEc4VzBeWeQ" name="acceptAnonymousType">
<ownedComment xmi:id="_j_i9Y2EMEeCdEc4VzBeWeQ">
<body>
* Code assist notification of an anonymous type declaration completion.
* @param superTypePackageName Name of the package that contains the super type of this
* new anonymous type declaration.
* @param superTypeName Name of the super type of this new anonymous type declaration.
* @param parameterPackageNames Names of the packages in which the parameter types are declared.
* Should contain as many elements as parameterTypeNames.
* @param parameterTypeNames Names of the parameter types.
* Should contain as many elements as parameterPackageNames.
* @param parameterNames Names of the parameters.
* Should contain as many elements as parameterPackageNames.
* @param completionName The completion for the anonymous type declaration.
* Can include zero, one or two brackets. If the closing bracket is included,
* then the cursor should be placed before it.
* @param modifiers The modifiers of the constructor.
* @param completionStart The start position of insertion of the name of this new anonymous type declaration.
* @param completionEnd The end position of insertion of the name of this new anonymous type declaration.
* @param relevance The relevance of the completion proposal
* It is a positive integer which are used for determine if this proposal is more relevant than another proposal.
* This value can only be used for compare relevance. A proposal is more relevant than another if his relevance
* value is higher.
*
* NOTE - All package and type names are presented in their readable form:
* Package names are in the form &quot;a.b.c&quot;.
* Base types are in the form &quot;int&quot; or &quot;boolean&quot;.
* Array types are in the qualified form &quot;M[]&quot; or &quot;int[]&quot;.
* Nested type names are in the qualified form &quot;A.M&quot;.
* The default package is represented by an empty array.
*
* NOTE: parameter names can be retrieved from the source model after the user selects a specific method.
*
* @deprecated Use {@link CompletionRequestor#accept(CompletionProposal)} instead.
</body>
</ownedComment>
<ownedParameter xmi:id="_j_i9ZGEMEeCdEc4VzBeWeQ" name="superTypePackageName" type="_dUn9g2EMEeCdEc4VzBeWeQ">
<upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_j_i9ZmEMEeCdEc4VzBeWeQ" value="*"/>
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_j_i9ZWEMEeCdEc4VzBeWeQ"/>
</ownedParameter>
<ownedParameter xmi:id="_j_sHUGEMEeCdEc4VzBeWeQ" name="superTypeName" type="_dUn9g2EMEeCdEc4VzBeWeQ">
<upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_j_sHUmEMEeCdEc4VzBeWeQ" value="*"/>
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_j_sHUWEMEeCdEc4VzBeWeQ"/>
</ownedParameter>
<ownedParameter xmi:id="_j_sHU2EMEeCdEc4VzBeWeQ" name="parameterPackageNames" type="_dUn9g2EMEeCdEc4VzBeWeQ">
<upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_j_sHVWEMEeCdEc4VzBeWeQ" value="*"/>
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_j_sHVGEMEeCdEc4VzBeWeQ"/>
</ownedParameter>
<ownedParameter xmi:id="_j_sHVmEMEeCdEc4VzBeWeQ" name="parameterTypeNames" type="_dUn9g2EMEeCdEc4VzBeWeQ">
<upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_j_14UWEMEeCdEc4VzBeWeQ" value="*"/>
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_j_14UGEMEeCdEc4VzBeWeQ"/>
</ownedParameter>
<ownedParameter xmi:id="_kAlfMGEMEeCdEc4VzBeWeQ" name="parameterNames" type="_dUn9g2EMEeCdEc4VzBeWeQ">
<upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_kAlfMmEMEeCdEc4VzBeWeQ" value="*"/>
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_kAlfMWEMEeCdEc4VzBeWeQ"/>
</ownedParameter>
<ownedParameter xmi:id="_kAvQMGEMEeCdEc4VzBeWeQ" name="completionName" type="_dUn9g2EMEeCdEc4VzBeWeQ">
<upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_kAvQMmEMEeCdEc4VzBeWeQ" value="*"/>
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_kAvQMWEMEeCdEc4VzBeWeQ"/>
</ownedParameter>
<ownedParameter xmi:id="_kAvQM2EMEeCdEc4VzBeWeQ" name="modifiers" type="_dTlbsGEMEeCdEc4VzBeWeQ"/>
<ownedParameter xmi:id="_kBCLIGEMEeCdEc4VzBeWeQ" name="completionStart" type="_dTlbsGEMEeCdEc4VzBeWeQ"/>
<ownedParameter xmi:id="_kBCLIWEMEeCdEc4VzBeWeQ" name="completionEnd" type="_dTlbsGEMEeCdEc4VzBeWeQ"/>
<ownedParameter xmi:id="_kBCLImEMEeCdEc4VzBeWeQ" name="relevance" type="_dTlbsGEMEeCdEc4VzBeWeQ"/>
</ownedOperation>
<ownedOperation xmi:id="_kBCLI2EMEeCdEc4VzBeWeQ" name="acceptClass">
<ownedComment xmi:id="_kBCLJGEMEeCdEc4VzBeWeQ">
<body>
* Code assist notification of a class completion.
*
* @param packageName Declaring package name of the class.
* @param className Name of the class.
* @param completionName The completion for the class. Can include ';' for imported classes.
* @param modifiers The modifiers of the class.
* @param completionStart The start position of insertion of the name of the class.
* @param completionEnd The end position of insertion of the name of the class.
* @param relevance The relevance of the completion proposal
* It is a positive integer which are used for determine if this proposal is more relevant than another proposal.
* This value can only be used for compare relevance. A proposal is more relevant than another if his relevance
* value is higher.
*
* NOTE - All package and type names are presented in their readable form:
* Package names are in the form &quot;a.b.c&quot;.
* Nested type names are in the qualified form &quot;A.M&quot;.
* The default package is represented by an empty array.
*
* @deprecated Use {@link CompletionRequestor#accept(CompletionProposal)} instead.
</body>
</ownedComment>
<ownedParameter xmi:id="_kBVGEGEMEeCdEc4VzBeWeQ" name="packageName" type="_dUn9g2EMEeCdEc4VzBeWeQ">
<upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_kBVGEmEMEeCdEc4VzBeWeQ" value="*"/>
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_kBVGEWEMEeCdEc4VzBeWeQ"/>
</ownedParameter>
<ownedParameter xmi:id="_kBVGE2EMEeCdEc4VzBeWeQ" name="className" type="_dUn9g2EMEeCdEc4VzBeWeQ">
<upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_kBVGFWEMEeCdEc4VzBeWeQ" value="*"/>
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_kBVGFGEMEeCdEc4VzBeWeQ"/>
</ownedParameter>
<ownedParameter xmi:id="_kBe3EGEMEeCdEc4VzBeWeQ" name="completionName" type="_dUn9g2EMEeCdEc4VzBeWeQ">
<upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_kBe3EmEMEeCdEc4VzBeWeQ" value="*"/>
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_kBe3EWEMEeCdEc4VzBeWeQ"/>
</ownedParameter>
<ownedParameter xmi:id="_kBe3E2EMEeCdEc4VzBeWeQ" name="modifiers" type="_dTlbsGEMEeCdEc4VzBeWeQ"/>
<ownedParameter xmi:id="_kBe3FGEMEeCdEc4VzBeWeQ" name="completionStart" type="_dTlbsGEMEeCdEc4VzBeWeQ"/>
<ownedParameter xmi:id="_kBe3FWEMEeCdEc4VzBeWeQ" name="completionEnd" type="_dTlbsGEMEeCdEc4VzBeWeQ"/>
<ownedParameter xmi:id="_kBooEGEMEeCdEc4VzBeWeQ" name="relevance" type="_dTlbsGEMEeCdEc4VzBeWeQ"/>
</ownedOperation>
<ownedOperation xmi:id="_kBooEWEMEeCdEc4VzBeWeQ" name="acceptError">
<ownedComment xmi:id="_kBooEmEMEeCdEc4VzBeWeQ">
<body>
* Code assist notification of a compilation error detected during completion.
* @param error Only problems which are categorized as non-syntax errors are notified to the
* requestor, warnings are silently ignored.
* In case an error got signalled, no other completions might be available,
* therefore the problem message should be presented to the user.
* The source positions of the problem are related to the source where it was
* detected (might be in another compilation unit, if it was indirectly requested
* during the code assist process).
* Note: the problem knows its originating file name.
*
* @deprecated Use {@link CompletionRequestor#completionFailure(IProblem)} instead.
</body>
</ownedComment>
<ownedParameter xmi:id="_kBooE2EMEeCdEc4VzBeWeQ" name="error" type="_jrk4hWEMEeCdEc4VzBeWeQ"/>
</ownedOperation>
<ownedOperation xmi:id="_kBooFGEMEeCdEc4VzBeWeQ" name="acceptField">
<ownedComment xmi:id="_kBooFWEMEeCdEc4VzBeWeQ">
<body>
* Code assist notification of a field completion.
*
* @param declaringTypePackageName Name of the package in which the type that contains this field is declared.
* @param declaringTypeName Name of the type declaring this new field.
* @param name Name of the field.
* @param typePackageName Name of the package in which the type of this field is declared.
* @param typeName Name of the type of this field.
* @param completionName The completion for the field.
* @param modifiers The modifiers of this field.
* @param completionStart The start position of insertion of the name of this field.
* @param completionEnd The end position of insertion of the name of this field.
* @param relevance The relevance of the completion proposal
* It is a positive integer which are used for determine if this proposal is more relevant than another proposal.
* This value can only be used for compare relevance. A proposal is more relevant than another if his relevance
* value is higher.
*
* NOTE - All package and type names are presented in their readable form:
* Package names are in the form &quot;a.b.c&quot;.
* Base types are in the form &quot;int&quot; or &quot;boolean&quot;.
* Array types are in the qualified form &quot;M[]&quot; or &quot;int[]&quot;.
* Nested type names are in the qualified form &quot;A.M&quot;.
* The default package is represented by an empty array.
*
* @deprecated Use {@link CompletionRequestor#accept(CompletionProposal)} instead.
</body>
</ownedComment>
<ownedParameter xmi:id="_kBooFmEMEeCdEc4VzBeWeQ" name="declaringTypePackageName" type="_dUn9g2EMEeCdEc4VzBeWeQ">
<upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_kBooGGEMEeCdEc4VzBeWeQ" value="*"/>
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_kBooF2EMEeCdEc4VzBeWeQ"/>
</ownedParameter>
<ownedParameter xmi:id="_kBxyAGEMEeCdEc4VzBeWeQ" name="declaringTypeName" type="_dUn9g2EMEeCdEc4VzBeWeQ">
<upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_kBxyAmEMEeCdEc4VzBeWeQ" value="*"/>
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_kBxyAWEMEeCdEc4VzBeWeQ"/>
</ownedParameter>
<ownedParameter xmi:id="_kBxyA2EMEeCdEc4VzBeWeQ" name="name" type="_dUn9g2EMEeCdEc4VzBeWeQ">
<upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_kBxyBWEMEeCdEc4VzBeWeQ" value="*"/>
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_kBxyBGEMEeCdEc4VzBeWeQ"/>
</ownedParameter>
<ownedParameter xmi:id="_kB7jAGEMEeCdEc4VzBeWeQ" name="typePackageName" type="_dUn9g2EMEeCdEc4VzBeWeQ">
<upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_kB7jAmEMEeCdEc4VzBeWeQ" value="*"/>
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_kB7jAWEMEeCdEc4VzBeWeQ"/>
</ownedParameter>
<ownedParameter xmi:id="_kB7jA2EMEeCdEc4VzBeWeQ" name="typeName" type="_dUn9g2EMEeCdEc4VzBeWeQ">
<upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_kCEs8GEMEeCdEc4VzBeWeQ" value="*"/>
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_kB7jBGEMEeCdEc4VzBeWeQ"/>
</ownedParameter>
<ownedParameter xmi:id="_kCEs8WEMEeCdEc4VzBeWeQ" name="completionName" type="_dUn9g2EMEeCdEc4VzBeWeQ">
<upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_kCEs82EMEeCdEc4VzBeWeQ" value="*"/>
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_kCEs8mEMEeCdEc4VzBeWeQ"/>
</ownedParameter>
<ownedParameter xmi:id="_kCEs9GEMEeCdEc4VzBeWeQ" name="modifiers" type="_dTlbsGEMEeCdEc4VzBeWeQ"/>
<ownedParameter xmi:id="_kCEs9WEMEeCdEc4VzBeWeQ" name="completionStart" type="_dTlbsGEMEeCdEc4VzBeWeQ"/>
<ownedParameter xmi:id="_kCOd8GEMEeCdEc4VzBeWeQ" name="completionEnd" type="_dTlbsGEMEeCdEc4VzBeWeQ"/>
<ownedParameter xmi:id="_kCOd8WEMEeCdEc4VzBeWeQ" name="relevance" type="_dTlbsGEMEeCdEc4VzBeWeQ"/>
</ownedOperation>
<ownedOperation xmi:id="_kCOd8mEMEeCdEc4VzBeWeQ" name="acceptInterface">
<ownedComment xmi:id="_kCOd82EMEeCdEc4VzBeWeQ">
<body>
* Code assist notification of an interface completion.
*
* @param packageName Declaring package name of the interface.
* @param interfaceName Name of the interface.
* @param completionName The completion for the interface. Can include ';' for imported interfaces.
* @param modifiers The modifiers of the interface.
* @param completionStart The start position of insertion of the name of the interface.
* @param completionEnd The end position of insertion of the name of the interface.
* @param relevance The relevance of the completion proposal
* It is a positive integer which are used for determine if this proposal is more relevant than another proposal.
* This value can only be used for compare relevance. A proposal is more relevant than another if his relevance
* value is higher.
*
* NOTE - All package and type names are presented in their readable form:
* Package names are in the form &quot;a.b.c&quot;.
* Nested type names are in the qualified form &quot;A.M&quot;.
* The default package is represented by an empty array.
*
* @deprecated Use {@link CompletionRequestor#accept(CompletionProposal)} instead.
</body>
</ownedComment>
<ownedParameter xmi:id="_kCOd9GEMEeCdEc4VzBeWeQ" name="packageName" type="_dUn9g2EMEeCdEc4VzBeWeQ">
<upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_kCOd9mEMEeCdEc4VzBeWeQ" value="*"/>
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_kCOd9WEMEeCdEc4VzBeWeQ"/>
</ownedParameter>
<ownedParameter xmi:id="_kCOd92EMEeCdEc4VzBeWeQ" name="interfaceName" type="_dUn9g2EMEeCdEc4VzBeWeQ">
<upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_kCYO8WEMEeCdEc4VzBeWeQ" value="*"/>
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_kCYO8GEMEeCdEc4VzBeWeQ"/>
</ownedParameter>
<ownedParameter xmi:id="_kCYO8mEMEeCdEc4VzBeWeQ" name="completionName" type="_dUn9g2EMEeCdEc4VzBeWeQ">
<upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_kCYO9GEMEeCdEc4VzBeWeQ" value="*"/>
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_kCYO82EMEeCdEc4VzBeWeQ"/>
</ownedParameter>
<ownedParameter xmi:id="_kChY4GEMEeCdEc4VzBeWeQ" name="modifiers" type="_dTlbsGEMEeCdEc4VzBeWeQ"/>
<ownedParameter xmi:id="_kChY4WEMEeCdEc4VzBeWeQ" name="completionStart" type="_dTlbsGEMEeCdEc4VzBeWeQ"/>
<ownedParameter xmi:id="_kChY4mEMEeCdEc4VzBeWeQ" name="completionEnd" type="_dTlbsGEMEeCdEc4VzBeWeQ"/>
<ownedParameter xmi:id="_kCrJ4GEMEeCdEc4VzBeWeQ" name="relevance" type="_dTlbsGEMEeCdEc4VzBeWeQ"/>
</ownedOperation>
<ownedOperation xmi:id="_kCrJ4WEMEeCdEc4VzBeWeQ" name="acceptKeyword">
<ownedComment xmi:id="_kCrJ4mEMEeCdEc4VzBeWeQ">
<body>
* Code assist notification of a keyword completion.
* @param keywordName The keyword source.
* @param completionStart The start position of insertion of the name of this keyword.
* @param completionEnd The end position of insertion of the name of this keyword.
* @param relevance The relevance of the completion proposal
* It is a positive integer which are used for determine if this proposal is more relevant than another proposal.
* This value can only be used for compare relevance. A proposal is more relevant than another if his relevance
* value is higher.
* @deprecated Use {@link CompletionRequestor#accept(CompletionProposal)} instead.
</body>
</ownedComment>
<ownedParameter xmi:id="_kCrJ42EMEeCdEc4VzBeWeQ" name="keywordName" type="_dUn9g2EMEeCdEc4VzBeWeQ">
<upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_kCrJ5WEMEeCdEc4VzBeWeQ" value="*"/>
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_kCrJ5GEMEeCdEc4VzBeWeQ"/>
</ownedParameter>
<ownedParameter xmi:id="_kCrJ5mEMEeCdEc4VzBeWeQ" name="completionStart" type="_dTlbsGEMEeCdEc4VzBeWeQ"/>
<ownedParameter xmi:id="_kC-E0GEMEeCdEc4VzBeWeQ" name="completionEnd" type="_dTlbsGEMEeCdEc4VzBeWeQ"/>
<ownedParameter xmi:id="_kDH10GEMEeCdEc4VzBeWeQ" name="relevance" type="_dTlbsGEMEeCdEc4VzBeWeQ"/>
</ownedOperation>
<ownedOperation xmi:id="_kDH10WEMEeCdEc4VzBeWeQ" name="acceptLabel">
<ownedComment xmi:id="_kDH10mEMEeCdEc4VzBeWeQ">
<body>
* Code assist notification of a label completion.
*
* @param labelName The label source.
* @param completionStart The start position of insertion of the name of this label.
* @param completionEnd The end position of insertion of the name of this label.
* @param relevance The relevance of the completion proposal
* It is a positive integer which are used for determine if this proposal is more relevant than another proposal.
* This value can only be used for compare relevance. A proposal is more relevant than another if his relevance
* value is higher.
* @deprecated Use {@link CompletionRequestor#accept(CompletionProposal)} instead.
</body>
</ownedComment>
<ownedParameter xmi:id="_kDH102EMEeCdEc4VzBeWeQ" name="labelName" type="_dUn9g2EMEeCdEc4VzBeWeQ">
<upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_kDH11WEMEeCdEc4VzBeWeQ" value="*"/>
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_kDH11GEMEeCdEc4VzBeWeQ"/>
</ownedParameter>
<ownedParameter xmi:id="_kDH11mEMEeCdEc4VzBeWeQ" name="completionStart" type="_dTlbsGEMEeCdEc4VzBeWeQ"/>
<ownedParameter xmi:id="_kDQ_wGEMEeCdEc4VzBeWeQ" name="completionEnd" type="_dTlbsGEMEeCdEc4VzBeWeQ"/>
<ownedParameter xmi:id="_kDQ_wWEMEeCdEc4VzBeWeQ" name="relevance" type="_dTlbsGEMEeCdEc4VzBeWeQ"/>
</ownedOperation>
<ownedOperation xmi:id="_kDQ_wmEMEeCdEc4VzBeWeQ" name="acceptLocalVariable">
<ownedComment xmi:id="_kDQ_w2EMEeCdEc4VzBeWeQ">
<body>
* Code assist notification of a local variable completion.
*
* @param name Name of the new local variable.
* @param typePackageName Name of the package in which the type of this new local variable is declared.
* @param typeName Name of the type of this new local variable.
* @param modifiers The modifiers of this new local variable.
* @param completionStart The start position of insertion of the name of this new local variable.
* @param completionEnd The end position of insertion of the name of this new local variable.
* @param relevance The relevance of the completion proposal
* It is a positive integer which are used for determine if this proposal is more relevant than another proposal.
* This value can only be used for compare relevance. A proposal is more relevant than another if his relevance
* value is higher.
*
* NOTE - All package and type names are presented in their readable form:
* Package names are in the form &quot;a.b.c&quot;.
* Base types are in the form &quot;int&quot; or &quot;boolean&quot;.
* Array types are in the qualified form &quot;M[]&quot; or &quot;int[]&quot;.
* Nested type names are in the qualified form &quot;A.M&quot;.
* The default package is represented by an empty array.
*
* @deprecated Use {@link CompletionRequestor#accept(CompletionProposal)} instead.
</body>
</ownedComment>
<ownedParameter xmi:id="_kDQ_xGEMEeCdEc4VzBeWeQ" name="name" type="_dUn9g2EMEeCdEc4VzBeWeQ">
<upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_kDawwGEMEeCdEc4VzBeWeQ" value="*"/>
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_kDQ_xWEMEeCdEc4VzBeWeQ"/>
</ownedParameter>
<ownedParameter xmi:id="_kDawwWEMEeCdEc4VzBeWeQ" name="typePackageName" type="_dUn9g2EMEeCdEc4VzBeWeQ">
<upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_kDaww2EMEeCdEc4VzBeWeQ" value="*"/>
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_kDawwmEMEeCdEc4VzBeWeQ"/>
</ownedParameter>
<ownedParameter xmi:id="_kDawxGEMEeCdEc4VzBeWeQ" name="typeName" type="_dUn9g2EMEeCdEc4VzBeWeQ">
<upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_kDawxmEMEeCdEc4VzBeWeQ" value="*"/>
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_kDawxWEMEeCdEc4VzBeWeQ"/>
</ownedParameter>
<ownedParameter xmi:id="_kDtrsGEMEeCdEc4VzBeWeQ" name="modifiers" type="_dTlbsGEMEeCdEc4VzBeWeQ"/>
<ownedParameter xmi:id="_kDtrsWEMEeCdEc4VzBeWeQ" name="completionStart" type="_dTlbsGEMEeCdEc4VzBeWeQ"/>
<ownedParameter xmi:id="_kDtrsmEMEeCdEc4VzBeWeQ" name="completionEnd" type="_dTlbsGEMEeCdEc4VzBeWeQ"/>
<ownedParameter xmi:id="_kDtrs2EMEeCdEc4VzBeWeQ" name="relevance" type="_dTlbsGEMEeCdEc4VzBeWeQ"/>
</ownedOperation>
<ownedOperation xmi:id="_kDtrtGEMEeCdEc4VzBeWeQ" name="acceptMethod">
<ownedComment xmi:id="_kDtrtWEMEeCdEc4VzBeWeQ">
<body>
* Code assist notification of a method completion.
*
* @param declaringTypePackageName Name of the package in which the type that contains this new method is declared.
* @param declaringTypeName Name of the type declaring this new method.
* @param selector Name of the new method.
* @param parameterPackageNames Names of the packages in which the parameter types are declared.
* Should contain as many elements as parameterTypeNames.
* @param parameterTypeNames Names of the parameter types.
* Should contain as many elements as parameterPackageNames.
* @param parameterNames Names of the parameters.
* Should contain as many elements as parameterPackageNames.
* @param returnTypePackageName Name of the package in which the return type is declared.
* @param returnTypeName Name of the return type of this new method, should be &lt;code>null&lt;/code> for a constructor.
* @param completionName The completion for the method. Can include zero, one or two brackets. If the closing bracket is included, then the cursor should be placed before it.
* @param modifiers The modifiers of this new method.
* @param completionStart The start position of insertion of the name of this new method.
* @param completionEnd The end position of insertion of the name of this new method.
* @param relevance The relevance of the completion proposal
* It is a positive integer which are used for determine if this proposal is more relevant than another proposal.
* This value can only be used for compare relevance. A proposal is more relevant than another if his relevance
* value is higher.
*
* NOTE - All package and type names are presented in their readable form:
* Package names are in the form &quot;a.b.c&quot;.
* Base types are in the form &quot;int&quot; or &quot;boolean&quot;.
* Array types are in the qualified form &quot;M[]&quot; or &quot;int[]&quot;.
* Nested type names are in the qualified form &quot;A.M&quot;.
* The default package is represented by an empty array.
*
* NOTE: parameter names can be retrieved from the source model after the user selects a specific method.
*
* @deprecated Use {@link CompletionRequestor#accept(CompletionProposal)} instead.
</body>
</ownedComment>
<ownedParameter xmi:id="_kEBNsGEMEeCdEc4VzBeWeQ" name="declaringTypePackageName" type="_dUn9g2EMEeCdEc4VzBeWeQ">
<upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_kEKXoWEMEeCdEc4VzBeWeQ" value="*"/>
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_kEKXoGEMEeCdEc4VzBeWeQ"/>
</ownedParameter>
<ownedParameter xmi:id="_kEKXomEMEeCdEc4VzBeWeQ" name="declaringTypeName" type="_dUn9g2EMEeCdEc4VzBeWeQ">
<upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_kEKXpGEMEeCdEc4VzBeWeQ" value="*"/>
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_kEKXo2EMEeCdEc4VzBeWeQ"/>
</ownedParameter>
<ownedParameter xmi:id="_kEUIoGEMEeCdEc4VzBeWeQ" name="selector" type="_dUn9g2EMEeCdEc4VzBeWeQ">
<upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_kEUIomEMEeCdEc4VzBeWeQ" value="*"/>
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_kEUIoWEMEeCdEc4VzBeWeQ"/>
</ownedParameter>
<ownedParameter xmi:id="_kEUIo2EMEeCdEc4VzBeWeQ" name="parameterPackageNames" type="_dUn9g2EMEeCdEc4VzBeWeQ">
<upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_kEdSkGEMEeCdEc4VzBeWeQ" value="*"/>
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_kEUIpGEMEeCdEc4VzBeWeQ"/>
</ownedParameter>
<ownedParameter xmi:id="_kEdSkWEMEeCdEc4VzBeWeQ" name="parameterTypeNames" type="_dUn9g2EMEeCdEc4VzBeWeQ">
<upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_kEdSk2EMEeCdEc4VzBeWeQ" value="*"/>
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_kEdSkmEMEeCdEc4VzBeWeQ"/>
</ownedParameter>
<ownedParameter xmi:id="_kEdSlGEMEeCdEc4VzBeWeQ" name="parameterNames" type="_dUn9g2EMEeCdEc4VzBeWeQ">
<upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_kEnDkWEMEeCdEc4VzBeWeQ" value="*"/>
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_kEnDkGEMEeCdEc4VzBeWeQ"/>
</ownedParameter>
<ownedParameter xmi:id="_kEnDkmEMEeCdEc4VzBeWeQ" name="returnTypePackageName" type="_dUn9g2EMEeCdEc4VzBeWeQ">
<upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_kEnDlGEMEeCdEc4VzBeWeQ" value="*"/>
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_kEnDk2EMEeCdEc4VzBeWeQ"/>
</ownedParameter>
<ownedParameter xmi:id="_kEnDlWEMEeCdEc4VzBeWeQ" name="returnTypeName" type="_dUn9g2EMEeCdEc4VzBeWeQ">
<upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_kEw0kWEMEeCdEc4VzBeWeQ" value="*"/>
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_kEw0kGEMEeCdEc4VzBeWeQ"/>
</ownedParameter>
<ownedParameter xmi:id="_kFDvgGEMEeCdEc4VzBeWeQ" name="completionName" type="_dUn9g2EMEeCdEc4VzBeWeQ">
<upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_kFNggGEMEeCdEc4VzBeWeQ" value="*"/>
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_kFDvgWEMEeCdEc4VzBeWeQ"/>
</ownedParameter>
<ownedParameter xmi:id="_kFWqcGEMEeCdEc4VzBeWeQ" name="modifiers" type="_dTlbsGEMEeCdEc4VzBeWeQ"/>
<ownedParameter xmi:id="_kFWqcWEMEeCdEc4VzBeWeQ" name="completionStart" type="_dTlbsGEMEeCdEc4VzBeWeQ"/>
<ownedParameter xmi:id="_kFWqcmEMEeCdEc4VzBeWeQ" name="completionEnd" type="_dTlbsGEMEeCdEc4VzBeWeQ"/>
<ownedParameter xmi:id="_kFWqc2EMEeCdEc4VzBeWeQ" name="relevance" type="_dTlbsGEMEeCdEc4VzBeWeQ"/>
</ownedOperation>
<ownedOperation xmi:id="_kFgbcGEMEeCdEc4VzBeWeQ" name="acceptMethodDeclaration">
<ownedComment xmi:id="_kFgbcWEMEeCdEc4VzBeWeQ">
<body>
* Code assist notification of a method completion.
*
* @param declaringTypePackageName Name of the package in which the type that contains this new method is declared.
* @param declaringTypeName Name of the type declaring this new method.
* @param selector Name of the new method.
* @param parameterPackageNames Names of the packages in which the parameter types are declared.
* Should contain as many elements as parameterTypeNames.
* @param parameterTypeNames Names of the parameter types.
* Should contain as many elements as parameterPackageNames.
* @param parameterNames Names of the parameters.
* Should contain as many elements as parameterPackageNames.
* @param returnTypePackageName Name of the package in which the return type is declared.
* @param returnTypeName Name of the return type of this new method, should be &lt;code>null&lt;/code> for a constructor.
* @param completionName The completion for the method. Can include zero, one or two brackets. If the closing bracket is included, then the cursor should be placed before it.
* @param modifiers The modifiers of this new method.
* @param completionStart The start position of insertion of the name of this new method.
* @param completionEnd The end position of insertion of the name of this new method.
* @param relevance The relevance of the completion proposal
* It is a positive integer which are used for determine if this proposal is more relevant than another proposal.
* This value can only be used for compare relevance. A proposal is more relevant than another if his relevance
* value is higher.
*
* NOTE - All package and type names are presented in their readable form:
* Package names are in the form &quot;a.b.c&quot;.
* Base types are in the form &quot;int&quot; or &quot;boolean&quot;.
* Array types are in the qualified form &quot;M[]&quot; or &quot;int[]&quot;.
* Nested type names are in the qualified form &quot;A.M&quot;.
* The default package is represented by an empty array.
*
* NOTE: parameter names can be retrieved from the source model after the user selects a specific method.
*
* @deprecated Use {@link CompletionRequestor#accept(CompletionProposal)} instead.
</body>
</ownedComment>
<ownedParameter xmi:id="_kFgbcmEMEeCdEc4VzBeWeQ" name="declaringTypePackageName" type="_dUn9g2EMEeCdEc4VzBeWeQ">
<upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_kFgbdGEMEeCdEc4VzBeWeQ" value="*"/>
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_kFgbc2EMEeCdEc4VzBeWeQ"/>
</ownedParameter>
<ownedParameter xmi:id="_kFplYGEMEeCdEc4VzBeWeQ" name="declaringTypeName" type="_dUn9g2EMEeCdEc4VzBeWeQ">
<upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_kFplYmEMEeCdEc4VzBeWeQ" value="*"/>
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_kFplYWEMEeCdEc4VzBeWeQ"/>
</ownedParameter>
<ownedParameter xmi:id="_kFzWYGEMEeCdEc4VzBeWeQ" name="selector" type="_dUn9g2EMEeCdEc4VzBeWeQ">
<upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_kFzWYmEMEeCdEc4VzBeWeQ" value="*"/>
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_kFzWYWEMEeCdEc4VzBeWeQ"/>
</ownedParameter>
<ownedParameter xmi:id="_kFzWY2EMEeCdEc4VzBeWeQ" name="parameterPackageNames" type="_dUn9g2EMEeCdEc4VzBeWeQ">
<upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_kFzWZWEMEeCdEc4VzBeWeQ" value="*"/>
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_kFzWZGEMEeCdEc4VzBeWeQ"/>
</ownedParameter>
<ownedParameter xmi:id="_kGGRUGEMEeCdEc4VzBeWeQ" name="parameterTypeNames" type="_dUn9g2EMEeCdEc4VzBeWeQ">
<upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_kGQCUGEMEeCdEc4VzBeWeQ" value="*"/>
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_kGGRUWEMEeCdEc4VzBeWeQ"/>
</ownedParameter>
<ownedParameter xmi:id="_kGQCUWEMEeCdEc4VzBeWeQ" name="parameterNames" type="_dUn9g2EMEeCdEc4VzBeWeQ">
<upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_kGQCU2EMEeCdEc4VzBeWeQ" value="*"/>
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_kGQCUmEMEeCdEc4VzBeWeQ"/>
</ownedParameter>
<ownedParameter xmi:id="_kGQCVGEMEeCdEc4VzBeWeQ" name="returnTypePackageName" type="_dUn9g2EMEeCdEc4VzBeWeQ">
<upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_kGZzUGEMEeCdEc4VzBeWeQ" value="*"/>
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_kGQCVWEMEeCdEc4VzBeWeQ"/>
</ownedParameter>
<ownedParameter xmi:id="_kGZzUWEMEeCdEc4VzBeWeQ" name="returnTypeName" type="_dUn9g2EMEeCdEc4VzBeWeQ">
<upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_kGZzU2EMEeCdEc4VzBeWeQ" value="*"/>
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_kGZzUmEMEeCdEc4VzBeWeQ"/>
</ownedParameter>
<ownedParameter xmi:id="_kGZzVGEMEeCdEc4VzBeWeQ" name="completionName" type="_dUn9g2EMEeCdEc4VzBeWeQ">
<upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_kGsuQGEMEeCdEc4VzBeWeQ" value="*"/>
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_kGi9QGEMEeCdEc4VzBeWeQ"/>
</ownedParameter>
<ownedParameter xmi:id="_kGsuQWEMEeCdEc4VzBeWeQ" name="modifiers" type="_dTlbsGEMEeCdEc4VzBeWeQ"/>
<ownedParameter xmi:id="_kGsuQmEMEeCdEc4VzBeWeQ" name="completionStart" type="_dTlbsGEMEeCdEc4VzBeWeQ"/>
<ownedParameter xmi:id="_kGsuQ2EMEeCdEc4VzBeWeQ" name="completionEnd" type="_dTlbsGEMEeCdEc4VzBeWeQ"/>
<ownedParameter xmi:id="_kGsuRGEMEeCdEc4VzBeWeQ" name="relevance" type="_dTlbsGEMEeCdEc4VzBeWeQ"/>
</ownedOperation>
<ownedOperation xmi:id="_kG14MGEMEeCdEc4VzBeWeQ" name="acceptModifier">
<ownedComment xmi:id="_kG14MWEMEeCdEc4VzBeWeQ">
<body>
* Code assist notification of a modifier completion.
*
* @param modifierName The new modifier.
* @param completionStart The start position of insertion of the name of this new modifier.
* @param completionEnd The end position of insertion of the name of this new modifier.
* @param relevance The relevance of the completion proposal
* It is a positive integer which are used for determine if this proposal is more relevant than another proposal.
* This value can only be used for compare relevance. A proposal is more relevant than another if his relevance
* value is higher.
* @deprecated Use {@link CompletionRequestor#accept(CompletionProposal)} instead.
</body>
</ownedComment>
<ownedParameter xmi:id="_kG14MmEMEeCdEc4VzBeWeQ" name="modifierName" type="_dUn9g2EMEeCdEc4VzBeWeQ">
<upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_kG14NGEMEeCdEc4VzBeWeQ" value="*"/>
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_kG14M2EMEeCdEc4VzBeWeQ"/>
</ownedParameter>
<ownedParameter xmi:id="_kG14NWEMEeCdEc4VzBeWeQ" name="completionStart" type="_dTlbsGEMEeCdEc4VzBeWeQ"/>
<ownedParameter xmi:id="_kG14NmEMEeCdEc4VzBeWeQ" name="completionEnd" type="_dTlbsGEMEeCdEc4VzBeWeQ"/>
<ownedParameter xmi:id="_kG_pMGEMEeCdEc4VzBeWeQ" name="relevance" type="_dTlbsGEMEeCdEc4VzBeWeQ"/>
</ownedOperation>
<ownedOperation xmi:id="_kHJaMGEMEeCdEc4VzBeWeQ" name="acceptPackage">
<ownedComment xmi:id="_kHJaMWEMEeCdEc4VzBeWeQ">
<body>
* Code assist notification of a package completion.
*
* @param packageName The package name.
* @param completionName The completion for the package. Can include '.*;' for imports.
* @param completionStart The start position of insertion of the name of this new package.
* @param completionEnd The end position of insertion of the name of this new package.
* @param relevance The relevance of the completion proposal
* It is a positive integer which are used for determine if this proposal is more relevant than another proposal.
* This value can only be used for compare relevance. A proposal is more relevant than another if his relevance
* value is higher.
*
* NOTE - All package names are presented in their readable form:
* Package names are in the form &quot;a.b.c&quot;.
* The default package is represented by an empty array.
* @deprecated Use {@link CompletionRequestor#accept(CompletionProposal)} instead.
</body>
</ownedComment>
<ownedParameter xmi:id="_kHJaMmEMEeCdEc4VzBeWeQ" name="packageName" type="_dUn9g2EMEeCdEc4VzBeWeQ">
<upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_kHJaNGEMEeCdEc4VzBeWeQ" value="*"/>
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_kHJaM2EMEeCdEc4VzBeWeQ"/>
</ownedParameter>
<ownedParameter xmi:id="_kHJaNWEMEeCdEc4VzBeWeQ" name="completionName" type="_dUn9g2EMEeCdEc4VzBeWeQ">
<upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_kHJaN2EMEeCdEc4VzBeWeQ" value="*"/>
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_kHJaNmEMEeCdEc4VzBeWeQ"/>
</ownedParameter>
<ownedParameter xmi:id="_kHSkIGEMEeCdEc4VzBeWeQ" name="completionStart" type="_dTlbsGEMEeCdEc4VzBeWeQ"/>
<ownedParameter xmi:id="_kHSkIWEMEeCdEc4VzBeWeQ" name="completionEnd" type="_dTlbsGEMEeCdEc4VzBeWeQ"/>
<ownedParameter xmi:id="_kHSkImEMEeCdEc4VzBeWeQ" name="relevance" type="_dTlbsGEMEeCdEc4VzBeWeQ"/>
</ownedOperation>
<ownedOperation xmi:id="_kHSkI2EMEeCdEc4VzBeWeQ" name="acceptType">
<ownedComment xmi:id="_kHSkJGEMEeCdEc4VzBeWeQ">
<body>
* Code assist notification of a type completion.
*
* @param packageName Declaring package name of the type.
* @param typeName Name of the type.
* @param completionName The completion for the type. Can include ';' for imported types.
* @param completionStart The start position of insertion of the name of the type.
* @param completionEnd The end position of insertion of the name of the type.
* @param relevance The relevance of the completion proposal
* It is a positive integer which are used for determine if this proposal is more relevant than another proposal.
* This value can only be used for compare relevance. A proposal is more relevant than another if his relevance
* value is higher.
*
* NOTE - All package and type names are presented in their readable form:
* Package names are in the form &quot;a.b.c&quot;.
* Nested type names are in the qualified form &quot;A.M&quot;.
* The default package is represented by an empty array.
* @deprecated Use {@link CompletionRequestor#accept(CompletionProposal)} instead.
</body>
</ownedComment>
<ownedParameter xmi:id="_kHSkJWEMEeCdEc4VzBeWeQ" name="packageName" type="_dUn9g2EMEeCdEc4VzBeWeQ">
<upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_kHcVIWEMEeCdEc4VzBeWeQ" value="*"/>
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_kHcVIGEMEeCdEc4VzBeWeQ"/>
</ownedParameter>
<ownedParameter xmi:id="_kHcVImEMEeCdEc4VzBeWeQ" name="typeName" type="_dUn9g2EMEeCdEc4VzBeWeQ">
<upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_kHcVJGEMEeCdEc4VzBeWeQ" value="*"/>
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_kHcVI2EMEeCdEc4VzBeWeQ"/>
</ownedParameter>
<ownedParameter xmi:id="_kHmGIGEMEeCdEc4VzBeWeQ" name="completionName" type="_dUn9g2EMEeCdEc4VzBeWeQ">
<upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_kHmGImEMEeCdEc4VzBeWeQ" value="*"/>
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_kHmGIWEMEeCdEc4VzBeWeQ"/>
</ownedParameter>
<ownedParameter xmi:id="_kHvQEGEMEeCdEc4VzBeWeQ" name="completionStart" type="_dTlbsGEMEeCdEc4VzBeWeQ"/>
<ownedParameter xmi:id="_kHvQEWEMEeCdEc4VzBeWeQ" name="completionEnd" type="_dTlbsGEMEeCdEc4VzBeWeQ"/>
<ownedParameter xmi:id="_kH5BEGEMEeCdEc4VzBeWeQ" name="relevance" type="_dTlbsGEMEeCdEc4VzBeWeQ"/>
</ownedOperation>
<ownedOperation xmi:id="_kH5BEWEMEeCdEc4VzBeWeQ" name="acceptVariableName">
<ownedComment xmi:id="_kH5BEmEMEeCdEc4VzBeWeQ">
<body>
* Code assist notification of a variable name completion.
*
* @param typePackageName Name of the package in which the type of this variable is declared.
* @param typeName Name of the type of this variable.
* @param name Name of the variable.
* @param completionName The completion for the variable.
* @param completionStart The start position of insertion of the name of this variable.
* @param completionEnd The end position of insertion of the name of this variable.
* @param relevance The relevance of the completion proposal
* It is a positive integer which are used for determine if this proposal is more relevant than another proposal.
* This value can only be used for compare relevance. A proposal is more relevant than another if his relevance
* value is higher.
*
* NOTE - All package and type names are presented in their readable form:
* Package names are in the form &quot;a.b.c&quot;.
* Base types are in the form &quot;int&quot; or &quot;boolean&quot;.
* Array types are in the qualified form &quot;M[]&quot; or &quot;int[]&quot;.
* Nested type names are in the qualified form &quot;A.M&quot;.
* The default package is represented by an empty array.
* @deprecated Use {@link CompletionRequestor#accept(CompletionProposal)} instead.
</body>
</ownedComment>
<ownedParameter xmi:id="_kH5BE2EMEeCdEc4VzBeWeQ" name="typePackageName" type="_dUn9g2EMEeCdEc4VzBeWeQ">
<upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_kH5BFWEMEeCdEc4VzBeWeQ" value="*"/>
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_kH5BFGEMEeCdEc4VzBeWeQ"/>
</ownedParameter>
<ownedParameter xmi:id="_kICLAGEMEeCdEc4VzBeWeQ" name="typeName" type="_dUn9g2EMEeCdEc4VzBeWeQ">
<upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_kICLAmEMEeCdEc4VzBeWeQ" value="*"/>
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_kICLAWEMEeCdEc4VzBeWeQ"/>
</ownedParameter>
<ownedParameter xmi:id="_kICLA2EMEeCdEc4VzBeWeQ" name="name" type="_dUn9g2EMEeCdEc4VzBeWeQ">
<upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_kIL8AWEMEeCdEc4VzBeWeQ" value="*"/>
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_kIL8AGEMEeCdEc4VzBeWeQ"/>
</ownedParameter>
<ownedParameter xmi:id="_kIL8AmEMEeCdEc4VzBeWeQ" name="completionName" type="_dUn9g2EMEeCdEc4VzBeWeQ">
<upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_kIL8BGEMEeCdEc4VzBeWeQ" value="*"/>
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_kIL8A2EMEeCdEc4VzBeWeQ"/>
</ownedParameter>
<ownedParameter xmi:id="_kIVtAGEMEeCdEc4VzBeWeQ" name="completionStart" type="_dTlbsGEMEeCdEc4VzBeWeQ"/>
<ownedParameter xmi:id="_kIVtAWEMEeCdEc4VzBeWeQ" name="completionEnd" type="_dTlbsGEMEeCdEc4VzBeWeQ"/>
<ownedParameter xmi:id="_kIVtAmEMEeCdEc4VzBeWeQ" name="relevance" type="_dTlbsGEMEeCdEc4VzBeWeQ"/>
</ownedOperation>
</packagedElement>
<packagedElement xmi:type="uml:Interface" xmi:id="_kI7i4GEMEeCdEc4VzBeWeQ" name="ICorrectionRequestor">
<ownedComment xmi:id="_kI7i4WEMEeCdEc4VzBeWeQ">
<body>
* A callback interface for receiving java problem correction.
*
* @since 2.0
</body>
</ownedComment>
<ownedOperation xmi:id="_kI7i4mEMEeCdEc4VzBeWeQ" name="acceptClass">
<ownedComment xmi:id="_kI7i42EMEeCdEc4VzBeWeQ">
<body>
* Notification of a class correction.
*
* @param packageName Declaring package name of the class.
* @param className Name of the class.
* @param correctionName The correction for the class.
* @param modifiers The modifiers of the class.
* @param correctionStart The start position of insertion of the correction of the class.
* @param correctionEnd The end position of insertion of the correction of the class.
*
* NOTE - All package and type names are presented in their readable form:
* Package names are in the form &quot;a.b.c&quot;.
* Nested type names are in the qualified form &quot;A.M&quot;.
* The default package is represented by an empty array.
</body>
</ownedComment>
<ownedParameter xmi:id="_kJFT4GEMEeCdEc4VzBeWeQ" name="packageName" type="_dUn9g2EMEeCdEc4VzBeWeQ">
<upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_kJFT4mEMEeCdEc4VzBeWeQ" value="*"/>
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_kJFT4WEMEeCdEc4VzBeWeQ"/>
</ownedParameter>
<ownedParameter xmi:id="_kJFT42EMEeCdEc4VzBeWeQ" name="className" type="_dUn9g2EMEeCdEc4VzBeWeQ">
<upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_kJOd0GEMEeCdEc4VzBeWeQ" value="*"/>
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_kJFT5GEMEeCdEc4VzBeWeQ"/>
</ownedParameter>
<ownedParameter xmi:id="_kJOd0WEMEeCdEc4VzBeWeQ" name="correctionName" type="_dUn9g2EMEeCdEc4VzBeWeQ">
<upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_kJOd02EMEeCdEc4VzBeWeQ" value="*"/>
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_kJOd0mEMEeCdEc4VzBeWeQ"/>
</ownedParameter>
<ownedParameter xmi:id="_kJOd1GEMEeCdEc4VzBeWeQ" name="modifiers" type="_dTlbsGEMEeCdEc4VzBeWeQ"/>
<ownedParameter xmi:id="_kJYO0GEMEeCdEc4VzBeWeQ" name="correctionStart" type="_dTlbsGEMEeCdEc4VzBeWeQ"/>
<ownedParameter xmi:id="_kJYO0WEMEeCdEc4VzBeWeQ" name="correctionEnd" type="_dTlbsGEMEeCdEc4VzBeWeQ"/>
</ownedOperation>
<ownedOperation xmi:id="_kJYO0mEMEeCdEc4VzBeWeQ" name="acceptField">
<ownedComment xmi:id="_kJYO02EMEeCdEc4VzBeWeQ">
<body>
* Notification of a field correction.
*
* @param declaringTypePackageName Name of the package in which the type that contains this field is declared.
* @param declaringTypeName Name of the type declaring this field.
* @param name Name of the field.
* @param typePackageName Name of the package in which the type of this field is declared.
* @param typeName Name of the type of this field.
* @param correctionName The correction for the field.
* @param modifiers The modifiers of this field.
* @param correctionStart The start position of insertion of the correction of this field.
* @param correctionEnd The end position of insertion of the correction of this field.
*
* NOTE - All package and type names are presented in their readable form:
* Package names are in the form &quot;a.b.c&quot;.
* Base types are in the form &quot;int&quot; or &quot;boolean&quot;.
* Array types are in the qualified form &quot;M[]&quot; or &quot;int[]&quot;.
* Nested type names are in the qualified form &quot;A.M&quot;.
* The default package is represented by an empty array.
</body>
</ownedComment>
<ownedParameter xmi:id="_kJYO1GEMEeCdEc4VzBeWeQ" name="declaringTypePackageName" type="_dUn9g2EMEeCdEc4VzBeWeQ">
<upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_kJYO1mEMEeCdEc4VzBeWeQ" value="*"/>
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_kJYO1WEMEeCdEc4VzBeWeQ"/>
</ownedParameter>
<ownedParameter xmi:id="_kJh_0GEMEeCdEc4VzBeWeQ" name="declaringTypeName" type="_dUn9g2EMEeCdEc4VzBeWeQ">
<upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_kJh_0mEMEeCdEc4VzBeWeQ" value="*"/>
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_kJh_0WEMEeCdEc4VzBeWeQ"/>
</ownedParameter>
<ownedParameter xmi:id="_kJh_02EMEeCdEc4VzBeWeQ" name="name" type="_dUn9g2EMEeCdEc4VzBeWeQ">
<upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_kJrJwWEMEeCdEc4VzBeWeQ" value="*"/>
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_kJrJwGEMEeCdEc4VzBeWeQ"/>
</ownedParameter>
<ownedParameter xmi:id="_kJrJwmEMEeCdEc4VzBeWeQ" name="typePackageName" type="_dUn9g2EMEeCdEc4VzBeWeQ">
<upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_kJrJxGEMEeCdEc4VzBeWeQ" value="*"/>
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_kJrJw2EMEeCdEc4VzBeWeQ"/>
</ownedParameter>
<ownedParameter xmi:id="_kJ06wGEMEeCdEc4VzBeWeQ" name="typeName" type="_dUn9g2EMEeCdEc4VzBeWeQ">
<upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_kJ06wmEMEeCdEc4VzBeWeQ" value="*"/>
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_kJ06wWEMEeCdEc4VzBeWeQ"/>
</ownedParameter>
<ownedParameter xmi:id="_kJ06w2EMEeCdEc4VzBeWeQ" name="correctionName" type="_dUn9g2EMEeCdEc4VzBeWeQ">
<upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_kJ-rwGEMEeCdEc4VzBeWeQ" value="*"/>
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_kJ06xGEMEeCdEc4VzBeWeQ"/>
</ownedParameter>
<ownedParameter xmi:id="_kJ-rwWEMEeCdEc4VzBeWeQ" name="modifiers" type="_dTlbsGEMEeCdEc4VzBeWeQ"/>
<ownedParameter xmi:id="_kJ-rwmEMEeCdEc4VzBeWeQ" name="correctionStart" type="_dTlbsGEMEeCdEc4VzBeWeQ"/>
<ownedParameter xmi:id="_kJ-rw2EMEeCdEc4VzBeWeQ" name="correctionEnd" type="_dTlbsGEMEeCdEc4VzBeWeQ"/>
</ownedOperation>
<ownedOperation xmi:id="_kJ-rxGEMEeCdEc4VzBeWeQ" name="acceptInterface">
<ownedComment xmi:id="_kJ-rxWEMEeCdEc4VzBeWeQ">
<body>
* Notification of an interface correction.
*
* @param packageName Declaring package name of the interface.
* @param interfaceName Name of the interface.
* @param correctionName The correction for the interface.
* Can include ';' for imported interfaces.
* @param modifiers The modifiers of the interface.
* @param correctionStart The start position of insertion of the correction of the interface.
* @param correctionEnd The end position of insertion of the correction of the interface.
*
* NOTE - All package and type names are presented in their readable form:
* Package names are in the form &quot;a.b.c&quot;.
* Nested type names are in the qualified form &quot;A.M&quot;.
* The default package is represented by an empty array.
</body>
</ownedComment>
<ownedParameter xmi:id="_kKH1sGEMEeCdEc4VzBeWeQ" name="packageName" type="_dUn9g2EMEeCdEc4VzBeWeQ">
<upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_kKH1smEMEeCdEc4VzBeWeQ" value="*"/>
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_kKH1sWEMEeCdEc4VzBeWeQ"/>
</ownedParameter>
<ownedParameter xmi:id="_kKH1s2EMEeCdEc4VzBeWeQ" name="interfaceName" type="_dUn9g2EMEeCdEc4VzBeWeQ">
<upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_kKRmsWEMEeCdEc4VzBeWeQ" value="*"/>
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_kKRmsGEMEeCdEc4VzBeWeQ"/>
</ownedParameter>
<ownedParameter xmi:id="_kKRmsmEMEeCdEc4VzBeWeQ" name="correctionName" type="_dUn9g2EMEeCdEc4VzBeWeQ">
<upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_kKawoGEMEeCdEc4VzBeWeQ" value="*"/>
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_kKRms2EMEeCdEc4VzBeWeQ"/>
</ownedParameter>
<ownedParameter xmi:id="_kKawoWEMEeCdEc4VzBeWeQ" name="modifiers" type="_dTlbsGEMEeCdEc4VzBeWeQ"/>
<ownedParameter xmi:id="_kKawomEMEeCdEc4VzBeWeQ" name="correctionStart" type="_dTlbsGEMEeCdEc4VzBeWeQ"/>
<ownedParameter xmi:id="_kKawo2EMEeCdEc4VzBeWeQ" name="correctionEnd" type="_dTlbsGEMEeCdEc4VzBeWeQ"/>
</ownedOperation>
<ownedOperation xmi:id="_kKkhoGEMEeCdEc4VzBeWeQ" name="acceptLocalVariable">
<ownedComment xmi:id="_kKkhoWEMEeCdEc4VzBeWeQ">
<body>
* Notification of a local variable correction.
*
* @param name Name of the local variable.
* @param typePackageName Name of the package in which the type of this local variable is declared.
* @param typeName Name of the type of this local variable.
* @param modifiers The modifiers of this local variable.
* @param correctionStart The start position of insertion of the correction of this local variable.
* @param correctionEnd The end position of insertion of the correction of this local variable.
*
* NOTE - All package and type names are presented in their readable form:
* Package names are in the form &quot;a.b.c&quot;.
* Base types are in the form &quot;int&quot; or &quot;boolean&quot;.
* Array types are in the qualified form &quot;M[]&quot; or &quot;int[]&quot;.
* Nested type names are in the qualified form &quot;A.M&quot;.
* The default package is represented by an empty array.
</body>
</ownedComment>
<ownedParameter xmi:id="_kKkhomEMEeCdEc4VzBeWeQ" name="name" type="_dUn9g2EMEeCdEc4VzBeWeQ">
<upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_kKkhpGEMEeCdEc4VzBeWeQ" value="*"/>
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_kKkho2EMEeCdEc4VzBeWeQ"/>
</ownedParameter>
<ownedParameter xmi:id="_kKuSoGEMEeCdEc4VzBeWeQ" name="typePackageName" type="_dUn9g2EMEeCdEc4VzBeWeQ">
<upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_kKuSomEMEeCdEc4VzBeWeQ" value="*"/>
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_kKuSoWEMEeCdEc4VzBeWeQ"/>
</ownedParameter>
<ownedParameter xmi:id="_kKuSo2EMEeCdEc4VzBeWeQ" name="typeName" type="_dUn9g2EMEeCdEc4VzBeWeQ">
<upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_kK3ckWEMEeCdEc4VzBeWeQ" value="*"/>
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_kK3ckGEMEeCdEc4VzBeWeQ"/>
</ownedParameter>
<ownedParameter xmi:id="_kK3ckmEMEeCdEc4VzBeWeQ" name="modifiers" type="_dTlbsGEMEeCdEc4VzBeWeQ"/>
<ownedParameter xmi:id="_kLBNkGEMEeCdEc4VzBeWeQ" name="correctionStart" type="_dTlbsGEMEeCdEc4VzBeWeQ"/>
<ownedParameter xmi:id="_kLBNkWEMEeCdEc4VzBeWeQ" name="correctionEnd" type="_dTlbsGEMEeCdEc4VzBeWeQ"/>
</ownedOperation>
<ownedOperation xmi:id="_kLBNkmEMEeCdEc4VzBeWeQ" name="acceptMethod">
<ownedComment xmi:id="_kLBNk2EMEeCdEc4VzBeWeQ">
<body>
* Notification of a method correction.
*
* @param declaringTypePackageName Name of the package in which the type that contains this method is declared.
* @param declaringTypeName Name of the type declaring this method.
* @param selector Name of the method.
* @param parameterPackageNames Names of the packages in which the parameter types are declared.
* Should contain as many elements as parameterTypeNames.
* @param parameterTypeNames Names of the parameter types.
* Should contain as many elements as parameterPackageNames.
* @param parameterNames Names of the parameters.
* Should contain as many elements as parameterPackageNames.
* @param returnTypePackageName Name of the package in which the return type is declared.
* @param returnTypeName Name of the return type of this method, should be &lt;code>null&lt;/code> for a constructor.
* @param correctionName The correction for the method.
* Can include zero, one or two brackets. If the closing bracket is included, then the cursor should be placed before it.
* @param modifiers The modifiers of this method.
* @param correctionStart The start position of insertion of the correction of this method.
* @param correctionEnd The end position of insertion of the correction of this method.
*
* NOTE - All package and type names are presented in their readable form:
* Package names are in the form &quot;a.b.c&quot;.
* Base types are in the form &quot;int&quot; or &quot;boolean&quot;.
* Array types are in the qualified form &quot;M[]&quot; or &quot;int[]&quot;.
* Nested type names are in the qualified form &quot;A.M&quot;.
* The default package is represented by an empty array.
*
* NOTE: parameter names can be retrieved from the source model after the user selects a specific method.
</body>
</ownedComment>
<ownedParameter xmi:id="_kLBNlGEMEeCdEc4VzBeWeQ" name="declaringTypePackageName" type="_dUn9g2EMEeCdEc4VzBeWeQ">
<upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_kLBNlmEMEeCdEc4VzBeWeQ" value="*"/>
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_kLBNlWEMEeCdEc4VzBeWeQ"/>
</ownedParameter>
<ownedParameter xmi:id="_kLK-kGEMEeCdEc4VzBeWeQ" name="declaringTypeName" type="_dUn9g2EMEeCdEc4VzBeWeQ">
<upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_kLK-kmEMEeCdEc4VzBeWeQ" value="*"/>
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_kLK-kWEMEeCdEc4VzBeWeQ"/>
</ownedParameter>
<ownedParameter xmi:id="_kLK-k2EMEeCdEc4VzBeWeQ" name="selector" type="_dUn9g2EMEeCdEc4VzBeWeQ">
<upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_kLUIgWEMEeCdEc4VzBeWeQ" value="*"/>
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_kLUIgGEMEeCdEc4VzBeWeQ"/>
</ownedParameter>
<ownedParameter xmi:id="_kLUIgmEMEeCdEc4VzBeWeQ" name="parameterPackageNames" type="_dUn9g2EMEeCdEc4VzBeWeQ">
<upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_kLUIhGEMEeCdEc4VzBeWeQ" value="*"/>
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_kLUIg2EMEeCdEc4VzBeWeQ"/>
</ownedParameter>
<ownedParameter xmi:id="_kLd5gGEMEeCdEc4VzBeWeQ" name="parameterTypeNames" type="_dUn9g2EMEeCdEc4VzBeWeQ">
<upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_kLnDcWEMEeCdEc4VzBeWeQ" value="*"/>
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_kLnDcGEMEeCdEc4VzBeWeQ"/>
</ownedParameter>
<ownedParameter xmi:id="_kLnDcmEMEeCdEc4VzBeWeQ" name="parameterNames" type="_dUn9g2EMEeCdEc4VzBeWeQ">
<upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_kLnDdGEMEeCdEc4VzBeWeQ" value="*"/>
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_kLnDc2EMEeCdEc4VzBeWeQ"/>
</ownedParameter>
<ownedParameter xmi:id="_kLw0cGEMEeCdEc4VzBeWeQ" name="returnTypePackageName" type="_dUn9g2EMEeCdEc4VzBeWeQ">
<upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_kLw0cmEMEeCdEc4VzBeWeQ" value="*"/>
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_kLw0cWEMEeCdEc4VzBeWeQ"/>
</ownedParameter>
<ownedParameter xmi:id="_kLw0c2EMEeCdEc4VzBeWeQ" name="returnTypeName" type="_dUn9g2EMEeCdEc4VzBeWeQ">
<upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_kL6lcGEMEeCdEc4VzBeWeQ" value="*"/>
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_kLw0dGEMEeCdEc4VzBeWeQ"/>
</ownedParameter>
<ownedParameter xmi:id="_kL6lcWEMEeCdEc4VzBeWeQ" name="correctionName" type="_dUn9g2EMEeCdEc4VzBeWeQ">
<upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_kL6lc2EMEeCdEc4VzBeWeQ" value="*"/>
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_kL6lcmEMEeCdEc4VzBeWeQ"/>
</ownedParameter>
<ownedParameter xmi:id="_kMDvYGEMEeCdEc4VzBeWeQ" name="modifiers" type="_dTlbsGEMEeCdEc4VzBeWeQ"/>
<ownedParameter xmi:id="_kMDvYWEMEeCdEc4VzBeWeQ" name="correctionStart" type="_dTlbsGEMEeCdEc4VzBeWeQ"/>
<ownedParameter xmi:id="_kMDvYmEMEeCdEc4VzBeWeQ" name="correctionEnd" type="_dTlbsGEMEeCdEc4VzBeWeQ"/>
</ownedOperation>
<ownedOperation xmi:id="_kMDvY2EMEeCdEc4VzBeWeQ" name="acceptPackage">
<ownedComment xmi:id="_kMDvZGEMEeCdEc4VzBeWeQ">
<body>
* Notification of a package correction.
*
* @param packageName The package name.
* @param correctionName The correction for the package.
* Can include '.*;' for imports.
* @param correctionStart The start position of insertion of the correction of this package.
* @param correctionEnd The end position of insertion of the correction of this package.
*
* NOTE - All package names are presented in their readable form:
* Package names are in the form &quot;a.b.c&quot;.
* The default package is represented by an empty array.
</body>
</ownedComment>
<ownedParameter xmi:id="_kMDvZWEMEeCdEc4VzBeWeQ" name="packageName" type="_dUn9g2EMEeCdEc4VzBeWeQ">
<upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_kMNgYGEMEeCdEc4VzBeWeQ" value="*"/>
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_kMDvZmEMEeCdEc4VzBeWeQ"/>
</ownedParameter>
<ownedParameter xmi:id="_kMNgYWEMEeCdEc4VzBeWeQ" name="correctionName" type="_dUn9g2EMEeCdEc4VzBeWeQ">
<upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_kMXRYWEMEeCdEc4VzBeWeQ" value="*"/>
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_kMXRYGEMEeCdEc4VzBeWeQ"/>
</ownedParameter>
<ownedParameter xmi:id="_kMXRYmEMEeCdEc4VzBeWeQ" name="correctionStart" type="_dTlbsGEMEeCdEc4VzBeWeQ"/>
<ownedParameter xmi:id="_kMXRY2EMEeCdEc4VzBeWeQ" name="correctionEnd" type="_dTlbsGEMEeCdEc4VzBeWeQ"/>
</ownedOperation>
</packagedElement>
<packagedElement xmi:type="uml:Interface" xmi:id="_kM9HQGEMEeCdEc4VzBeWeQ" name="IElementChangedListener">
<ownedComment xmi:id="_kM9HQWEMEeCdEc4VzBeWeQ">
<body>
* An element changed listener receives notification of changes to Java elements
* maintained by the Java model.
* &lt;p>
* This interface may be implemented by clients.
* &lt;/p>
</body>
</ownedComment>
<ownedOperation xmi:id="_kM9HQmEMEeCdEc4VzBeWeQ" name="elementChanged" visibility="public">
<ownedComment xmi:id="_kM9HQ2EMEeCdEc4VzBeWeQ">
<body>
* Notifies that one or more attributes of one or more Java elements have changed.
* The specific details of the change are described by the given event.
*
* @param event the change event
</body>
</ownedComment>
<ownedParameter xmi:id="_kM9HRGEMEeCdEc4VzBeWeQ" name="event" type="_jwf0wGEMEeCdEc4VzBeWeQ"/>
</ownedOperation>
</packagedElement>
<packagedElement xmi:type="uml:Interface" xmi:id="_kNQCMGEMEeCdEc4VzBeWeQ" name="IField">
<ownedComment xmi:id="_kNQCMWEMEeCdEc4VzBeWeQ">
<body>
* Represents a field declared in a type.
*
* @noimplement This interface is not intended to be implemented by clients.
</body>
</ownedComment>
<generalization xmi:id="_fjJYoGEOEeCdEc4VzBeWeQ" general="_klF6cGEMEeCdEc4VzBeWeQ"/>
<generalization xmi:id="_fjJYoWEOEeCdEc4VzBeWeQ" general="_j09eAGEMEeCdEc4VzBeWeQ"/>
<ownedOperation xmi:id="_fjJYomEOEeCdEc4VzBeWeQ" name="getConstant" visibility="public">
<ownedComment xmi:id="_fjJYo2EOEeCdEc4VzBeWeQ">
<body>
* Returns the constant value associated with this field
* or &lt;code>null&lt;/code> if this field has none. The field needs to be static and final to have
* a constant value.
* Returns an instance of the wrapper type corresponding to the the type of the field.
* &lt;table border=&quot;1&quot;>
* &lt;tr>
* &lt;th>field type&lt;/th>
* &lt;th>wrapper type&lt;/th>
* &lt;/tr>
* &lt;tr>
* &lt;td>int
* &lt;/td>
* &lt;td>java.lang.Integer
* &lt;/td>
* &lt;/tr>
* &lt;tr>
* &lt;td>byte
* &lt;/td>
* &lt;td>java.lang.Byte
* &lt;/td>
* &lt;/tr>
* &lt;tr>
* &lt;td>boolean
* &lt;/td>
* &lt;td>java.lang.Boolean
* &lt;/td>
* &lt;/tr>
* &lt;tr>
* &lt;td>char
* &lt;/td>
* &lt;td>java.lang.Character
* &lt;/td>
* &lt;/tr>
* &lt;tr>
* &lt;td>double
* &lt;/td>
* &lt;td>java.lang.Double
* &lt;/td>
* &lt;/tr>
* &lt;tr>
* &lt;td>float
* &lt;/td>
* &lt;td>java.lang.Float
* &lt;/td>
* &lt;/tr>
* &lt;tr>
* &lt;td>long
* &lt;/td>
* &lt;td>java.lang.Long
* &lt;/td>
* &lt;/tr>
* &lt;tr>
* &lt;td>short
* &lt;/td>
* &lt;td>java.lang.Short
* &lt;/td>
* &lt;/tr>
* &lt;tr>
* &lt;td>java.lang.String
* &lt;/td>
* &lt;td>java.lang.String
* &lt;/td>
* &lt;/tr>
* &lt;/table>
*
* @return the constant value associated with this field or &lt;code>null&lt;/code> if this field has none.
* @exception JavaModelException if this element does not exist or if an
* exception occurs while accessing its corresponding resource
</body>
</ownedComment>
<ownedParameter xmi:id="_fjSikGEOEeCdEc4VzBeWeQ" type="_kOcVAmEMEeCdEc4VzBeWeQ" direction="return"/>
</ownedOperation>
<ownedOperation xmi:id="_fjSikWEOEeCdEc4VzBeWeQ" name="getElementName">
<ownedComment xmi:id="_fjSikmEOEeCdEc4VzBeWeQ">
<body>
* Returns the simple name of this field.
* @return the simple name of this field.
</body>
</ownedComment>
<ownedParameter xmi:id="_fjcTkGEOEeCdEc4VzBeWeQ" type="_dSiS02EMEeCdEc4VzBeWeQ" direction="return"/>
</ownedOperation>
<ownedOperation xmi:id="_fjmEkGEOEeCdEc4VzBeWeQ" name="getKey">
<ownedComment xmi:id="_fjmEkWEOEeCdEc4VzBeWeQ">
<body>
* Returns the binding key for this field only if the given field is {@link #isResolved() resolved}.
* A binding key is a key that uniquely identifies this field. It allows access to generic info
* for parameterized fields.
*
* &lt;p>If the given field is not resolved, the returned key is simply the java element's key.
* &lt;/p>
* @return the binding key for this field
* @see org.eclipse.jdt.core.dom.IBinding#getKey()
* @see BindingKey
* @see #isResolved()
* @since 3.1
</body>
</ownedComment>
<ownedParameter xmi:id="_fjmEkmEOEeCdEc4VzBeWeQ" type="_dSiS02EMEeCdEc4VzBeWeQ" direction="return"/>
</ownedOperation>
<ownedOperation xmi:id="_fjvOgGEOEeCdEc4VzBeWeQ" name="getTypeSignature">
<ownedComment xmi:id="_fjvOgWEOEeCdEc4VzBeWeQ">
<body>
* Returns the type signature of this field. For enum constants,
* this returns the signature of the declaring enum class.
* &lt;p>
* The type signature may be either unresolved (for source types)
* or resolved (for binary types), and either basic (for basic types)
* or rich (for parameterized types). See {@link Signature} for details.
* &lt;/p>
*
* @return the type signature of this field
* @exception JavaModelException if this element does not exist or if an
* exception occurs while accessing its corresponding resource
* @see Signature
</body>
</ownedComment>
<ownedParameter xmi:id="_fjvOgmEOEeCdEc4VzBeWeQ" type="_dSiS02EMEeCdEc4VzBeWeQ" direction="return"/>
</ownedOperation>
<ownedOperation xmi:id="_fjvOg2EOEeCdEc4VzBeWeQ" name="isEnumConstant">
<ownedComment xmi:id="_fjvOhGEOEeCdEc4VzBeWeQ">
<body>
* Returns whether this field represents an enum constant.
*
* @return whether this field represents an enum constant
* @exception JavaModelException if this element does not exist or if an
* exception occurs while accessing its corresponding resource
* @since 3.1
</body>
</ownedComment>
<ownedParameter xmi:id="_fj4_gGEOEeCdEc4VzBeWeQ" type="_dVOadGEMEeCdEc4VzBeWeQ" direction="return"/>
</ownedOperation>
<ownedOperation xmi:id="_fj4_gWEOEeCdEc4VzBeWeQ" name="isResolved">
<ownedComment xmi:id="_fj4_gmEOEeCdEc4VzBeWeQ">
<body>
* Returns whether this field represents a resolved field.
* If a field is resolved, its key contains resolved information.
*
* @return whether this field represents a resolved field.
* @since 3.1
</body>
</ownedComment>
<ownedParameter xmi:id="_fj4_g2EOEeCdEc4VzBeWeQ" type="_dVOadGEMEeCdEc4VzBeWeQ" direction="return"/>
</ownedOperation>
</packagedElement>
<packagedElement xmi:type="uml:Interface" xmi:id="_kNZzMGEMEeCdEc4VzBeWeQ" name="IImportContainer">
<ownedComment xmi:id="_kNZzMWEMEeCdEc4VzBeWeQ">
<body>
* Represents an import container is a child of a Java compilation unit that contains
* all (and only) the import declarations. If a compilation unit has no import
* declarations, no import container will be present.
*
* @noimplement This interface is not intended to be implemented by clients.
</body>
</ownedComment>
<generalization xmi:id="_swXycGEPEeCdEc4VzBeWeQ" general="_kO5A8GEMEeCdEc4VzBeWeQ"/>
<generalization xmi:id="_swXycWEPEeCdEc4VzBeWeQ" general="_kq6OkGEMEeCdEc4VzBeWeQ"/>
<generalization xmi:id="_swg8YGEPEeCdEc4VzBeWeQ" general="_kuCbEGEMEeCdEc4VzBeWeQ"/>
<ownedOperation xmi:id="_swg8YWEPEeCdEc4VzBeWeQ" name="getImport">
<ownedComment xmi:id="_swg8YmEPEeCdEc4VzBeWeQ">
<body>
* Returns the first import declaration in this import container with the given name.
* This is a handle-only method. The import declaration may or may not exist.
*
* @param name the given name
*
* @return the first import declaration in this import container with the given name
</body>
</ownedComment>
<ownedParameter xmi:id="_swg8Y2EPEeCdEc4VzBeWeQ" type="_kNjkMGEMEeCdEc4VzBeWeQ" direction="return"/>
<ownedParameter xmi:id="_swqtYGEPEeCdEc4VzBeWeQ" name="name" type="_dSiS02EMEeCdEc4VzBeWeQ"/>
</ownedOperation>
</packagedElement>
<packagedElement xmi:type="uml:Interface" xmi:id="_kNjkMGEMEeCdEc4VzBeWeQ" name="IImportDeclaration">
<ownedComment xmi:id="_kNjkMWEMEeCdEc4VzBeWeQ">
<body>
* Represents an import declaration in Java compilation unit.
*
* @noimplement This interface is not intended to be implemented by clients.
</body>
</ownedComment>
<generalization xmi:id="_8utT4GEOEeCdEc4VzBeWeQ" general="_kO5A8GEMEeCdEc4VzBeWeQ"/>
<generalization xmi:id="_8utT4WEOEeCdEc4VzBeWeQ" general="_kuCbEGEMEeCdEc4VzBeWeQ"/>
<generalization xmi:id="_8utT4mEOEeCdEc4VzBeWeQ" general="_kssXQGEMEeCdEc4VzBeWeQ"/>
<ownedOperation xmi:id="_8u2d0GEOEeCdEc4VzBeWeQ" name="getElementName">
<ownedComment xmi:id="_8u2d0WEOEeCdEc4VzBeWeQ">
<body>
* Returns the name that has been imported.
* For an on-demand import, this includes the trailing &lt;code>&quot;.*&quot;&lt;/code>.
* For example, for the statement &lt;code>&quot;import java.util.*&quot;&lt;/code>,
* this returns &lt;code>&quot;java.util.*&quot;&lt;/code>.
* For the statement &lt;code>&quot;import java.util.Hashtable&quot;&lt;/code>,
* this returns &lt;code>&quot;java.util.Hashtable&quot;&lt;/code>.
*
* @return the name that has been imported
</body>
</ownedComment>
<ownedParameter xmi:id="_8u2d0mEOEeCdEc4VzBeWeQ" type="_dSiS02EMEeCdEc4VzBeWeQ" direction="return"/>
</ownedOperation>
<ownedOperation xmi:id="_8vAO0GEOEeCdEc4VzBeWeQ" name="getFlags">
<ownedComment xmi:id="_8vAO0WEOEeCdEc4VzBeWeQ">
<body>
* Returns the modifier flags for this import. The flags can be examined using class
* &lt;code>Flags&lt;/code>. Only the static flag is meaningful for import declarations.
*
* @return the modifier flags for this import
* @exception JavaModelException if this element does not exist or if an
* exception occurs while accessing its corresponding resource.
* @see Flags
* @since 3.0
</body>
</ownedComment>
<ownedParameter xmi:id="_8vAO0mEOEeCdEc4VzBeWeQ" type="_dTlbsGEMEeCdEc4VzBeWeQ" direction="return"/>
</ownedOperation>
<ownedOperation xmi:id="_8vAO02EOEeCdEc4VzBeWeQ" name="isOnDemand">
<ownedComment xmi:id="_8vAO1GEOEeCdEc4VzBeWeQ">
<body>
* Returns whether the import is on-demand. An import is on-demand if it ends
* with &lt;code>&quot;.*&quot;&lt;/code>.
* @return true if the import is on-demand, false otherwise
</body>
</ownedComment>
<ownedParameter xmi:id="_8vJ_0GEOEeCdEc4VzBeWeQ" type="_dVOadGEMEeCdEc4VzBeWeQ" direction="return"/>
</ownedOperation>
</packagedElement>
<packagedElement xmi:type="uml:Interface" xmi:id="_kNjkMmEMEeCdEc4VzBeWeQ" name="IInitializer">
<ownedComment xmi:id="_kNjkM2EMEeCdEc4VzBeWeQ">
<body>
* Represents a stand-alone instance or class (static) initializer in a type.
*
* @noimplement This interface is not intended to be implemented by clients.
</body>
</ownedComment>
<generalization xmi:id="_G2eJ0GHaEeCIr_fxSkYSJA" general="_klF6cGEMEeCdEc4VzBeWeQ"/>
</packagedElement>
<packagedElement xmi:type="uml:Interface" xmi:id="_kOJaEGEMEeCdEc4VzBeWeQ" name="IJarEntryResource">
<ownedComment xmi:id="_kOJaEWEMEeCdEc4VzBeWeQ">
<body>
* A jar entry corresponding to a non-Java resource in an archive {@link IPackageFragment} or {@link IPackageFragmentRoot}.
* &lt;p>
* One can navigate the non-Java resource tree using the {@link #getChildren()} and {@link #getParent()} methods.
* Jar entry resources are either files ({@link #isFile()} returns true) or directories ({@link #isFile()} returns false).
* Files don't have any children and the returned array is always empty.
* &lt;/p>&lt;p>
* Jar entry resources that refer to the same element are guaranteed to be equal, but not necessarily identical.
* &lt;p>
*
* @since 3.3
</body>
</ownedComment>
<generalization xmi:id="_kOJaE2EMEeCdEc4VzBeWeQ" general="_kOJaEmEMEeCdEc4VzBeWeQ"/>
<ownedOperation xmi:id="_kOTLEGEMEeCdEc4VzBeWeQ" name="getChildren">
<ownedComment xmi:id="_kOTLEWEMEeCdEc4VzBeWeQ">
<body>
* Returns the list of children of this jar entry resource.
* Returns an empty array if this jar entry is a file, or if this jar entry is a directory and it has no children.
*
* @return the children of this jar entry resource
</body>
</ownedComment>
<ownedParameter xmi:id="_kOTLEmEMEeCdEc4VzBeWeQ" type="_kOJaEGEMEeCdEc4VzBeWeQ" direction="return">
<upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_kOTLFGEMEeCdEc4VzBeWeQ" value="*"/>
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_kOTLE2EMEeCdEc4VzBeWeQ"/>
</ownedParameter>
</ownedOperation>
<ownedOperation xmi:id="_kOTLFWEMEeCdEc4VzBeWeQ" name="getFullPath">
<ownedComment xmi:id="_kOTLFmEMEeCdEc4VzBeWeQ">
<body>
* Returns the full, absolute path of this jar entry resource relative to the archive this jar
* entry belongs to.
* &lt;p>
* A jar entry resource's full path indicates the route from the root of the archive
* to the jar entry resource. Within an archive, there is exactly one such path
* for any given jar entry resource. &lt;/p>
* &lt;p>
* The returned path is absolute (i.e. it starts with a separator) and it never has a trailing separator.
* &lt;/p>
*
* @return the absolute path of this jar entry resource
</body>
</ownedComment>
<ownedParameter xmi:id="_kOTLF2EMEeCdEc4VzBeWeQ" type="_j00UEmEMEeCdEc4VzBeWeQ" direction="return"/>
</ownedOperation>
<ownedOperation xmi:id="_kOcVAGEMEeCdEc4VzBeWeQ" name="getParent">
<ownedComment xmi:id="_kOcVAWEMEeCdEc4VzBeWeQ">
<body>
* Returns the parent of this jar entry resource. This is either an {@link IJarEntryResource}, an {@link IPackageFragment}
* or an {@link IPackageFragmentRoot}.
*
* @return the parent of this jar entry resource
</body>
</ownedComment>
<ownedParameter xmi:id="_kOcVA2EMEeCdEc4VzBeWeQ" type="_kOcVAmEMEeCdEc4VzBeWeQ" direction="return"/>
</ownedOperation>
<ownedOperation xmi:id="_kOcVBGEMEeCdEc4VzBeWeQ" name="getPackageFragmentRoot">
<ownedComment xmi:id="_kOcVBWEMEeCdEc4VzBeWeQ">
<body>
* Returns the package fragment root this jar entry resource belongs to.
*
* @return the package fragment root this jar entry resource belongs to.
</body>
</ownedComment>
</ownedOperation>
</packagedElement>
<packagedElement xmi:type="uml:Interface" xmi:id="_kO5A8GEMEeCdEc4VzBeWeQ" name="IJavaElement">
<ownedComment xmi:id="_kO5A8WEMEeCdEc4VzBeWeQ">
<body>
* Common protocol for all elements provided by the Java model.
* Java model elements are exposed to clients as handles to the actual underlying element.
* The Java model may hand out any number of handles for each element. Handles
* that refer to the same element are guaranteed to be equal, but not necessarily identical.
* &lt;p>
* Methods annotated as &quot;handle-only&quot; do not require underlying elements to exist.
* Methods that require underlying elements to exist throw
* a &lt;code>JavaModelException&lt;/code> when an underlying element is missing.
* &lt;code>JavaModelException.isDoesNotExist&lt;/code> can be used to recognize
* this common special case.
* &lt;/p>
* @noimplement This interface is not intended to be implemented by clients.
</body>
</ownedComment>
<generalization xmi:id="_kO5A82EMEeCdEc4VzBeWeQ" general="_kO5A8mEMEeCdEc4VzBeWeQ"/>
<ownedAttribute xmi:id="_kO5A9GEMEeCdEc4VzBeWeQ" name="JAVA_MODEL" type="_dTlbsGEMEeCdEc4VzBeWeQ" isUnique="false">
<ownedComment xmi:id="_kPCx8GEMEeCdEc4VzBeWeQ">
<body>
* Constant representing a Java model (workspace level object).
* A Java element with this type can be safely cast to {@link IJavaModel}.
</body>
</ownedComment>
</ownedAttribute>
<ownedAttribute xmi:id="_kPCx8WEMEeCdEc4VzBeWeQ" name="JAVA_PROJECT" type="_dTlbsGEMEeCdEc4VzBeWeQ" isUnique="false">
<ownedComment xmi:id="_kPCx8mEMEeCdEc4VzBeWeQ">
<body>
* Constant representing a Java project.
* A Java element with this type can be safely cast to {@link IJavaProject}.
</body>
</ownedComment>
</ownedAttribute>
<ownedAttribute xmi:id="_kPCx82EMEeCdEc4VzBeWeQ" name="PACKAGE_FRAGMENT_ROOT" type="_dTlbsGEMEeCdEc4VzBeWeQ" isUnique="false">
<ownedComment xmi:id="_kPCx9GEMEeCdEc4VzBeWeQ">
<body>
* Constant representing a package fragment root.
* A Java element with this type can be safely cast to {@link IPackageFragmentRoot}.
</body>
</ownedComment>
</ownedAttribute>
<ownedAttribute xmi:id="_kPL74GEMEeCdEc4VzBeWeQ" name="PACKAGE_FRAGMENT" type="_dTlbsGEMEeCdEc4VzBeWeQ" isUnique="false">
<ownedComment xmi:id="_kPL74WEMEeCdEc4VzBeWeQ">
<body>
* Constant representing a package fragment.
* A Java element with this type can be safely cast to {@link IPackageFragment}.
</body>
</ownedComment>
</ownedAttribute>
<ownedAttribute xmi:id="_kPL74mEMEeCdEc4VzBeWeQ" name="COMPILATION_UNIT" type="_dTlbsGEMEeCdEc4VzBeWeQ" isUnique="false">
<ownedComment xmi:id="_kPL742EMEeCdEc4VzBeWeQ">
<body>
* Constant representing a Java compilation unit.
* A Java element with this type can be safely cast to {@link ICompilationUnit}.
</body>
</ownedComment>
</ownedAttribute>
<ownedAttribute xmi:id="_kPL75GEMEeCdEc4VzBeWeQ" name="CLASS_FILE" type="_dTlbsGEMEeCdEc4VzBeWeQ" isUnique="false">
<ownedComment xmi:id="_kPVs4GEMEeCdEc4VzBeWeQ">
<body>
* Constant representing a class file.
* A Java element with this type can be safely cast to {@link IClassFile}.
</body>
</ownedComment>
</ownedAttribute>
<ownedAttribute xmi:id="_kPVs4WEMEeCdEc4VzBeWeQ" name="TYPE" type="_dTlbsGEMEeCdEc4VzBeWeQ" isUnique="false">
<ownedComment xmi:id="_kPVs4mEMEeCdEc4VzBeWeQ">
<body>
* Constant representing a type (a class or interface).
* A Java element with this type can be safely cast to {@link IType}.
</body>
</ownedComment>
</ownedAttribute>
<ownedAttribute xmi:id="_kPVs42EMEeCdEc4VzBeWeQ" name="FIELD" type="_dTlbsGEMEeCdEc4VzBeWeQ" isUnique="false">
<ownedComment xmi:id="_kPfd4GEMEeCdEc4VzBeWeQ">
<body>
* Constant representing a field.
* A Java element with this type can be safely cast to {@link IField}.
</body>
</ownedComment>
</ownedAttribute>
<ownedAttribute xmi:id="_kPfd4WEMEeCdEc4VzBeWeQ" name="METHOD" type="_dTlbsGEMEeCdEc4VzBeWeQ" isUnique="false">
<ownedComment xmi:id="_kPfd4mEMEeCdEc4VzBeWeQ">
<body>
* Constant representing a method or constructor.
* A Java element with this type can be safely cast to {@link IMethod}.
</body>
</ownedComment>
</ownedAttribute>
<ownedAttribute xmi:id="_kPon0GEMEeCdEc4VzBeWeQ" name="INITIALIZER" type="_dTlbsGEMEeCdEc4VzBeWeQ" isUnique="false">
<ownedComment xmi:id="_kPon0WEMEeCdEc4VzBeWeQ">
<body>
* Constant representing a stand-alone instance or class initializer.
* A Java element with this type can be safely cast to {@link IInitializer}.
</body>
</ownedComment>
</ownedAttribute>
<ownedAttribute xmi:id="_kPyY0GEMEeCdEc4VzBeWeQ" name="PACKAGE_DECLARATION" type="_dTlbsGEMEeCdEc4VzBeWeQ" isUnique="false">
<ownedComment xmi:id="_kPyY0WEMEeCdEc4VzBeWeQ">
<body>
* Constant representing a package declaration within a compilation unit.
* A Java element with this type can be safely cast to {@link IPackageDeclaration}.
</body>
</ownedComment>
</ownedAttribute>
<ownedAttribute xmi:id="_kPyY0mEMEeCdEc4VzBeWeQ" name="IMPORT_CONTAINER" type="_dTlbsGEMEeCdEc4VzBeWeQ" isUnique="false">
<ownedComment xmi:id="_kPyY02EMEeCdEc4VzBeWeQ">
<body>
* Constant representing all import declarations within a compilation unit.
* A Java element with this type can be safely cast to {@link IImportContainer}.
</body>
</ownedComment>
</ownedAttribute>
<ownedAttribute xmi:id="_kPyY1GEMEeCdEc4VzBeWeQ" name="IMPORT_DECLARATION" type="_dTlbsGEMEeCdEc4VzBeWeQ" isUnique="false">
<ownedComment xmi:id="_kP8J0GEMEeCdEc4VzBeWeQ">
<body>
* Constant representing an import declaration within a compilation unit.
* A Java element with this type can be safely cast to {@link IImportDeclaration}.
</body>
</ownedComment>
</ownedAttribute>
<ownedAttribute xmi:id="_kP8J0WEMEeCdEc4VzBeWeQ" name="LOCAL_VARIABLE" type="_dTlbsGEMEeCdEc4VzBeWeQ" isUnique="false">
<ownedComment xmi:id="_kP8J0mEMEeCdEc4VzBeWeQ">
<body>
* Constant representing a local variable declaration.
* A Java element with this type can be safely cast to {@link ILocalVariable}.
* @since 3.0
</body>
</ownedComment>
</ownedAttribute>
<ownedAttribute xmi:id="_kP8J02EMEeCdEc4VzBeWeQ" name="TYPE_PARAMETER" type="_dTlbsGEMEeCdEc4VzBeWeQ" isUnique="false">
<ownedComment xmi:id="_kP8J1GEMEeCdEc4VzBeWeQ">
<body>
* Constant representing a type parameter declaration.
* A Java element with this type can be safely cast to {@link ITypeParameter}.
* @since 3.1
</body>
</ownedComment>
</ownedAttribute>
<ownedAttribute xmi:id="_kP8J1WEMEeCdEc4VzBeWeQ" name="ANNOTATION" type="_dTlbsGEMEeCdEc4VzBeWeQ" isUnique="false">
<ownedComment xmi:id="_kQFTwGEMEeCdEc4VzBeWeQ">
<body>
* Constant representing an annotation.
* A Java element with this type can be safely cast to {@link IAnnotation}.
* @since 3.4
</body>
</ownedComment>
</ownedAttribute>
<ownedOperation xmi:id="_kQFTwWEMEeCdEc4VzBeWeQ" name="exists">
<ownedComment xmi:id="_kQFTwmEMEeCdEc4VzBeWeQ">
<body>
* Returns whether this Java element exists in the model.
* &lt;p>
* Java elements are handle objects that may or may not be backed by an
* actual element. Java elements that are backed by an actual element are
* said to &quot;exist&quot;, and this method returns &lt;code>true&lt;/code>. For Java
* elements that are not working copies, it is always the case that if the
* element exists, then its parent also exists (provided it has one) and
* includes the element as one of its children. It is therefore possible
* to navigated to any existing Java element from the root of the Java model
* along a chain of existing Java elements. On the other hand, working
* copies are said to exist until they are destroyed (with
* &lt;code>IWorkingCopy.destroy&lt;/code>). Unlike regular Java elements, a
* working copy never shows up among the children of its parent element
* (which may or may not exist).
* &lt;/p>
*
* @return &lt;code>true&lt;/code> if this element exists in the Java model, and
* &lt;code>false&lt;/code> if this element does not exist
</body>
</ownedComment>
<ownedParameter xmi:id="_kQFTw2EMEeCdEc4VzBeWeQ" type="_dVOadGEMEeCdEc4VzBeWeQ" direction="return"/>
</ownedOperation>
<ownedOperation xmi:id="_kQPEwGEMEeCdEc4VzBeWeQ" name="getAncestor">
<ownedComment xmi:id="_kQPEwWEMEeCdEc4VzBeWeQ">
<body>
* Returns the first ancestor of this Java element that has the given type.
* Returns &lt;code>null&lt;/code> if no such an ancestor can be found.
* This is a handle-only method.
*
* @param ancestorType the given type
* @return the first ancestor of this Java element that has the given type, null if no such an ancestor can be found
* @since 2.0
</body>
</ownedComment>
<ownedParameter xmi:id="_kQPEwmEMEeCdEc4VzBeWeQ" type="_kO5A8GEMEeCdEc4VzBeWeQ" direction="return"/>
<ownedParameter xmi:id="_kQYOsGEMEeCdEc4VzBeWeQ" name="ancestorType" type="_dTlbsGEMEeCdEc4VzBeWeQ"/>
</ownedOperation>
<ownedOperation xmi:id="_kQYOsWEMEeCdEc4VzBeWeQ" name="getAttachedJavadoc">
<ownedComment xmi:id="_kQYOsmEMEeCdEc4VzBeWeQ">
<body>
* &lt;p>Returns the Javadoc as an html source if this element has an attached javadoc,
* null otherwise.&lt;/p>
* &lt;p>This should be used only for binary elements. Source elements will always return null.&lt;/p>
* &lt;p>The encoding used to read the javadoc is the one defined by the content type of the
* file. If none is defined, then the project's encoding of this java element is used. If the project's
* encoding cannot be retrieved, then the platform encoding is used.&lt;/p>
* &lt;p>In case of the javadoc doesn't exist for this element, null is returned.&lt;/p>
*
* &lt;p>The html is extracted from the attached javadoc and provided as is. No
* transformation or validation is done.&lt;/p>
*
* @param monitor the given progress monitor
* @exception JavaModelException if:&lt;ul>
* &lt;li>this element does not exist&lt;/li>
* &lt;li>retrieving the attached javadoc fails (timed-out, invalid URL, ...)&lt;/li>
* &lt;li>the format of the javadoc doesn't match expected standards (different anchors,...)&lt;/li>
* &lt;/ul>
* @return the extracted javadoc from the attached javadoc, null if none
* @see IClasspathAttribute#JAVADOC_LOCATION_ATTRIBUTE_NAME
* @since 3.2
</body>
</ownedComment>
<ownedParameter xmi:id="_kQYOs2EMEeCdEc4VzBeWeQ" type="_dSiS02EMEeCdEc4VzBeWeQ" direction="return"/>
<ownedParameter xmi:id="_kQYOtGEMEeCdEc4VzBeWeQ" name="monitor" type="_jqFqwGEMEeCdEc4VzBeWeQ"/>
</ownedOperation>
<ownedOperation xmi:id="_kQh_sGEMEeCdEc4VzBeWeQ" name="getCorrespondingResource">
<ownedComment xmi:id="_kQh_sWEMEeCdEc4VzBeWeQ">
<body>
* Returns the resource that corresponds directly to this element,
* or &lt;code>null&lt;/code> if there is no resource that corresponds to
* this element.
* &lt;p>
* For example, the corresponding resource for an &lt;code>ICompilationUnit&lt;/code>
* is its underlying &lt;code>IFile&lt;/code>. The corresponding resource for
* an &lt;code>IPackageFragment&lt;/code> that is not contained in an archive
* is its underlying &lt;code>IFolder&lt;/code>. An &lt;code>IPackageFragment&lt;/code>
* contained in an archive has no corresponding resource. Similarly, there
* are no corresponding resources for &lt;code>IMethods&lt;/code>,
* &lt;code>IFields&lt;/code>, etc.
* &lt;p>
*
* @return the corresponding resource, or &lt;code>null&lt;/code> if none
* @exception JavaModelException if this element does not exist or if an
* exception occurs while accessing its corresponding resource
</body>
</ownedComment>
<ownedParameter xmi:id="_kQh_s2EMEeCdEc4VzBeWeQ" type="_kQh_smEMEeCdEc4VzBeWeQ" direction="return"/>
</ownedOperation>
<ownedOperation xmi:id="_kQh_tGEMEeCdEc4VzBeWeQ" name="getElementName">
<ownedComment xmi:id="_kQh_tWEMEeCdEc4VzBeWeQ">
<body>
* Returns the name of this element. This is a handle-only method.
*
* @return the element name
</body>
</ownedComment>
<ownedParameter xmi:id="_kQh_tmEMEeCdEc4VzBeWeQ" type="_dSiS02EMEeCdEc4VzBeWeQ" direction="return"/>
</ownedOperation>
<ownedOperation xmi:id="_kQh_t2EMEeCdEc4VzBeWeQ" name="getElementType">
<ownedComment xmi:id="_kQh_uGEMEeCdEc4VzBeWeQ">
<body>
* Returns this element's kind encoded as an integer.
* This is a handle-only method.
*
* @return the kind of element; one of the constants declared in
* &lt;code>IJavaElement&lt;/code>
* @see IJavaElement
</body>
</ownedComment>
<ownedParameter xmi:id="_kQh_uWEMEeCdEc4VzBeWeQ" type="_dTlbsGEMEeCdEc4VzBeWeQ" direction="return"/>
</ownedOperation>
<ownedOperation xmi:id="_kQrwsGEMEeCdEc4VzBeWeQ" name="getHandleIdentifier">
<ownedComment xmi:id="_kQrwsWEMEeCdEc4VzBeWeQ">
<body>
* Returns a string representation of this element handle. The format of
* the string is not specified; however, the identifier is stable across
* workspace sessions, and can be used to recreate this handle via the
* &lt;code>JavaCore.create(String)&lt;/code> method.
*
* @return the string handle identifier
* @see JavaCore#create(java.lang.String)
</body>
</ownedComment>
<ownedParameter xmi:id="_kQrwsmEMEeCdEc4VzBeWeQ" type="_dSiS02EMEeCdEc4VzBeWeQ" direction="return"/>
</ownedOperation>
<ownedOperation xmi:id="_kQrws2EMEeCdEc4VzBeWeQ" name="getJavaModel">
<ownedComment xmi:id="_kQrwtGEMEeCdEc4VzBeWeQ">
<body>
* Returns the Java model.
* This is a handle-only method.
*
* @return the Java model
</body>
</ownedComment>
<ownedParameter xmi:id="_szN0kGHfEeCIr_fxSkYSJA" type="_kYbXcGEMEeCdEc4VzBeWeQ" direction="return"/>
</ownedOperation>
<ownedOperation xmi:id="_szXlkGHfEeCIr_fxSkYSJA" name="getJavaProject">
<ownedComment xmi:id="_szXlkWHfEeCIr_fxSkYSJA">
<body>
* Returns the Java project this element is contained in,
* or &lt;code>null&lt;/code> if this element is not contained in any Java project
* (for instance, the &lt;code>IJavaModel&lt;/code> is not contained in any Java
* project).
* This is a handle-only method.
*
* @return the containing Java project, or &lt;code>null&lt;/code> if this element is
* not contained in a Java project
</body>
</ownedComment>
<ownedParameter xmi:id="_szXlkmHfEeCIr_fxSkYSJA" type="_kjmssGEMEeCdEc4VzBeWeQ" direction="return"/>
</ownedOperation>
<ownedOperation xmi:id="_szXlk2HfEeCIr_fxSkYSJA" name="getOpenable">
<ownedComment xmi:id="_szXllGHfEeCIr_fxSkYSJA">
<body>
* Returns the first openable parent. If this element is openable, the element
* itself is returned. Returns &lt;code>null&lt;/code> if this element doesn't have
* an openable parent.
* This is a handle-only method.
*
* @return the first openable parent or &lt;code>null&lt;/code> if this element doesn't have
* an openable parent.
* @since 2.0
</body>
</ownedComment>
<ownedParameter xmi:id="_szhWkGHfEeCIr_fxSkYSJA" type="_koX38GEMEeCdEc4VzBeWeQ" direction="return"/>
</ownedOperation>
<ownedOperation xmi:id="_szhWkWHfEeCIr_fxSkYSJA" name="getParent">
<ownedComment xmi:id="_szhWkmHfEeCIr_fxSkYSJA">
<body>
* Returns the element directly containing this element,
* or &lt;code>null&lt;/code> if this element has no parent.
* This is a handle-only method.
*
* @return the parent element, or &lt;code>null&lt;/code> if this element has no parent
</body>
</ownedComment>
<ownedParameter xmi:id="_szqggGHfEeCIr_fxSkYSJA" type="_kO5A8GEMEeCdEc4VzBeWeQ" direction="return"/>
</ownedOperation>
<ownedOperation xmi:id="_szqggWHfEeCIr_fxSkYSJA" name="getPath">
<ownedComment xmi:id="_szqggmHfEeCIr_fxSkYSJA">
<body>
* Returns the path to the innermost resource enclosing this element.
* If this element is not included in an external library,
* the path returned is the full, absolute path to the underlying resource,
* relative to the workbench.
* If this element is included in an external library,
* the path returned is the absolute path to the archive or to the
* folder in the file system.
* This is a handle-only method.
*
* @return the path to the innermost resource enclosing this element
* @since 2.0
</body>
</ownedComment>
<ownedParameter xmi:id="_sz0RgGHfEeCIr_fxSkYSJA" type="_j00UEmEMEeCdEc4VzBeWeQ" direction="return"/>
</ownedOperation>
<ownedOperation xmi:id="_sz0RgWHfEeCIr_fxSkYSJA" name="getPrimaryElement">
<ownedComment xmi:id="_sz0RgmHfEeCIr_fxSkYSJA">
<body>
* Returns the primary element (whose compilation unit is the primary compilation unit)
* this working copy element was created from, or this element if it is a descendant of a
* primary compilation unit or if it is not a descendant of a working copy (e.g. it is a
* binary member).
* The returned element may or may not exist.
*
* @return the primary element this working copy element was created from, or this
* element.
* @since 3.0
</body>
</ownedComment>
<ownedParameter xmi:id="_sz0Rg2HfEeCIr_fxSkYSJA" type="_kO5A8GEMEeCdEc4VzBeWeQ" direction="return"/>
</ownedOperation>
<ownedOperation xmi:id="_sz9bcGHfEeCIr_fxSkYSJA" name="getResource">
<ownedComment xmi:id="_sz9bcWHfEeCIr_fxSkYSJA">
<body>
* Returns the innermost resource enclosing this element.
* If this element is included in an archive and this archive is not external,
* this is the underlying resource corresponding to the archive.
* If this element is included in an external library, &lt;code>null&lt;/code>
* is returned.
* This is a handle-only method.
*
* @return the innermost resource enclosing this element, &lt;code>null&lt;/code> if this
* element is included in an external archive
* @since 2.0
</body>
</ownedComment>
<ownedParameter xmi:id="_sz9bcmHfEeCIr_fxSkYSJA" type="_kQh_smEMEeCdEc4VzBeWeQ" direction="return"/>
</ownedOperation>
<ownedOperation xmi:id="_s0HMcGHfEeCIr_fxSkYSJA" name="getSchedulingRule">
<ownedComment xmi:id="_s0HMcWHfEeCIr_fxSkYSJA">
<body>
* Returns the scheduling rule associated with this Java element.
* This is a handle-only method.
*
* @return the scheduling rule associated with this Java element
* @since 3.0
</body>
</ownedComment>
<ownedParameter xmi:id="_s0Q9cGHfEeCIr_fxSkYSJA" type="_s0HMc2HfEeCIr_fxSkYSJA" direction="return"/>
</ownedOperation>
<ownedOperation xmi:id="_s0Q9cWHfEeCIr_fxSkYSJA" name="getUnderlyingResource">
<ownedComment xmi:id="_s0Q9cmHfEeCIr_fxSkYSJA">
<body>
* Returns the smallest underlying resource that contains
* this element, or &lt;code>null&lt;/code> if this element is not contained
* in a resource.
*
* @return the underlying resource, or &lt;code>null&lt;/code> if none
* @exception JavaModelException if this element does not exist or if an
* exception occurs while accessing its underlying resource
</body>
</ownedComment>
<ownedParameter xmi:id="_s0Q9c2HfEeCIr_fxSkYSJA" type="_kQh_smEMEeCdEc4VzBeWeQ" direction="return"/>
</ownedOperation>
<ownedOperation xmi:id="_s0aHYGHfEeCIr_fxSkYSJA" name="isReadOnly">
<ownedComment xmi:id="_s0aHYWHfEeCIr_fxSkYSJA">
<body>
* Returns whether this Java element is read-only. An element is read-only
* if its structure cannot be modified by the java model.
* &lt;p>
* Note this is different from IResource.isReadOnly(). For example, .jar
* files are read-only as the java model doesn't know how to add/remove
* elements in this file, but the underlying IFile can be writable.
* &lt;p>
* This is a handle-only method.
*
* @return &lt;code>true&lt;/code> if this element is read-only
</body>
</ownedComment>
<ownedParameter xmi:id="_s0aHYmHfEeCIr_fxSkYSJA" type="_dVOadGEMEeCdEc4VzBeWeQ" direction="return"/>
</ownedOperation>
<ownedOperation xmi:id="_s0j4YGHfEeCIr_fxSkYSJA" name="isStructureKnown">
<ownedParameter xmi:id="_s0j4YWHfEeCIr_fxSkYSJA" type="_dVOadGEMEeCdEc4VzBeWeQ" direction="return"/>
</ownedOperation>
</packagedElement>
<packagedElement xmi:type="uml:Interface" xmi:id="_kRkhgGEMEeCdEc4VzBeWeQ" name="IJavaElementDelta">
<ownedComment xmi:id="_kRkhgWEMEeCdEc4VzBeWeQ">
<body>
* A Java element delta describes changes in Java element between two discrete
* points in time. Given a delta, clients can access the element that has
* changed, and any children that have changed.
* &lt;p>
* Deltas have a different status depending on the kind of change they represent.
* The list below summarizes each status (as returned by {@link #getKind})
* and its meaning (see individual constants for a more detailled description):
* &lt;ul>
* &lt;li>{@link #ADDED} - The element described by the delta has been added.&lt;/li>
* &lt;li>{@link #REMOVED} - The element described by the delta has been removed.&lt;/li>
* &lt;li>{@link #CHANGED} - The element described by the delta has been changed in some way.
* Specification of the type of change is provided by {@link #getFlags} which returns the following values:
* &lt;ul>
* &lt;li>{@link #F_ADDED_TO_CLASSPATH} - A classpath entry corresponding to the element
* has been added to the project's classpath. This flag is only valid if the element is an
* {@link IPackageFragmentRoot}.&lt;/li>
* &lt;li>{@link #F_ARCHIVE_CONTENT_CHANGED} - The contents of an archive
* has changed in some way. This flag is only valid if the element is an {@link IPackageFragmentRoot}
* which is an archive.&lt;/li>
* &lt;li>{@link #F_CHILDREN} - A child of the element has changed in some way. This flag
* is only valid if the element is an {@link IParent}.&lt;/li>
* &lt;li>{@link #F_CLASSPATH_REORDER} - A classpath entry corresponding to the element
* has changed position in the project's classpath. This flag is only valid if the element is an
* {@link IPackageFragmentRoot}.&lt;/li>
* &lt;li>{@link #F_CLOSED} - The underlying {@link org.eclipse.core.resources.IProject}
* has been closed. This flag is only valid if the element is an {@link IJavaProject}.&lt;/li>
* &lt;li>{@link #F_CONTENT} - The contents of the element have been altered. This flag
* is only valid for elements which correspond to files.&lt;/li>
*&lt;li>{@link #F_FINE_GRAINED} - The delta is a fine-grained delta, that is, an analysis down
* to the members level was done to determine if there were structural changes to members of the element.&lt;/li>
* &lt;li>{@link #F_MODIFIERS} - The modifiers on the element have changed in some way.
* This flag is only valid if the element is an {@link IMember}.&lt;/li>
* &lt;li>{@link #F_OPENED} - The underlying {@link org.eclipse.core.resources.IProject}
* has been opened. This flag is only valid if the element is an {@link IJavaProject}.&lt;/li>
* &lt;li>{@link #F_REMOVED_FROM_CLASSPATH} - A classpath entry corresponding to the element
* has been removed from the project's classpath. This flag is only valid if the element is an
* {@link IPackageFragmentRoot}.&lt;/li>
* &lt;li>{@link #F_SOURCEATTACHED} - The source attachment path or the source attachment root path
* of a classpath entry corresponding to the element was added. This flag is only valid if the element is an
* {@link IPackageFragmentRoot}.&lt;/li>
* &lt;li>{@link #F_SOURCEDETACHED} - The source attachment path or the source attachment root path
* of a classpath entry corresponding to the element was removed. This flag is only valid if the element is an
* {@link IPackageFragmentRoot}.&lt;/li>
* &lt;li>{@link #F_SUPER_TYPES} - One of the supertypes of an {@link IType} has changed&lt;/li>.
* &lt;/ul>
* &lt;/li>
* &lt;/ul>
* &lt;/p>
* &lt;p>
* Move operations are indicated by other change flags, layered on top
* of the change flags described above. If element A is moved to become B,
* the delta for the change in A will have status {@link #REMOVED},
* with change flag {@link #F_MOVED_TO}. In this case,
* {@link #getMovedToElement} on delta A will return the handle for B.
* The delta for B will have status {@link #ADDED}, with change flag
* {@link #F_MOVED_FROM}, and {@link #getMovedFromElement} on delta
* B will return the handle for A. (Note, the handle to A in this case represents
* an element that no longer exists).
* &lt;/p>
* &lt;p>
* Note that the move change flags only describe the changes to a single element, they
* do not imply anything about the parent or children of the element.
* &lt;/p>
* &lt;p>
* The {@link #F_ADDED_TO_CLASSPATH}, {@link #F_REMOVED_FROM_CLASSPATH} and
* {@link #F_CLASSPATH_REORDER} flags are triggered by changes to a project's classpath. They do not mean that
* the underlying resource was added, removed or changed. For example, if a project P already contains a folder src, then
* adding a classpath entry with the 'P/src' path to the project's classpath will result in an {@link IJavaElementDelta}
* with the {@link #F_ADDED_TO_CLASSPATH} flag for the {@link IPackageFragmentRoot} P/src.
* On the contrary, if a resource is physically added, removed or changed and this resource corresponds to a classpath
* entry of the project, then an {@link IJavaElementDelta} with the {@link #ADDED},
* {@link #REMOVED}, or {@link #CHANGED} kind will be fired.
* &lt;/p>
* &lt;p>
* Note that when a source attachment path or a source attachment root path is changed, then the flags of the delta contain
* both {@link #F_SOURCEATTACHED} and {@link #F_SOURCEDETACHED}.
* &lt;/p>
* &lt;p>
* No assumptions should be made on whether the java element delta tree is rooted at the {@link IJavaModel}
* level or not.
* &lt;/p>
* &lt;p>
* {@link IJavaElementDelta} object are not valid outside the dynamic scope
* of the notification.
* &lt;/p>
*
* @noimplement This interface is not intended to be implemented by clients.
</body>
</ownedComment>
<ownedAttribute xmi:id="_kRkhgmEMEeCdEc4VzBeWeQ" name="ADDED" visibility="public" type="_dTlbsGEMEeCdEc4VzBeWeQ" isUnique="false">
<ownedComment xmi:id="_kRkhg2EMEeCdEc4VzBeWeQ">
<body>
* Status constant indicating that the element has been added.
* Note that an added java element delta has no children, as they are all implicitely added.
</body>
</ownedComment>
</ownedAttribute>
<ownedAttribute xmi:id="_kRuSgGEMEeCdEc4VzBeWeQ" name="REMOVED" visibility="public" type="_dTlbsGEMEeCdEc4VzBeWeQ" isUnique="false">
<ownedComment xmi:id="_kR4DgGEMEeCdEc4VzBeWeQ">
<body>
* Status constant indicating that the element has been removed.
* Note that a removed java element delta has no children, as they are all implicitely removed.
</body>
</ownedComment>
</ownedAttribute>
<ownedAttribute xmi:id="_kR4DgWEMEeCdEc4VzBeWeQ" name="CHANGED" visibility="public" type="_dTlbsGEMEeCdEc4VzBeWeQ" isUnique="false">
<ownedComment xmi:id="_kR4DgmEMEeCdEc4VzBeWeQ">
<body>
* Status constant indicating that the element has been changed,
* as described by the change flags.
*
* @see #getFlags()
</body>
</ownedComment>
</ownedAttribute>
<ownedAttribute xmi:id="_kR4Dg2EMEeCdEc4VzBeWeQ" name="F_CONTENT" visibility="public" type="_dTlbsGEMEeCdEc4VzBeWeQ" isUnique="false">
<ownedComment xmi:id="_kSBNcGEMEeCdEc4VzBeWeQ">
<body>
* Change flag indicating that the content of the element has changed.
* This flag is only valid for elements which correspond to files.
</body>
</ownedComment>
</ownedAttribute>
<ownedAttribute xmi:id="_kSBNcWEMEeCdEc4VzBeWeQ" name="F_MODIFIERS" visibility="public" type="_dTlbsGEMEeCdEc4VzBeWeQ" isUnique="false">
<ownedComment xmi:id="_kSBNcmEMEeCdEc4VzBeWeQ">
<body>
* Change flag indicating that the modifiers of the element have changed.
* This flag is only valid if the element is an {@link IMember}.
</body>
</ownedComment>
</ownedAttribute>
<ownedAttribute xmi:id="_kSBNc2EMEeCdEc4VzBeWeQ" name="F_CHILDREN" visibility="public" type="_dTlbsGEMEeCdEc4VzBeWeQ" isUnique="false">
<ownedComment xmi:id="_kSK-cGEMEeCdEc4VzBeWeQ">
<body>
* Change flag indicating that there are changes to the children of the element.
* This flag is only valid if the element is an {@link IParent}.
</body>
</ownedComment>
</ownedAttribute>
<ownedAttribute xmi:id="_kSK-cWEMEeCdEc4VzBeWeQ" name="F_MOVED_FROM" visibility="public" type="_dTlbsGEMEeCdEc4VzBeWeQ" isUnique="false">
<ownedComment xmi:id="_kSUvcGEMEeCdEc4VzBeWeQ">
<body>
* Change flag indicating that the element was moved from another location.
* The location of the old element can be retrieved using {@link #getMovedFromElement}.
</body>
</ownedComment>
</ownedAttribute>
<ownedAttribute xmi:id="_kSUvcWEMEeCdEc4VzBeWeQ" name="F_MOVED_TO" visibility="public" type="_dTlbsGEMEeCdEc4VzBeWeQ" isUnique="false">
<ownedComment xmi:id="_kSd5YGEMEeCdEc4VzBeWeQ">
<body>
* Change flag indicating that the element was moved to another location.
* The location of the new element can be retrieved using {@link #getMovedToElement}.
</body>
</ownedComment>
</ownedAttribute>
<ownedAttribute xmi:id="_kSd5YWEMEeCdEc4VzBeWeQ" name="F_ADDED_TO_CLASSPATH" visibility="public" type="_dTlbsGEMEeCdEc4VzBeWeQ" isUnique="false">
<ownedComment xmi:id="_kSd5YmEMEeCdEc4VzBeWeQ">
<body>
* Change flag indicating that a classpath entry corresponding to the element has been added to the project's classpath.
* This flag is only valid if the element is an {@link IPackageFragmentRoot}.
</body>
</ownedComment>
</ownedAttribute>
<ownedAttribute xmi:id="_kSnqYGEMEeCdEc4VzBeWeQ" name="F_REMOVED_FROM_CLASSPATH" visibility="public" type="_dTlbsGEMEeCdEc4VzBeWeQ" isUnique="false">
<ownedComment xmi:id="_kSnqYWEMEeCdEc4VzBeWeQ">
<body>
* Change flag indicating that a classpath entry corresponding to the element has been removed from the project's
* classpath. This flag is only valid if the element is an {@link IPackageFragmentRoot}.
</body>
</ownedComment>
</ownedAttribute>
<ownedAttribute xmi:id="_kSnqYmEMEeCdEc4VzBeWeQ" name="F_CLASSPATH_REORDER" visibility="public" type="_dTlbsGEMEeCdEc4VzBeWeQ" isUnique="false">
<ownedComment xmi:id="_kSnqY2EMEeCdEc4VzBeWeQ">
<body>
* Change flag indicating that a classpath entry corresponding to the element has changed position in the project's
* classpath. This flag is only valid if the element is an {@link IPackageFragmentRoot}.
* @deprecated Use {@link #F_REORDER} instead.
</body>
</ownedComment>
</ownedAttribute>
<ownedAttribute xmi:id="_kSw0UGEMEeCdEc4VzBeWeQ" name="F_REORDER" visibility="public" type="_dTlbsGEMEeCdEc4VzBeWeQ" isUnique="false">
<ownedComment xmi:id="_kSw0UWEMEeCdEc4VzBeWeQ">
<body>
* Change flag indicating that the element has changed position relatively to its siblings.
* If the element is an {@link IPackageFragmentRoot}, a classpath entry corresponding
* to the element has changed position in the project's classpath.
*
* @since 2.1
</body>
</ownedComment>
</ownedAttribute>
<ownedAttribute xmi:id="_kSw0UmEMEeCdEc4VzBeWeQ" name="F_OPENED" visibility="public" type="_dTlbsGEMEeCdEc4VzBeWeQ" isUnique="false">
<ownedComment xmi:id="_kSw0U2EMEeCdEc4VzBeWeQ">
<body>
* Change flag indicating that the underlying {@link org.eclipse.core.resources.IProject} has been
* opened. This flag is only valid if the element is an {@link IJavaProject}.
</body>
</ownedComment>
</ownedAttribute>
<ownedAttribute xmi:id="_kS6lUGEMEeCdEc4VzBeWeQ" name="F_CLOSED" visibility="public" type="_dTlbsGEMEeCdEc4VzBeWeQ" isUnique="false">
<ownedComment xmi:id="_kS6lUWEMEeCdEc4VzBeWeQ">
<body>
* Change flag indicating that the underlying {@link org.eclipse.core.resources.IProject} has been
* closed. This flag is only valid if the element is an {@link IJavaProject}.
</body>
</ownedComment>
</ownedAttribute>
<ownedAttribute xmi:id="_kS6lUmEMEeCdEc4VzBeWeQ" name="F_SUPER_TYPES" visibility="public" type="_dTlbsGEMEeCdEc4VzBeWeQ" isUnique="false">
<ownedComment xmi:id="_kTEWUGEMEeCdEc4VzBeWeQ">
<body>
* Change flag indicating that one of the supertypes of an {@link IType}
* has changed.
</body>
</ownedComment>
</ownedAttribute>
<ownedAttribute xmi:id="_kTEWUWEMEeCdEc4VzBeWeQ" name="F_SOURCEATTACHED" visibility="public" type="_dTlbsGEMEeCdEc4VzBeWeQ" isUnique="false">
<ownedComment xmi:id="_kTEWUmEMEeCdEc4VzBeWeQ">
<body>
* Change flag indicating that the source attachment path or the source attachment root path of a classpath entry
* corresponding to the element was added. This flag is only valid if the element is an
* {@link IPackageFragmentRoot}.
</body>
</ownedComment>
</ownedAttribute>
<ownedAttribute xmi:id="_kTEWU2EMEeCdEc4VzBeWeQ" name="F_SOURCEDETACHED" visibility="public" type="_dTlbsGEMEeCdEc4VzBeWeQ" isUnique="false">
<ownedComment xmi:id="_kTNgQGEMEeCdEc4VzBeWeQ">
<body>
* Change flag indicating that the source attachment path or the source attachment root path of a classpath entry
* corresponding to the element was removed. This flag is only valid if the element is an
* {@link IPackageFragmentRoot}.
</body>
</ownedComment>
</ownedAttribute>
<ownedAttribute xmi:id="_kTNgQWEMEeCdEc4VzBeWeQ" name="F_FINE_GRAINED" visibility="public" type="_dTlbsGEMEeCdEc4VzBeWeQ" isUnique="false">
<ownedComment xmi:id="_kTNgQmEMEeCdEc4VzBeWeQ">
<body>
* Change flag indicating that this is a fine-grained delta, that is, an analysis down
* to the members level was done to determine if there were structural changes to
* members.
* &lt;p>
* Clients can use this flag to find out if a compilation unit
* that have a {@link #F_CONTENT} change should assume that there are
* no finer grained changes ({@link #F_FINE_GRAINED} is set) or if
* finer grained changes were not considered ({@link #F_FINE_GRAINED}
* is not set).
*
* @since 2.0
</body>
</ownedComment>
</ownedAttribute>
<ownedAttribute xmi:id="_kTXRQGEMEeCdEc4VzBeWeQ" name="F_ARCHIVE_CONTENT_CHANGED" visibility="public" type="_dTlbsGEMEeCdEc4VzBeWeQ" isUnique="false">
<ownedComment xmi:id="_kTXRQWEMEeCdEc4VzBeWeQ">
<body>
* Change flag indicating that the element's archive content on the classpath has changed.
* This flag is only valid if the element is an {@link IPackageFragmentRoot}
* which is an archive.
*
* @see IPackageFragmentRoot#isArchive()
* @since 2.0
</body>
</ownedComment>
</ownedAttribute>
<ownedAttribute xmi:id="_kTXRQmEMEeCdEc4VzBeWeQ" name="F_PRIMARY_WORKING_COPY" visibility="public" type="_dTlbsGEMEeCdEc4VzBeWeQ" isUnique="false">
<ownedComment xmi:id="_kThCQGEMEeCdEc4VzBeWeQ">
<body>
* Change flag indicating that a compilation unit has become a primary working copy, or that a
* primary working copy has reverted to a compilation unit.
* This flag is only valid if the element is an {@link ICompilationUnit}.
*
* @since 3.0
</body>
</ownedComment>
</ownedAttribute>
<ownedAttribute xmi:id="_kThCQWEMEeCdEc4VzBeWeQ" name="F_CLASSPATH_CHANGED" visibility="public" type="_dTlbsGEMEeCdEc4VzBeWeQ" isUnique="false">
<ownedComment xmi:id="_kThCQmEMEeCdEc4VzBeWeQ">
<body>
* Change flag indicating that the {@link IJavaProject#getRawClasspath() raw classpath}
* (or the {@link IJavaProject#getOutputLocation() output folder}) of a project has changed.
* This flag is only valid if the element is an {@link IJavaProject}.
* Also see {@link #F_RESOLVED_CLASSPATH_CHANGED}, which indicates that there is a
* change to the {@link IJavaProject#getResolvedClasspath(boolean) resolved class path}.
* The resolved classpath can change without the raw classpath changing (e.g.
* if a container resolves to a different set of classpath entries).
* And conversely, it is possible to construct a case where the raw classpath
* can change without the resolved classpath changing.
*
* @since 3.0
</body>
</ownedComment>
</ownedAttribute>
<ownedAttribute xmi:id="_kThCQ2EMEeCdEc4VzBeWeQ" name="F_PRIMARY_RESOURCE" visibility="public" type="_dTlbsGEMEeCdEc4VzBeWeQ" isUnique="false">
<ownedComment xmi:id="_kTqMMGEMEeCdEc4VzBeWeQ">
<body>
* Change flag indicating that the resource of a primary compilation unit has changed.
* This flag is only valid if the element is a primary {@link ICompilationUnit}.
*
* @since 3.0
</body>
</ownedComment>
</ownedAttribute>
<ownedAttribute xmi:id="_kTqMMWEMEeCdEc4VzBeWeQ" name="F_AST_AFFECTED" visibility="public" type="_dTlbsGEMEeCdEc4VzBeWeQ" isUnique="false">
<ownedComment xmi:id="_kTz9MGEMEeCdEc4VzBeWeQ">
<body>
* Change flag indicating that a reconcile operation has affected the compilation unit AST created in a
* previous reconcile operation. Use {@link #getCompilationUnitAST()} to retrieve the AST (if any is available).
* This flag is only valid if the element is an {@link ICompilationUnit} in working copy mode.
*
* @since 3.2
</body>
</ownedComment>
</ownedAttribute>
<ownedAttribute xmi:id="_kTz9MWEMEeCdEc4VzBeWeQ" name="F_CATEGORIES" visibility="public" type="_dTlbsGEMEeCdEc4VzBeWeQ" isUnique="false">
<ownedComment xmi:id="_kTz9MmEMEeCdEc4VzBeWeQ">
<body>
* Change flag indicating that the categories of the element have changed.
* This flag is only valid if the element is an {@link IMember}.
*
* @since 3.2
</body>
</ownedComment>
</ownedAttribute>
<ownedAttribute xmi:id="_kT9HIGEMEeCdEc4VzBeWeQ" name="F_RESOLVED_CLASSPATH_CHANGED" visibility="public" type="_dTlbsGEMEeCdEc4VzBeWeQ" isUnique="false">
<ownedComment xmi:id="_kT9HIWEMEeCdEc4VzBeWeQ">
<body>
* Change flag indicating that the {@link IJavaProject#getResolvedClasspath(boolean)
* resolved classpath} of a project has changed.
* This flag is only valid if the element is an {@link IJavaProject}.
* Also see {@link #F_CLASSPATH_CHANGED}, which indicates that there is a
* change to the {@link IJavaProject#getRawClasspath() raw class path}.
* The resolved classpath can change without the raw classpath changing (e.g.
* if a container resolves to a different set of classpath entries).
* And conversely, it is possible to construct a case where the raw classpath
* can change without the resolved classpath changing.
*
* @since 3.4
</body>
</ownedComment>
</ownedAttribute>
<ownedAttribute xmi:id="_kT9HImEMEeCdEc4VzBeWeQ" name="F_ANNOTATIONS" visibility="public" type="_dTlbsGEMEeCdEc4VzBeWeQ" isUnique="false">
<ownedComment xmi:id="_kUG4IGEMEeCdEc4VzBeWeQ">
<body>
* Change flag indicating that the annotations of the element have changed.
* Use {@link #getAnnotationDeltas()} to get the added/removed/changed annotations.
* This flag is only valid if the element is an {@link IAnnotatable}.
*
* @since 3.4
</body>
</ownedComment>
</ownedAttribute>
<ownedOperation xmi:id="_kUG4IWEMEeCdEc4VzBeWeQ" name="getAddedChildren" visibility="public">
<ownedComment xmi:id="_kUG4ImEMEeCdEc4VzBeWeQ">
<body>
* Returns deltas for the children that have been added.
* @return deltas for the children that have been added
</body>
</ownedComment>
<ownedParameter xmi:id="_kUG4I2EMEeCdEc4VzBeWeQ" type="_kRkhgGEMEeCdEc4VzBeWeQ" direction="return">
<upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_kUQpIGEMEeCdEc4VzBeWeQ" value="*"/>
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_kUG4JGEMEeCdEc4VzBeWeQ"/>
</ownedParameter>
</ownedOperation>
<ownedOperation xmi:id="_kUQpIWEMEeCdEc4VzBeWeQ" name="getAffectedChildren" visibility="public">
<ownedComment xmi:id="_kUQpImEMEeCdEc4VzBeWeQ">
<body>
* Returns deltas for the affected (added, removed, or changed) children.
* @return deltas for the affected (added, removed, or changed) children
</body>
</ownedComment>
<ownedParameter xmi:id="_kUQpI2EMEeCdEc4VzBeWeQ" type="_kRkhgGEMEeCdEc4VzBeWeQ" direction="return">
<upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_kUQpJWEMEeCdEc4VzBeWeQ" value="*"/>
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_kUQpJGEMEeCdEc4VzBeWeQ"/>
</ownedParameter>
</ownedOperation>
<ownedOperation xmi:id="_kUZzEGEMEeCdEc4VzBeWeQ" name="getAnnotationDeltas" visibility="public">
<ownedComment xmi:id="_kUZzEWEMEeCdEc4VzBeWeQ">
<body>
* Returns deltas for affected annotations (added, removed, or changed).
* Returns an empty array if no annotations was affected, or if this delta's element is not
* an {@link IAnnotatable}.
*
* @return deltas for affected annotations (added, removed, or changed)
*
* @since 3.4
</body>
</ownedComment>
<ownedParameter xmi:id="_kUZzEmEMEeCdEc4VzBeWeQ" type="_kRkhgGEMEeCdEc4VzBeWeQ" direction="return">
<upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_kUZzFGEMEeCdEc4VzBeWeQ" value="*"/>
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_kUZzE2EMEeCdEc4VzBeWeQ"/>
</ownedParameter>
</ownedOperation>
<ownedOperation xmi:id="_kUjkEGEMEeCdEc4VzBeWeQ" name="getCompilationUnitAST" visibility="public">
<ownedComment xmi:id="_kUjkEWEMEeCdEc4VzBeWeQ">
<body>
* Returns the compilation unit AST created by the last reconcile operation on this delta's element.
* This returns a non-null value if and only if:
* &lt;ul>
* &lt;li>the last reconcile operation on this working copy requested an AST&lt;/li>
* &lt;li>this delta's element is an {@link ICompilationUnit} in working copy mode&lt;/li>
* &lt;li>the delta comes from a {@link ElementChangedEvent#POST_RECONCILE} event
* &lt;/ul>
*
* @return the AST created during the last reconcile operation
* @see ICompilationUnit#reconcile(int, boolean, WorkingCopyOwner, org.eclipse.core.runtime.IProgressMonitor)
* @see #F_AST_AFFECTED
* @since 3.2
</body>
</ownedComment>
<ownedParameter xmi:id="_kUjkFGEMEeCdEc4VzBeWeQ" type="_kUjkE2EMEeCdEc4VzBeWeQ" direction="return"/>
</ownedOperation>
<ownedOperation xmi:id="_kUjkFWEMEeCdEc4VzBeWeQ" name="getChangedChildren" visibility="public">
<ownedComment xmi:id="_kUjkFmEMEeCdEc4VzBeWeQ">
<body>
* Returns deltas for the children which have changed.
* @return deltas for the children which have changed
</body>
</ownedComment>
<ownedParameter xmi:id="_kUjkF2EMEeCdEc4VzBeWeQ" type="_kRkhgGEMEeCdEc4VzBeWeQ" direction="return">
<upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_kUtVEWEMEeCdEc4VzBeWeQ" value="*"/>
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_kUtVEGEMEeCdEc4VzBeWeQ"/>
</ownedParameter>
</ownedOperation>
<ownedOperation xmi:id="_kUtVEmEMEeCdEc4VzBeWeQ" name="getElement" visibility="public">
<ownedComment xmi:id="_kUtVE2EMEeCdEc4VzBeWeQ">
<body>
* Returns the element that this delta describes a change to.
* @return the element that this delta describes a change to
</body>
</ownedComment>
<ownedParameter xmi:id="_kUtVFGEMEeCdEc4VzBeWeQ" type="_kO5A8GEMEeCdEc4VzBeWeQ" direction="return"/>
</ownedOperation>
<ownedOperation xmi:id="_kUtVFWEMEeCdEc4VzBeWeQ" name="getFlags" visibility="public">
<ownedComment xmi:id="_kUtVFmEMEeCdEc4VzBeWeQ">
<body>
* Returns flags that describe how an element has changed.
* Such flags should be tested using the &lt;code>&amp;&lt;/code> operand. For example:
* &lt;pre>
* if ((delta.getFlags() &amp; IJavaElementDelta.F_CONTENT) != 0) {
* // the delta indicates a content change
* }
* &lt;/pre>
*
* @return flags that describe how an element has changed
</body>
</ownedComment>
<ownedParameter xmi:id="_kU2fAGEMEeCdEc4VzBeWeQ" type="_dTlbsGEMEeCdEc4VzBeWeQ" direction="return"/>
</ownedOperation>
<ownedOperation xmi:id="_kU2fAWEMEeCdEc4VzBeWeQ" name="getKind" visibility="public">
<ownedComment xmi:id="_kU2fAmEMEeCdEc4VzBeWeQ">
<body>
* Returns the kind of this delta - one of {@link #ADDED}, {@link #REMOVED},
* or {@link #CHANGED}.
*
* @return the kind of this delta
</body>
</ownedComment>
<ownedParameter xmi:id="_kU2fA2EMEeCdEc4VzBeWeQ" type="_dTlbsGEMEeCdEc4VzBeWeQ" direction="return"/>
</ownedOperation>
<ownedOperation xmi:id="_kU2fBGEMEeCdEc4VzBeWeQ" name="getMovedFromElement" visibility="public">
<ownedComment xmi:id="_kU2fBWEMEeCdEc4VzBeWeQ">
<body>
* Returns an element describing this element before it was moved
* to its current location, or &lt;code>null&lt;/code> if the
* {@link #F_MOVED_FROM} change flag is not set.
*
* @return an element describing this element before it was moved
* to its current location, or &lt;code>null&lt;/code> if the
* {@link #F_MOVED_FROM} change flag is not set
</body>
</ownedComment>
<ownedParameter xmi:id="_kVTK8GEMEeCdEc4VzBeWeQ" type="_kO5A8GEMEeCdEc4VzBeWeQ" direction="return"/>
</ownedOperation>
<ownedOperation xmi:id="_kVTK8WEMEeCdEc4VzBeWeQ" name="getMovedToElement" visibility="public">
<ownedComment xmi:id="_kVTK8mEMEeCdEc4VzBeWeQ">
<body>
* Returns an element describing this element in its new location,
* or &lt;code>null&lt;/code> if the {@link #F_MOVED_TO} change
* flag is not set.
*
* @return an element describing this element in its new location,
* or &lt;code>null&lt;/code> if the {@link #F_MOVED_TO} change
* flag is not set
</body>
</ownedComment>
<ownedParameter xmi:id="_kVc78GEMEeCdEc4VzBeWeQ" type="_kO5A8GEMEeCdEc4VzBeWeQ" direction="return"/>
</ownedOperation>
<ownedOperation xmi:id="_kWCx0GEMEeCdEc4VzBeWeQ" name="getRemovedChildren" visibility="public">
<ownedComment xmi:id="_kWCx0WEMEeCdEc4VzBeWeQ">
<body>
* Returns deltas for the children which have been removed.
*
* @return deltas for the children which have been removed
</body>
</ownedComment>
<ownedParameter xmi:id="_kWCx0mEMEeCdEc4VzBeWeQ" type="_kRkhgGEMEeCdEc4VzBeWeQ" direction="return">
<upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_kWCx1GEMEeCdEc4VzBeWeQ" value="*"/>
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_kWCx02EMEeCdEc4VzBeWeQ"/>
</ownedParameter>
</ownedOperation>
<ownedOperation xmi:id="_kWCx1WEMEeCdEc4VzBeWeQ" name="getResourceDeltas" visibility="public">
<ownedComment xmi:id="_kWCx1mEMEeCdEc4VzBeWeQ">
<body>
* Returns the collection of resource deltas.
* &lt;p>
* Note that resource deltas, like Java element deltas, are generally only valid
* for the dynamic scope of an event notification. Clients must not hang on to
* these objects.
* &lt;/p>
*
* @return the underlying resource deltas, or &lt;code>null&lt;/code> if none
</body>
</ownedComment>
<ownedParameter xmi:id="_kWMi0WEMEeCdEc4VzBeWeQ" type="_kWMi0GEMEeCdEc4VzBeWeQ" direction="return">
<upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_kWMi02EMEeCdEc4VzBeWeQ" value="*"/>
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_kWMi0mEMEeCdEc4VzBeWeQ"/>
</ownedParameter>
</ownedOperation>
</packagedElement>
<packagedElement xmi:type="uml:Package" xmi:id="_kUjkEmEMEeCdEc4VzBeWeQ" name="dom">
<packagedElement xmi:type="uml:Class" xmi:id="_kUjkE2EMEeCdEc4VzBeWeQ" name="CompilationUnit"/>
</packagedElement>
<packagedElement xmi:type="uml:Interface" xmi:id="_kYbXcGEMEeCdEc4VzBeWeQ" name="IJavaModel">
<ownedComment xmi:id="_kYbXcWEMEeCdEc4VzBeWeQ">
<body>
* Represent the root Java element corresponding to the workspace.
* Since there is only one such root element, it is commonly referred to as
* &lt;em>the&lt;/em> Java model element.
* The Java model element needs to be opened before it can be navigated or manipulated.
* The Java model element has no parent (it is the root of the Java element
* hierarchy). Its children are &lt;code>IJavaProject&lt;/code>s.
* &lt;p>
* This interface provides methods for performing copy, move, rename, and
* delete operations on multiple Java elements.
* &lt;/p>
* &lt;p>
* An instance of one of these handles can be created via
* &lt;code>JavaCore.create(workspace.getRoot())&lt;/code>.
* &lt;/p>
*
* @see JavaCore#create(org.eclipse.core.resources.IWorkspaceRoot)
* @noimplement This interface is not intended to be implemented by clients.
</body>
</ownedComment>
<generalization xmi:id="_kYlIcGEMEeCdEc4VzBeWeQ" general="_kO5A8GEMEeCdEc4VzBeWeQ"/>
<generalization xmi:id="_QBlOgGHaEeCIr_fxSkYSJA" general="_koX38GEMEeCdEc4VzBeWeQ"/>
<generalization xmi:id="_QBlOgWHaEeCIr_fxSkYSJA" general="_kq6OkGEMEeCdEc4VzBeWeQ"/>
<ownedOperation xmi:id="_QBuYcGHaEeCIr_fxSkYSJA" name="contains">
<ownedComment xmi:id="_QBuYcWHaEeCIr_fxSkYSJA">
<body>
* Returns whether this Java model contains an &lt;code>IJavaElement&lt;/code> whose
* resource is the given resource or a non-Java resource which is the given resource.
* &lt;p>
* Note: no existency check is performed on the argument resource. If it is not accessible
* (see &lt;code>IResource.isAccessible()&lt;/code>) yet but would be located in Java model
* range, then it will return &lt;code>true&lt;/code>.
* &lt;/p>&lt;p>
* If the resource is accessible, it can be reached by navigating the Java model down using the
* &lt;code>getChildren()&lt;/code> and/or &lt;code>getNonJavaResources()&lt;/code> methods.
* &lt;/p>
* @param resource the resource to check
* @return true if the resource is accessible through the Java model
* @since 2.1
</body>
</ownedComment>
<ownedParameter xmi:id="_QBuYcmHaEeCIr_fxSkYSJA" type="_dVOadGEMEeCdEc4VzBeWeQ" direction="return"/>
<ownedParameter xmi:id="_QB4JcGHaEeCIr_fxSkYSJA" name="resource" type="_kQh_smEMEeCdEc4VzBeWeQ"/>
</ownedOperation>
<ownedOperation xmi:id="_QB4JcWHaEeCIr_fxSkYSJA" name="copy">
<ownedComment xmi:id="_QB4JcmHaEeCIr_fxSkYSJA">
<body>
* Copies the given elements to the specified container(s).
* If one container is specified, all elements are copied to that
* container. If more than one container is specified, the number of
* elements and containers must match, and each element is copied to
* its associated container.
* &lt;p>
* Optionally, each copy can positioned before a sibling
* element. If &lt;code>null&lt;/code> is specified for a given sibling, the copy
* is inserted as the last child of its associated container.
* &lt;/p>
* &lt;p>
* Optionally, each copy can be renamed. If
* &lt;code>null&lt;/code> is specified for the new name, the copy
* is not renamed.
* &lt;/p>
* &lt;p>
* Optionally, any existing child in the destination container with
* the same name can be replaced by specifying &lt;code>true&lt;/code> for
* force. Otherwise an exception is thrown in the event that a name
* collision occurs.
* &lt;/p>
*
* @param elements the elements to copy
* @param containers the container, or list of containers
* @param siblings the list of siblings element any of which may be
* &lt;code>null&lt;/code>; or &lt;code>null&lt;/code>
* @param renamings the list of new names any of which may be
* &lt;code>null&lt;/code>; or &lt;code>null&lt;/code>
* @param replace &lt;code>true&lt;/code> if any existing child in a target container
* with the target name should be replaced, and &lt;code>false&lt;/code> to throw an
* exception in the event of a name collision
* @param monitor a progress monitor
* @exception JavaModelException if an element could not be copied. Reasons include:
* &lt;ul>
* &lt;li> There is no element to process (NO_ELEMENTS_TO_PROCESS). The given elements is null or empty&lt;/li>
* &lt;li> A specified element, container, or sibling does not exist (ELEMENT_DOES_NOT_EXIST)&lt;/li>
* &lt;li> A &lt;code>CoreException&lt;/code> occurred while updating an underlying resource&lt;/li>
* &lt;li> A container is of an incompatible type (&lt;code>INVALID_DESTINATION&lt;/code>)&lt;/li>
* &lt;li> A sibling is not a child of it associated container (&lt;code>INVALID_SIBLING&lt;/code>)&lt;/li>
* &lt;li> A new name is invalid (&lt;code>INVALID_NAME&lt;/code>)&lt;/li>
* &lt;li> A child in its associated container already exists with the same
* name and &lt;code>replace&lt;/code> has been specified as &lt;code>false&lt;/code> (&lt;code>NAME_COLLISION&lt;/code>)&lt;/li>
* &lt;li> A container or element is read-only (&lt;code>READ_ONLY&lt;/code>) &lt;/li>
* &lt;/ul>
* @see org.eclipse.jdt.core.IJavaModelStatusConstants#INVALID_DESTINATION
</body>
</ownedComment>
<ownedParameter xmi:id="_QB4Jc2HaEeCIr_fxSkYSJA" name="elements" type="_kO5A8GEMEeCdEc4VzBeWeQ">
<upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_QCBTYWHaEeCIr_fxSkYSJA" value="*"/>
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_QCBTYGHaEeCIr_fxSkYSJA"/>
</ownedParameter>
<ownedParameter xmi:id="_QCLEYGHaEeCIr_fxSkYSJA" name="containers" type="_kO5A8GEMEeCdEc4VzBeWeQ">
<upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_QCU1YGHaEeCIr_fxSkYSJA" value="*"/>
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_QCLEYWHaEeCIr_fxSkYSJA"/>
</ownedParameter>
<ownedParameter xmi:id="_QCd_UGHaEeCIr_fxSkYSJA" name="siblings" type="_kO5A8GEMEeCdEc4VzBeWeQ">
<upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_QCnwUGHaEeCIr_fxSkYSJA" value="*"/>
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_QCd_UWHaEeCIr_fxSkYSJA"/>
</ownedParameter>
<ownedParameter xmi:id="_QCxhUGHaEeCIr_fxSkYSJA" name="renamings" type="_dSiS02EMEeCdEc4VzBeWeQ">
<upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_QCxhUmHaEeCIr_fxSkYSJA" value="*"/>
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_QCxhUWHaEeCIr_fxSkYSJA"/>
</ownedParameter>
<ownedParameter xmi:id="_QC6rQGHaEeCIr_fxSkYSJA" name="replace" type="_dVOadGEMEeCdEc4VzBeWeQ"/>
<ownedParameter xmi:id="_QDEcQGHaEeCIr_fxSkYSJA" name="monitor" type="_jqFqwGEMEeCdEc4VzBeWeQ"/>
</ownedOperation>
<ownedOperation xmi:id="_QDEcQWHaEeCIr_fxSkYSJA" name="delete">
<ownedComment xmi:id="_QDEcQmHaEeCIr_fxSkYSJA">
<body>
* Deletes the given elements, forcing the operation if necessary and specified.
*
* @param elements the elements to delete
* @param force a flag controlling whether underlying resources that are not
* in sync with the local file system will be tolerated
* @param monitor a progress monitor
* @exception JavaModelException if an element could not be deleted. Reasons include:
* &lt;ul>
* &lt;li> There is no element to process (NO_ELEMENTS_TO_PROCESS). The given elements is null or empty&lt;/li>
* &lt;li> A specified element does not exist (ELEMENT_DOES_NOT_EXIST)&lt;/li>
* &lt;li> A &lt;code>CoreException&lt;/code> occurred while updating an underlying resource&lt;/li>
* &lt;li> An element is read-only (&lt;code>READ_ONLY&lt;/code>) &lt;/li>
* &lt;/ul>
</body>
</ownedComment>
<ownedParameter xmi:id="_QDNmMGHaEeCIr_fxSkYSJA" name="elements" type="_kO5A8GEMEeCdEc4VzBeWeQ">
<upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_QDXXMGHaEeCIr_fxSkYSJA" value="*"/>
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_QDNmMWHaEeCIr_fxSkYSJA"/>
</ownedParameter>
<ownedParameter xmi:id="_QDXXMWHaEeCIr_fxSkYSJA" name="force" type="_dVOadGEMEeCdEc4VzBeWeQ"/>
<ownedParameter xmi:id="_QDhIMGHaEeCIr_fxSkYSJA" name="monitor" type="_jqFqwGEMEeCdEc4VzBeWeQ"/>
</ownedOperation>
<ownedOperation xmi:id="_QDhIMWHaEeCIr_fxSkYSJA" name="getJavaProject">
<ownedComment xmi:id="_QDhIMmHaEeCIr_fxSkYSJA">
<body>
* Returns the Java project with the given name. The given name must be a valid
* path segment as defined by {@link IPath#isValidSegment(String)}.
* This is a handle-only method.
* The project may or may not exist.
*
* @param name the name of the Java project
* @return the Java project with the given name
</body>
</ownedComment>
<ownedParameter xmi:id="_QDhIM2HaEeCIr_fxSkYSJA" type="_kjmssGEMEeCdEc4VzBeWeQ" direction="return"/>
<ownedParameter xmi:id="_QDqSIGHaEeCIr_fxSkYSJA" name="name" type="_dSiS02EMEeCdEc4VzBeWeQ"/>
</ownedOperation>
<ownedOperation xmi:id="_QDqSIWHaEeCIr_fxSkYSJA" name="getJavaProjects">
<ownedComment xmi:id="_QDqSImHaEeCIr_fxSkYSJA">
<body>
* Returns the Java projects in this Java model, or an empty array if there
* are none.
*
* @return the Java projects in this Java model, or an empty array if there
* are none
* @exception JavaModelException if this request fails.
</body>
</ownedComment>
<ownedParameter xmi:id="_QD0DIGHaEeCIr_fxSkYSJA" type="_kjmssGEMEeCdEc4VzBeWeQ" direction="return">
<upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_QD90IWHaEeCIr_fxSkYSJA" value="*"/>
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_QD90IGHaEeCIr_fxSkYSJA"/>
</ownedParameter>
</ownedOperation>
<ownedOperation xmi:id="_QEG-EGHaEeCIr_fxSkYSJA" name="getNonJavaResources">
<ownedComment xmi:id="_QEG-EWHaEeCIr_fxSkYSJA">
<body>
* Returns an array of non-Java resources (that is, non-Java projects) in
* the workspace.
* &lt;p>
* Non-Java projects include all projects that are closed (even if they have the
* Java nature).
* &lt;/p>
*
* @return an array of non-Java projects (&lt;code>IProject&lt;/code>s) contained
* in the workspace.
* @throws JavaModelException if this element does not exist or if an
* exception occurs while accessing its corresponding resource
* @since 2.1
</body>
</ownedComment>
<ownedParameter xmi:id="_QEG-EmHaEeCIr_fxSkYSJA" type="_kOcVAmEMEeCdEc4VzBeWeQ" direction="return">
<upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_QEQvEGHaEeCIr_fxSkYSJA" value="*"/>
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_QEG-E2HaEeCIr_fxSkYSJA"/>
</ownedParameter>
</ownedOperation>
<ownedOperation xmi:id="_QEQvEWHaEeCIr_fxSkYSJA" name="getWorkspace">
<ownedComment xmi:id="_QEQvEmHaEeCIr_fxSkYSJA">
<body>
* Returns the workspace associated with this Java model.
*
* @return the workspace associated with this Java model
</body>
</ownedComment>
<ownedParameter xmi:id="_QEZ5AWHaEeCIr_fxSkYSJA" type="_QEZ5AGHaEeCIr_fxSkYSJA" direction="return"/>
</ownedOperation>
<ownedOperation xmi:id="_QEjqAGHaEeCIr_fxSkYSJA" name="move">
<ownedComment xmi:id="_QEjqAWHaEeCIr_fxSkYSJA">
<body>
* Moves the given elements to the specified container(s).
* If one container is specified, all elements are moved to that
* container. If more than one container is specified, the number of
* elements and containers must match, and each element is moved to
* its associated container.
* &lt;p>
* Optionally, each element can positioned before a sibling
* element. If &lt;code>null&lt;/code> is specified for sibling, the element
* is inserted as the last child of its associated container.
* &lt;/p>
* &lt;p>
* Optionally, each element can be renamed. If
* &lt;code>null&lt;/code> is specified for the new name, the element
* is not renamed.
* &lt;/p>
* &lt;p>
* Optionally, any existing child in the destination container with
* the same name can be replaced by specifying &lt;code>true&lt;/code> for
* force. Otherwise an exception is thrown in the event that a name
* collision occurs.
* &lt;/p>
*
* @param elements the elements to move
* @param containers the container, or list of containers
* @param siblings the list of siblings element any of which may be
* &lt;code>null&lt;/code>; or &lt;code>null&lt;/code>
* @param renamings the list of new names any of which may be
* &lt;code>null&lt;/code>; or &lt;code>null&lt;/code>
* @param replace &lt;code>true&lt;/code> if any existing child in a target container
* with the target name should be replaced, and &lt;code>false&lt;/code> to throw an
* exception in the event of a name collision
* @param monitor a progress monitor
* @exception JavaModelException if an element could not be moved. Reasons include:
* &lt;ul>
* &lt;li> There is no element to process (NO_ELEMENTS_TO_PROCESS). The given elements is null or empty&lt;/li>
* &lt;li> A specified element, container, or sibling does not exist (ELEMENT_DOES_NOT_EXIST)&lt;/li>
* &lt;li> A &lt;code>CoreException&lt;/code> occurred while updating an underlying resource&lt;/li>
* &lt;li> A container is of an incompatible type (&lt;code>INVALID_DESTINATION&lt;/code>)&lt;/li>
* &lt;li> A sibling is not a child of it associated container (&lt;code>INVALID_SIBLING&lt;/code>)&lt;/li>
* &lt;li> A new name is invalid (&lt;code>INVALID_NAME&lt;/code>)&lt;/li>
* &lt;li> A child in its associated container already exists with the same
* name and &lt;code>replace&lt;/code> has been specified as &lt;code>false&lt;/code> (&lt;code>NAME_COLLISION&lt;/code>)&lt;/li>
* &lt;li> A container or element is read-only (&lt;code>READ_ONLY&lt;/code>) &lt;/li>
* &lt;/ul>
*
* @exception IllegalArgumentException any element or container is &lt;code>null&lt;/code>
* @see org.eclipse.jdt.core.IJavaModelStatusConstants#INVALID_DESTINATION
</body>
</ownedComment>
<ownedParameter xmi:id="_QEjqAmHaEeCIr_fxSkYSJA" name="elements" type="_kO5A8GEMEeCdEc4VzBeWeQ">
<upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_QEtbAGHaEeCIr_fxSkYSJA" value="*"/>
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_QEjqA2HaEeCIr_fxSkYSJA"/>
</ownedParameter>
<ownedParameter xmi:id="_QEtbAWHaEeCIr_fxSkYSJA" name="containers" type="_kO5A8GEMEeCdEc4VzBeWeQ">
<upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_QE2k8WHaEeCIr_fxSkYSJA" value="*"/>
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_QE2k8GHaEeCIr_fxSkYSJA"/>
</ownedParameter>
<ownedParameter xmi:id="_QFAV8GHaEeCIr_fxSkYSJA" name="siblings" type="_kO5A8GEMEeCdEc4VzBeWeQ">
<upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_QFKG8GHaEeCIr_fxSkYSJA" value="*"/>
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_QFAV8WHaEeCIr_fxSkYSJA"/>
</ownedParameter>
<ownedParameter xmi:id="_QFKG8WHaEeCIr_fxSkYSJA" name="renamings" type="_dSiS02EMEeCdEc4VzBeWeQ">
<upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_QFdB4GHaEeCIr_fxSkYSJA" value="*"/>
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_QFTQ4GHaEeCIr_fxSkYSJA"/>
</ownedParameter>
<ownedParameter xmi:id="_QFdB4WHaEeCIr_fxSkYSJA" name="replace" type="_dVOadGEMEeCdEc4VzBeWeQ"/>
<ownedParameter xmi:id="_QFmL0GHaEeCIr_fxSkYSJA" name="monitor" type="_jqFqwGEMEeCdEc4VzBeWeQ"/>
</ownedOperation>
<ownedOperation xmi:id="_QFmL0WHaEeCIr_fxSkYSJA" name="refreshExternalArchives">
<ownedComment xmi:id="_QFmL0mHaEeCIr_fxSkYSJA">
<body>
* Triggers an update of the JavaModel with respect to the referenced external archives.
* This operation will issue a JavaModel delta describing the discovered changes, in term
* of Java element package fragment roots added, removed or changed.
* Note that a collection of elements can be passed so as to narrow the set of archives
* to refresh (passing &lt;code>null&lt;/code> along is equivalent to refreshing the entire mode).
* The elements can be:
* &lt;ul>
* &lt;li> package fragment roots corresponding to external archives
* &lt;li> Java projects, which referenced external archives will be refreshed
* &lt;li> Java model, all referenced external archives will be refreshed.
* &lt;/ul>
* &lt;p> In case an archive is used by multiple projects, the delta issued will account for
* all of them. This means that even if a project was not part of the elements scope, it
* may still be notified of changes if it is referencing a library comprised in the scope.
* &lt;p>
* &lt;b>Since 3.7&lt;/b>, a project refresh automatically triggers a refresh of external archives.
* Hence, this method doesn't need to be explicitly called after a project refresh.
* &lt;p>
* @param elementsScope - a collection of elements defining the scope of the refresh
* @param monitor - a progress monitor used to report progress
* @exception JavaModelException in one of the corresponding situation:
* &lt;ul>
* &lt;li> an exception occurs while accessing project resources &lt;/li>
* &lt;/ul>
*
* @see IJavaElementDelta
* @since 2.0
</body>
</ownedComment>
<ownedParameter xmi:id="_QFv80GHaEeCIr_fxSkYSJA" name="elementsScope" type="_kO5A8GEMEeCdEc4VzBeWeQ">
<upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_QF5t0GHaEeCIr_fxSkYSJA" value="*"/>
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_QFv80WHaEeCIr_fxSkYSJA"/>
</ownedParameter>
<ownedParameter xmi:id="_QF5t0WHaEeCIr_fxSkYSJA" name="monitor" type="_jqFqwGEMEeCdEc4VzBeWeQ"/>
</ownedOperation>
<ownedOperation xmi:id="_QGC3wGHaEeCIr_fxSkYSJA" name="rename">
<ownedComment xmi:id="_QGC3wWHaEeCIr_fxSkYSJA">
<body>
* Renames the given elements as specified.
* If one container is specified, all elements are renamed within that
* container. If more than one container is specified, the number of
* elements and containers must match, and each element is renamed within
* its associated container.
*
* @param elements the elements to rename
* @param destinations the container, or list of containers
* @param names the list of new names
* @param replace &lt;code>true&lt;/code> if an existing child in a target container
* with the target name should be replaced, and &lt;code>false&lt;/code> to throw an
* exception in the event of a name collision
* @param monitor a progress monitor
* @exception JavaModelException if an element could not be renamed. Reasons include:
* &lt;ul>
* &lt;li> There is no element to process (NO_ELEMENTS_TO_PROCESS). The given elements is null or empty&lt;/li>
* &lt;li> A specified element does not exist (ELEMENT_DOES_NOT_EXIST)&lt;/li>
* &lt;li> A &lt;code>CoreException&lt;/code> occurred while updating an underlying resource
* &lt;li> A new name is invalid (&lt;code>INVALID_NAME&lt;/code>)
* &lt;li> A child already exists with the same name and &lt;code>replace&lt;/code> has been specified as &lt;code>false&lt;/code> (&lt;code>NAME_COLLISION&lt;/code>)
* &lt;li> An element is read-only (&lt;code>READ_ONLY&lt;/code>)
* &lt;/ul>
</body>
</ownedComment>
<ownedParameter xmi:id="_QGC3wmHaEeCIr_fxSkYSJA" name="elements" type="_kO5A8GEMEeCdEc4VzBeWeQ">
<upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_QGMowWHaEeCIr_fxSkYSJA" value="*"/>
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_QGMowGHaEeCIr_fxSkYSJA"/>
</ownedParameter>
<ownedParameter xmi:id="_QGWZwGHaEeCIr_fxSkYSJA" name="destinations" type="_kO5A8GEMEeCdEc4VzBeWeQ">
<upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_QGfjsWHaEeCIr_fxSkYSJA" value="*"/>
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_QGfjsGHaEeCIr_fxSkYSJA"/>
</ownedParameter>
<ownedParameter xmi:id="_QGpUsGHaEeCIr_fxSkYSJA" name="names" type="_dSiS02EMEeCdEc4VzBeWeQ">
<upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_QGyeoGHaEeCIr_fxSkYSJA" value="*"/>
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_QGpUsWHaEeCIr_fxSkYSJA"/>
</ownedParameter>
<ownedParameter xmi:id="_QG8PoGHaEeCIr_fxSkYSJA" name="replace" type="_dVOadGEMEeCdEc4VzBeWeQ"/>
<ownedParameter xmi:id="_QG8PoWHaEeCIr_fxSkYSJA" name="monitor" type="_jqFqwGEMEeCdEc4VzBeWeQ"/>
</ownedOperation>
</packagedElement>
<packagedElement xmi:type="uml:Interface" xmi:id="_kZB0YGEMEeCdEc4VzBeWeQ" name="IJavaModelMarker">
<ownedComment xmi:id="_kZB0YWEMEeCdEc4VzBeWeQ">
<body>
* Markers used by the Java model.
* &lt;p>
* This interface declares constants only.
* &lt;/p>
* @noimplement This interface is not intended to be implemented by clients.
</body>
</ownedComment>
<ownedAttribute xmi:id="_kZK-UGEMEeCdEc4VzBeWeQ" name="JAVA_MODEL_PROBLEM_MARKER" type="_dSiS02EMEeCdEc4VzBeWeQ" isUnique="false">
<ownedComment xmi:id="_kZK-UWEMEeCdEc4VzBeWeQ">
<body>
* Java model problem marker type (value
* &lt;code>&quot;org.eclipse.jdt.core.problem&quot;&lt;/code>). This can be used to
* recognize those markers in the workspace that flag problems detected by
* the Java tooling during compilation.
</body>
</ownedComment>
</ownedAttribute>
<ownedAttribute xmi:id="_kZK-UmEMEeCdEc4VzBeWeQ" name="TRANSIENT_PROBLEM" type="_dSiS02EMEeCdEc4VzBeWeQ" isUnique="false">
<ownedComment xmi:id="_kZK-U2EMEeCdEc4VzBeWeQ">
<body>
* Java model transient problem marker type (value
* &lt;code>&quot;org.eclipse.jdt.core.transient_problem&quot;&lt;/code>). This can be
* used to recognize those markers in the workspace that flag transient
* problems detected by the Java tooling (such as a problem detected by the
* outliner, or a problem detected during a code completion). Since 1.0,
* transient problems are reported as &lt;code>IProblem&lt;/code> through
* various API. Only the evaluation API is still producing markers for
* transient problems.
*
* @see org.eclipse.jdt.core.compiler.IProblem
* @see org.eclipse.jdt.core.eval.ICodeSnippetRequestor#acceptProblem(org.eclipse.core.resources.IMarker,String,
* int)
</body>
</ownedComment>
</ownedAttribute>
<ownedAttribute xmi:id="_kZK-VGEMEeCdEc4VzBeWeQ" name="TASK_MARKER" type="_dSiS02EMEeCdEc4VzBeWeQ" isUnique="false">
<ownedComment xmi:id="_kZUvUGEMEeCdEc4VzBeWeQ">
<body>
* Java model task marker type (value
* &lt;code>&quot;org.eclipse.jdt.core.task&quot;&lt;/code>). This can be used to
* recognize task markers in the workspace that correspond to tasks
* specified in Java source comments and detected during compilation (for
* example, 'TO-DO: ...'). Tasks are identified by a task tag, which can be
* customized through &lt;code>JavaCore&lt;/code> option
* &lt;code>&quot;org.eclipse.jdt.core.compiler.taskTag&quot;&lt;/code>.
*
* @since 2.1
</body>
</ownedComment>
</ownedAttribute>
<ownedAttribute xmi:id="_kZUvUWEMEeCdEc4VzBeWeQ" name="ARGUMENTS" type="_dSiS02EMEeCdEc4VzBeWeQ" isUnique="false">
<ownedComment xmi:id="_kZUvUmEMEeCdEc4VzBeWeQ">
<body>
* Id marker attribute (value &lt;code>&quot;arguments&quot;&lt;/code>). Arguments are
* concatenated into one String, prefixed with an argument count (followed
* with colon separator) and separated with '#' characters. For example: {
* &quot;foo&quot;, &quot;bar&quot; } is encoded as &quot;2:foo#bar&quot;, { } is encoded as &quot;0:&quot;.
* &lt;p>Empty argument is encoded as three spaces (&quot; &quot;).&lt;/p>
* &lt;p>If the argument contains a '#', the character is doubled.&lt;br>
* {&quot;foo#test&quot;, &quot;bar&quot; } is encoded as &quot;2:foo##test#bar&quot;
* &lt;/p>
*
* @since 2.0
* @see CorrectionEngine#getProblemArguments(IMarker)
</body>
</ownedComment>
</ownedAttribute>
<ownedAttribute xmi:id="_kZUvU2EMEeCdEc4VzBeWeQ" name="ID" type="_dSiS02EMEeCdEc4VzBeWeQ" isUnique="false">
<ownedComment xmi:id="_kZegUGEMEeCdEc4VzBeWeQ">
<body>
* ID marker attribute (value &lt;code>&quot;id&quot;&lt;/code>).
</body>
</ownedComment>
</ownedAttribute>
<ownedAttribute xmi:id="_kZnqQGEMEeCdEc4VzBeWeQ" name="CATEGORY_ID" type="_dSiS02EMEeCdEc4VzBeWeQ" isUnique="false">
<ownedComment xmi:id="_kZnqQWEMEeCdEc4VzBeWeQ">
<body>
* ID category marker attribute (value &lt;code>&quot;categoryId&quot;&lt;/code>)
* @since 3.2
</body>
</ownedComment>
</ownedAttribute>
<ownedAttribute xmi:id="_kZnqQmEMEeCdEc4VzBeWeQ" name="FLAGS" type="_dSiS02EMEeCdEc4VzBeWeQ" isUnique="false">
<ownedComment xmi:id="_kZxbQGEMEeCdEc4VzBeWeQ">
<body>
* Flags marker attribute (value &lt;code>&quot;flags&quot;&lt;/code>). Reserved for
* future use.
</body>
</ownedComment>
</ownedAttribute>
<ownedAttribute xmi:id="_kZxbQWEMEeCdEc4VzBeWeQ" name="CYCLE_DETECTED" type="_dSiS02EMEeCdEc4VzBeWeQ" isUnique="false">
<ownedComment xmi:id="_kZxbQmEMEeCdEc4VzBeWeQ">
<body>
* Cycle detected marker attribute (value &lt;code>&quot;cycleDetected&quot;&lt;/code>).
* Used only on buildpath problem markers. The value of this attribute is
* either &quot;true&quot; or &quot;false&quot;.
</body>
</ownedComment>
</ownedAttribute>
<ownedAttribute xmi:id="_kZxbQ2EMEeCdEc4VzBeWeQ" name="BUILDPATH_PROBLEM_MARKER" type="_dSiS02EMEeCdEc4VzBeWeQ" isUnique="false">
<ownedComment xmi:id="_kZ6lMGEMEeCdEc4VzBeWeQ">
<body>
* Build path problem marker type (value
* &lt;code>&quot;org.eclipse.jdt.core.buildpath_problem&quot;&lt;/code>). This can be
* used to recognize those markers in the workspace that flag problems
* detected by the Java tooling during classpath setting.
</body>
</ownedComment>
</ownedAttribute>
<ownedAttribute xmi:id="_kZ6lMWEMEeCdEc4VzBeWeQ" name="CLASSPATH_FILE_FORMAT" type="_dSiS02EMEeCdEc4VzBeWeQ" isUnique="false">
<ownedComment xmi:id="_kZ6lMmEMEeCdEc4VzBeWeQ">
<body>
* Classpath file format marker attribute (value
* &lt;code>&quot;classpathFileFormat&quot;&lt;/code>). Used only on buildpath problem
* markers. The value of this attribute is either &quot;true&quot; or &quot;false&quot;.
*
* @since 2.0
</body>
</ownedComment>
</ownedAttribute>
</packagedElement>
<packagedElement xmi:type="uml:Interface" xmi:id="_kaEWMGEMEeCdEc4VzBeWeQ" name="IJavaModelStatus">
<ownedComment xmi:id="_kaOHMGEMEeCdEc4VzBeWeQ">
<body>
* Represents the outcome of an Java model operation. Status objects are
* used inside &lt;code>JavaModelException&lt;/code> objects to indicate what went
* wrong.
* &lt;p>
* Java model status object are distinguished by their plug-in id:
* &lt;code>getPlugin&lt;/code> returns &lt;code>&quot;org.eclipse.jdt.core&quot;&lt;/code>.
* &lt;code>getCode&lt;/code> returns one of the status codes declared in
* &lt;code>IJavaModelStatusConstants&lt;/code>.
* &lt;/p>
* &lt;p>
* A Java model status may also carry additional information (that is, in
* addition to the information defined in &lt;code>IStatus&lt;/code>):
* &lt;ul>
* &lt;li>elements - optional handles to Java elements associated with the failure&lt;/li>
* &lt;li>string - optional string associated with the failure&lt;/li>
* &lt;/ul>
*
* @see org.eclipse.core.runtime.IStatus
* @see IJavaModelStatusConstants
* @noimplement This interface is not intended to be implemented by clients.
</body>
</ownedComment>
<generalization xmi:id="_kaOHMmEMEeCdEc4VzBeWeQ" general="_kaOHMWEMEeCdEc4VzBeWeQ"/>
<ownedOperation xmi:id="_kaOHM2EMEeCdEc4VzBeWeQ" name="getElements">
<ownedComment xmi:id="_kaOHNGEMEeCdEc4VzBeWeQ">
<body>
* Returns any Java elements associated with the failure (see specification
* of the status code), or an empty array if no elements are related to this
* particular status code.
*
* @return the list of Java element culprits
* @see IJavaModelStatusConstants
</body>
</ownedComment>
<ownedParameter xmi:id="_kaOHNWEMEeCdEc4VzBeWeQ" type="_kO5A8GEMEeCdEc4VzBeWeQ" direction="return">
<upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_kaXRIWEMEeCdEc4VzBeWeQ" value="*"/>
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_kaXRIGEMEeCdEc4VzBeWeQ"/>
</ownedParameter>
</ownedOperation>
<ownedOperation xmi:id="_kaXRImEMEeCdEc4VzBeWeQ" name="getPath">
<ownedComment xmi:id="_kaXRI2EMEeCdEc4VzBeWeQ">
<body>
* Returns the path associated with the failure (see specification
* of the status code), or &lt;code>null&lt;/code> if the failure is not
* one of &lt;code>DEVICE_PATH&lt;/code>, &lt;code>INVALID_PATH&lt;/code>,
* &lt;code>PATH_OUTSIDE_PROJECT&lt;/code>, or &lt;code>RELATIVE_PATH&lt;/code>.
*
* @return the path that caused the failure, or &lt;code>null&lt;/code> if none
* @see IJavaModelStatusConstants#DEVICE_PATH
* @see IJavaModelStatusConstants#INVALID_PATH
* @see IJavaModelStatusConstants#PATH_OUTSIDE_PROJECT
* @see IJavaModelStatusConstants#RELATIVE_PATH
</body>
</ownedComment>
<ownedParameter xmi:id="_kaXRJGEMEeCdEc4VzBeWeQ" type="_j00UEmEMEeCdEc4VzBeWeQ" direction="return"/>
</ownedOperation>
<ownedOperation xmi:id="_kaXRJWEMEeCdEc4VzBeWeQ" name="getString">
<ownedComment xmi:id="_kaXRJmEMEeCdEc4VzBeWeQ">
<body>
* Returns the string associated with the failure (see specification
* of the status code), or &lt;code>null&lt;/code> if no string is related to this
* particular status code.
*
* @return the string culprit, or &lt;code>null&lt;/code> if none
* @see IJavaModelStatusConstants
* @deprecated Use {@link IStatus#getMessage()} instead
</body>
</ownedComment>
<ownedParameter xmi:id="_kaXRJ2EMEeCdEc4VzBeWeQ" type="_dSiS02EMEeCdEc4VzBeWeQ" direction="return"/>
</ownedOperation>
<ownedOperation xmi:id="_kahCIGEMEeCdEc4VzBeWeQ" name="isDoesNotExist">
<ownedComment xmi:id="_kahCIWEMEeCdEc4VzBeWeQ">
<body>
* Returns whether this status indicates that a Java model element does not exist.
* This convenience method is equivalent to
* &lt;code>getCode() == IJavaModelStatusConstants.ELEMENT_DOES_NOT_EXIST&lt;/code>.
*
* @return &lt;code>true&lt;/code> if the status code indicates that a Java model
* element does not exist
* @see IJavaModelStatusConstants#ELEMENT_DOES_NOT_EXIST
</body>
</ownedComment>
<ownedParameter xmi:id="_kahCImEMEeCdEc4VzBeWeQ" type="_dVOadGEMEeCdEc4VzBeWeQ" direction="return"/>
</ownedOperation>
</packagedElement>
<packagedElement xmi:type="uml:Interface" xmi:id="_kbG4AGEMEeCdEc4VzBeWeQ" name="IJavaModelStatusConstants">
<ownedComment xmi:id="_kbG4AWEMEeCdEc4VzBeWeQ">
<body>
* Status codes used with Java model status objects.
* &lt;p>
* This interface declares constants only.
* &lt;/p>
*
* @see IJavaModelStatus
* @see org.eclipse.core.runtime.IStatus#getCode()
* @noimplement This interface is not intended to be implemented by clients.
</body>
</ownedComment>
<ownedAttribute xmi:id="_kbQpAGEMEeCdEc4VzBeWeQ" name="INVALID_CP_CONTAINER_ENTRY" visibility="public" isLeaf="true" isStatic="true" type="_dTlbsGEMEeCdEc4VzBeWeQ" isUnique="false">
<ownedComment xmi:id="_kbQpAWEMEeCdEc4VzBeWeQ">
<body>
* Status constant indicating that a container path was resolved
* to invalid entries (null or container).
*
* @since 2.0
</body>
</ownedComment>
</ownedAttribute>
<ownedAttribute xmi:id="_kbQpAmEMEeCdEc4VzBeWeQ" name="CP_CONTAINER_PATH_UNBOUND" visibility="public" isLeaf="true" isStatic="true" type="_dTlbsGEMEeCdEc4VzBeWeQ" isUnique="false">
<ownedComment xmi:id="_kbaaAGEMEeCdEc4VzBeWeQ">
<body>
* Status constant indicating that a container path was not resolvable
* indicating either the referred container is undefined, unbound.
*
* @since 2.0
</body>
</ownedComment>
</ownedAttribute>
<ownedAttribute xmi:id="_kbaaAWEMEeCdEc4VzBeWeQ" name="INVALID_CLASSPATH" visibility="public" isLeaf="true" isStatic="true" type="_dTlbsGEMEeCdEc4VzBeWeQ" isUnique="false">
<ownedComment xmi:id="_kbaaAmEMEeCdEc4VzBeWeQ">
<body>
* Status constant indicating that a classpath entry was invalid
</body>
</ownedComment>
</ownedAttribute>
<ownedAttribute xmi:id="_kbjj8GEMEeCdEc4VzBeWeQ" name="CP_VARIABLE_PATH_UNBOUND" visibility="public" isLeaf="true" isStatic="true" type="_dTlbsGEMEeCdEc4VzBeWeQ" isUnique="false">
<ownedComment xmi:id="_kbjj8WEMEeCdEc4VzBeWeQ">
<body>
* Status constant indicating that a variable path was not resolvable
* indicating either the referred variable is undefined, unbound or the resolved
* variable path does not correspond to an existing file or folder.
</body>
</ownedComment>
</ownedAttribute>
<ownedAttribute xmi:id="_kbtU8GEMEeCdEc4VzBeWeQ" name="CORE_EXCEPTION" visibility="public" isLeaf="true" isStatic="true" type="_dTlbsGEMEeCdEc4VzBeWeQ" isUnique="false">
<ownedComment xmi:id="_kbtU8WEMEeCdEc4VzBeWeQ">
<body>
* Status constant indicating a core exception occurred.
* Use &lt;code>getException&lt;/code> to retrieve a &lt;code>CoreException&lt;/code>.
</body>
</ownedComment>
</ownedAttribute>
<ownedAttribute xmi:id="_kb3F8GEMEeCdEc4VzBeWeQ" name="INVALID_ELEMENT_TYPES" visibility="public" isLeaf="true" isStatic="true" type="_dTlbsGEMEeCdEc4VzBeWeQ" isUnique="false">
<ownedComment xmi:id="_kb3F8WEMEeCdEc4VzBeWeQ">
<body>
* Status constant indicating one or more of the elements
* supplied are not of a valid type for the operation to
* process.
* The element(s) can be retrieved using &lt;code>getElements&lt;/code> on the status object.
</body>
</ownedComment>
</ownedAttribute>
<ownedAttribute xmi:id="_kcAP4GEMEeCdEc4VzBeWeQ" name="NO_ELEMENTS_TO_PROCESS" visibility="public" isLeaf="true" isStatic="true" type="_dTlbsGEMEeCdEc4VzBeWeQ" isUnique="false">
<ownedComment xmi:id="_kcAP4WEMEeCdEc4VzBeWeQ">
<body>
* Status constant indicating that no elements were
* provided to the operation for processing.
</body>
</ownedComment>
</ownedAttribute>
<ownedAttribute xmi:id="_kcAP4mEMEeCdEc4VzBeWeQ" name="ELEMENT_DOES_NOT_EXIST" visibility="public" isLeaf="true" isStatic="true" type="_dTlbsGEMEeCdEc4VzBeWeQ" isUnique="false">
<ownedComment xmi:id="_kcKA4GEMEeCdEc4VzBeWeQ">
<body>
* Status constant indicating that one or more elements
* supplied do not exist.
* The element(s) can be retrieved using &lt;code>getElements&lt;/code> on the status object.
*
* @see IJavaModelStatus#isDoesNotExist()
</body>
</ownedComment>
</ownedAttribute>
<ownedAttribute xmi:id="_kcKA4WEMEeCdEc4VzBeWeQ" name="NULL_PATH" visibility="public" isLeaf="true" isStatic="true" type="_dTlbsGEMEeCdEc4VzBeWeQ" isUnique="false">
<ownedComment xmi:id="_kcKA4mEMEeCdEc4VzBeWeQ">
<body>
* Status constant indicating that a &lt;code>null&lt;/code> path was
* supplied to the operation.
</body>
</ownedComment>
</ownedAttribute>
<ownedAttribute xmi:id="_kcTK0GEMEeCdEc4VzBeWeQ" name="PATH_OUTSIDE_PROJECT" visibility="public" isLeaf="true" isStatic="true" type="_dTlbsGEMEeCdEc4VzBeWeQ" isUnique="false">
<ownedComment xmi:id="_kcTK0WEMEeCdEc4VzBeWeQ">
<body>
* Status constant indicating that a path outside of the
* project was supplied to the operation. The path can be retrieved using
* &lt;code>getPath&lt;/code> on the status object.
</body>
</ownedComment>
</ownedAttribute>
<ownedAttribute xmi:id="_kcc70GEMEeCdEc4VzBeWeQ" name="RELATIVE_PATH" visibility="public" isLeaf="true" isStatic="true" type="_dTlbsGEMEeCdEc4VzBeWeQ" isUnique="false">
<ownedComment xmi:id="_kcc70WEMEeCdEc4VzBeWeQ">
<body>
* Status constant indicating that a relative path
* was supplied to the operation when an absolute path is
* required. The path can be retrieved using &lt;code>getPath&lt;/code> on the
* status object.
</body>
</ownedComment>
</ownedAttribute>
<ownedAttribute xmi:id="_kcc70mEMEeCdEc4VzBeWeQ" name="DEVICE_PATH" visibility="public" isLeaf="true" isStatic="true" type="_dTlbsGEMEeCdEc4VzBeWeQ" isUnique="false">
<ownedComment xmi:id="_kcms0GEMEeCdEc4VzBeWeQ">
<body>
* Status constant indicating that a path specifying a device
* was supplied to the operation when a path with no device is
* required. The path can be retrieved using &lt;code>getPath&lt;/code> on the
* status object.
</body>
</ownedComment>
</ownedAttribute>
<ownedAttribute xmi:id="_kcv2wGEMEeCdEc4VzBeWeQ" name="NULL_STRING" visibility="public" isLeaf="true" isStatic="true" type="_dTlbsGEMEeCdEc4VzBeWeQ" isUnique="false">
<ownedComment xmi:id="_kcv2wWEMEeCdEc4VzBeWeQ">
<body>
* Status constant indicating that a string
* was supplied to the operation that was &lt;code>null&lt;/code>.
</body>
</ownedComment>
</ownedAttribute>
<ownedAttribute xmi:id="_kc5nwGEMEeCdEc4VzBeWeQ" name="READ_ONLY" visibility="public" isLeaf="true" isStatic="true" type="_dTlbsGEMEeCdEc4VzBeWeQ" isUnique="false">
<ownedComment xmi:id="_kc5nwWEMEeCdEc4VzBeWeQ">
<body>
* Status constant indicating that the operation encountered
* a read-only element.
* The element(s) can be retrieved using &lt;code>getElements&lt;/code> on the status object.
</body>
</ownedComment>
</ownedAttribute>
<ownedAttribute xmi:id="_kc5nwmEMEeCdEc4VzBeWeQ" name="NAME_COLLISION" visibility="public" isLeaf="true" isStatic="true" type="_dTlbsGEMEeCdEc4VzBeWeQ" isUnique="false">
<ownedComment xmi:id="_kdDYwGEMEeCdEc4VzBeWeQ">
<body>
* Status constant indicating that a naming collision would occur
* if the operation proceeded.
</body>
</ownedComment>
</ownedAttribute>
<ownedAttribute xmi:id="_kdMisGEMEeCdEc4VzBeWeQ" name="INVALID_DESTINATION" visibility="public" isLeaf="true" isStatic="true" type="_dTlbsGEMEeCdEc4VzBeWeQ" isUnique="false">
<ownedComment xmi:id="_kdMisWEMEeCdEc4VzBeWeQ">
<body>
* Status constant indicating that a destination provided for a copy/move/rename operation
* is invalid. The destination for a package fragment must be a package fragment root; the
* destination for a compilation unit must be a package fragment; the destination for
* a package declaration or import declaration must be a compilation unit; the
* destination for a type must be a type or compilation unit; the destination for any
* type member (other than a type) must be a type. &lt;br>
*
* The destination element can be retrieved using &lt;code>getElements&lt;/code> on the status object.
</body>
</ownedComment>
</ownedAttribute>
<ownedAttribute xmi:id="_kdWTsGEMEeCdEc4VzBeWeQ" name="INVALID_PATH" visibility="public" isLeaf="true" isStatic="true" type="_dTlbsGEMEeCdEc4VzBeWeQ" isUnique="false">
<ownedComment xmi:id="_kdWTsWEMEeCdEc4VzBeWeQ">
<body>
* Status constant indicating that a path provided to an operation
* is invalid. The path can be retrieved using &lt;code>getPath&lt;/code> on the
* status object.
</body>
</ownedComment>
</ownedAttribute>
<ownedAttribute xmi:id="_kdfdoGEMEeCdEc4VzBeWeQ" name="INDEX_OUT_OF_BOUNDS" visibility="public" isLeaf="true" isStatic="true" type="_dTlbsGEMEeCdEc4VzBeWeQ" isUnique="false">
<ownedComment xmi:id="_kdfdoWEMEeCdEc4VzBeWeQ">
<body>
* Status constant indicating the given source position is out of bounds.
</body>
</ownedComment>
</ownedAttribute>
<ownedAttribute xmi:id="_kdfdomEMEeCdEc4VzBeWeQ" name="UPDATE_CONFLICT" visibility="public" isLeaf="true" isStatic="true" type="_dTlbsGEMEeCdEc4VzBeWeQ" isUnique="false">
<ownedComment xmi:id="_kdpOoGEMEeCdEc4VzBeWeQ">
<body>
* Status constant indicating there is an update conflict
* for a working copy. The compilation unit on which the
* working copy is based has changed since the working copy
* was created.
</body>
</ownedComment>
</ownedAttribute>
<ownedAttribute xmi:id="_kdy_oGEMEeCdEc4VzBeWeQ" name="NULL_NAME" visibility="public" isLeaf="true" isStatic="true" type="_dTlbsGEMEeCdEc4VzBeWeQ" isUnique="false">
<ownedComment xmi:id="_kdy_oWEMEeCdEc4VzBeWeQ">
<body>
* Status constant indicating that &lt;code>null&lt;/code> was specified
* as a name argument.
</body>
</ownedComment>
</ownedAttribute>
<ownedAttribute xmi:id="_kd8JkGEMEeCdEc4VzBeWeQ" name="INVALID_NAME" visibility="public" isLeaf="true" isStatic="true" type="_dTlbsGEMEeCdEc4VzBeWeQ" isUnique="false">
<ownedComment xmi:id="_kd8JkWEMEeCdEc4VzBeWeQ">
<body>
* Status constant indicating that a name provided is not syntactically correct.
* The name can be retrieved from &lt;code>getString&lt;/code>.
</body>
</ownedComment>
</ownedAttribute>
<ownedAttribute xmi:id="_kd8JkmEMEeCdEc4VzBeWeQ" name="INVALID_CONTENTS" visibility="public" isLeaf="true" isStatic="true" type="_dTlbsGEMEeCdEc4VzBeWeQ" isUnique="false">
<ownedComment xmi:id="_keF6kGEMEeCdEc4VzBeWeQ">
<body>
* Status constant indicating that the specified contents
* are not valid.
</body>
</ownedComment>
</ownedAttribute>
<ownedAttribute xmi:id="_keF6kWEMEeCdEc4VzBeWeQ" name="IO_EXCEPTION" visibility="public" isLeaf="true" isStatic="true" type="_dTlbsGEMEeCdEc4VzBeWeQ" isUnique="false">
<ownedComment xmi:id="_keF6kmEMEeCdEc4VzBeWeQ">
<body>
* Status constant indicating that an &lt;code>java.io.IOException&lt;/code>
* occurred.
</body>
</ownedComment>
</ownedAttribute>
<ownedAttribute xmi:id="_kePrkGEMEeCdEc4VzBeWeQ" name="DOM_EXCEPTION" visibility="public" isLeaf="true" isStatic="true" type="_dTlbsGEMEeCdEc4VzBeWeQ" isUnique="false">
<ownedComment xmi:id="_keY1gGEMEeCdEc4VzBeWeQ">
<body>
* Status constant indicating that a &lt;code>DOMException&lt;/code>
* occurred.
</body>
</ownedComment>
</ownedAttribute>
<ownedAttribute xmi:id="_kerwcGEMEeCdEc4VzBeWeQ" name="TARGET_EXCEPTION" visibility="public" isLeaf="true" isStatic="true" type="_dTlbsGEMEeCdEc4VzBeWeQ" isUnique="false">
<ownedComment xmi:id="_ke1hcGEMEeCdEc4VzBeWeQ">
<body>
* Status constant indicating that a &lt;code>TargetException&lt;/code>
* occurred.
</body>
</ownedComment>
</ownedAttribute>
<ownedAttribute xmi:id="_ke1hcWEMEeCdEc4VzBeWeQ" name="BUILDER_INITIALIZATION_ERROR" visibility="public" isLeaf="true" isStatic="true" type="_dTlbsGEMEeCdEc4VzBeWeQ" isUnique="false">
<ownedComment xmi:id="_ke_ScGEMEeCdEc4VzBeWeQ">
<body>
* Status constant indicating that the Java builder
* could not be initialized.
</body>
</ownedComment>
</ownedAttribute>
<ownedAttribute xmi:id="_ke_ScWEMEeCdEc4VzBeWeQ" name="BUILDER_SERIALIZATION_ERROR" visibility="public" isLeaf="true" isStatic="true" type="_dTlbsGEMEeCdEc4VzBeWeQ" isUnique="false">
<ownedComment xmi:id="_ke_ScmEMEeCdEc4VzBeWeQ">
<body>
* Status constant indicating that the Java builder's last built state
* could not be serialized or deserialized.
</body>
</ownedComment>
</ownedAttribute>
<ownedAttribute xmi:id="_kfIcYGEMEeCdEc4VzBeWeQ" name="EVALUATION_ERROR" visibility="public" isLeaf="true" isStatic="true" type="_dTlbsGEMEeCdEc4VzBeWeQ" isUnique="false">
<ownedComment xmi:id="_kfIcYWEMEeCdEc4VzBeWeQ">
<body>
* Status constant indicating that an error was encountered while
* trying to evaluate a code snippet, or other item.
</body>
</ownedComment>
</ownedAttribute>
<ownedAttribute xmi:id="_kfSNYGEMEeCdEc4VzBeWeQ" name="INVALID_SIBLING" visibility="public" isLeaf="true" isStatic="true" type="_dTlbsGEMEeCdEc4VzBeWeQ" isUnique="false">
<ownedComment xmi:id="_kfSNYWEMEeCdEc4VzBeWeQ">
<body>
* Status constant indicating that a sibling specified is not valid.
</body>
</ownedComment>
</ownedAttribute>
<ownedAttribute xmi:id="_kfSNYmEMEeCdEc4VzBeWeQ" name="INVALID_RESOURCE" visibility="public" isLeaf="true" isStatic="true" type="_dTlbsGEMEeCdEc4VzBeWeQ" isUnique="false">
<ownedComment xmi:id="_kfb-YGEMEeCdEc4VzBeWeQ">
<body>
* Status indicating that a Java element could not be created because
* the underlying resource is invalid.
* @see JavaCore
</body>
</ownedComment>
</ownedAttribute>
<ownedAttribute xmi:id="_kfb-YWEMEeCdEc4VzBeWeQ" name="INVALID_RESOURCE_TYPE" visibility="public" isLeaf="true" isStatic="true" type="_dTlbsGEMEeCdEc4VzBeWeQ" isUnique="false">
<ownedComment xmi:id="_kflIUGEMEeCdEc4VzBeWeQ">
<body>
* Status indicating that a Java element could not be created because
* the underlying resource is not of an appropriate type.
* @see JavaCore
</body>
</ownedComment>
</ownedAttribute>
<ownedAttribute xmi:id="_kflIUWEMEeCdEc4VzBeWeQ" name="INVALID_PROJECT" visibility="public" isLeaf="true" isStatic="true" type="_dTlbsGEMEeCdEc4VzBeWeQ" isUnique="false">
<ownedComment xmi:id="_kflIUmEMEeCdEc4VzBeWeQ">
<body>
* Status indicating that a Java element could not be created because
* the project owning underlying resource does not have the Java nature.
* @see JavaCore
</body>
</ownedComment>
</ownedAttribute>
<ownedAttribute xmi:id="_kfu5UGEMEeCdEc4VzBeWeQ" name="INVALID_PACKAGE" visibility="public" isLeaf="true" isStatic="true" type="_dTlbsGEMEeCdEc4VzBeWeQ" isUnique="false">
<ownedComment xmi:id="_kfu5UWEMEeCdEc4VzBeWeQ">
<body>
* Status indicating that the package declaration in a &lt;code>ICompilationUnit&lt;/code>
* does not correspond to the &lt;code>IPackageFragment&lt;/code> it belongs to.
* The &lt;code>getString&lt;/code> method of the associated status object
* gives the name of the package in which the &lt;code>ICompilationUnit&lt;/code> is
* declared.
</body>
</ownedComment>
</ownedAttribute>
<ownedAttribute xmi:id="_kf4DQGEMEeCdEc4VzBeWeQ" name="NO_LOCAL_CONTENTS" visibility="public" isLeaf="true" isStatic="true" type="_dTlbsGEMEeCdEc4VzBeWeQ" isUnique="false">
<ownedComment xmi:id="_kf4DQWEMEeCdEc4VzBeWeQ">
<body>
* Status indicating that the corresponding resource has no local contents yet.
* This might happen when attempting to use a resource before its contents
* has been made locally available.
</body>
</ownedComment>
</ownedAttribute>
<ownedAttribute xmi:id="_kgB0QGEMEeCdEc4VzBeWeQ" name="INVALID_CLASSPATH_FILE_FORMAT" visibility="public" isLeaf="true" isStatic="true" type="_dTlbsGEMEeCdEc4VzBeWeQ" isUnique="false">
<ownedComment xmi:id="_kgB0QWEMEeCdEc4VzBeWeQ">
<body>
* Status indicating that a .classpath file is ill-formed, and thus cannot
* be read/written successfully.
* @since 2.1
</body>
</ownedComment>
</ownedAttribute>
<ownedAttribute xmi:id="_kgLlQGEMEeCdEc4VzBeWeQ" name="CLASSPATH_CYCLE" visibility="public" isLeaf="true" isStatic="true" type="_dTlbsGEMEeCdEc4VzBeWeQ" isUnique="false">
<ownedComment xmi:id="_kgLlQWEMEeCdEc4VzBeWeQ">
<body>
* Status indicating that a project is involved in a build path cycle.
* @since 2.1
</body>
</ownedComment>
</ownedAttribute>
<ownedAttribute xmi:id="_kgUvMGEMEeCdEc4VzBeWeQ" name="DISABLED_CP_EXCLUSION_PATTERNS" visibility="public" isLeaf="true" isStatic="true" type="_dTlbsGEMEeCdEc4VzBeWeQ" isUnique="false">
<ownedComment xmi:id="_kgUvMWEMEeCdEc4VzBeWeQ">
<body>
* Status constant indicating that an inclusion or an exclusion pattern got specified
* on a classpath source entry, though it was explicitely disabled
* according to its project preference settings.
* @see org.eclipse.jdt.core.IJavaProject#getOptions(boolean)
* @since 2.1
</body>
</ownedComment>
</ownedAttribute>
<ownedAttribute xmi:id="_kgUvMmEMEeCdEc4VzBeWeQ" name="DISABLED_CP_MULTIPLE_OUTPUT_LOCATIONS" visibility="public" isLeaf="true" isStatic="true" type="_dTlbsGEMEeCdEc4VzBeWeQ" isUnique="false">
<ownedComment xmi:id="_kgegMGEMEeCdEc4VzBeWeQ">
<body>
* Status constant indicating that a specific output location got associated
* with a source entry, though it was explicitely disabled according to its project
* preference settings.
* @see org.eclipse.jdt.core.IJavaProject#getOptions(boolean)
* @since 2.1
</body>
</ownedComment>
</ownedAttribute>
<ownedAttribute xmi:id="_kgegMWEMEeCdEc4VzBeWeQ" name="INCOMPATIBLE_JDK_LEVEL" visibility="public" isLeaf="true" isStatic="true" type="_dTlbsGEMEeCdEc4VzBeWeQ" isUnique="false">
<ownedComment xmi:id="_kgoRMGEMEeCdEc4VzBeWeQ">
<body>
* Status constant indicating that a project is prerequisiting some library for which the
* classfile JDK version level is more recent than the project JDK target level setting.
* This can indicate some binary incompatibility issues later on.
* @since 3.0
</body>
</ownedComment>
</ownedAttribute>
<ownedAttribute xmi:id="_kgoRMWEMEeCdEc4VzBeWeQ" name="COMPILER_FAILURE" visibility="public" isLeaf="true" isStatic="true" type="_dTlbsGEMEeCdEc4VzBeWeQ" isUnique="false">
<ownedComment xmi:id="_kgoRMmEMEeCdEc4VzBeWeQ">
<body>
* Status constant indicating that a compiler failure occurred.
* @since 3.0
</body>
</ownedComment>
</ownedAttribute>
<ownedAttribute xmi:id="_kgxbIGEMEeCdEc4VzBeWeQ" name="ELEMENT_NOT_ON_CLASSPATH" visibility="public" isLeaf="true" isStatic="true" type="_dTlbsGEMEeCdEc4VzBeWeQ" isUnique="false">
<ownedComment xmi:id="_kgxbIWEMEeCdEc4VzBeWeQ">
<body>
* Status constant indicating that an element is not on its project's claspath.
* @since 3.1
</body>
</ownedComment>
</ownedAttribute>
<ownedAttribute xmi:id="_kg7MIGEMEeCdEc4VzBeWeQ" name="CANNOT_RETRIEVE_ATTACHED_JAVADOC" visibility="public" isLeaf="true" isStatic="true" type="_dTlbsGEMEeCdEc4VzBeWeQ" isUnique="false">
<ownedComment xmi:id="_kg7MIWEMEeCdEc4VzBeWeQ">
<body>
* &lt;p>Status constant indicating that the attached javadoc content cannot be retrieved due to multiple reasons:
* invalid url, incorrect proxy, wrong authentication,...&lt;/p>
*
* @since 3.2
</body>
</ownedComment>
</ownedAttribute>
<ownedAttribute xmi:id="_kg7MImEMEeCdEc4VzBeWeQ" name="UNKNOWN_JAVADOC_FORMAT" visibility="public" isLeaf="true" isStatic="true" type="_dTlbsGEMEeCdEc4VzBeWeQ" isUnique="false">
<ownedComment xmi:id="_khEWEGEMEeCdEc4VzBeWeQ">
<body>
* &lt;p>Status constant indicating that the attached javadoc content format is unrecognized.&lt;/p>
*
* @since 3.2
</body>
</ownedComment>
</ownedAttribute>
<ownedAttribute xmi:id="_khEWEWEMEeCdEc4VzBeWeQ" name="DEPRECATED_VARIABLE" visibility="public" isLeaf="true" isStatic="true" type="_dTlbsGEMEeCdEc4VzBeWeQ" isUnique="false">
<ownedComment xmi:id="_khOHEGEMEeCdEc4VzBeWeQ">
<body>
* &lt;p>Status constant indicating that the variable is deprecated.&lt;/p>
*
* @since 3.3
</body>
</ownedComment>
</ownedAttribute>
<ownedAttribute xmi:id="_khOHEWEMEeCdEc4VzBeWeQ" name="BAD_TEXT_EDIT_LOCATION" visibility="public" isLeaf="true" isStatic="true" type="_dTlbsGEMEeCdEc4VzBeWeQ" isUnique="false">
<ownedComment xmi:id="_khOHEmEMEeCdEc4VzBeWeQ">
<body>
* &lt;p>Status constant indicating that a text edit can not be applied as there
* is a problem with the text edit location.&lt;/p>
*
* @since 3.4
</body>
</ownedComment>
</ownedAttribute>
<ownedAttribute xmi:id="_khX4EGEMEeCdEc4VzBeWeQ" name="CANNOT_RETRIEVE_ATTACHED_JAVADOC_TIMEOUT" visibility="public" isLeaf="true" isStatic="true" type="_dTlbsGEMEeCdEc4VzBeWeQ" isUnique="false">
<ownedComment xmi:id="_khX4EWEMEeCdEc4VzBeWeQ">
<body>
* &lt;p>Status constant indicating that the attached javadoc content cannot be retrieved due to timeout
* @since 3.7
</body>
</ownedComment>
</ownedAttribute>
</packagedElement>
<packagedElement xmi:type="uml:Interface" xmi:id="_kjmssGEMEeCdEc4VzBeWeQ" name="IJavaProject">
<ownedComment xmi:id="_kjmssWEMEeCdEc4VzBeWeQ">
<body>
* A Java project represents a view of a project resource in terms of Java
* elements such as package fragments, types, methods and fields.
* A project may contain several package roots, which contain package fragments.
* A package root corresponds to an underlying folder or JAR.
* &lt;p>
* Each Java project has a classpath, defining which folders contain source code and
* where required libraries are located. Each Java project also has an output location,
* defining where the builder writes &lt;code>.class&lt;/code> files. A project that
* references packages in another project can access the packages by including
* the required project in a classpath entry. The Java model will present the
* source elements in the required project; when building, the compiler will use
* the corresponding generated class files from the required project's output
* location(s)). The classpath format is a sequence of classpath entries
* describing the location and contents of package fragment roots.
* &lt;/p>
* Java project elements need to be opened before they can be navigated or manipulated.
* The children of a Java project are the package fragment roots that are
* defined by the classpath and contained in this project (in other words, it
* does not include package fragment roots for other projects).
* &lt;/p>
* &lt;p>
* An instance of one of these handles can be created via
* &lt;code>JavaCore.create(project)&lt;/code>.
* &lt;/p>
*
* @see JavaCore#create(org.eclipse.core.resources.IProject)
* @see IClasspathEntry
* @noimplement This interface is not intended to be implemented by clients.
</body>
</ownedComment>
<generalization xmi:id="_S-hgwGHaEeCIr_fxSkYSJA" general="_kq6OkGEMEeCdEc4VzBeWeQ"/>
<generalization xmi:id="_S-rRwGHaEeCIr_fxSkYSJA" general="_kO5A8GEMEeCdEc4VzBeWeQ"/>
<generalization xmi:id="_S-rRwWHaEeCIr_fxSkYSJA" general="_koX38GEMEeCdEc4VzBeWeQ"/>
<ownedOperation xmi:id="_S-rRwmHaEeCIr_fxSkYSJA" name="decodeClasspathEntry">
<ownedComment xmi:id="_S-0bsGHaEeCIr_fxSkYSJA">
<body>
* Decodes the classpath entry that has been encoded in the given string
* in the context of this project.
* Returns null if the encoded entry is malformed.
*
* @param encodedEntry the encoded classpath entry
* @return the decoded classpath entry, or &lt;code>null&lt;/code> if unable to decode it
* @since 3.2
</body>
</ownedComment>
<ownedParameter xmi:id="_S-0bsWHaEeCIr_fxSkYSJA" type="_j4GRkGEMEeCdEc4VzBeWeQ" direction="return"/>
<ownedParameter xmi:id="_S-0bsmHaEeCIr_fxSkYSJA" name="encodedEntry" type="_dSiS02EMEeCdEc4VzBeWeQ"/>
</ownedOperation>
<ownedOperation xmi:id="_S--MsGHaEeCIr_fxSkYSJA" name="encodeClasspathEntry">
<ownedComment xmi:id="_S--MsWHaEeCIr_fxSkYSJA">
<body>
* Encodes the given classpath entry into a string in the context of this project.
*
* @param classpathEntry the classpath entry to encode
* @return the encoded classpath entry
* @since 3.2
</body>
</ownedComment>
<ownedParameter xmi:id="_S--MsmHaEeCIr_fxSkYSJA" type="_dSiS02EMEeCdEc4VzBeWeQ" direction="return"/>
<ownedParameter xmi:id="_S_H9sGHaEeCIr_fxSkYSJA" name="classpathEntry" type="_j4GRkGEMEeCdEc4VzBeWeQ"/>
</ownedOperation>
<ownedOperation xmi:id="_S_H9sWHaEeCIr_fxSkYSJA" name="findElement">
<ownedComment xmi:id="_S_H9smHaEeCIr_fxSkYSJA">
<body>
* Returns the &lt;code>IJavaElement&lt;/code> corresponding to the given
* classpath-relative path, or &lt;code>null&lt;/code> if no such
* &lt;code>IJavaElement&lt;/code> is found. The result is one of an
* &lt;code>ICompilationUnit&lt;/code>, &lt;code>IClassFile&lt;/code>, or
* &lt;code>IPackageFragment&lt;/code>.
* &lt;p>
* When looking for a package fragment, there might be several potential
* matches; only one of them is returned.
*
* &lt;p>For example, the path &quot;java/lang/Object.java&quot;, would result in the
* &lt;code>ICompilationUnit&lt;/code> or &lt;code>IClassFile&lt;/code> corresponding to
* &quot;java.lang.Object&quot;. The path &quot;java/lang&quot; would result in the
* &lt;code>IPackageFragment&lt;/code> for &quot;java.lang&quot;.
* @param path the given classpath-relative path
* @exception JavaModelException if the given path is &lt;code>null&lt;/code>
* or absolute
* @return the &lt;code>IJavaElement&lt;/code> corresponding to the given
* classpath-relative path, or &lt;code>null&lt;/code> if no such
* &lt;code>IJavaElement&lt;/code> is found
</body>
</ownedComment>
<ownedParameter xmi:id="_S_H9s2HaEeCIr_fxSkYSJA" type="_kO5A8GEMEeCdEc4VzBeWeQ" direction="return"/>
<ownedParameter xmi:id="_S_RHoGHaEeCIr_fxSkYSJA" name="path" type="_j00UEmEMEeCdEc4VzBeWeQ"/>
</ownedOperation>
<ownedOperation xmi:id="_S_a4oGHaEeCIr_fxSkYSJA" name="findElement">
<ownedComment xmi:id="_S_a4oWHaEeCIr_fxSkYSJA">
<body>
* Returns the &lt;code>IJavaElement&lt;/code> corresponding to the given
* classpath-relative path, or &lt;code>null&lt;/code> if no such
* &lt;code>IJavaElement&lt;/code> is found. The result is one of an
* &lt;code>ICompilationUnit&lt;/code>, &lt;code>IClassFile&lt;/code>, or
* &lt;code>IPackageFragment&lt;/code>. If it is an &lt;code>ICompilationUnit&lt;/code>,
* its owner is the given owner.
* &lt;p>
* When looking for a package fragment, there might be several potential
* matches; only one of them is returned.
*
* &lt;p>For example, the path &quot;java/lang/Object.java&quot;, would result in the
* &lt;code>ICompilationUnit&lt;/code> or &lt;code>IClassFile&lt;/code> corresponding to
* &quot;java.lang.Object&quot;. The path &quot;java/lang&quot; would result in the
* &lt;code>IPackageFragment&lt;/code> for &quot;java.lang&quot;.
* @param path the given classpath-relative path
* @param owner the owner of the returned compilation unit, ignored if it is
* not a compilation unit.
* @exception JavaModelException if the given path is &lt;code>null&lt;/code>
* or absolute
* @return the &lt;code>IJavaElement&lt;/code> corresponding to the given
* classpath-relative path, or &lt;code>null&lt;/code> if no such
* &lt;code>IJavaElement&lt;/code> is found
* @since 3.0
</body>
</ownedComment>
<ownedParameter xmi:id="_S_a4omHaEeCIr_fxSkYSJA" type="_kO5A8GEMEeCdEc4VzBeWeQ" direction="return"/>
<ownedParameter xmi:id="_S_a4o2HaEeCIr_fxSkYSJA" name="path" type="_j00UEmEMEeCdEc4VzBeWeQ"/>
<ownedParameter xmi:id="_S_kCkGHaEeCIr_fxSkYSJA" name="owner" type="_nI23sGEMEeCdEc4VzBeWeQ"/>
</ownedOperation>
<ownedOperation xmi:id="_S_kCkWHaEeCIr_fxSkYSJA" name="findElement">
<ownedComment xmi:id="_S_kCkmHaEeCIr_fxSkYSJA">
<body>
* Finds the Java element corresponding to the given binding key if any,
* else returns &lt;code>null&lt;/code>. Elements are looked up using this
* project's classpath. The first element corresponding to
* the given key on this project's classpath is returned.
* &lt;p>Possible elements are:
* &lt;ul>
* &lt;li>{@link IPackageFragment} for a binding key from an
* {@link IPackageBinding}&lt;/li>
* &lt;li>{@link IType} for a binding key from an {@link ITypeBinding}&lt;/li>
* &lt;li>{@link IMethod} for a binding key from an {@link IMethodBinding}&lt;/li>
* &lt;li>{@link IField} for a binding key from an {@link IVariableBinding}
* representing a {@link IVariableBinding#isField() field}&lt;/li>
* &lt;li>{@link ITypeParameter} for a binding key from an {@link ITypeBinding}
* representing a {@link ITypeBinding#isTypeVariable() type
* variable}&lt;/li>
* &lt;li>{@link IAnnotation} for a binding key from an
* {@link IAnnotationBinding}&lt;/li>
* &lt;/ul>&lt;/p>
* &lt;p>Note: if two methods correspond to the binding key because their
* parameter types' simple names are the same, then the first one is returned.
* For example, if a class defines two methods &lt;code>foo(p1.Y, String)&lt;/code>
* and &lt;code>foo(p2.Y, String)&lt;/code>, in both cases the parameter type's
* simple names are &lt;code>{&quot;Y&quot;, &quot;String&quot;}&lt;/code>. Thus
* &lt;code>foo(p1.Y, String)&lt;/code> is returned.&lt;/p>
*
* @param bindingKey the given binding key
* @param owner the owner of the returned element's compilation unit,
* or &lt;code>null&lt;/code> if the default working copy owner must be
* used
* @exception JavaModelException if this project does not exist or if an
* exception occurs while accessing its corresponding resource
* @return the Java element corresponding to the given key,
* or &lt;code>null&lt;/code> if no such Java element is found
* @since 3.4
</body>
</ownedComment>
<ownedParameter xmi:id="_S_tzkGHaEeCIr_fxSkYSJA" type="_kO5A8GEMEeCdEc4VzBeWeQ" direction="return"/>
<ownedParameter xmi:id="_S_tzkWHaEeCIr_fxSkYSJA" name="bindingKey" type="_dSiS02EMEeCdEc4VzBeWeQ"/>
<ownedParameter xmi:id="_S_3kkGHaEeCIr_fxSkYSJA" name="owner" type="_nI23sGEMEeCdEc4VzBeWeQ"/>
</ownedOperation>
<ownedOperation xmi:id="_TAAugGHaEeCIr_fxSkYSJA" name="findPackageFragment">
<ownedComment xmi:id="_TAAugWHaEeCIr_fxSkYSJA">
<body>
* Returns the first existing package fragment on this project's classpath
* whose path matches the given (absolute) path, or &lt;code>null&lt;/code> if none
* exist.
* The path can be:
* - internal to the workbench: &quot;/Project/src&quot;
* - external to the workbench: &quot;c:/jdk/classes.zip/java/lang&quot;
* @param path the given absolute path
* @exception JavaModelException if this project does not exist or if an
* exception occurs while accessing its corresponding resource
* @return the first existing package fragment on this project's classpath
* whose path matches the given (absolute) path, or &lt;code>null&lt;/code> if none
* exist
</body>
</ownedComment>
<ownedParameter xmi:id="_TAAugmHaEeCIr_fxSkYSJA" type="_kqTxoGEMEeCdEc4VzBeWeQ" direction="return"/>
<ownedParameter xmi:id="_TAKfgGHaEeCIr_fxSkYSJA" name="path" type="_j00UEmEMEeCdEc4VzBeWeQ"/>
</ownedOperation>
<ownedOperation xmi:id="_TAKfgWHaEeCIr_fxSkYSJA" name="findPackageFragmentRoot">
<ownedComment xmi:id="_TAKfgmHaEeCIr_fxSkYSJA">
<body>
* Returns the existing package fragment root on this project's classpath
* whose path matches the given (absolute) path, or &lt;code>null&lt;/code> if
* one does not exist.
* The path can be:
* - internal to the workbench: &quot;/Compiler/src&quot;
* - external to the workbench: &quot;c:/jdk/classes.zip&quot;
* @param path the given absolute path
* @exception JavaModelException if this project does not exist or if an
* exception occurs while accessing its corresponding resource
* @return the existing package fragment root on this project's classpath
* whose path matches the given (absolute) path, or &lt;code>null&lt;/code> if
* one does not exist
</body>
</ownedComment>
<ownedParameter xmi:id="_TAKfg2HaEeCIr_fxSkYSJA" type="_kqmskGEMEeCdEc4VzBeWeQ" direction="return"/>
<ownedParameter xmi:id="_TAUQgGHaEeCIr_fxSkYSJA" name="path" type="_j00UEmEMEeCdEc4VzBeWeQ"/>
</ownedOperation>
<ownedOperation xmi:id="_TAUQgWHaEeCIr_fxSkYSJA" name="findPackageFragmentRoots">
<ownedComment xmi:id="_TAUQgmHaEeCIr_fxSkYSJA">
<body>
* Returns the existing package fragment roots identified by the given entry.
* A classpath entry within the current project identifies a single root.
* &lt;p>
* If the classpath entry denotes a variable, it will be resolved and return
* the roots of the target entry (empty if not resolvable).
* &lt;p>
* If the classpath entry denotes a container, it will be resolved and return
* the roots corresponding to the set of container entries (empty if not resolvable).
* &lt;p>
* The result does not include package fragment roots in other projects
* referenced on this project's classpath.
*
* @param entry the given entry
* @return the existing package fragment roots identified by the given entry
* @see IClasspathContainer
* @since 2.1
</body>
</ownedComment>
<ownedParameter xmi:id="_TAdacGHaEeCIr_fxSkYSJA" type="_kqmskGEMEeCdEc4VzBeWeQ" direction="return">
<upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_TAnLcGHaEeCIr_fxSkYSJA" value="*"/>
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_TAdacWHaEeCIr_fxSkYSJA"/>
</ownedParameter>
<ownedParameter xmi:id="_TAnLcWHaEeCIr_fxSkYSJA" name="entry" type="_j4GRkGEMEeCdEc4VzBeWeQ"/>
</ownedOperation>
<ownedOperation xmi:id="_TAwVYGHaEeCIr_fxSkYSJA" name="findType">
<ownedComment xmi:id="_TAwVYWHaEeCIr_fxSkYSJA">
<body>
* Returns the first type found following this project's classpath
* with the given fully qualified name or &lt;code>null&lt;/code> if none is found.
* The fully qualified name is a dot-separated name. For example,
* a class B defined as a member type of a class A in package x.y should have a
* the fully qualified name &quot;x.y.A.B&quot;.
*
* Note that in order to be found, a type name (or its toplevel enclosing
* type name) must match its corresponding compilation unit name. As a
* consequence, secondary types cannot be found using this functionality.
* To find secondary types use {@link #findType(String, IProgressMonitor)} instead.
*
* @param fullyQualifiedName the given fully qualified name
* @exception JavaModelException if this project does not exist or if an
* exception occurs while accessing its corresponding resource
* @return the first type found following this project's classpath
* with the given fully qualified name or &lt;code>null&lt;/code> if none is found
* @see IType#getFullyQualifiedName(char)
* @since 2.0
</body>
</ownedComment>
<ownedParameter xmi:id="_TAwVYmHaEeCIr_fxSkYSJA" type="_kvE84GEMEeCdEc4VzBeWeQ" direction="return"/>
<ownedParameter xmi:id="_TAwVY2HaEeCIr_fxSkYSJA" name="fullyQualifiedName" type="_dSiS02EMEeCdEc4VzBeWeQ"/>
</ownedOperation>
<ownedOperation xmi:id="_TBWyUGHaEeCIr_fxSkYSJA" name="findType">
<ownedComment xmi:id="_TBWyUWHaEeCIr_fxSkYSJA">
<body>
* Same functionality as {@link #findType(String)} but also look for secondary
* types if given name does not match a compilation unit name.
*
* @param fullyQualifiedName the given fully qualified name
* @param progressMonitor the progress monitor to report progress to,
* or &lt;code>null&lt;/code> if no progress monitor is provided
* @exception JavaModelException if this project does not exist or if an
* exception occurs while accessing its corresponding resource
* @return the first type found following this project's classpath
* with the given fully qualified name or &lt;code>null&lt;/code> if none is found
* @see IType#getFullyQualifiedName(char)
* @since 3.2
</body>
</ownedComment>
<ownedParameter xmi:id="_TBWyUmHaEeCIr_fxSkYSJA" type="_kvE84GEMEeCdEc4VzBeWeQ" direction="return"/>
<ownedParameter xmi:id="_TBgjUGHaEeCIr_fxSkYSJA" name="fullyQualifiedName" type="_dSiS02EMEeCdEc4VzBeWeQ"/>
<ownedParameter xmi:id="_TBgjUWHaEeCIr_fxSkYSJA" name="progressMonitor" type="_jqFqwGEMEeCdEc4VzBeWeQ"/>
</ownedOperation>
<ownedOperation xmi:id="_TBptQGHaEeCIr_fxSkYSJA" name="findType">
<ownedComment xmi:id="_TBptQWHaEeCIr_fxSkYSJA">
<body>
* Returns the first type found following this project's classpath
* with the given fully qualified name or &lt;code>null&lt;/code> if none is found.
* The fully qualified name is a dot-separated name. For example,
* a class B defined as a member type of a class A in package x.y should have a
* the fully qualified name &quot;x.y.A.B&quot;.
* If the returned type is part of a compilation unit, its owner is the given
* owner.
*
* Note that in order to be found, a type name (or its toplevel enclosing
* type name) must match its corresponding compilation unit name. As a
* consequence, secondary types cannot be found using this functionality.
* To find secondary types use {@link #findType(String, WorkingCopyOwner, IProgressMonitor)}
* instead.
*
* @param fullyQualifiedName the given fully qualified name
* @param owner the owner of the returned type's compilation unit
* @exception JavaModelException if this project does not exist or if an
* exception occurs while accessing its corresponding resource
* @return the first type found following this project's classpath
* with the given fully qualified name or &lt;code>null&lt;/code> if none is found
* @see IType#getFullyQualifiedName(char)
* @since 3.0
</body>
</ownedComment>
<ownedParameter xmi:id="_TBptQmHaEeCIr_fxSkYSJA" type="_kvE84GEMEeCdEc4VzBeWeQ" direction="return"/>
<ownedParameter xmi:id="_TBzeQGHaEeCIr_fxSkYSJA" name="fullyQualifiedName" type="_dSiS02EMEeCdEc4VzBeWeQ"/>
<ownedParameter xmi:id="_TB8oMGHaEeCIr_fxSkYSJA" name="owner" type="_nI23sGEMEeCdEc4VzBeWeQ"/>
</ownedOperation>
<ownedOperation xmi:id="_TCZUIGHaEeCIr_fxSkYSJA" name="findType">
<ownedComment xmi:id="_TCZUIWHaEeCIr_fxSkYSJA">
<body>
* Same functionality as {@link #findType(String, WorkingCopyOwner)}
* but also look for secondary types if given name does not match
* a compilation unit name.
*
* @param fullyQualifiedName the given fully qualified name
* @param owner the owner of the returned type's compilation unit
* @param progressMonitor the progress monitor to report progress to,
* or &lt;code>null&lt;/code> if no progress monitor is provided
* @exception JavaModelException if this project does not exist or if an
* exception occurs while accessing its corresponding resource
* @return the first type found following this project's classpath
* with the given fully qualified name or &lt;code>null&lt;/code> if none is found
* @see IType#getFullyQualifiedName(char)
* @since 3.2
</body>
</ownedComment>
<ownedParameter xmi:id="_TCjFIGHaEeCIr_fxSkYSJA" type="_kvE84GEMEeCdEc4VzBeWeQ" direction="return"/>
<ownedParameter xmi:id="_TCjFIWHaEeCIr_fxSkYSJA" name="fullyQualifiedName" type="_dSiS02EMEeCdEc4VzBeWeQ"/>
<ownedParameter xmi:id="_TCs2IGHaEeCIr_fxSkYSJA" name="owner" type="_nI23sGEMEeCdEc4VzBeWeQ"/>
<ownedParameter xmi:id="_TCs2IWHaEeCIr_fxSkYSJA" name="progressMonitor" type="_jqFqwGEMEeCdEc4VzBeWeQ"/>
</ownedOperation>
<ownedOperation xmi:id="_TC2AEGHaEeCIr_fxSkYSJA" name="findType">
<ownedComment xmi:id="_TC2AEWHaEeCIr_fxSkYSJA">
<body>
* Returns the first type found following this project's classpath
* with the given package name and type qualified name
* or &lt;code>null&lt;/code> if none is found.
* The package name is a dot-separated name.
* The type qualified name is also a dot-separated name. For example,
* a class B defined as a member type of a class A should have the
* type qualified name &quot;A.B&quot;.
*
* Note that in order to be found, a type name (or its toplevel enclosing
* type name) must match its corresponding compilation unit name. As a
* consequence, secondary types cannot be found using this functionality.
* To find secondary types use {@link #findType(String, String, IProgressMonitor)}
* instead.
*
* @param packageName the given package name
* @param typeQualifiedName the given type qualified name
* @exception JavaModelException if this project does not exist or if an
* exception occurs while accessing its corresponding resource
* @return the first type found following this project's classpath
* with the given package name and type qualified name
* or &lt;code>null&lt;/code> if none is found
* @see IType#getTypeQualifiedName(char)
* @since 2.0
</body>
</ownedComment>
<ownedParameter xmi:id="_TC2AEmHaEeCIr_fxSkYSJA" type="_kvE84GEMEeCdEc4VzBeWeQ" direction="return"/>
<ownedParameter xmi:id="_TC_xEGHaEeCIr_fxSkYSJA" name="packageName" type="_dSiS02EMEeCdEc4VzBeWeQ"/>
<ownedParameter xmi:id="_TC_xEWHaEeCIr_fxSkYSJA" name="typeQualifiedName" type="_dSiS02EMEeCdEc4VzBeWeQ"/>
</ownedOperation>
<ownedOperation xmi:id="_TDI7AGHaEeCIr_fxSkYSJA" name="findType">
<ownedComment xmi:id="_TDI7AWHaEeCIr_fxSkYSJA">
<body>
* Same functionality as {@link #findType(String, String)} but also look for
* secondary types if given name does not match a compilation unit name.
*
* @param packageName the given package name
* @param typeQualifiedName the given type qualified name
* @param progressMonitor the progress monitor to report progress to,
* or &lt;code>null&lt;/code> if no progress monitor is provided
* @exception JavaModelException if this project does not exist or if an
* exception occurs while accessing its corresponding resource
* @return the first type found following this project's classpath
* with the given fully qualified name or &lt;code>null&lt;/code> if none is found
* @see IType#getFullyQualifiedName(char)
* @since 3.2
</body>
</ownedComment>
<ownedParameter xmi:id="_TDI7AmHaEeCIr_fxSkYSJA" type="_kvE84GEMEeCdEc4VzBeWeQ" direction="return"/>
<ownedParameter xmi:id="_TDI7A2HaEeCIr_fxSkYSJA" name="packageName" type="_dSiS02EMEeCdEc4VzBeWeQ"/>
<ownedParameter xmi:id="_TDSsAGHaEeCIr_fxSkYSJA" name="typeQualifiedName" type="_dSiS02EMEeCdEc4VzBeWeQ"/>
<ownedParameter xmi:id="_TDSsAWHaEeCIr_fxSkYSJA" name="progressMonitor" type="_jqFqwGEMEeCdEc4VzBeWeQ"/>
</ownedOperation>
<ownedOperation xmi:id="_TDcdAGHaEeCIr_fxSkYSJA" name="findType">
<ownedComment xmi:id="_TDcdAWHaEeCIr_fxSkYSJA">
<body>
* Returns the first type found following this project's classpath
* with the given package name and type qualified name
* or &lt;code>null&lt;/code> if none is found.
* The package name is a dot-separated name.
* The type qualified name is also a dot-separated name. For example,
* a class B defined as a member type of a class A should have the
* type qualified name &quot;A.B&quot;.
* If the returned type is part of a compilation unit, its owner is the given
* owner.
*
* Note that in order to be found, a type name (or its toplevel enclosing
* type name) must match its corresponding compilation unit name. As a
* consequence, secondary types cannot be found using this functionality.
* To find secondary types use {@link #findType(String, String, WorkingCopyOwner, IProgressMonitor)}
* instead.
*
* @param packageName the given package name
* @param typeQualifiedName the given type qualified name
* @param owner the owner of the returned type's compilation unit
* @exception JavaModelException if this project does not exist or if an
* exception occurs while accessing its corresponding resource
* @return the first type found following this project's classpath
* with the given package name and type qualified name
* or &lt;code>null&lt;/code> if none is found
* @see IType#getTypeQualifiedName(char)
* @since 3.0
</body>
</ownedComment>
<ownedParameter xmi:id="_TDcdAmHaEeCIr_fxSkYSJA" type="_kvE84GEMEeCdEc4VzBeWeQ" direction="return"/>
<ownedParameter xmi:id="_TDlm8GHaEeCIr_fxSkYSJA" name="packageName" type="_dSiS02EMEeCdEc4VzBeWeQ"/>
<ownedParameter xmi:id="_TDvX8GHaEeCIr_fxSkYSJA" name="typeQualifiedName" type="_dSiS02EMEeCdEc4VzBeWeQ"/>
<ownedParameter xmi:id="_TD5I8GHaEeCIr_fxSkYSJA" name="owner" type="_nI23sGEMEeCdEc4VzBeWeQ"/>
</ownedOperation>
<ownedOperation xmi:id="_TEVN0GHaEeCIr_fxSkYSJA" name="findType">
<ownedComment xmi:id="_TEVN0WHaEeCIr_fxSkYSJA">
<body>
* Same functionality as {@link #findType(String, String, WorkingCopyOwner)}
* but also look for secondary types if given name does not match a compilation unit name.
*
* @param packageName the given package name
* @param typeQualifiedName the given type qualified name
* @param owner the owner of the returned type's compilation unit
* @param progressMonitor the progress monitor to report progress to,
* or &lt;code>null&lt;/code> if no progress monitor is provided
* @exception JavaModelException if this project does not exist or if an
* exception occurs while accessing its corresponding resource
* @return the first type found following this project's classpath
* with the given fully qualified name or &lt;code>null&lt;/code> if none is found
* @see IType#getFullyQualifiedName(char)
* @since 3.2
</body>
</ownedComment>
<ownedParameter xmi:id="_TEe-0GHaEeCIr_fxSkYSJA" type="_kvE84GEMEeCdEc4VzBeWeQ" direction="return"/>
<ownedParameter xmi:id="_TEe-0WHaEeCIr_fxSkYSJA" name="packageName" type="_dSiS02EMEeCdEc4VzBeWeQ"/>
<ownedParameter xmi:id="_TEov0GHaEeCIr_fxSkYSJA" name="typeQualifiedName" type="_dSiS02EMEeCdEc4VzBeWeQ"/>
<ownedParameter xmi:id="_TEov0WHaEeCIr_fxSkYSJA" name="owner" type="_nI23sGEMEeCdEc4VzBeWeQ"/>
<ownedParameter xmi:id="_TEx5wGHaEeCIr_fxSkYSJA" name="progressMonitor" type="_jqFqwGEMEeCdEc4VzBeWeQ"/>
</ownedOperation>
<ownedOperation xmi:id="_TEx5wWHaEeCIr_fxSkYSJA" name="getAllPackageFragmentRoots">
<ownedComment xmi:id="_TEx5wmHaEeCIr_fxSkYSJA">
<body>
* Returns all of the existing package fragment roots that exist
* on the classpath, in the order they are defined by the classpath.
*
* @return all of the existing package fragment roots that exist
* on the classpath
* @exception JavaModelException if this element does not exist or if an
* exception occurs while accessing its corresponding resource
</body>
</ownedComment>
<ownedParameter xmi:id="_TE7qwGHaEeCIr_fxSkYSJA" type="_kqmskGEMEeCdEc4VzBeWeQ" direction="return">
<upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_TFFbwGHaEeCIr_fxSkYSJA" value="*"/>
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_TE7qwWHaEeCIr_fxSkYSJA"/>
</ownedParameter>
</ownedOperation>
<ownedOperation xmi:id="_TFFbwWHaEeCIr_fxSkYSJA" name="getNonJavaResources">
<ownedComment xmi:id="_TFFbwmHaEeCIr_fxSkYSJA">
<body>
* Returns an array of non-Java resources directly contained in this project.
* It does not transitively answer non-Java resources contained in folders;
* these would have to be explicitly iterated over.
* &lt;p>
* Non-Java resources includes other files and folders located in the
* project not accounted for by any of it source or binary package fragment
* roots. If the project is a source folder itself, resources excluded from the
* corresponding source classpath entry by one or more exclusion patterns
* are considered non-Java resources and will appear in the result
* (possibly in a folder)
* &lt;/p>
*
* @return an array of non-Java resources (&lt;code>IFile&lt;/code>s and/or
* &lt;code>IFolder&lt;/code>s) directly contained in this project
* @exception JavaModelException if this element does not exist or if an
* exception occurs while accessing its corresponding resource
</body>
</ownedComment>
<ownedParameter xmi:id="_TFFbw2HaEeCIr_fxSkYSJA" type="_kOcVAmEMEeCdEc4VzBeWeQ" direction="return">
<upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_TFYWsGHaEeCIr_fxSkYSJA" value="*"/>
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_TFOlsGHaEeCIr_fxSkYSJA"/>
</ownedParameter>
</ownedOperation>
<ownedOperation xmi:id="_TFYWsWHaEeCIr_fxSkYSJA" name="getOption">
<ownedComment xmi:id="_TFYWsmHaEeCIr_fxSkYSJA">
<body>
* Helper method for returning one option value only. Equivalent to &lt;code>(String)this.getOptions(inheritJavaCoreOptions).get(optionName)&lt;/code>
* Note that it may answer &lt;code>null&lt;/code> if this option does not exist, or if there is no custom value for it.
* &lt;p>
* For a complete description of the configurable options, see &lt;code>JavaCore#getDefaultOptions&lt;/code>.
* &lt;/p>
*
* @param optionName the name of an option
* @param inheritJavaCoreOptions - boolean indicating whether JavaCore options should be inherited as well
* @return the String value of a given option
* @see JavaCore#getDefaultOptions()
* @since 2.1
</body>
</ownedComment>
<ownedParameter xmi:id="_TFYWs2HaEeCIr_fxSkYSJA" type="_dSiS02EMEeCdEc4VzBeWeQ" direction="return"/>
<ownedParameter xmi:id="_TFhgoGHaEeCIr_fxSkYSJA" name="optionName" type="_dSiS02EMEeCdEc4VzBeWeQ"/>
<ownedParameter xmi:id="_TFhgoWHaEeCIr_fxSkYSJA" name="inheritJavaCoreOptions" type="_dVOadGEMEeCdEc4VzBeWeQ"/>
</ownedOperation>
<ownedOperation xmi:id="_TFrRoGHaEeCIr_fxSkYSJA" name="getOptions">
<ownedComment xmi:id="_TFrRoWHaEeCIr_fxSkYSJA">
<body>
* Returns the table of the current custom options for this project. Projects remember their custom options,
* in other words, only the options different from the the JavaCore global options for the workspace.
* A boolean argument allows to directly merge the project options with global ones from &lt;code>JavaCore&lt;/code>.
* &lt;p>
* For a complete description of the configurable options, see &lt;code>JavaCore#getDefaultOptions&lt;/code>.
* &lt;/p>
*
* @param inheritJavaCoreOptions - boolean indicating whether JavaCore options should be inherited as well
* @return table of current settings of all options
* (key type: &lt;code>String&lt;/code>; value type: &lt;code>String&lt;/code>)
* @see JavaCore#getDefaultOptions()
* @since 2.1
</body>
</ownedComment>
<ownedParameter xmi:id="_TF1CoGHaEeCIr_fxSkYSJA" type="_l1aS0WEMEeCdEc4VzBeWeQ" direction="return"/>
<ownedParameter xmi:id="_TF1CoWHaEeCIr_fxSkYSJA" name="inheritJavaCoreOptions" type="_dVOadGEMEeCdEc4VzBeWeQ"/>
</ownedOperation>
<ownedOperation xmi:id="_TF-MkGHaEeCIr_fxSkYSJA" name="getOutputLocation">
<ownedComment xmi:id="_TF-MkWHaEeCIr_fxSkYSJA">
<body>
* Returns the default output location for this project as a workspace-
* relative absolute path.
* &lt;p>
* The default output location is where class files are ordinarily generated
* (and resource files, copied). Each source classpath entry can also
* specify an output location for the generated class files (and copied
* resource files) corresponding to compilation units under that source
* folder. This makes it possible to arrange generated class files for
* different source folders in different output folders, and not
* necessarily the default output folder. This means that the generated
* class files for the project may end up scattered across several folders,
* rather than all in the default output folder (which is more standard).
* &lt;/p>
*
* @return the workspace-relative absolute path of the default output folder
* @exception JavaModelException if this element does not exist
* @see #setOutputLocation(org.eclipse.core.runtime.IPath, IProgressMonitor)
* @see IClasspathEntry#getOutputLocation()
</body>
</ownedComment>
<ownedParameter xmi:id="_TF-MkmHaEeCIr_fxSkYSJA" type="_j00UEmEMEeCdEc4VzBeWeQ" direction="return"/>
</ownedOperation>
<ownedOperation xmi:id="_TGH9kGHaEeCIr_fxSkYSJA" name="getPackageFragmentRoot">
<ownedComment xmi:id="_TGH9kWHaEeCIr_fxSkYSJA">
<body>
* Returns a package fragment root for an external library
* (a ZIP archive - e.g. a &lt;code>.jar&lt;/code>, a &lt;code>.zip&lt;/code> file, etc. -
* or - since 3.4 - a class folder) at the specified file system path.
* This is a handle-only method. The underlying &lt;code>java.io.File&lt;/code>
* may or may not exist. No resource is associated with this local library
* package fragment root.
*
* @param externalLibraryPath the library's file system path
* @return a package fragment root for the external library at the specified file system path
</body>
</ownedComment>
<ownedParameter xmi:id="_TGH9kmHaEeCIr_fxSkYSJA" type="_kqmskGEMEeCdEc4VzBeWeQ" direction="return"/>
<ownedParameter xmi:id="_TGH9k2HaEeCIr_fxSkYSJA" name="externalLibraryPath" type="_dSiS02EMEeCdEc4VzBeWeQ"/>
</ownedOperation>
<ownedOperation xmi:id="_TGRukGHaEeCIr_fxSkYSJA" name="getPackageFragmentRoot">
<ownedComment xmi:id="_TGRukWHaEeCIr_fxSkYSJA">
<body>
* Returns a package fragment root for the given resource, which
* must either be a folder representing the top of a package hierarchy,
* or a ZIP archive (e.g. a &lt;code>.jar&lt;/code>, a &lt;code>.zip&lt;/code> file, etc.)
* This is a handle-only method. The underlying resource may or may not exist.
*
* @param resource the given resource
* @return a package fragment root for the given resource, which
* must either be a folder representing the top of a package hierarchy,
* or a ZIP archive (e.g. a &lt;code>.jar&lt;/code>, a &lt;code>.zip&lt;/code> file, etc.)
</body>
</ownedComment>
<ownedParameter xmi:id="_TGRukmHaEeCIr_fxSkYSJA" type="_kqmskGEMEeCdEc4VzBeWeQ" direction="return"/>
<ownedParameter xmi:id="_TGa4gGHaEeCIr_fxSkYSJA" name="resource" type="_kQh_smEMEeCdEc4VzBeWeQ"/>
</ownedOperation>
<ownedOperation xmi:id="_TGa4gWHaEeCIr_fxSkYSJA" name="getPackageFragmentRoots">
<ownedComment xmi:id="_TGa4gmHaEeCIr_fxSkYSJA">
<body>
* Returns all of the package fragment roots contained in this
* project, identified on this project's resolved classpath. The result
* does not include package fragment roots in other projects referenced
* on this project's classpath.
*
* &lt;p>NOTE: This is equivalent to &lt;code>getChildren()&lt;/code>.
*
* @return all of the package fragment roots contained in this
* project, identified on this project's resolved classpath
* @exception JavaModelException if this element does not exist or if an
* exception occurs while accessing its corresponding resource
</body>
</ownedComment>
<ownedParameter xmi:id="_TGkpgGHaEeCIr_fxSkYSJA" type="_kqmskGEMEeCdEc4VzBeWeQ" direction="return">
<upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_TGtzcGHaEeCIr_fxSkYSJA" value="*"/>
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_TGkpgWHaEeCIr_fxSkYSJA"/>
</ownedParameter>
</ownedOperation>
<ownedOperation xmi:id="_THKfYGHaEeCIr_fxSkYSJA" name="getPackageFragmentRoots">
<ownedComment xmi:id="_THKfYWHaEeCIr_fxSkYSJA">
<body>
* Returns the existing package fragment roots identified by the given entry.
* A classpath entry within the current project identifies a single root.
* &lt;p>
* If the classpath entry denotes a variable, it will be resolved and return
* the roots of the target entry (empty if not resolvable).
* &lt;p>
* If the classpath entry denotes a container, it will be resolved and return
* the roots corresponding to the set of container entries (empty if not resolvable).
* &lt;p>
* The result does not include package fragment roots in other projects
* referenced on this project's classpath.
*
* @param entry the given entry
* @return the existing package fragment roots identified by the given entry
* @see IClasspathContainer
* @deprecated Use {@link IJavaProject#findPackageFragmentRoots(IClasspathEntry)} instead
</body>
</ownedComment>
<ownedParameter xmi:id="_THKfYmHaEeCIr_fxSkYSJA" type="_kqmskGEMEeCdEc4VzBeWeQ" direction="return">
<upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_THeBYGHaEeCIr_fxSkYSJA" value="*"/>
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_THUQYGHaEeCIr_fxSkYSJA"/>
</ownedParameter>
<ownedParameter xmi:id="_THnLUGHaEeCIr_fxSkYSJA" name="entry" type="_j4GRkGEMEeCdEc4VzBeWeQ"/>
</ownedOperation>
<ownedOperation xmi:id="_THw8UGHaEeCIr_fxSkYSJA" name="getPackageFragments">
<ownedComment xmi:id="_THw8UWHaEeCIr_fxSkYSJA">
<body>
* Returns all package fragments in all package fragment roots contained
* in this project. This is a convenience method.
*
* Note that the package fragment roots corresponds to the resolved
* classpath of the project.
*
* @return all package fragments in all package fragment roots contained
* in this project
* @exception JavaModelException if this element does not exist or if an
* exception occurs while accessing its corresponding resource
</body>
</ownedComment>
<ownedParameter xmi:id="_TH6GQGHaEeCIr_fxSkYSJA" type="_kqTxoGEMEeCdEc4VzBeWeQ" direction="return">
<upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_TID3QGHaEeCIr_fxSkYSJA" value="*"/>
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_TH6GQWHaEeCIr_fxSkYSJA"/>
</ownedParameter>
</ownedOperation>
<ownedOperation xmi:id="_TID3QWHaEeCIr_fxSkYSJA" name="getProject">
<ownedComment xmi:id="_TID3QmHaEeCIr_fxSkYSJA">
<body>
* Returns the &lt;code>IProject&lt;/code> on which this &lt;code>IJavaProject&lt;/code>
* was created. This is handle-only method.
*
* @return the &lt;code>IProject&lt;/code> on which this &lt;code>IJavaProject&lt;/code>
* was created
</body>
</ownedComment>
<ownedParameter xmi:id="_TIWyMGHaEeCIr_fxSkYSJA" type="_TINoQGHaEeCIr_fxSkYSJA" direction="return"/>
</ownedOperation>
<ownedOperation xmi:id="_TIWyMWHaEeCIr_fxSkYSJA" name="getRawClasspath">
<ownedComment xmi:id="_TIWyMmHaEeCIr_fxSkYSJA">
<body>
* Returns the raw classpath for the project, as a list of classpath
* entries. This corresponds to the exact set of entries which were assigned
* using &lt;code>setRawClasspath&lt;/code>, in particular such a classpath may
* contain classpath variable and classpath container entries. Classpath
* variable and classpath container entries can be resolved using the
* helper method &lt;code>getResolvedClasspath&lt;/code>; classpath variable
* entries also can be resolved individually using
* &lt;code>JavaCore#getClasspathVariable&lt;/code>).
* &lt;p>
* Both classpath containers and classpath variables provides a level of
* indirection that can make the &lt;code>.classpath&lt;/code> file stable across
* workspaces.
* As an example, classpath variables allow a classpath to no longer refer
* directly to external JARs located in some user specific location.
* The classpath can simply refer to some variables defining the proper
* locations of these external JARs. Similarly, classpath containers
* allows classpath entries to be computed dynamically by the plug-in that
* defines that kind of classpath container.
* &lt;/p>
* &lt;p>
* Note that in case the project isn't yet opened, the classpath will
* be read directly from the associated &lt;tt>.classpath&lt;/tt> file.
* &lt;/p>
*
* @return the raw classpath for the project, as a list of classpath entries
* @exception JavaModelException if this element does not exist or if an
* exception occurs while accessing its corresponding resource
* @see IClasspathEntry
</body>
</ownedComment>
<ownedParameter xmi:id="_TIWyM2HaEeCIr_fxSkYSJA" type="_j4GRkGEMEeCdEc4VzBeWeQ" direction="return">
<upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_TIgjMWHaEeCIr_fxSkYSJA" value="*"/>
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_TIgjMGHaEeCIr_fxSkYSJA"/>
</ownedParameter>
</ownedOperation>
<ownedOperation xmi:id="_TIqUMGHaEeCIr_fxSkYSJA" name="getRequiredProjectNames">
<ownedComment xmi:id="_TIqUMWHaEeCIr_fxSkYSJA">
<body>
* Returns the names of the projects that are directly required by this
* project. A project is required if it is in its classpath.
* &lt;p>
* The project names are returned in the order they appear on the classpath.
*
* @return the names of the projects that are directly required by this
* project in classpath order
* @exception JavaModelException if this element does not exist or if an
* exception occurs while accessing its corresponding resource
</body>
</ownedComment>
<ownedParameter xmi:id="_TIqUMmHaEeCIr_fxSkYSJA" type="_dSiS02EMEeCdEc4VzBeWeQ" direction="return">
<upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_TIzeIWHaEeCIr_fxSkYSJA" value="*"/>
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_TIzeIGHaEeCIr_fxSkYSJA"/>
</ownedParameter>
</ownedOperation>
<ownedOperation xmi:id="_TI9PIGHaEeCIr_fxSkYSJA" name="getResolvedClasspath">
<ownedComment xmi:id="_TI9PIWHaEeCIr_fxSkYSJA">
<body>
* This is a helper method returning the resolved classpath for the project
* as a list of simple (non-variable, non-container) classpath entries.
* All classpath variable and classpath container entries in the project's
* raw classpath will be replaced by the simple classpath entries they
* resolve to.
* &lt;p>
* The resulting resolved classpath is accurate for the given point in time.
* If the project's raw classpath is later modified, or if classpath
* variables are changed, the resolved classpath can become out of date.
* Because of this, hanging on resolved classpath is not recommended.
* &lt;/p>
* &lt;p>
* Note that if the resolution creates duplicate entries
* (i.e. {@link IClasspathEntry entries} which are {@link Object#equals(Object)}),
* only the first one is added to the resolved classpath.
* &lt;/p>
*
* @param ignoreUnresolvedEntry indicates how to handle unresolvable
* variables and containers; &lt;code>true&lt;/code> indicates that missing
* variables and unresolvable classpath containers should be silently
* ignored, and that the resulting list should consist only of the
* entries that could be successfully resolved; &lt;code>false&lt;/code> indicates
* that a &lt;code>JavaModelException&lt;/code> should be thrown for the first
* unresolved variable or container
* @return the resolved classpath for the project as a list of simple
* classpath entries, where all classpath variable and container entries
* have been resolved and substituted with their final target entries
* @exception JavaModelException in one of the corresponding situation:
* &lt;ul>
* &lt;li>this element does not exist&lt;/li>
* &lt;li>an exception occurs while accessing its corresponding resource&lt;/li>
* &lt;li>a classpath variable or classpath container was not resolvable
* and &lt;code>ignoreUnresolvedEntry&lt;/code> is &lt;code>false&lt;/code>.&lt;/li>
* &lt;/ul>
* @see IClasspathEntry
</body>
</ownedComment>
<ownedParameter xmi:id="_TI9PImHaEeCIr_fxSkYSJA" type="_j4GRkGEMEeCdEc4VzBeWeQ" direction="return">
<upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_TJGZEGHaEeCIr_fxSkYSJA" value="*"/>
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_TI9PI2HaEeCIr_fxSkYSJA"/>
</ownedParameter>
<ownedParameter xmi:id="_TJGZEWHaEeCIr_fxSkYSJA" name="ignoreUnresolvedEntry" type="_dVOadGEMEeCdEc4VzBeWeQ"/>
</ownedOperation>
<ownedOperation xmi:id="_TJQKEGHaEeCIr_fxSkYSJA" name="hasBuildState">
<ownedComment xmi:id="_TJQKEWHaEeCIr_fxSkYSJA">
<body>
* Returns whether this project has been built at least once and thus whether it has a build state.
* @return true if this project has been built at least once, false otherwise
</body>
</ownedComment>
<ownedParameter xmi:id="_TJZ7EGHaEeCIr_fxSkYSJA" type="_dVOadGEMEeCdEc4VzBeWeQ" direction="return"/>
</ownedOperation>
<ownedOperation xmi:id="_TJZ7EWHaEeCIr_fxSkYSJA" name="hasClasspathCycle">
<ownedComment xmi:id="_TJZ7EmHaEeCIr_fxSkYSJA">
<body>
* Returns whether setting this project's classpath to the given classpath entries
* would result in a cycle.
*
* If the set of entries contains some variables, those are resolved in order to determine
* cycles.
*
* @param entries the given classpath entries
* @return true if the given classpath entries would result in a cycle, false otherwise
</body>
</ownedComment>
<ownedParameter xmi:id="_TJjFAGHaEeCIr_fxSkYSJA" type="_dVOadGEMEeCdEc4VzBeWeQ" direction="return"/>
<ownedParameter xmi:id="_TJjFAWHaEeCIr_fxSkYSJA" name="entries" type="_j4GRkGEMEeCdEc4VzBeWeQ">
<upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_TJs2AWHaEeCIr_fxSkYSJA" value="*"/>
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_TJs2AGHaEeCIr_fxSkYSJA"/>
</ownedParameter>
</ownedOperation>
<ownedOperation xmi:id="_TJ2nAGHaEeCIr_fxSkYSJA" name="isOnClasspath">
<ownedComment xmi:id="_TJ2nAWHaEeCIr_fxSkYSJA">
<body>
* Returns whether the given element is on the classpath of this project,
* that is, referenced from a classpath entry and not explicitly excluded
* using an exclusion pattern.
*
* @param element the given element
* @return &lt;code>true&lt;/code> if the given element is on the classpath of
* this project, &lt;code>false&lt;/code> otherwise
* @see IClasspathEntry#getInclusionPatterns()
* @see IClasspathEntry#getExclusionPatterns()
* @since 2.0
</body>
</ownedComment>
<ownedParameter xmi:id="_TJ2nAmHaEeCIr_fxSkYSJA" type="_dVOadGEMEeCdEc4VzBeWeQ" direction="return"/>
<ownedParameter xmi:id="_TJ_w8GHaEeCIr_fxSkYSJA" name="element" type="_kO5A8GEMEeCdEc4VzBeWeQ"/>
</ownedOperation>
<ownedOperation xmi:id="_TJ_w8WHaEeCIr_fxSkYSJA" name="isOnClasspath">
<ownedComment xmi:id="_TJ_w8mHaEeCIr_fxSkYSJA">
<body>
* Returns whether the given resource is on the classpath of this project,
* that is, referenced from a classpath entry and not explicitly excluded
* using an exclusion pattern.
*
* @param resource the given resource
* @return &lt;code>true&lt;/code> if the given resource is on the classpath of
* this project, &lt;code>false&lt;/code> otherwise
* @see IClasspathEntry#getInclusionPatterns()
* @see IClasspathEntry#getExclusionPatterns()
* @since 2.1
</body>
</ownedComment>
<ownedParameter xmi:id="_TJ_w82HaEeCIr_fxSkYSJA" type="_dVOadGEMEeCdEc4VzBeWeQ" direction="return"/>
<ownedParameter xmi:id="_TKJh8GHaEeCIr_fxSkYSJA" name="resource" type="_kQh_smEMEeCdEc4VzBeWeQ"/>
</ownedOperation>
<ownedOperation xmi:id="_TKSr4GHaEeCIr_fxSkYSJA" name="newEvaluationContext">
<ownedComment xmi:id="_TKSr4WHaEeCIr_fxSkYSJA">
<body>
* Creates a new evaluation context.
* @return a new evaluation context.
</body>
</ownedComment>
<ownedParameter xmi:id="_TKSr5GHaEeCIr_fxSkYSJA" type="_TKSr42HaEeCIr_fxSkYSJA" direction="return"/>
</ownedOperation>
<ownedOperation xmi:id="_TKcc4GHaEeCIr_fxSkYSJA" name="newTypeHierarchy">
<ownedComment xmi:id="_TKcc4WHaEeCIr_fxSkYSJA">
<body>
* Creates and returns a type hierarchy for all types in the given
* region, considering subtypes within that region.
*
* @param monitor the given progress monitor
* @param region the given region
* @exception JavaModelException if this element does not exist or if an
* exception occurs while accessing its corresponding resource
* @exception IllegalArgumentException if region is &lt;code>null&lt;/code>
* @return a type hierarchy for all types in the given
* region, considering subtypes within that region
</body>
</ownedComment>
<ownedParameter xmi:id="_TKcc4mHaEeCIr_fxSkYSJA" type="_kwkKoGEMEeCdEc4VzBeWeQ" direction="return"/>
<ownedParameter xmi:id="_TKmN4GHaEeCIr_fxSkYSJA" name="region" type="_krp1cGEMEeCdEc4VzBeWeQ"/>
<ownedParameter xmi:id="_TKvX0GHaEeCIr_fxSkYSJA" name="monitor" type="_jqFqwGEMEeCdEc4VzBeWeQ"/>
</ownedOperation>
<ownedOperation xmi:id="_TK5I0GHaEeCIr_fxSkYSJA" name="newTypeHierarchy">
<ownedComment xmi:id="_TK5I0WHaEeCIr_fxSkYSJA">
<body>
* Creates and returns a type hierarchy for all types in the given
* region, considering subtypes within that region and considering types in the
* working copies with the given owner.
* In other words, the owner's working copies will take
* precedence over their original compilation units in the workspace.
* &lt;p>
* Note that if a working copy is empty, it will be as if the original compilation
* unit had been deleted.
* &lt;p>
*
* @param monitor the given progress monitor
* @param region the given region
* @param owner the owner of working copies that take precedence over their original compilation units
* @exception JavaModelException if this element does not exist or if an
* exception occurs while accessing its corresponding resource
* @exception IllegalArgumentException if region is &lt;code>null&lt;/code>
* @return a type hierarchy for all types in the given
* region, considering subtypes within that region
* @since 3.0
</body>
</ownedComment>
<ownedParameter xmi:id="_TK5I0mHaEeCIr_fxSkYSJA" type="_kwkKoGEMEeCdEc4VzBeWeQ" direction="return"/>
<ownedParameter xmi:id="_TLC50GHaEeCIr_fxSkYSJA" name="region" type="_krp1cGEMEeCdEc4VzBeWeQ"/>
<ownedParameter xmi:id="_TLC50WHaEeCIr_fxSkYSJA" name="owner" type="_nI23sGEMEeCdEc4VzBeWeQ"/>
<ownedParameter xmi:id="_TLMDwGHaEeCIr_fxSkYSJA" name="monitor" type="_jqFqwGEMEeCdEc4VzBeWeQ"/>
</ownedOperation>
<ownedOperation xmi:id="_TLMDwWHaEeCIr_fxSkYSJA" name="newTypeHierarchy">
<ownedComment xmi:id="_TLMDwmHaEeCIr_fxSkYSJA">
<body>
* Creates and returns a type hierarchy for the given type considering
* subtypes in the specified region.
*
* @param type the given type
* @param region the given region
* @param monitor the given monitor
*
* @exception JavaModelException if this element does not exist or if an
* exception occurs while accessing its corresponding resource
*
* @exception IllegalArgumentException if type or region is &lt;code>null&lt;/code>
* @return a type hierarchy for the given type considering
* subtypes in the specified region
</body>
</ownedComment>
<ownedParameter xmi:id="_TLMDw2HaEeCIr_fxSkYSJA" type="_kwkKoGEMEeCdEc4VzBeWeQ" direction="return"/>
<ownedParameter xmi:id="_TLV0wGHaEeCIr_fxSkYSJA" name="type" type="_kvE84GEMEeCdEc4VzBeWeQ"/>
<ownedParameter xmi:id="_TLV0wWHaEeCIr_fxSkYSJA" name="region" type="_krp1cGEMEeCdEc4VzBeWeQ"/>
<ownedParameter xmi:id="_TLe-sGHaEeCIr_fxSkYSJA" name="monitor" type="_jqFqwGEMEeCdEc4VzBeWeQ"/>
</ownedOperation>
<ownedOperation xmi:id="_TLovsGHaEeCIr_fxSkYSJA" name="newTypeHierarchy">
<ownedComment xmi:id="_TLovsWHaEeCIr_fxSkYSJA">
<body>
* Creates and returns a type hierarchy for the given type considering
* subtypes in the specified region and considering types in the
* working copies with the given owner.
* In other words, the owner's working copies will take
* precedence over their original compilation units in the workspace.
* &lt;p>
* Note that if a working copy is empty, it will be as if the original compilation
* unit had been deleted.
* &lt;p>
*
* @param type the given type
* @param region the given region
* @param monitor the given monitor
* @param owner the owner of working copies that take precedence over their original compilation units
*
* @exception JavaModelException if this element does not exist or if an
* exception occurs while accessing its corresponding resource
*
* @exception IllegalArgumentException if type or region is &lt;code>null&lt;/code>
* @return a type hierarchy for the given type considering
* subtypes in the specified region
* @since 3.0
</body>
</ownedComment>
<ownedParameter xmi:id="_TLovsmHaEeCIr_fxSkYSJA" type="_kwkKoGEMEeCdEc4VzBeWeQ" direction="return"/>
<ownedParameter xmi:id="_TLovs2HaEeCIr_fxSkYSJA" name="type" type="_kvE84GEMEeCdEc4VzBeWeQ"/>
<ownedParameter xmi:id="_TLygsGHaEeCIr_fxSkYSJA" name="region" type="_krp1cGEMEeCdEc4VzBeWeQ"/>
<ownedParameter xmi:id="_TLygsWHaEeCIr_fxSkYSJA" name="owner" type="_nI23sGEMEeCdEc4VzBeWeQ"/>
<ownedParameter xmi:id="_TL7qoGHaEeCIr_fxSkYSJA" name="monitor" type="_jqFqwGEMEeCdEc4VzBeWeQ"/>
</ownedOperation>
<ownedOperation xmi:id="_TL7qoWHaEeCIr_fxSkYSJA" name="readOutputLocation">
<ownedComment xmi:id="_TMFboGHaEeCIr_fxSkYSJA">
<body>
* Returns the default output location for the project as defined by its &lt;code>.classpath&lt;/code> file from disk, or &lt;code>null&lt;/code>
* if unable to read the file.
* &lt;p>
* This output location may differ from the in-memory one returned by &lt;code>getOutputLocation&lt;/code>, in case the
* automatic reconciliation mechanism has not been performed yet. Usually, any change to the &lt;code>.classpath&lt;/code> file
* is automatically noticed and reconciled at the next resource change notification event.
* However, if the file is modified within an operation, where this change needs to be taken into account before the
* operation ends, then the output location from disk can be read using this method, and further assigned to the project
* using &lt;code>setRawClasspath(...)&lt;/code>.
* &lt;p>
* The default output location is where class files are ordinarily generated
* (and resource files, copied). Each source classpath entry can also
* specify an output location for the generated class files (and copied
* resource files) corresponding to compilation units under that source
* folder. This makes it possible to arrange generated class files for
* different source folders in different output folders, and not
* necessarily the default output folder. This means that the generated
* class files for the project may end up scattered across several folders,
* rather than all in the default output folder (which is more standard).
* &lt;p>
* In order to manually force a project classpath refresh, one can simply assign the project classpath using the result of this
* method, as follows:
* &lt;code>proj.setRawClasspath(proj.readRawClasspath(), proj.readOutputLocation(), monitor)&lt;/code>
* (note that the &lt;code>readRawClasspath/readOutputLocation&lt;/code> methods could return &lt;code>null&lt;/code>).
* &lt;p>
* @return the workspace-relative absolute path of the default output folder
* @see #getOutputLocation()
* @since 3.0
</body>
</ownedComment>
<ownedParameter xmi:id="_TMFboWHaEeCIr_fxSkYSJA" type="_j00UEmEMEeCdEc4VzBeWeQ" direction="return"/>
</ownedOperation>
<ownedOperation xmi:id="_TMFbomHaEeCIr_fxSkYSJA" name="readRawClasspath">
<ownedComment xmi:id="_TMFbo2HaEeCIr_fxSkYSJA">
<body>
* Returns the raw classpath for the project as defined by its
* &lt;code>.classpath&lt;/code> file from disk, or &lt;code>null&lt;/code>
* if unable to read the file.
* &lt;p>
* This classpath may differ from the in-memory classpath returned by
* &lt;code>getRawClasspath&lt;/code>, in case the automatic reconciliation
* mechanism has not been performed yet. Usually, any change to the
* &lt;code>.classpath&lt;/code> file is automatically noticed and reconciled at
* the next resource change notification event. However, if the file is
* modified within an operation, where this change needs to be taken into
* account before the operation ends, then the classpath from disk can be
* read using this method, and further assigned to the project using
* &lt;code>setRawClasspath(...)&lt;/code>.
* &lt;/p>
* &lt;p>
* Classpath variable and classpath container entries can be resolved using
* the helper method &lt;code>getResolvedClasspath&lt;/code>; classpath variable
* entries also can be resolved individually using
* &lt;code>JavaCore#getClasspathVariable&lt;/code>).
* &lt;/p>
* &lt;p>
* Note that no check is performed whether the project has the Java nature
* set, allowing an existing &lt;code>.classpath&lt;/code> file to be considered
* independantly (unlike &lt;code>getRawClasspath&lt;/code> which requires the
* Java nature to be associated with the project).
* &lt;/p>
* &lt;p>
* In order to manually force a project classpath refresh, one can simply
* assign the project classpath using the result of this method, as follows:
* &lt;code>proj.setRawClasspath(proj.readRawClasspath(), proj.readOutputLocation(), monitor)&lt;/code>
* (note that the &lt;code>readRawClasspath/readOutputLocation&lt;/code> methods
* could return &lt;code>null&lt;/code>).
* &lt;/p>
*
* @return the raw classpath from disk for the project, as a list of
* classpath entries
* @see #getRawClasspath()
* @see IClasspathEntry
* @since 3.0
</body>
</ownedComment>
<ownedParameter xmi:id="_TMPMoGHaEeCIr_fxSkYSJA" type="_j4GRkGEMEeCdEc4VzBeWeQ" direction="return">
<upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_TMYWkWHaEeCIr_fxSkYSJA" value="*"/>
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_TMYWkGHaEeCIr_fxSkYSJA"/>
</ownedParameter>
</ownedOperation>
<ownedOperation xmi:id="_TMiHkGHaEeCIr_fxSkYSJA" name="setOption">
<ownedComment xmi:id="_TMiHkWHaEeCIr_fxSkYSJA">
<body>
* Helper method for setting one option value only.
*&lt;p>
* Equivalent to:
* &lt;pre>
* Map options = this.getOptions(false);
* map.put(optionName, optionValue);
* this.setOptions(map)
* &lt;/pre>
* &lt;p>
* For a complete description of the configurable options, see &lt;code>JavaCore#getDefaultOptions&lt;/code>.
* &lt;/p>
*
* @param optionName the name of an option
* @param optionValue the value of the option to set. If &lt;code>null&lt;/code>, then the option
* is removed from project preferences.
* @throws NullPointerException if &lt;code>optionName&lt;/code> is &lt;code>null&lt;/code>
* (see {@link org.osgi.service.prefs.Preferences#put(String, String)}).
* @see JavaCore#getDefaultOptions()
* @since 3.0
</body>
</ownedComment>
<ownedParameter xmi:id="_TMiHkmHaEeCIr_fxSkYSJA" name="optionName" type="_dSiS02EMEeCdEc4VzBeWeQ"/>
<ownedParameter xmi:id="_TMrRgGHaEeCIr_fxSkYSJA" name="optionValue" type="_dSiS02EMEeCdEc4VzBeWeQ"/>
</ownedOperation>
<ownedOperation xmi:id="_TMrRgWHaEeCIr_fxSkYSJA" name="setOptions">
<ownedComment xmi:id="_TMrRgmHaEeCIr_fxSkYSJA">
<body>
* Sets the project custom options. All and only the options explicitly included in the given table
* are remembered; all previous option settings are forgotten, including ones not explicitly
* mentioned.
* &lt;p>
* For a complete description of the configurable options, see &lt;code>JavaCore#getDefaultOptions&lt;/code>.
* &lt;/p>
*
* @param newOptions the new options (key type: &lt;code>String&lt;/code>; value type: &lt;code>String&lt;/code>),
* or &lt;code>null&lt;/code> to flush all custom options (clients will automatically get the global JavaCore options).
* @see JavaCore#getDefaultOptions()
* @since 2.1
</body>
</ownedComment>
<ownedParameter xmi:id="_TMrRg2HaEeCIr_fxSkYSJA" name="newOptions" type="_l1aS0WEMEeCdEc4VzBeWeQ"/>
</ownedOperation>
<ownedOperation xmi:id="_TM1CgGHaEeCIr_fxSkYSJA" name="setOutputLocation">
<ownedComment xmi:id="_TM1CgWHaEeCIr_fxSkYSJA">
<body>
* Sets the default output location of this project to the location
* described by the given workspace-relative absolute path.
* &lt;p>
* The default output location is where class files are ordinarily generated
* (and resource files, copied). Each source classpath entries can also
* specify an output location for the generated class files (and copied
* resource files) corresponding to compilation units under that source
* folder. This makes it possible to arrange that generated class files for
* different source folders to end up in different output folders, and not
* necessarily the default output folder. This means that the generated
* class files for the project may end up scattered across several folders,
* rather than all in the default output folder (which is more standard).
* &lt;/p>
*
* @param path the workspace-relative absolute path of the default output
* folder
* @param monitor the progress monitor
*
* @exception JavaModelException if the classpath could not be set. Reasons include:
* &lt;ul>
* &lt;li> This Java element does not exist (ELEMENT_DOES_NOT_EXIST)&lt;/li>
* &lt;li> The path refers to a location not contained in this project (&lt;code>PATH_OUTSIDE_PROJECT&lt;/code>)
* &lt;li> The path is not an absolute path (&lt;code>RELATIVE_PATH&lt;/code>)
* &lt;li> The path is nested inside a package fragment root of this project (&lt;code>INVALID_PATH&lt;/code>)
* &lt;li> The output location is being modified during resource change event notification (CORE_EXCEPTION)
* &lt;/ul>
* @see #getOutputLocation()
* @see IClasspathEntry#getOutputLocation()
</body>
</ownedComment>
<ownedParameter xmi:id="_TM1CgmHaEeCIr_fxSkYSJA" name="path" type="_j00UEmEMEeCdEc4VzBeWeQ"/>
<ownedParameter xmi:id="_TM-zgGHaEeCIr_fxSkYSJA" name="monitor" type="_jqFqwGEMEeCdEc4VzBeWeQ"/>
</ownedOperation>
<ownedOperation xmi:id="_TM-zgWHaEeCIr_fxSkYSJA" name="setRawClasspath">
<ownedComment xmi:id="_TM-zgmHaEeCIr_fxSkYSJA">
<body>
* Sets both the classpath of this project and its default output
* location at once. The classpath is defined using a list of classpath
* entries. In particular such a classpath may contain classpath variable entries.
* Classpath variable entries can be resolved individually ({@link JavaCore#getClasspathVariable(String)}),
* or the full classpath can be resolved at once using the helper method {@link #getResolvedClasspath(boolean)}.
* &lt;p>
* A classpath variable provides an indirection level for better sharing a classpath. As an example, it allows
* a classpath to no longer refer directly to external JARs located in some user specific location. The classpath
* can simply refer to some variables defining the proper locations of these external JARs.
* &lt;/p>&lt;p>
* If it is specified that this operation cannot modify resources, the .classpath file will not be written to disk
* and no error marker will be generated. To synchronize the .classpath with the in-memory classpath,
* one can use &lt;code>setRawClasspath(readRawClasspath(), true, monitor)&lt;/code>.
* &lt;/p>&lt;p>
* Setting the classpath to &lt;code>null&lt;/code> specifies a default classpath
* (the project root). Setting the classpath to an empty array specifies an
* empty classpath.
* &lt;/p>&lt;p>
* If a cycle is detected while setting this classpath (and if resources can be modified), an error marker will be added
* to the project closing the cycle.
* To avoid this problem, use {@link #hasClasspathCycle(IClasspathEntry[])}
* before setting the classpath.
* &lt;p>
* This operation acquires a lock on the workspace's root.
*
* @param entries a list of classpath entries
* @param outputLocation the default output location
* @param canModifyResources whether resources should be written to disk if needed
* @param monitor the given progress monitor
* @exception JavaModelException if the classpath could not be set. Reasons include:
* &lt;ul>
* &lt;li> This Java element does not exist (ELEMENT_DOES_NOT_EXIST)&lt;/li>
* &lt;li> The classpath is being modified during resource change event notification (CORE_EXCEPTION)
* &lt;li> The classpath failed the validation check as defined by {@link JavaConventions#validateClasspath(IJavaProject, IClasspathEntry[], IPath)}
* &lt;/ul>
* @see IClasspathEntry
* @since 3.2
</body>
</ownedComment>
<ownedParameter xmi:id="_TM-zg2HaEeCIr_fxSkYSJA" name="entries" type="_j4GRkGEMEeCdEc4VzBeWeQ">
<upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_TNRucGHaEeCIr_fxSkYSJA" value="*"/>
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_TNH9cGHaEeCIr_fxSkYSJA"/>
</ownedParameter>
<ownedParameter xmi:id="_TNRucWHaEeCIr_fxSkYSJA" name="outputLocation" type="_j00UEmEMEeCdEc4VzBeWeQ"/>
<ownedParameter xmi:id="_TNbfcGHaEeCIr_fxSkYSJA" name="canModifyResources" type="_dVOadGEMEeCdEc4VzBeWeQ"/>
<ownedParameter xmi:id="_TNbfcWHaEeCIr_fxSkYSJA" name="monitor" type="_jqFqwGEMEeCdEc4VzBeWeQ"/>
</ownedOperation>
<ownedOperation xmi:id="_TNkpYGHaEeCIr_fxSkYSJA" name="setRawClasspath">
<ownedComment xmi:id="_TNkpYWHaEeCIr_fxSkYSJA">
<body>
* Sets the classpath of this project using a list of classpath entries. In particular such a classpath may contain
* classpath variable entries. Classpath variable entries can be resolved individually ({@link JavaCore#getClasspathVariable(String)}),
* or the full classpath can be resolved at once using the helper method {@link #getResolvedClasspath(boolean)}.
* &lt;p>
* A classpath variable provides an indirection level for better sharing a classpath. As an example, it allows
* a classpath to no longer refer directly to external JARs located in some user specific location. The classpath
* can simply refer to some variables defining the proper locations of these external JARs.
* &lt;/p>&lt;p>
* If it is specified that this operation cannot modify resources, the .classpath file will not be written to disk
* and no error marker will be generated. To synchronize the .classpath with the in-memory classpath,
* one can use &lt;code>setRawClasspath(readRawClasspath(), true, monitor)&lt;/code>.
* &lt;/p>&lt;p>
* Setting the classpath to &lt;code>null&lt;/code> specifies a default classpath
* (the project root). Setting the classpath to an empty array specifies an
* empty classpath.
* &lt;/p>&lt;p>
* If a cycle is detected while setting this classpath (and if resources can be modified), an error marker will be added
* to the project closing the cycle.
* To avoid this problem, use {@link #hasClasspathCycle(IClasspathEntry[])}
* before setting the classpath.
* &lt;p>
* This operation acquires a lock on the workspace's root.
*
* @param entries a list of classpath entries
* @param canModifyResources whether resources should be written to disk if needed
* @param monitor the given progress monitor
* @exception JavaModelException if the classpath could not be set. Reasons include:
* &lt;ul>
* &lt;li> This Java element does not exist (ELEMENT_DOES_NOT_EXIST)&lt;/li>
* &lt;li> The classpath is being modified during resource change event notification (CORE_EXCEPTION)
* &lt;li> The classpath failed the validation check as defined by {@link JavaConventions#validateClasspath(IJavaProject, IClasspathEntry[], IPath)}
* &lt;/ul>
* @see IClasspathEntry
* @since 3.2
</body>
</ownedComment>
<ownedParameter xmi:id="_TNkpYmHaEeCIr_fxSkYSJA" name="entries" type="_j4GRkGEMEeCdEc4VzBeWeQ">
<upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_TN3kUGHaEeCIr_fxSkYSJA" value="*"/>
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_TNuaYGHaEeCIr_fxSkYSJA"/>
</ownedParameter>
<ownedParameter xmi:id="_TN3kUWHaEeCIr_fxSkYSJA" name="canModifyResources" type="_dVOadGEMEeCdEc4VzBeWeQ"/>
<ownedParameter xmi:id="_TOBVUGHaEeCIr_fxSkYSJA" name="monitor" type="_jqFqwGEMEeCdEc4VzBeWeQ"/>
</ownedOperation>
<ownedOperation xmi:id="_TOBVUWHaEeCIr_fxSkYSJA" name="setRawClasspath">
<ownedComment xmi:id="_TOBVUmHaEeCIr_fxSkYSJA">
<body>
* Works similar to {@link #setRawClasspath(IClasspathEntry[], IPath, IProgressMonitor)} and
* additionally allows persisting the given array of referenced entries for this project.
* The referenced entries and their attributes are stored in the .classpath file of this
* project. For details on referenced entries, see
* {@link JavaCore#getReferencedClasspathEntries(IClasspathEntry, IJavaProject)}
* and {@link IClasspathEntry#getReferencingEntry()}.
* &lt;p>
* Since the referenced entries are stored in the .classpath file, clients can store additional
* information that belong to these entries and retrieve them across sessions, though the referenced
* entries themselves may not be present in the raw classpath. By passing a &lt;code>null&lt;/code>
* referencedEntries, clients can choose not to modify the already persisted referenced entries,
* which is fully equivalent to {@link #setRawClasspath(IClasspathEntry[], IPath, IProgressMonitor)}.
* If an empty array is passed as referencedEntries, the already persisted referenced entries,
* if any, will be cleared.
* &lt;/p> &lt;p>
* If there are duplicates of a referenced entry or if any of the &lt;code>referencedEntries&lt;/code>
* is already present in the raw classpath(&lt;code>entries&lt;/code>) those referenced entries will
* be excluded and not be persisted.
*&lt;/p>
* @param entries a list of classpath entries
* @param referencedEntries the list of referenced classpath entries to be persisted
* @param outputLocation the default output location
* @param monitor the given progress monitor
* @exception JavaModelException if the classpath could not be set. Reasons include:
* &lt;ul>
* &lt;li> This Java element does not exist (ELEMENT_DOES_NOT_EXIST)&lt;/li>
* &lt;li> The classpath is being modified during resource change event notification (CORE_EXCEPTION)
* &lt;li> The classpath failed the validation check as defined by {@link JavaConventions#validateClasspath(IJavaProject, IClasspathEntry[], IPath)}
* &lt;/ul>
* @see IClasspathEntry
* @see #getReferencedClasspathEntries()
* @since 3.6
</body>
</ownedComment>
<ownedParameter xmi:id="_TOLGUGHaEeCIr_fxSkYSJA" name="entries" type="_j4GRkGEMEeCdEc4VzBeWeQ">
<upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_TOUQQGHaEeCIr_fxSkYSJA" value="*"/>
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_TOLGUWHaEeCIr_fxSkYSJA"/>
</ownedParameter>
<ownedParameter xmi:id="_TOUQQWHaEeCIr_fxSkYSJA" name="referencedEntries" type="_j4GRkGEMEeCdEc4VzBeWeQ">
<upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_TOeBQWHaEeCIr_fxSkYSJA" value="*"/>
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_TOeBQGHaEeCIr_fxSkYSJA"/>
</ownedParameter>
<ownedParameter xmi:id="_TOnyQGHaEeCIr_fxSkYSJA" name="outputLocation" type="_j00UEmEMEeCdEc4VzBeWeQ"/>
<ownedParameter xmi:id="_TOw8MGHaEeCIr_fxSkYSJA" name="monitor" type="_jqFqwGEMEeCdEc4VzBeWeQ"/>
</ownedOperation>
<ownedOperation xmi:id="_TOw8MWHaEeCIr_fxSkYSJA" name="getReferencedClasspathEntries">
<ownedComment xmi:id="_TOw8MmHaEeCIr_fxSkYSJA">
<body>
* Returns the list of referenced classpath entries stored in the .classpath file of &lt;code>this&lt;/code>
* java project. Clients can store the referenced classpath entries using
* {@link #setRawClasspath(IClasspathEntry[], IClasspathEntry[], IPath, IProgressMonitor)}
* If the client has not stored any referenced entries for this project, an empty array is returned.
*
* @throws JavaModelException
* @return an array of referenced classpath entries stored for this java project or an empty array if none
* stored earlier.
* @since 3.6
</body>
</ownedComment>
<ownedParameter xmi:id="_TOw8M2HaEeCIr_fxSkYSJA" type="_j4GRkGEMEeCdEc4VzBeWeQ" direction="return">
<upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_TO6tMWHaEeCIr_fxSkYSJA" value="*"/>
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_TO6tMGHaEeCIr_fxSkYSJA"/>
</ownedParameter>
</ownedOperation>
<ownedOperation xmi:id="_TPD3IGHaEeCIr_fxSkYSJA" name="setRawClasspath">
<ownedComment xmi:id="_TPD3IWHaEeCIr_fxSkYSJA">
<body>
* Sets the classpath of this project using a list of classpath entries. In particular such a classpath may contain
* classpath variable entries. Classpath variable entries can be resolved individually ({@link JavaCore#getClasspathVariable(String)}),
* or the full classpath can be resolved at once using the helper method {@link #getResolvedClasspath(boolean)}.
* &lt;p>
* A classpath variable provides an indirection level for better sharing a classpath. As an example, it allows
* a classpath to no longer refer directly to external JARs located in some user specific location. The classpath
* can simply refer to some variables defining the proper locations of these external JARs.
* &lt;p>
* Setting the classpath to &lt;code>null&lt;/code> specifies a default classpath
* (the project root). Setting the classpath to an empty array specifies an
* empty classpath.
* &lt;p>
* If a cycle is detected while setting this classpath, an error marker will be added
* to the project closing the cycle.
* To avoid this problem, use {@link #hasClasspathCycle(IClasspathEntry[])}
* before setting the classpath.
* &lt;p>
* This operation acquires a lock on the workspace's root.
*
* @param entries a list of classpath entries
* @param monitor the given progress monitor
* @exception JavaModelException if the classpath could not be set. Reasons include:
* &lt;ul>
* &lt;li> This Java element does not exist (ELEMENT_DOES_NOT_EXIST)&lt;/li>
* &lt;li> The classpath is being modified during resource change event notification (CORE_EXCEPTION)
* &lt;li> The classpath failed the validation check as defined by {@link JavaConventions#validateClasspath(IJavaProject, IClasspathEntry[], IPath)}
* &lt;/ul>
* @see IClasspathEntry
</body>
</ownedComment>
<ownedParameter xmi:id="_TPNoIGHaEeCIr_fxSkYSJA" name="entries" type="_j4GRkGEMEeCdEc4VzBeWeQ">
<upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_TPXZIGHaEeCIr_fxSkYSJA" value="*"/>
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_TPNoIWHaEeCIr_fxSkYSJA"/>
</ownedParameter>
<ownedParameter xmi:id="_TPXZIWHaEeCIr_fxSkYSJA" name="monitor" type="_jqFqwGEMEeCdEc4VzBeWeQ"/>
</ownedOperation>
<ownedOperation xmi:id="_TPgjEGHaEeCIr_fxSkYSJA" name="setRawClasspath">
<ownedComment xmi:id="_TPgjEWHaEeCIr_fxSkYSJA">
<body>
* Sets the both the classpath of this project and its default output
* location at once. The classpath is defined using a list of classpath
* entries. In particular, such a classpath may contain classpath variable
* entries. Classpath variable entries can be resolved individually (see
* ({@link JavaCore#getClasspathVariable(String)}), or the full classpath can be
* resolved at once using the helper method
* {@link #getResolvedClasspath(boolean)}.
* &lt;p>
* A classpath variable provides an indirection level for better sharing a
* classpath. As an example, it allows a classpath to no longer refer
* directly to external JARs located in some user specific location. The
* classpath can simply refer to some variables defining the proper
* locations of these external JARs.
* &lt;/p>
* &lt;p>
* Setting the classpath to &lt;code>null&lt;/code> specifies a default classpath
* (the project root). Setting the classpath to an empty array specifies an
* empty classpath.
* &lt;/p>
* &lt;p>
* If a cycle is detected while setting this classpath, an error marker will
* be added to the project closing the cycle. To avoid this problem, use
* {@link #hasClasspathCycle(IClasspathEntry[])} before setting
* the classpath.
* &lt;/p>
* &lt;p>
* This operation acquires a lock on the workspace's root.
* &lt;/p>
*
* @param entries a list of classpath entries
* @param monitor the progress monitor
* @param outputLocation the default output location
* @exception JavaModelException if the classpath could not be set. Reasons
* include:
* &lt;ul>
* &lt;li> This Java element does not exist (ELEMENT_DOES_NOT_EXIST)&lt;/li>
* &lt;li> Two or more entries specify source roots with the same or overlapping paths (NAME_COLLISION)
* &lt;li> A entry of kind &lt;code>CPE_PROJECT&lt;/code> refers to this project (INVALID_PATH)
* &lt;li>This Java element does not exist (ELEMENT_DOES_NOT_EXIST)&lt;/li>
* &lt;li>The output location path refers to a location not contained in this project (&lt;code>PATH_OUTSIDE_PROJECT&lt;/code>)
* &lt;li>The output location path is not an absolute path (&lt;code>RELATIVE_PATH&lt;/code>)
* &lt;li>The output location path is nested inside a package fragment root of this project (&lt;code>INVALID_PATH&lt;/code>)
* &lt;li> The classpath is being modified during resource change event notification (CORE_EXCEPTION)
* &lt;/ul>
* @see IClasspathEntry
* @since 2.0
</body>
</ownedComment>
<ownedParameter xmi:id="_TPgjEmHaEeCIr_fxSkYSJA" name="entries" type="_j4GRkGEMEeCdEc4VzBeWeQ">
<upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_TPqUEWHaEeCIr_fxSkYSJA" value="*"/>
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_TPqUEGHaEeCIr_fxSkYSJA"/>
</ownedParameter>
<ownedParameter xmi:id="_TP0FEGHaEeCIr_fxSkYSJA" name="outputLocation" type="_j00UEmEMEeCdEc4VzBeWeQ"/>
<ownedParameter xmi:id="_TP0FEWHaEeCIr_fxSkYSJA" name="monitor" type="_jqFqwGEMEeCdEc4VzBeWeQ"/>
</ownedOperation>
</packagedElement>
<packagedElement xmi:type="uml:Interface" xmi:id="_kkWTkGEMEeCdEc4VzBeWeQ" name="ILocalVariable">
<ownedComment xmi:id="_kkWTkWEMEeCdEc4VzBeWeQ">
<body>
* Represents a local variable declared in a method or an initializer.
* &lt;code>ILocalVariable&lt;/code> are pseudo-elements created as the result of a &lt;code>ICodeAssist.codeSelect(...)&lt;/code>
* operation. They are not part of the Java model (&lt;code>exists()&lt;/code> returns whether the parent exists rather than
* whether the local variable exists in the parent) and they are not included in the children of an &lt;code>IMethod&lt;/code>
* or an &lt;code>IInitializer&lt;/code>.
* &lt;p>
* In particular such a pseudo-element should not be used as a handle. For example its name range won't be updated
* if the underlying source changes.
* &lt;/p>
*
* @since 3.0
* @noimplement This interface is not intended to be implemented by clients.
</body>
</ownedComment>
<generalization xmi:id="_kkWTkmEMEeCdEc4VzBeWeQ" general="_kO5A8GEMEeCdEc4VzBeWeQ"/>
</packagedElement>
<packagedElement xmi:type="uml:Interface" xmi:id="_klF6cGEMEeCdEc4VzBeWeQ" name="IMember">
<ownedComment xmi:id="_klPrcGEMEeCdEc4VzBeWeQ">
<body>
* Common protocol for Java elements that can be members of types.
* This set consists of &lt;code>IType&lt;/code>, &lt;code>IMethod&lt;/code>,
* &lt;code>IField&lt;/code>, and &lt;code>IInitializer&lt;/code>.
* &lt;p>
* The children are listed in the order in which they appear in the source or class file.
* &lt;/p>
*
* @noimplement This interface is not intended to be implemented by clients.
</body>
</ownedComment>
<generalization xmi:id="_klPrcWEMEeCdEc4VzBeWeQ" general="_kO5A8GEMEeCdEc4VzBeWeQ"/>
<generalization xmi:id="_4E_SgGHZEeCIr_fxSkYSJA" general="_kuCbEGEMEeCdEc4VzBeWeQ"/>
<generalization xmi:id="_4FJDgGHZEeCIr_fxSkYSJA" general="_kssXQGEMEeCdEc4VzBeWeQ"/>
<generalization xmi:id="_4FJDgWHZEeCIr_fxSkYSJA" general="_kq6OkGEMEeCdEc4VzBeWeQ"/>
<ownedOperation xmi:id="_4FlvcGHZEeCIr_fxSkYSJA" name="getCategories">
<ownedComment xmi:id="_4FlvcWHZEeCIr_fxSkYSJA">
<body>
* Returns the categories defined by this member's Javadoc. A category is the identifier
* following the tag &lt;code>@category&lt;/code> in the member's Javadoc.
* Returns an empty array if no category is defined in this member's Javadoc.
*
* @return the categories defined by this member's doc
* @exception JavaModelException if this element does not exist or if an
* exception occurs while accessing its corresponding resource.
* @since 3.2
</body>
</ownedComment>
<ownedParameter xmi:id="_4GCbYGHZEeCIr_fxSkYSJA" type="_dSiS02EMEeCdEc4VzBeWeQ" direction="return">
<upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_4GLlUGHZEeCIr_fxSkYSJA" value="*"/>
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_4GCbYWHZEeCIr_fxSkYSJA"/>
</ownedParameter>
</ownedOperation>
<ownedOperation xmi:id="_4GLlUWHZEeCIr_fxSkYSJA" name="getClassFile">
<ownedComment xmi:id="_4GLlUmHZEeCIr_fxSkYSJA">
<body>
* Returns the class file in which this member is declared, or &lt;code>null&lt;/code>
* if this member is not declared in a class file (for example, a source type).
* This is a handle-only method.
*
* @return the class file in which this member is declared, or &lt;code>null&lt;/code>
* if this member is not declared in a class file (for example, a source type)
</body>
</ownedComment>
<ownedParameter xmi:id="_4GVWUGHZEeCIr_fxSkYSJA" type="_j2Jw0GEMEeCdEc4VzBeWeQ" direction="return"/>
</ownedOperation>
<ownedOperation xmi:id="_4GfHUGHZEeCIr_fxSkYSJA" name="getCompilationUnit">
<ownedComment xmi:id="_4GfHUWHZEeCIr_fxSkYSJA">
<body>
* Returns the compilation unit in which this member is declared, or &lt;code>null&lt;/code>
* if this member is not declared in a compilation unit (for example, a binary type).
* This is a handle-only method.
*
* @return the compilation unit in which this member is declared, or &lt;code>null&lt;/code>
* if this member is not declared in a compilation unit (for example, a binary type)
</body>
</ownedComment>
<ownedParameter xmi:id="_4GfHUmHZEeCIr_fxSkYSJA" type="_j-plgGEMEeCdEc4VzBeWeQ" direction="return"/>
</ownedOperation>
<ownedOperation xmi:id="_4GoRQGHZEeCIr_fxSkYSJA" name="getDeclaringType">
<ownedComment xmi:id="_4GoRQWHZEeCIr_fxSkYSJA">
<body>
* Returns the type in which this member is declared, or &lt;code>null&lt;/code>
* if this member is not declared in a type (for example, a top-level type).
* This is a handle-only method.
*
* @return the type in which this member is declared, or &lt;code>null&lt;/code>
* if this member is not declared in a type (for example, a top-level type)
</body>
</ownedComment>
<ownedParameter xmi:id="_4GoRQmHZEeCIr_fxSkYSJA" type="_kvE84GEMEeCdEc4VzBeWeQ" direction="return"/>
</ownedOperation>
<ownedOperation xmi:id="_4GyCQGHZEeCIr_fxSkYSJA" name="getFlags">
<ownedComment xmi:id="_4GyCQWHZEeCIr_fxSkYSJA">
<body>
* Returns the modifier flags for this member. The flags can be examined using class
* &lt;code>Flags&lt;/code>.
* &lt;p>
* Note that only flags as indicated in the source are returned. Thus if an interface
* defines a method &lt;code>void myMethod();&lt;/code> the flags don't include the
* 'public' flag.
*
* @exception JavaModelException if this element does not exist or if an
* exception occurs while accessing its corresponding resource.
* @return the modifier flags for this member
* @see Flags
</body>
</ownedComment>
<ownedParameter xmi:id="_4G7zQGHZEeCIr_fxSkYSJA" type="_dTlbsGEMEeCdEc4VzBeWeQ" direction="return"/>
</ownedOperation>
<ownedOperation xmi:id="_4G7zQWHZEeCIr_fxSkYSJA" name="getJavadocRange">
<ownedComment xmi:id="_4G7zQmHZEeCIr_fxSkYSJA">
<body>
* Returns the Javadoc range if this element is from source or if this element
* is a binary element with an attached source, null otherwise.
*
* &lt;p>If this element is from source, the javadoc range is
* extracted from the corresponding source.&lt;/p>
* &lt;p>If this element is from a binary, the javadoc is extracted from the
* attached source if present.&lt;/p>
* &lt;p>If this element's openable is not consistent, then null is returned.&lt;/p>
*
* @exception JavaModelException if this element does not exist or if an
* exception occurs while accessing its corresponding resource.
* @return a source range corresponding to the javadoc source or &lt;code>null&lt;/code>
* if no source is available, this element has no javadoc comment or
* this element's openable is not consistent
* @see IOpenable#isConsistent()
* @since 3.2
</body>
</ownedComment>
<ownedParameter xmi:id="_4HE9MGHZEeCIr_fxSkYSJA" type="_ktlvIGEMEeCdEc4VzBeWeQ" direction="return"/>
</ownedOperation>
<ownedOperation xmi:id="_4HE9MWHZEeCIr_fxSkYSJA" name="getOccurrenceCount">
<ownedComment xmi:id="_4HE9MmHZEeCIr_fxSkYSJA">
<body>
* Returns the position relative to the order this member is defined in the source.
* Numbering starts at 1 (thus the first occurrence is occurrence 1, not occurrence 0).
* &lt;p>
* Two members m1 and m2 that are equal (e.g. 2 fields with the same name in
* the same type) can be distinguished using their occurrence counts. If member
* m1 appears first in the source, it will have an occurrence count of 1. If member
* m2 appears right after member m1, it will have an occurrence count of 2.
* &lt;/p>&lt;p>
* The occurrence count can be used to distinguish initializers inside a type
* or anonymous types inside a method.
* &lt;/p>&lt;p>
* This is a handle-only method. The member may or may not be present.
* &lt;/p>
*
* @return the position relative to the order this member is defined in the source
* @since 3.2
</body>
</ownedComment>
<ownedParameter xmi:id="_4HE9M2HZEeCIr_fxSkYSJA" type="_dTlbsGEMEeCdEc4VzBeWeQ" direction="return"/>
</ownedOperation>
<ownedOperation xmi:id="_4HOuMGHZEeCIr_fxSkYSJA" name="getTypeRoot">
<ownedComment xmi:id="_4HOuMWHZEeCIr_fxSkYSJA">
<body>
* Returns the Java type root in which this member is declared.
* This is a handle-only method.
*
* @return the Java type root in which this member is declared.
* @since 3.3
</body>
</ownedComment>
<ownedParameter xmi:id="_4HOuMmHZEeCIr_fxSkYSJA" type="_kyNJYGEMEeCdEc4VzBeWeQ" direction="return"/>
</ownedOperation>
<ownedOperation xmi:id="_4H0kEGHZEeCIr_fxSkYSJA" name="getType">
<ownedComment xmi:id="_4H0kEWHZEeCIr_fxSkYSJA">
<body>
* Returns the local or anonymous type declared in this source member with the given simple name and/or
* with the specified position relative to the order they are defined in the source.
* The name is empty if it is an anonymous type.
* Numbering starts at 1 (thus the first occurrence is occurrence 1, not occurrence 0).
* This is a handle-only method. The type may or may not exist.
* Throws a &lt;code>RuntimeException&lt;/code> if this member is not a source member.
*
* @param name the given simple name
* @param occurrenceCount the specified position
* @return the type with the given name and/or with the specified position relative to the order they are defined in the source
* @since 3.0
</body>
</ownedComment>
<ownedParameter xmi:id="_4H0kEmHZEeCIr_fxSkYSJA" type="_kvE84GEMEeCdEc4VzBeWeQ" direction="return"/>
<ownedParameter xmi:id="_4H-VEGHZEeCIr_fxSkYSJA" name="name" type="_dSiS02EMEeCdEc4VzBeWeQ"/>
<ownedParameter xmi:id="_4H-VEWHZEeCIr_fxSkYSJA" name="occurrenceCount" type="_dTlbsGEMEeCdEc4VzBeWeQ"/>
</ownedOperation>
<ownedOperation xmi:id="_4IIGEGHZEeCIr_fxSkYSJA" name="isBinary">
<ownedComment xmi:id="_4IIGEWHZEeCIr_fxSkYSJA">
<body>
* Returns whether this member is from a class file.
* This is a handle-only method.
*
* @return &lt;code>true&lt;/code> if from a class file, and &lt;code>false&lt;/code> if
* from a compilation unit
</body>
</ownedComment>
<ownedParameter xmi:id="_4IIGEmHZEeCIr_fxSkYSJA" type="_dVOadGEMEeCdEc4VzBeWeQ" direction="return"/>
</ownedOperation>
</packagedElement>
<packagedElement xmi:type="uml:Interface" xmi:id="_klimYGEMEeCdEc4VzBeWeQ" name="IMemberValuePair">
<ownedComment xmi:id="_klimYWEMEeCdEc4VzBeWeQ">
<body>
* Represents a member-value pair of an annotation.
* The {@link #getValue() value} is represented by an {@link Object}. To get the exact
* type of this object, use its {@link #getValueKind() value kind}. If this value is an array,
* {@link #getValue()} returns an instance of {@link Object}[] and the value kind returns
* the kind of the elements in this array.
* &lt;p>
* This interface is not intended to be implemented or extended by clients.
* &lt;/p>
*
* @since 3.4
</body>
</ownedComment>
<ownedAttribute xmi:id="_klimYmEMEeCdEc4VzBeWeQ" name="K_INT" type="_dTlbsGEMEeCdEc4VzBeWeQ" isUnique="false">
<ownedComment xmi:id="_klsXYGEMEeCdEc4VzBeWeQ">
<body>
* Constant indicating that the value kind is an &lt;code>int&lt;/code> represented by
* an instance of {@link Integer}.
</body>
</ownedComment>
</ownedAttribute>
<ownedAttribute xmi:id="_klsXYWEMEeCdEc4VzBeWeQ" name="K_BYTE" type="_dTlbsGEMEeCdEc4VzBeWeQ" isUnique="false">
<ownedComment xmi:id="_klsXYmEMEeCdEc4VzBeWeQ">
<body>
* Constant indicating that the value kind is a &lt;code>byte&lt;/code> represented by
* an instance of {@link Byte}.
</body>
</ownedComment>
</ownedAttribute>
<ownedAttribute xmi:id="_kl1hUGEMEeCdEc4VzBeWeQ" name="K_SHORT" type="_dTlbsGEMEeCdEc4VzBeWeQ" isUnique="false">
<ownedComment xmi:id="_kl1hUWEMEeCdEc4VzBeWeQ">
<body>
* Constant indicating that the value kind is a &lt;code>short&lt;/code> represented by
* an instance of {@link Short}.
</body>
</ownedComment>
</ownedAttribute>
<ownedAttribute xmi:id="_kl1hUmEMEeCdEc4VzBeWeQ" name="K_CHAR" type="_dTlbsGEMEeCdEc4VzBeWeQ" isUnique="false">
<ownedComment xmi:id="_kl1hU2EMEeCdEc4VzBeWeQ">
<body>
* Constant indicating that the value kind is a &lt;code>char&lt;/code> represented by
* an instance of {@link Character}.
</body>
</ownedComment>
</ownedAttribute>
<ownedAttribute xmi:id="_kl1hVGEMEeCdEc4VzBeWeQ" name="K_FLOAT" type="_dTlbsGEMEeCdEc4VzBeWeQ" isUnique="false">
<ownedComment xmi:id="_kl_SUGEMEeCdEc4VzBeWeQ">
<body>
* Constant indicating that the value kind is a &lt;code>float&lt;/code> represented by
* an instance of {@link Float}.
</body>
</ownedComment>
</ownedAttribute>
<ownedAttribute xmi:id="_kl_SUWEMEeCdEc4VzBeWeQ" name="K_DOUBLE" type="_dTlbsGEMEeCdEc4VzBeWeQ" isUnique="false">
<ownedComment xmi:id="_kl_SUmEMEeCdEc4VzBeWeQ">
<body>
* Constant indicating that the value kind is a &lt;code>double&lt;/code> represented by
* an instance of {@link Double}.
</body>
</ownedComment>
</ownedAttribute>
<ownedAttribute xmi:id="_kl_SU2EMEeCdEc4VzBeWeQ" name="K_LONG" type="_dTlbsGEMEeCdEc4VzBeWeQ" isUnique="false">
<ownedComment xmi:id="_kmSNQGEMEeCdEc4VzBeWeQ">
<body>
* Constant indicating that the value kind is a &lt;code>long&lt;/code> represented by
* an instance of {@link Long}.
</body>
</ownedComment>
</ownedAttribute>
<ownedAttribute xmi:id="_kmSNQWEMEeCdEc4VzBeWeQ" name="K_BOOLEAN" type="_dTlbsGEMEeCdEc4VzBeWeQ" isUnique="false">
<ownedComment xmi:id="_kmSNQmEMEeCdEc4VzBeWeQ">
<body>
* Constant indicating that the value kind is a &lt;code>boolean&lt;/code> represented by
* an instance of {@link Boolean}.
</body>
</ownedComment>
</ownedAttribute>
<ownedAttribute xmi:id="_kmSNQ2EMEeCdEc4VzBeWeQ" name="K_STRING" type="_dTlbsGEMEeCdEc4VzBeWeQ" isUnique="false">
<ownedComment xmi:id="_kmSNRGEMEeCdEc4VzBeWeQ">
<body>
* Constant indicating that the value kind is a {@link String} represented by
* the corresponding {@link String}.
</body>
</ownedComment>
</ownedAttribute>
<ownedAttribute xmi:id="_kmb-QGEMEeCdEc4VzBeWeQ" name="K_ANNOTATION" type="_dTlbsGEMEeCdEc4VzBeWeQ" isUnique="false">
<ownedComment xmi:id="_kmb-QWEMEeCdEc4VzBeWeQ">
<body>
* Constant indicating that the value kind is an annotation represented by
* an instance of {@link IAnnotation}.
</body>
</ownedComment>
</ownedAttribute>
<ownedAttribute xmi:id="_kmb-QmEMEeCdEc4VzBeWeQ" name="K_CLASS" type="_dTlbsGEMEeCdEc4VzBeWeQ" isUnique="false">
<ownedComment xmi:id="_kmb-Q2EMEeCdEc4VzBeWeQ">
<body>
* Constant indicating that the value kind is a {@link Class} represented by
* the name of the class (i.e. a {@link String}. If the member-value pair is coming from
* a compilation unit, this is either a simple name (e.g. for &lt;code>MyType.class&lt;/code>,
* the name is &quot;MyType&quot;), or a qualified name (e.g. for &lt;code>x.y.MyType.MyNestedType.class&lt;/code>,
* the name is &quot;x.y.MyType.MyNestedType&quot;). If the member-value pair is coming from a class file, this is
* always a fully qualified name.
* &lt;p>
* Note that one can use {@link IType#resolveType(String)} and e.g.
* {@link IJavaProject#findType(String, String, org.eclipse.core.runtime.IProgressMonitor)}
* to find the corresponding {@link IType}.
* &lt;/p>
</body>
</ownedComment>
</ownedAttribute>
<ownedAttribute xmi:id="_kmlvQGEMEeCdEc4VzBeWeQ" name="K_QUALIFIED_NAME" type="_dTlbsGEMEeCdEc4VzBeWeQ" isUnique="false">
<ownedComment xmi:id="_kmu5MGEMEeCdEc4VzBeWeQ">
<body>
* Constant indicating that the value is a qualified name represented by a
* {@link String}. The qualified name refers to an enum constant or another
* compile-time constant if the code is correct (e.g. &quot;MyEnum.FIRST&quot;).
</body>
</ownedComment>
</ownedAttribute>
<ownedAttribute xmi:id="_kmu5MWEMEeCdEc4VzBeWeQ" name="K_SIMPLE_NAME" type="_dTlbsGEMEeCdEc4VzBeWeQ" isUnique="false">
<ownedComment xmi:id="_kmu5MmEMEeCdEc4VzBeWeQ">
<body>
* Constant indicating that the value is a simple name represented by a
* {@link String}. The simple name refers to an enum constant or another
* compile-time constant if the code is correct (e.g. &quot;FIRST&quot; when there is
* a static import for &quot;MyEnum.FIRST&quot;).
</body>
</ownedComment>
</ownedAttribute>
<ownedAttribute xmi:id="_kmu5M2EMEeCdEc4VzBeWeQ" name="K_UNKNOWN" type="_dTlbsGEMEeCdEc4VzBeWeQ" isUnique="false">
<ownedComment xmi:id="_km4qMGEMEeCdEc4VzBeWeQ">
<body>
* Constant indicating that the value kind is unknown at this stage. The value is unknown in the
* following cases:
* &lt;ul>
* &lt;li>the value is an expression that would need to be further analyzed to determine its kind. For
* example, in &lt;code>@MyAnnot(1 + 2.3)&lt;/code> the kind of the expression &quot;1 + 2.3&quot; is
* unknown&lt;/li>
* &lt;li>the value is an array of size 0, e.g. &lt;code>@MyAnnot({})&lt;/code>&lt;/li>
* &lt;li>the value is an array that contains at least one expression that would need to be further
* analyzed to determine its kind. For example, in &lt;code>@MyAnnot({3.4, 1 + 2.3})&lt;/code>,
* the kind of the second element &quot;1 + 2.3&quot; is unknown.&lt;/li>
* &lt;li>the value is an array that contains heterogeneous values, e.g.
* &lt;code>@MyAnnot({1, 2.3, &quot;abc&quot;})&lt;/code>&lt;/li>
* &lt;/ul>
* If the value kind is unknown, the returned value is always either &lt;code>null&lt;/code>, or an
* array containing {@link Object}s and/or &lt;code>null&lt;/code>s for unknown elements.
</body>
</ownedComment>
</ownedAttribute>
<ownedOperation xmi:id="_km4qMWEMEeCdEc4VzBeWeQ" name="getMemberName">
<ownedComment xmi:id="_km4qMmEMEeCdEc4VzBeWeQ">
<body>
* Returns the member's name of this member-value pair.
*
* @return the member's name of this member-value pair.
</body>
</ownedComment>
<ownedParameter xmi:id="_km4qM2EMEeCdEc4VzBeWeQ" type="_dSiS02EMEeCdEc4VzBeWeQ" direction="return"/>
</ownedOperation>
<ownedOperation xmi:id="_km4qNGEMEeCdEc4VzBeWeQ" name="getValue">
<ownedComment xmi:id="_km4qNWEMEeCdEc4VzBeWeQ">
<body>
* Returns the value of this member-value pair. The type of this value
* is function of this member-value pair's {@link #getValueKind() value kind}. It is an
* instance of {@link Object}[] if the value is an array.
* &lt;p>
* If the value kind is {@link #K_UNKNOWN} and the value is not an array, then the
* value is &lt;code>null&lt;/code>.
* If the value kind is {@link #K_UNKNOWN} and the value is an array, then the
* value is an array containing {@link Object}s and/or &lt;code>null&lt;/code>s for
* unknown elements.
* See {@link #K_UNKNOWN} for more details.
* &lt;/p>
* @return the value of this member-value pair.
</body>
</ownedComment>
<ownedParameter xmi:id="_km4qNmEMEeCdEc4VzBeWeQ" type="_kOcVAmEMEeCdEc4VzBeWeQ" direction="return"/>
</ownedOperation>
<ownedOperation xmi:id="_knB0IGEMEeCdEc4VzBeWeQ" name="getValueKind">
<ownedComment xmi:id="_knB0IWEMEeCdEc4VzBeWeQ">
<body>
* Returns the value kind of this member-value pair. This indicates the instance of
* the returned {@link #getValue() value}, or the instance of the elements if the value
* is an array. The value kind is one of the following constants:
* {@link #K_ANNOTATION}, {@link #K_BOOLEAN}, {@link #K_BYTE}, {@link #K_CHAR},
* {@link #K_CLASS}, {@link #K_DOUBLE}, {@link #K_FLOAT}, {@link #K_INT}, {@link #K_LONG},
* {@link #K_QUALIFIED_NAME}, {@link #K_SIMPLE_NAME}, {@link #K_SHORT}, {@link #K_STRING},
* {@link #K_UNKNOWN}.
*
* @return the value kind of this member-value pair
</body>
</ownedComment>
<ownedParameter xmi:id="_knB0ImEMEeCdEc4VzBeWeQ" type="_dTlbsGEMEeCdEc4VzBeWeQ" direction="return"/>
</ownedOperation>
</packagedElement>
<packagedElement xmi:type="uml:Interface" xmi:id="_knoREGEMEeCdEc4VzBeWeQ" name="IMethod">
<ownedComment xmi:id="_knyCEGEMEeCdEc4VzBeWeQ">
<body>
* Represents a method (or constructor) declared in a type.
*
* @noimplement This interface is not intended to be implemented by clients.
</body>
</ownedComment>
<generalization xmi:id="_knyCEWEMEeCdEc4VzBeWeQ" general="_klF6cGEMEeCdEc4VzBeWeQ"/>
<generalization xmi:id="_knyCEmEMEeCdEc4VzBeWeQ" general="_j09eAGEMEeCdEc4VzBeWeQ"/>
<ownedOperation xmi:id="_knyCE2EMEeCdEc4VzBeWeQ" name="getDefaultValue">
<ownedComment xmi:id="_knyCFGEMEeCdEc4VzBeWeQ">
<body>
* Returns a {@link IMemberValuePair member value pair} representing the default
* value of this method if any, or &lt;code>null&lt;/code> if this method's parent is
* not an annotation type, or else if this method does not have a default value.
* &lt;p>
* Note that {@link IMemberValuePair#getValue()} might return &lt;code>null&lt;/code>.
* Please see this method for more details.
* &lt;/p>
*
* @exception JavaModelException if this element does not exist or if an
* exception occurs while accessing its corresponding resource.
* @return a member pair value if any, or &lt;code>null&lt;/code> if none
* @since 3.4
</body>
</ownedComment>
<ownedParameter xmi:id="_knyCFWEMEeCdEc4VzBeWeQ" type="_klimYGEMEeCdEc4VzBeWeQ" direction="return"/>
</ownedOperation>
<ownedOperation xmi:id="_knyCFmEMEeCdEc4VzBeWeQ" name="getElementName">
<ownedComment xmi:id="_knyCF2EMEeCdEc4VzBeWeQ">
<body>
* Returns the simple name of this method.
* For a constructor, this returns the simple name of the declaring type.
* Note: This holds whether the constructor appears in a source or binary type
* (even though class files internally define constructor names to be &lt;code>&quot;&amp;lt;init&amp;gt;&quot;&lt;/code>).
* For the class initialization methods in binary types, this returns
* the special name &lt;code>&quot;&amp;lt;clinit&amp;gt;&quot;&lt;/code>.
* This is a handle-only method.
* @return the simple name of this method
</body>
</ownedComment>
<ownedParameter xmi:id="_kn7MAGEMEeCdEc4VzBeWeQ" type="_dSiS02EMEeCdEc4VzBeWeQ" direction="return"/>
</ownedOperation>
<ownedOperation xmi:id="_kn7MAWEMEeCdEc4VzBeWeQ" name="getExceptionTypes">
<ownedComment xmi:id="_kn7MAmEMEeCdEc4VzBeWeQ">
<body>
* Returns the type signatures of the exceptions this method throws,
* in the order declared in the source. Returns an empty array
* if this method throws no exceptions.
* &lt;p>
* For example, a source method declaring &lt;code>&quot;throws IOException&quot;&lt;/code>,
* would return the array &lt;code>{&quot;QIOException;&quot;}&lt;/code>.
* &lt;/p>
* &lt;p>
* The type signatures may be either unresolved (for source types)
* or resolved (for binary types), and either basic (for basic types)
* or rich (for parameterized types). See {@link Signature} for details.
* &lt;/p>
*
* @exception JavaModelException if this element does not exist or if an
* exception occurs while accessing its corresponding resource.
* @return the type signatures of the exceptions this method throws,
* in the order declared in the source, an empty array if this method throws no exceptions
* @see Signature
</body>
</ownedComment>
<ownedParameter xmi:id="_kn7MA2EMEeCdEc4VzBeWeQ" type="_dSiS02EMEeCdEc4VzBeWeQ" direction="return">
<upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_kn7MBWEMEeCdEc4VzBeWeQ" value="*"/>
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_kn7MBGEMEeCdEc4VzBeWeQ"/>
</ownedParameter>
</ownedOperation>
<ownedOperation xmi:id="_koE9AGEMEeCdEc4VzBeWeQ" name="getTypeParameterSignatures">
<ownedComment xmi:id="_koE9AWEMEeCdEc4VzBeWeQ">
<body>
* Returns the formal type parameter signatures for this method.
* Returns an empty array if this method has no formal type parameters.
* &lt;p>
* The formal type parameter signatures may be either unresolved (for source
* types) or resolved (for binary types). See {@link Signature} for details.
* &lt;/p>
*
* @exception JavaModelException if this element does not exist or if an
* exception occurs while accessing its corresponding resource.
* @return the formal type parameter signatures of this method,
* in the order declared in the source, an empty array if none
* @see Signature
* @since 3.0
* @deprecated Use {@link #getTypeParameters()} instead
</body>
</ownedComment>
<ownedParameter xmi:id="_koE9AmEMEeCdEc4VzBeWeQ" type="_dSiS02EMEeCdEc4VzBeWeQ" direction="return">
<upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_koE9BGEMEeCdEc4VzBeWeQ" value="*"/>
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_koE9A2EMEeCdEc4VzBeWeQ"/>
</ownedParameter>
</ownedOperation>
<ownedOperation xmi:id="_koOG8GEMEeCdEc4VzBeWeQ" name="getTypeParameters">
<ownedComment xmi:id="_koOG8WEMEeCdEc4VzBeWeQ">
<body>
* Returns the formal type parameters for this method.
* Returns an empty array if this method has no formal type parameters.
*
* @exception JavaModelException if this element does not exist or if an
* exception occurs while accessing its corresponding resource.
* @return the formal type parameters of this method,
* in the order declared in the source, an empty array if none
* @since 3.1
</body>
</ownedComment>
</ownedOperation>
</packagedElement>
<packagedElement xmi:type="uml:Interface" xmi:id="_koX38GEMEeCdEc4VzBeWeQ" name="IOpenable">
<ownedComment xmi:id="_koX38WEMEeCdEc4VzBeWeQ">
<body>
* Common protocol for Java elements that must be opened before they can be
* navigated or modified. Opening a textual element (such as a compilation unit)
* involves opening a buffer on its contents. While open, any changes to the buffer
* can be reflected in the element's structure;
* see {@link #isConsistent} and {@link #makeConsistent(IProgressMonitor)}.
* &lt;p>
* To reduce complexity in clients, elements are automatically opened
* by the Java model as element properties are accessed. The Java model maintains
* an LRU cache of open elements, and automatically closes elements as they
* are swapped out of the cache to make room for other elements. Elements with
* unsaved changes are never removed from the cache, and thus, if the client
* maintains many open elements with unsaved
* changes, the LRU cache can grow in size (in this case the cache is not
* bounded). However, as elements are saved, the cache will shrink back to its
* original bounded size.
* &lt;/p>
* &lt;p>
* To open an element, all openable parent elements must be open.
* The Java model automatically opens parent elements, as it automatically opens elements.
* Opening an element may provide access to direct children and other descendants,
* but does not automatically open any descendents which are themselves {@link IOpenable}.
* For example, opening a compilation unit provides access to all its constituent elements,
* but opening a package fragment does not open all compilation units in the package fragment.
* &lt;/p>
*
* @noimplement This interface is not intended to be implemented by clients.
</body>
</ownedComment>
<ownedOperation xmi:id="_koX38mEMEeCdEc4VzBeWeQ" name="close" visibility="public">
<ownedComment xmi:id="_koX382EMEeCdEc4VzBeWeQ">
<body>
* Closes this element and its buffer (if any).
* Closing an element which is not open has no effect.
*
* &lt;p>Note: although {@link #close} is exposed in the API, clients are
* not expected to open and close elements - the Java model does this automatically
* as elements are accessed.
*
* @exception JavaModelException if an error occurs closing this element
</body>
</ownedComment>
</ownedOperation>
<ownedOperation xmi:id="_koX39GEMEeCdEc4VzBeWeQ" name="findRecommendedLineSeparator" visibility="public">
<ownedComment xmi:id="_koX39WEMEeCdEc4VzBeWeQ">
<body>
* Finds and returns the recommended line separator for this element.
* The element's buffer is first searched and the first line separator in this buffer is returned if any.
* Otherwise the preference {@link org.eclipse.core.runtime.Platform#PREF_LINE_SEPARATOR}
* on this element's project or workspace is returned.
* Finally if no such preference is set, the system line separator is returned.
*
* @return the recommended line separator for this element
* @exception JavaModelException if this element does not exist or if an
* exception occurs while accessing its corresponding resource.
* @since 3.2
</body>
</ownedComment>
<ownedParameter xmi:id="_koX39mEMEeCdEc4VzBeWeQ" type="_dSiS02EMEeCdEc4VzBeWeQ" direction="return"/>
</ownedOperation>
<ownedOperation xmi:id="_koho8GEMEeCdEc4VzBeWeQ" name="getBuffer" visibility="public">
<ownedComment xmi:id="_koho8WEMEeCdEc4VzBeWeQ">
<body>
* Returns the buffer opened for this element, or &lt;code>null&lt;/code>
* if this element does not have a buffer.
*
* @exception JavaModelException if this element does not exist or if an
* exception occurs while accessing its corresponding resource.
* @return the buffer opened for this element, or &lt;code>null&lt;/code>
* if this element does not have a buffer
</body>
</ownedComment>
<ownedParameter xmi:id="_koho8mEMEeCdEc4VzBeWeQ" type="_j1aJ8GEMEeCdEc4VzBeWeQ" direction="return"/>
</ownedOperation>
<ownedOperation xmi:id="_koho82EMEeCdEc4VzBeWeQ" name="hasUnsavedChanges">
<ownedComment xmi:id="_koho9GEMEeCdEc4VzBeWeQ">
<body>
* Returns &lt;code>true&lt;/code> if this element is open and:
* &lt;ul>
* &lt;li>its buffer has unsaved changes, or
* &lt;li>one of its descendants has unsaved changes, or
* &lt;li>a working copy has been created on one of this
* element's children and has not yet destroyed
* &lt;/ul>
*
* @exception JavaModelException if this element does not exist or if an
* exception occurs while accessing its corresponding resource.
* @return &lt;code>true&lt;/code> if this element is open and:
* &lt;ul>
* &lt;li>its buffer has unsaved changes, or
* &lt;li>one of its descendants has unsaved changes, or
* &lt;li>a working copy has been created on one of this
* element's children and has not yet destroyed
* &lt;/ul>
</body>
</ownedComment>
<ownedParameter xmi:id="_koho9WEMEeCdEc4VzBeWeQ" type="_dVOadGEMEeCdEc4VzBeWeQ" direction="return"/>
</ownedOperation>
<ownedOperation xmi:id="_koqy4GEMEeCdEc4VzBeWeQ" name="isConsistent">
<ownedComment xmi:id="_koqy4WEMEeCdEc4VzBeWeQ">
<body>
* Returns whether the element is consistent with its underlying resource or buffer.
* The element is consistent when opened, and is consistent if the underlying resource
* or buffer has not been modified since it was last consistent.
*
* &lt;p>NOTE: Child consistency is not considered. For example, a package fragment
* responds &lt;code>true&lt;/code> when it knows about all of its
* compilation units present in its underlying folder. However, one or more of
* the compilation units could be inconsistent.
*
* @exception JavaModelException if this element does not exist or if an
* exception occurs while accessing its corresponding resource.
* @return true if the element is consistent with its underlying resource or buffer, false otherwise.
* @see IOpenable#makeConsistent(IProgressMonitor)
</body>
</ownedComment>
<ownedParameter xmi:id="_koqy4mEMEeCdEc4VzBeWeQ" type="_dVOadGEMEeCdEc4VzBeWeQ" direction="return"/>
</ownedOperation>
<ownedOperation xmi:id="_koqy42EMEeCdEc4VzBeWeQ" name="isOpen">
<ownedComment xmi:id="_koqy5GEMEeCdEc4VzBeWeQ">
<body>
* Returns whether this openable is open. This is a handle-only method.
* @return true if this openable is open, false otherwise
</body>
</ownedComment>
<ownedParameter xmi:id="_koqy5WEMEeCdEc4VzBeWeQ" type="_dVOadGEMEeCdEc4VzBeWeQ" direction="return"/>
</ownedOperation>
<ownedOperation xmi:id="_koqy5mEMEeCdEc4VzBeWeQ" name="makeConsistent">
<ownedComment xmi:id="_koqy52EMEeCdEc4VzBeWeQ">
<body>
* Makes this element consistent with its underlying resource or buffer
* by updating the element's structure and properties as necessary.
*&lt;p>
* Note: Using this functionality on a working copy will interfere with any
* subsequent reconciling operation. Indeed, the next
* {@link ICompilationUnit#reconcile(int, boolean, WorkingCopyOwner, IProgressMonitor)} or
* {@link ICompilationUnit#reconcile(int, boolean, boolean, WorkingCopyOwner, IProgressMonitor)}
* operation will not account for changes which occurred before an
* explicit use of {@link #makeConsistent(IProgressMonitor)}
* &lt;p>
* @param progress the given progress monitor
* @exception JavaModelException if the element is unable to access the contents
* of its underlying resource. Reasons include:
* &lt;ul>
* &lt;li>This Java element does not exist (ELEMENT_DOES_NOT_EXIST)&lt;/li>
* &lt;/ul>
* @see IOpenable#isConsistent()
* @see ICompilationUnit#reconcile(int, boolean, WorkingCopyOwner, IProgressMonitor)
</body>
</ownedComment>
<ownedParameter xmi:id="_koqy6GEMEeCdEc4VzBeWeQ" name="progress" type="_jqFqwGEMEeCdEc4VzBeWeQ"/>
</ownedOperation>
<ownedOperation xmi:id="_ko0j4GEMEeCdEc4VzBeWeQ" name="open" visibility="public">
<ownedComment xmi:id="_ko0j4WEMEeCdEc4VzBeWeQ">
<body>
* Opens this element and all parent elements that are not already open.
* For compilation units, a buffer is opened on the contents of the underlying resource.
*
* &lt;p>Note: although {@link #open} is exposed in the API, clients are
* not expected to open and close elements - the Java model does this automatically
* as elements are accessed.
*
* @param progress the given progress monitor
* @exception JavaModelException if an error occurs accessing the contents
* of its underlying resource. Reasons include:
* &lt;ul>
* &lt;li>This Java element does not exist (ELEMENT_DOES_NOT_EXIST)&lt;/li>
* &lt;/ul>
</body>
</ownedComment>
<ownedParameter xmi:id="_ko0j4mEMEeCdEc4VzBeWeQ" name="progress" type="_jqFqwGEMEeCdEc4VzBeWeQ"/>
</ownedOperation>
<ownedOperation xmi:id="_ko-U4GEMEeCdEc4VzBeWeQ" name="save" visibility="public">
<ownedComment xmi:id="_ko-U4WEMEeCdEc4VzBeWeQ">
<body>
* Saves any changes in this element's buffer to its underlying resource
* via a workspace resource operation. This has no effect if the element has no underlying
* buffer, or if there are no unsaved changed in the buffer.
* &lt;p>
* The &lt;code>force&lt;/code> parameter controls how this method deals with
* cases where the workbench is not completely in sync with the local file system.
* If &lt;code>false&lt;/code> is specified, this method will only attempt
* to overwrite a corresponding file in the local file system provided
* it is in sync with the workbench. This option ensures there is no
* unintended data loss; it is the recommended setting.
* However, if &lt;code>true&lt;/code> is specified, an attempt will be made
* to write a corresponding file in the local file system,
* overwriting any existing one if need be.
* In either case, if this method succeeds, the resource will be marked
* as being local (even if it wasn't before).
* &lt;p>
* As a result of this operation, the element is consistent with its underlying
* resource or buffer.
*
* @param progress the given progress monitor
* @param force it controls how this method deals with
* cases where the workbench is not completely in sync with the local file system
* @exception JavaModelException if an error occurs accessing the contents
* of its underlying resource. Reasons include:
* &lt;ul>
* &lt;li>This Java element does not exist (ELEMENT_DOES_NOT_EXIST)&lt;/li>
* &lt;li>This Java element is read-only (READ_ONLY)&lt;/li>
* &lt;/ul>
</body>
</ownedComment>
<ownedParameter xmi:id="_kpaZwGEMEeCdEc4VzBeWeQ" name="progress" type="_jqFqwGEMEeCdEc4VzBeWeQ"/>
<ownedParameter xmi:id="_kpkKwGEMEeCdEc4VzBeWeQ" name="force" type="_dVOadGEMEeCdEc4VzBeWeQ"/>
</ownedOperation>
</packagedElement>
<packagedElement xmi:type="uml:Interface" xmi:id="_kqKnsGEMEeCdEc4VzBeWeQ" name="IPackageDeclaration">
<ownedComment xmi:id="_kqKnsWEMEeCdEc4VzBeWeQ">
<body>
* Represents a package declaration in Java compilation unit.
*
* @noimplement This interface is not intended to be implemented by clients.
</body>
</ownedComment>
<generalization xmi:id="_kqKnsmEMEeCdEc4VzBeWeQ" general="_kO5A8GEMEeCdEc4VzBeWeQ"/>
</packagedElement>
<packagedElement xmi:type="uml:Interface" xmi:id="_kqTxoGEMEeCdEc4VzBeWeQ" name="IPackageFragment">
<ownedComment xmi:id="_kqTxoWEMEeCdEc4VzBeWeQ">
<body>
* A package fragment is a portion of the workspace corresponding to an entire package,
* or to a portion thereof. The distinction between a package fragment and a package
* is that a package with some name is the union of all package fragments in the class path
* which have the same name.
* &lt;p>
* Package fragments elements need to be opened before they can be navigated or manipulated.
* The children are of type &lt;code>ICompilationUnit&lt;/code> (representing a source file) or
* &lt;code>IClassFile&lt;/code> (representing a binary class file).
* The children are listed in no particular order.
* &lt;/p>
*
* @noimplement This interface is not intended to be implemented by clients.
</body>
</ownedComment>
<generalization xmi:id="_cQyWUGHaEeCIr_fxSkYSJA" general="_kq6OkGEMEeCdEc4VzBeWeQ"/>
<generalization xmi:id="_cQyWUWHaEeCIr_fxSkYSJA" general="_kO5A8GEMEeCdEc4VzBeWeQ"/>
<generalization xmi:id="_cQyWUmHaEeCIr_fxSkYSJA" general="_koX38GEMEeCdEc4VzBeWeQ"/>
<generalization xmi:id="_cQ7gQGHaEeCIr_fxSkYSJA" general="_kssXQGEMEeCdEc4VzBeWeQ"/>
<ownedAttribute xmi:id="_cQ7gQWHaEeCIr_fxSkYSJA" name="DEFAULT_PACKAGE_NAME" visibility="public" isLeaf="true" isStatic="true" type="_dSiS02EMEeCdEc4VzBeWeQ" isUnique="false">
<ownedComment xmi:id="_cRFRQGHaEeCIr_fxSkYSJA">
<body>
* &lt;p>
* The name of package fragment for the default package (value: the empty
* string, &lt;code>&quot;&quot;&lt;/code>).
* &lt;/p>
</body>
</ownedComment>
</ownedAttribute>
<ownedOperation xmi:id="_cRObMGHaEeCIr_fxSkYSJA" name="containsJavaResources">
<ownedComment xmi:id="_cRObMWHaEeCIr_fxSkYSJA">
<body>
* Returns whether this fragment contains at least one Java resource.
* @return true if this fragment contains at least one Java resource, false otherwise
* @exception JavaModelException if this element does not exist or if an
* exception occurs while accessing its corresponding resource.
</body>
</ownedComment>
<ownedParameter xmi:id="_cRYMMGHaEeCIr_fxSkYSJA" type="_dVOadGEMEeCdEc4VzBeWeQ" direction="return"/>
</ownedOperation>
<ownedOperation xmi:id="_cRYMMWHaEeCIr_fxSkYSJA" name="createCompilationUnit">
<ownedComment xmi:id="_cRYMMmHaEeCIr_fxSkYSJA">
<body>
* Creates and returns a compilation unit in this package fragment
* with the specified name and contents. No verification is performed
* on the contents.
*
* &lt;p>It is possible that a compilation unit with the same name already exists in this
* package fragment.
* The value of the &lt;code>force&lt;/code> parameter affects the resolution of
* such a conflict:&lt;ul>
* &lt;li> &lt;code>true&lt;/code> - in this case the compilation is created with the new contents&lt;/li>
* &lt;li> &lt;code>false&lt;/code> - in this case a &lt;code>JavaModelException&lt;/code> is thrown&lt;/li>
* &lt;/ul>
*
* @param contents the given contents
* @param force specify how to handle conflict is the same name already exists
* @param monitor the given progress monitor
* @param name the given name
* @exception JavaModelException if the element could not be created. Reasons include:
* &lt;ul>
* &lt;li> This Java element does not exist (ELEMENT_DOES_NOT_EXIST)&lt;/li>
* &lt;li> A &lt;code>CoreException&lt;/code> occurred while creating an underlying resource
* &lt;li> The name is not a valid compilation unit name (INVALID_NAME)
* &lt;li> The contents are &lt;code>null&lt;/code> (INVALID_CONTENTS)
* &lt;/ul>
* @return a compilation unit in this package fragment
* with the specified name and contents
</body>
</ownedComment>
<ownedParameter xmi:id="_cRh9MGHaEeCIr_fxSkYSJA" type="_j-plgGEMEeCdEc4VzBeWeQ" direction="return"/>
<ownedParameter xmi:id="_cRh9MWHaEeCIr_fxSkYSJA" name="name" type="_dSiS02EMEeCdEc4VzBeWeQ"/>
<ownedParameter xmi:id="_cRrHIGHaEeCIr_fxSkYSJA" name="contents" type="_dSiS02EMEeCdEc4VzBeWeQ"/>
<ownedParameter xmi:id="_cR04IGHaEeCIr_fxSkYSJA" name="force" type="_dVOadGEMEeCdEc4VzBeWeQ"/>
<ownedParameter xmi:id="_cR04IWHaEeCIr_fxSkYSJA" name="monitor" type="_jqFqwGEMEeCdEc4VzBeWeQ"/>
</ownedOperation>
<ownedOperation xmi:id="_cR-pIGHaEeCIr_fxSkYSJA" name="getClassFile">
<ownedComment xmi:id="_cR-pIWHaEeCIr_fxSkYSJA">
<body>
* Returns the class file with the specified name
* in this package (for example, &lt;code>&quot;Object.class&quot;&lt;/code>).
* The &quot;.class&quot; suffix is required.
* This is a handle-only method. The class file may or may not be present.
* @param name the given name
* @return the class file with the specified name in this package
</body>
</ownedComment>
<ownedParameter xmi:id="_cR-pImHaEeCIr_fxSkYSJA" type="_j2Jw0GEMEeCdEc4VzBeWeQ" direction="return"/>
<ownedParameter xmi:id="_cSHzEGHaEeCIr_fxSkYSJA" name="name" type="_dSiS02EMEeCdEc4VzBeWeQ"/>
</ownedOperation>
<ownedOperation xmi:id="_cSRkEGHaEeCIr_fxSkYSJA" name="getClassFiles">
<ownedComment xmi:id="_cSRkEWHaEeCIr_fxSkYSJA">
<body>
* Returns all of the class files in this package fragment.
*
* &lt;p>Note: it is possible that a package fragment contains only
* compilation units (in other words, its kind is &lt;code>K_SOURCE&lt;/code>), in
* which case this method returns an empty collection.
*
* @exception JavaModelException if this element does not exist or if an
* exception occurs while accessing its corresponding resource.
* @return all of the class files in this package fragment
</body>
</ownedComment>
<ownedParameter xmi:id="_cSRkEmHaEeCIr_fxSkYSJA" type="_j2Jw0GEMEeCdEc4VzBeWeQ" direction="return">
<upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_cSauAGHaEeCIr_fxSkYSJA" value="*"/>
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_cSRkE2HaEeCIr_fxSkYSJA"/>
</ownedParameter>
</ownedOperation>
<ownedOperation xmi:id="_cSauAWHaEeCIr_fxSkYSJA" name="getCompilationUnit">
<ownedComment xmi:id="_cSkfAGHaEeCIr_fxSkYSJA">
<body>
* Returns the compilation unit with the specified name
* in this package (for example, &lt;code>&quot;Object.java&quot;&lt;/code>).
* The name has to be a valid compilation unit name.
* This is a handle-only method. The compilation unit may or may not be present.
*
* @param name the given name
* @return the compilation unit with the specified name in this package
* @see JavaConventions#validateCompilationUnitName(String name, String sourceLevel, String complianceLevel)
</body>
</ownedComment>
<ownedParameter xmi:id="_cSkfAWHaEeCIr_fxSkYSJA" type="_j-plgGEMEeCdEc4VzBeWeQ" direction="return"/>
<ownedParameter xmi:id="_cSkfAmHaEeCIr_fxSkYSJA" name="name" type="_dSiS02EMEeCdEc4VzBeWeQ"/>
</ownedOperation>
<ownedOperation xmi:id="_cSuQAGHaEeCIr_fxSkYSJA" name="getCompilationUnits">
<ownedComment xmi:id="_cSuQAWHaEeCIr_fxSkYSJA">
<body>
* Returns all of the compilation units in this package fragment.
*
* &lt;p>Note: it is possible that a package fragment contains only
* class files (in other words, its kind is &lt;code>K_BINARY&lt;/code>), in which
* case this method returns an empty collection.
* &lt;/p>
*
* @exception JavaModelException if this element does not exist or if an
* exception occurs while accessing its corresponding resource.
* @return all of the compilation units in this package fragment
</body>
</ownedComment>
<ownedParameter xmi:id="_cSuQAmHaEeCIr_fxSkYSJA" type="_j-plgGEMEeCdEc4VzBeWeQ" direction="return">
<upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_cS3Z8WHaEeCIr_fxSkYSJA" value="*"/>
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_cS3Z8GHaEeCIr_fxSkYSJA"/>
</ownedParameter>
</ownedOperation>
<ownedOperation xmi:id="_cTd24GHaEeCIr_fxSkYSJA" name="getCompilationUnits">
<ownedComment xmi:id="_cTd24WHaEeCIr_fxSkYSJA">
<body>
* Returns all of the compilation units in this package fragment that are
* in working copy mode and that have the given owner.
* &lt;p>
* Only existing working copies are returned. So a compilation unit handle that has no
* corresponding resource on disk will be included if and only if is in working copy mode.
* &lt;/p>
* &lt;p>Note: it is possible that a package fragment contains only
* class files (in other words, its kind is &lt;code>K_BINARY&lt;/code>), in which
* case this method returns an empty collection.
* &lt;/p>
*
* @param owner the owner of the returned compilation units
* @exception JavaModelException if this element does not exist or if an
* exception occurs while accessing its corresponding resource.
* @return all of the compilation units in this package fragment
* @since 3.0
</body>
</ownedComment>
<ownedParameter xmi:id="_cTd24mHaEeCIr_fxSkYSJA" type="_j-plgGEMEeCdEc4VzBeWeQ" direction="return">
<upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_cTwx0GHaEeCIr_fxSkYSJA" value="*"/>
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_cTnA0GHaEeCIr_fxSkYSJA"/>
</ownedParameter>
<ownedParameter xmi:id="_cTwx0WHaEeCIr_fxSkYSJA" name="owner" type="_nI23sGEMEeCdEc4VzBeWeQ"/>
</ownedOperation>
<ownedOperation xmi:id="_cT6i0GHaEeCIr_fxSkYSJA" name="getElementName">
<ownedComment xmi:id="_cT6i0WHaEeCIr_fxSkYSJA">
<body>
* Returns the dot-separated package name of this fragment, for example
* &lt;code>&quot;java.lang&quot;&lt;/code>, or &lt;code>&quot;&quot;&lt;/code> (the empty string),
* for the default package.
*
* @return the dot-separated package name of this fragment
</body>
</ownedComment>
<ownedParameter xmi:id="_cT6i0mHaEeCIr_fxSkYSJA" type="_dSiS02EMEeCdEc4VzBeWeQ" direction="return"/>
</ownedOperation>
<ownedOperation xmi:id="_cUDswGHaEeCIr_fxSkYSJA" name="getKind">
<ownedComment xmi:id="_cUDswWHaEeCIr_fxSkYSJA">
<body>
* Returns this package fragment's root kind encoded as an integer.
* A package fragment can contain source files (i.e. files with one of
* the {@link JavaCore#getJavaLikeExtensions() Java-like extensions}),
* or &lt;code>.class&lt;/code> files. This is a convenience method.
*
* @exception JavaModelException if this element does not exist or if an
* exception occurs while accessing its corresponding resource.
* @return this package fragment's root kind encoded as an integer
* @see IPackageFragmentRoot#K_SOURCE
* @see IPackageFragmentRoot#K_BINARY
</body>
</ownedComment>
<ownedParameter xmi:id="_cUDswmHaEeCIr_fxSkYSJA" type="_dTlbsGEMEeCdEc4VzBeWeQ" direction="return"/>
</ownedOperation>
<ownedOperation xmi:id="_cUDsw2HaEeCIr_fxSkYSJA" name="getNonJavaResources">
<ownedComment xmi:id="_cUDsxGHaEeCIr_fxSkYSJA">
<body>
* Returns an array of non-Java resources contained in this package fragment.
* &lt;p>
* Non-Java resources includes other files and folders located in the same
* directory as the compilation units or class files for this package
* fragment. Source files excluded from this package by virtue of
* inclusion/exclusion patterns on the corresponding source classpath entry
* are considered non-Java resources and will appear in the result
* (possibly in a folder).
* &lt;/p>&lt;p>
* Since 3.3, if this package fragment is inside an archive, the non-Java resources
* are a tree of {@link IJarEntryResource}s. One can navigate this tree using
* the {@link IJarEntryResource#getChildren()} and
* {@link IJarEntryResource#getParent()} methods.
* &lt;/p>
*
* @exception JavaModelException if this element does not exist or if an
* exception occurs while accessing its corresponding resource.
* @return an array of non-Java resources (&lt;code>IFile&lt;/code>s,
* &lt;code>IFolder&lt;/code>s, or &lt;code>IStorage&lt;/code>s if the
* package fragment is in an archive) contained in this package
* fragment
* @see IClasspathEntry#getInclusionPatterns()
* @see IClasspathEntry#getExclusionPatterns()
</body>
</ownedComment>
<ownedParameter xmi:id="_cUNdwGHaEeCIr_fxSkYSJA" type="_kOcVAmEMEeCdEc4VzBeWeQ" direction="return">
<upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_cUXOwGHaEeCIr_fxSkYSJA" value="*"/>
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_cUNdwWHaEeCIr_fxSkYSJA"/>
</ownedParameter>
</ownedOperation>
<ownedOperation xmi:id="_cUgYsGHaEeCIr_fxSkYSJA" name="hasSubpackages">
<ownedComment xmi:id="_cUgYsWHaEeCIr_fxSkYSJA">
<body>
* Returns whether this package fragment's name is
* a prefix of other package fragments in this package fragment's
* root.
*
* @exception JavaModelException if this element does not exist or if an
* exception occurs while accessing its corresponding resource.
* @return true if this package fragment's name is a prefix of other package fragments in this package fragment's root, false otherwise
</body>
</ownedComment>
<ownedParameter xmi:id="_cUgYsmHaEeCIr_fxSkYSJA" type="_dVOadGEMEeCdEc4VzBeWeQ" direction="return"/>
</ownedOperation>
<ownedOperation xmi:id="_cUgYs2HaEeCIr_fxSkYSJA" name="isDefaultPackage">
<ownedComment xmi:id="_cUgYtGHaEeCIr_fxSkYSJA">
<body>
* Returns whether this package fragment is a default package.
* This is a handle-only method.
*
* @return true if this package fragment is a default package
</body>
</ownedComment>
<ownedParameter xmi:id="_cUqJsGHaEeCIr_fxSkYSJA" type="_dVOadGEMEeCdEc4VzBeWeQ" direction="return"/>
</ownedOperation>
</packagedElement>
<packagedElement xmi:type="uml:Interface" xmi:id="_kqmskGEMEeCdEc4VzBeWeQ" name="IPackageFragmentRoot">
<ownedComment xmi:id="_kqmskWEMEeCdEc4VzBeWeQ">
<body>
* A package fragment root contains a set of package fragments.
* It corresponds to an underlying resource which is either a folder,
* JAR, or zip. In the case of a folder, all descendant folders represent
* package fragments. For a given child folder representing a package fragment,
* the corresponding package name is composed of the folder names between the folder
* for this root and the child folder representing the package, separated by '.'.
* In the case of a JAR or zip, the contents of the archive dictates
* the set of package fragments in an analogous manner.
* Package fragment roots need to be opened before they can be navigated or manipulated.
* The children are of type &lt;code>IPackageFragment&lt;/code>, and are in no particular order.
*
* @noimplement This interface is not intended to be implemented by clients.
</body>
</ownedComment>
<generalization xmi:id="_fa13gGHaEeCIr_fxSkYSJA" general="_kq6OkGEMEeCdEc4VzBeWeQ"/>
<generalization xmi:id="_fa13gWHaEeCIr_fxSkYSJA" general="_kO5A8GEMEeCdEc4VzBeWeQ"/>
<generalization xmi:id="_fa_ogGHaEeCIr_fxSkYSJA" general="_koX38GEMEeCdEc4VzBeWeQ"/>
<ownedAttribute xmi:id="_fa_ogWHaEeCIr_fxSkYSJA" name="K_SOURCE" type="_dTlbsGEMEeCdEc4VzBeWeQ" isUnique="false">
<ownedComment xmi:id="_fbIycGHaEeCIr_fxSkYSJA">
<body>
* Kind constant for a source path root. Indicates this root
* only contains source files.
</body>
</ownedComment>
</ownedAttribute>
<ownedAttribute xmi:id="_fbSjcGHaEeCIr_fxSkYSJA" name="K_BINARY" type="_dTlbsGEMEeCdEc4VzBeWeQ" isUnique="false">
<ownedComment xmi:id="_fbcUcGHaEeCIr_fxSkYSJA">
<body>
* Kind constant for a binary path root. Indicates this
* root only contains binary files.
</body>
</ownedComment>
</ownedAttribute>
<ownedAttribute xmi:id="_fbcUcWHaEeCIr_fxSkYSJA" name="DEFAULT_PACKAGEROOT_PATH" type="_dSiS02EMEeCdEc4VzBeWeQ" isUnique="false">
<ownedComment xmi:id="_fbleYGHaEeCIr_fxSkYSJA">
<body>
* Empty root path
</body>
</ownedComment>
</ownedAttribute>
<ownedAttribute xmi:id="_fbleYWHaEeCIr_fxSkYSJA" name="NO_RESOURCE_MODIFICATION" type="_dTlbsGEMEeCdEc4VzBeWeQ" isUnique="false">
<ownedComment xmi:id="_fbvPYGHaEeCIr_fxSkYSJA">
<body>
* Update model flag constant (bit mask value 1) indicating that the operation
* is to not copy/move/delete the package fragment root resource.
* @since 2.1
</body>
</ownedComment>
</ownedAttribute>
<ownedAttribute xmi:id="_fbvPYWHaEeCIr_fxSkYSJA" name="ORIGINATING_PROJECT_CLASSPATH" type="_dTlbsGEMEeCdEc4VzBeWeQ" isUnique="false">
<ownedComment xmi:id="_fb4ZUGHaEeCIr_fxSkYSJA">
<body>
* Update model flag constant (bit mask value 2) indicating that the operation
* is to update the classpath of the originating project.
* @since 2.1
</body>
</ownedComment>
</ownedAttribute>
<ownedAttribute xmi:id="_fb4ZUWHaEeCIr_fxSkYSJA" name="OTHER_REFERRING_PROJECTS_CLASSPATH" type="_dTlbsGEMEeCdEc4VzBeWeQ" isUnique="false">
<ownedComment xmi:id="_fcCKUGHaEeCIr_fxSkYSJA">
<body>
* Update model flag constant (bit mask value 4) indicating that the operation
* is to update the classpath of all referring projects except the originating project.
* @since 2.1
</body>
</ownedComment>
</ownedAttribute>
<ownedAttribute xmi:id="_fcL7UGHaEeCIr_fxSkYSJA" name="DESTINATION_PROJECT_CLASSPATH" type="_dTlbsGEMEeCdEc4VzBeWeQ" isUnique="false">
<ownedComment xmi:id="_fcL7UWHaEeCIr_fxSkYSJA">
<body>
* Update model flag constant (bit mask value 8) indicating that the operation
* is to update the classpath of the destination project.
* @since 2.1
</body>
</ownedComment>
</ownedAttribute>
<ownedAttribute xmi:id="_fcVFQGHaEeCIr_fxSkYSJA" name="REPLACE" type="_dTlbsGEMEeCdEc4VzBeWeQ" isUnique="false">
<ownedComment xmi:id="_fce2QGHaEeCIr_fxSkYSJA">
<body>
* Update model flag constant (bit mask value 16) indicating that the operation
* is to replace the resource and the destination project's classpath entry.
* @since 2.1
</body>
</ownedComment>
</ownedAttribute>
<ownedOperation xmi:id="_fce2QWHaEeCIr_fxSkYSJA" name="attachSource">
<ownedComment xmi:id="_fce2QmHaEeCIr_fxSkYSJA">
<body>
* Attaches the source archive identified by the given absolute path to this
* binary package fragment root. &lt;code>rootPath&lt;/code> specifies the location
* of the root within the archive or folder (empty specifies the default root
* and &lt;code>null&lt;/code> specifies the root path should be detected).
* Once a source archive or folder is attached to the package fragment root,
* the &lt;code>getSource&lt;/code> and &lt;code>getSourceRange&lt;/code>
* methods become operational for binary types/members.
* To detach a source archive or folder from a package fragment root, specify
* &lt;code>null&lt;/code> as the source path.
*
* @param sourcePath the given absolute path to the source archive or folder
* @param rootPath specifies the location of the root within the archive
* (empty specifies the default root and &lt;code>null&lt;/code> specifies
* automatic detection of the root path)
* @param monitor the given progress monitor
* @exception JavaModelException if this operation fails. Reasons include:
* &lt;ul>
* &lt;li> This Java element does not exist (ELEMENT_DOES_NOT_EXIST)&lt;/li>
* &lt;li> A &lt;code>CoreException&lt;/code> occurred while updating a server property
* &lt;li> This package fragment root is not of kind binary (INVALID_ELEMENT_TYPES)
* &lt;li> The path provided is not absolute (RELATIVE_PATH)
* &lt;/ul>
</body>
</ownedComment>
<ownedParameter xmi:id="_fce2Q2HaEeCIr_fxSkYSJA" name="sourcePath" type="_j00UEmEMEeCdEc4VzBeWeQ"/>
<ownedParameter xmi:id="_fconQGHaEeCIr_fxSkYSJA" name="rootPath" type="_j00UEmEMEeCdEc4VzBeWeQ"/>
<ownedParameter xmi:id="_fcxxMGHaEeCIr_fxSkYSJA" name="monitor" type="_jqFqwGEMEeCdEc4VzBeWeQ"/>
</ownedOperation>
<ownedOperation xmi:id="_fc7iMGHaEeCIr_fxSkYSJA" name="copy">
<ownedComment xmi:id="_fc7iMWHaEeCIr_fxSkYSJA">
<body>
* Copies the resource of this package fragment root to the destination path
* as specified by &lt;code>IResource.copy(IPath, int, IProgressMonitor)&lt;/code>
* but excluding nested source folders.
* &lt;p>
* If &lt;code>NO_RESOURCE_MODIFICATION&lt;/code> is specified in
* &lt;code>updateModelFlags&lt;/code> or if this package fragment root is external,
* this operation doesn't copy the resource. &lt;code>updateResourceFlags&lt;/code>
* is then ignored.
* &lt;/p>&lt;p>
* If &lt;code>DESTINATION_PROJECT_CLASSPATH&lt;/code> is specified in
* &lt;code>updateModelFlags&lt;/code>, updates the classpath of the
* destination's project (if it is a Java project). If a non-&lt;code>null&lt;/code>
* sibling is specified, a copy of this root's classpath entry is inserted before the
* sibling on the destination project's raw classpath. If &lt;code>null&lt;/code> is
* specified, the classpath entry is added at the end of the raw classpath.
* &lt;/p>&lt;p>
* If &lt;code>REPLACE&lt;/code> is specified in &lt;code>updateModelFlags&lt;/code>,
* overwrites the resource at the destination path if any.
* If the same classpath entry already exists on the destination project's raw
* classpath, then the sibling is ignored and the new classpath entry replaces the
* existing one.
* &lt;/p>&lt;p>
* If no flags is specified in &lt;code>updateModelFlags&lt;/code> (using
* &lt;code>IResource.NONE&lt;/code>), the default behavior applies: the
* resource is copied (if this package fragment root is not external) and the
* classpath is not updated.
* &lt;/p>
*
* @param destination the destination path
* @param updateResourceFlags bit-wise or of update resource flag constants
* (&lt;code>IResource.FORCE&lt;/code> and &lt;code>IResource.SHALLOW&lt;/code>)
* @param updateModelFlags bit-wise or of update resource flag constants
* (&lt;code>DESTINATION_PROJECT_CLASSPATH&lt;/code> and
* &lt;code>NO_RESOURCE_MODIFICATION&lt;/code>)
* @param sibling the classpath entry before which a copy of the classpath
* entry should be inserted or &lt;code>null&lt;/code> if the classpath entry should
* be inserted at the end
* @param monitor a progress monitor
*
* @exception JavaModelException if this root could not be copied. Reasons
* include:
* &lt;ul>
* &lt;li> This root does not exist (ELEMENT_DOES_NOT_EXIST)&lt;/li>
* &lt;li> A &lt;code>CoreException&lt;/code> occurred while copying the
* resource or updating a classpath&lt;/li>
* &lt;li>
* The destination is not inside an existing project and &lt;code>updateModelFlags&lt;/code>
* has been specified as &lt;code>DESTINATION_PROJECT_CLASSPATH&lt;/code>
* (INVALID_DESTINATION)&lt;/li>
* &lt;li> The sibling is not a classpath entry on the destination project's
* raw classpath (INVALID_SIBLING)&lt;/li>
* &lt;li> The same classpath entry already exists on the destination project's
* classpath (NAME_COLLISION) and &lt;code>updateModelFlags&lt;/code>
* has not been specified as &lt;code>REPLACE&lt;/code>&lt;/li>
* &lt;/ul>
* @see org.eclipse.core.resources.IResource#copy(IPath, boolean, IProgressMonitor)
* @since 2.1
</body>
</ownedComment>
<ownedParameter xmi:id="_fc7iMmHaEeCIr_fxSkYSJA" name="destination" type="_j00UEmEMEeCdEc4VzBeWeQ"/>
<ownedParameter xmi:id="_fdEsIGHaEeCIr_fxSkYSJA" name="updateResourceFlags" type="_dTlbsGEMEeCdEc4VzBeWeQ"/>
<ownedParameter xmi:id="_fdOdIGHaEeCIr_fxSkYSJA" name="updateModelFlags" type="_dTlbsGEMEeCdEc4VzBeWeQ"/>
<ownedParameter xmi:id="_fdOdIWHaEeCIr_fxSkYSJA" name="sibling" type="_j4GRkGEMEeCdEc4VzBeWeQ"/>
<ownedParameter xmi:id="_fdYOIGHaEeCIr_fxSkYSJA" name="monitor" type="_jqFqwGEMEeCdEc4VzBeWeQ"/>
</ownedOperation>
<ownedOperation xmi:id="_fdYOIWHaEeCIr_fxSkYSJA" name="createPackageFragment">
<ownedComment xmi:id="_fdYOImHaEeCIr_fxSkYSJA">
<body>
* Creates and returns a package fragment in this root with the
* given dot-separated package name. An empty string specifies the default package.
* This has the side effect of creating all package
* fragments that are a prefix of the new package fragment which
* do not exist yet. If the package fragment already exists, this
* has no effect.
*
* For a description of the &lt;code>force&lt;/code> flag, see &lt;code>IFolder.create&lt;/code>.
*
* @param name the given dot-separated package name
* @param force a flag controlling how to deal with resources that
* are not in sync with the local file system
* @param monitor the given progress monitor
* @exception JavaModelException if the element could not be created. Reasons include:
* &lt;ul>
* &lt;li> This Java element does not exist (ELEMENT_DOES_NOT_EXIST)&lt;/li>
* &lt;li> A &lt;code>CoreException&lt;/code> occurred while creating an underlying resource
* &lt;li> This package fragment root is read only (READ_ONLY)
* &lt;li> The name is not a valid package name (INVALID_NAME)
* &lt;/ul>
* @return a package fragment in this root with the given dot-separated package name
* @see org.eclipse.core.resources.IFolder#create(boolean, boolean, IProgressMonitor)
</body>
</ownedComment>
<ownedParameter xmi:id="_fdhYEGHaEeCIr_fxSkYSJA" type="_kqTxoGEMEeCdEc4VzBeWeQ" direction="return"/>
<ownedParameter xmi:id="_fdhYEWHaEeCIr_fxSkYSJA" name="name" type="_dSiS02EMEeCdEc4VzBeWeQ"/>
<ownedParameter xmi:id="_fdrJEGHaEeCIr_fxSkYSJA" name="force" type="_dVOadGEMEeCdEc4VzBeWeQ"/>
<ownedParameter xmi:id="_fdrJEWHaEeCIr_fxSkYSJA" name="monitor" type="_jqFqwGEMEeCdEc4VzBeWeQ"/>
</ownedOperation>
<ownedOperation xmi:id="_fd06EGHaEeCIr_fxSkYSJA" name="delete">
<ownedComment xmi:id="_fd06EWHaEeCIr_fxSkYSJA">
<body>
* Deletes the resource of this package fragment root as specified by
* &lt;code>IResource.delete(int, IProgressMonitor)&lt;/code> but excluding nested
* source folders.
* &lt;p>
* If &lt;code>NO_RESOURCE_MODIFICATION&lt;/code> is specified in
* &lt;code>updateModelFlags&lt;/code> or if this package fragment root is external,
* this operation doesn't delete the resource. &lt;code>updateResourceFlags&lt;/code>
* is then ignored.
* &lt;/p>&lt;p>
* If &lt;code>ORIGINATING_PROJECT_CLASSPATH&lt;/code> is specified in
* &lt;code>updateModelFlags&lt;/code>, update the raw classpath of this package
* fragment root's project by removing the corresponding classpath entry.
* &lt;/p>&lt;p>
* If &lt;code>OTHER_REFERRING_PROJECTS_CLASSPATH&lt;/code> is specified in
* &lt;code>updateModelFlags&lt;/code>, update the raw classpaths of all other Java
* projects referring to this root's resource by removing the corresponding classpath
* entries.
* &lt;/p>&lt;p>
* If no flags is specified in &lt;code>updateModelFlags&lt;/code> (using
* &lt;code>IResource.NONE&lt;/code>), the default behavior applies: the
* resource is deleted (if this package fragment root is not external) and no
* classpaths are updated.
* &lt;/p>
*
* @param updateResourceFlags bit-wise or of update resource flag constants
* (&lt;code>IResource.FORCE&lt;/code> and &lt;code>IResource.KEEP_HISTORY&lt;/code>)
* @param updateModelFlags bit-wise or of update resource flag constants
* (&lt;code>ORIGINATING_PROJECT_CLASSPATH&lt;/code>,
* &lt;code>OTHER_REFERRING_PROJECTS_CLASSPATH&lt;/code> and
* &lt;code>NO_RESOURCE_MODIFICATION&lt;/code>)
* @param monitor a progress monitor
*
* @exception JavaModelException if this root could not be deleted. Reasons
* include:
* &lt;ul>
* &lt;li> This root does not exist (ELEMENT_DOES_NOT_EXIST)&lt;/li>
* &lt;li> A &lt;code>CoreException&lt;/code> occurred while deleting the resource
* or updating a classpath
* &lt;/li>
* &lt;/ul>
* @see org.eclipse.core.resources.IResource#delete(boolean, IProgressMonitor)
* @since 2.1
</body>
</ownedComment>
<ownedParameter xmi:id="_fd06EmHaEeCIr_fxSkYSJA" name="updateResourceFlags" type="_dTlbsGEMEeCdEc4VzBeWeQ"/>
<ownedParameter xmi:id="_fd-EAGHaEeCIr_fxSkYSJA" name="updateModelFlags" type="_dTlbsGEMEeCdEc4VzBeWeQ"/>
<ownedParameter xmi:id="_feH1AGHaEeCIr_fxSkYSJA" name="monitor" type="_jqFqwGEMEeCdEc4VzBeWeQ"/>
</ownedOperation>
<ownedOperation xmi:id="_feH1AWHaEeCIr_fxSkYSJA" name="getKind">
<ownedComment xmi:id="_feH1AmHaEeCIr_fxSkYSJA">
<body>
* Returns this package fragment root's kind encoded as an integer.
* A package fragment root can contain source files (i.e. files with one
* of the {@link JavaCore#getJavaLikeExtensions() Java-like extensions},
* or &lt;code>.class&lt;/code> files, but not both.
* If the underlying folder or archive contains other kinds of files, they are ignored.
* In particular, &lt;code>.class&lt;/code> files are ignored under a source package fragment root,
* and source files are ignored under a binary package fragment root.
*
* @exception JavaModelException if this element does not exist or if an
* exception occurs while accessing its corresponding resource.
* @return this package fragment root's kind encoded as an integer
* @see IPackageFragmentRoot#K_SOURCE
* @see IPackageFragmentRoot#K_BINARY
</body>
</ownedComment>
<ownedParameter xmi:id="_feH1A2HaEeCIr_fxSkYSJA" type="_dTlbsGEMEeCdEc4VzBeWeQ" direction="return"/>
</ownedOperation>
<ownedOperation xmi:id="_feQ-8GHaEeCIr_fxSkYSJA" name="getNonJavaResources">
<ownedComment xmi:id="_feQ-8WHaEeCIr_fxSkYSJA">
<body>
* Returns an array of non-Java resources contained in this package fragment root.
* &lt;p>
* Non-Java resources includes other files and folders located in the same
* directories as the compilation units or class files under this package
* fragment root. Resources excluded from this package fragment root
* by virtue of inclusion/exclusion patterns on the corresponding source classpath
* entry are considered non-Java resources and will appear in the result
* (possibly in a folder). Thus when a nested source folder is excluded, it will appear
* in the non-Java resources of the outer folder.
* &lt;/p>&lt;p>
* Since 3.3, if this package fragment root is an archive, the non-Java resources
* are a tree of {@link IJarEntryResource}s. One can navigate this tree using
* the {@link IJarEntryResource#getChildren()} and
* {@link IJarEntryResource#getParent()} methods.
* &lt;/p>
*
* @return an array of non-Java resources (&lt;code>IFile&lt;/code>s,
* &lt;code>IFolder&lt;/code>s, or &lt;code>IStorage&lt;/code>s if the
* package fragment root is in archive) contained in this package
* fragment root
* @exception JavaModelException if this element does not exist or if an
* exception occurs while accessing its corresponding resource.
* @see IClasspathEntry#getInclusionPatterns()
* @see IClasspathEntry#getExclusionPatterns()
</body>
</ownedComment>
<ownedParameter xmi:id="_feav8GHaEeCIr_fxSkYSJA" type="_kOcVAmEMEeCdEc4VzBeWeQ" direction="return">
<upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_fekg8GHaEeCIr_fxSkYSJA" value="*"/>
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_feav8WHaEeCIr_fxSkYSJA"/>
</ownedParameter>
</ownedOperation>
<ownedOperation xmi:id="_fetq4GHaEeCIr_fxSkYSJA" name="getPackageFragment">
<ownedComment xmi:id="_fetq4WHaEeCIr_fxSkYSJA">
<body>
* Returns the package fragment with the given package name.
* An empty string indicates the default package.
* This is a handle-only operation. The package fragment
* may or may not exist.
*
* @param packageName the given package name
* @return the package fragment with the given package name
</body>
</ownedComment>
<ownedParameter xmi:id="_fetq4mHaEeCIr_fxSkYSJA" type="_kqTxoGEMEeCdEc4VzBeWeQ" direction="return"/>
<ownedParameter xmi:id="_fetq42HaEeCIr_fxSkYSJA" name="packageName" type="_dSiS02EMEeCdEc4VzBeWeQ"/>
</ownedOperation>
<ownedOperation xmi:id="_fe3b4GHaEeCIr_fxSkYSJA" name="getRawClasspathEntry">
<ownedComment xmi:id="_fe3b4WHaEeCIr_fxSkYSJA">
<body>
* Returns the first raw classpath entry that corresponds to this package
* fragment root.
* A raw classpath entry corresponds to a package fragment root if once resolved
* this entry's path is equal to the root's path.
*
* @exception JavaModelException if this element does not exist or if an
* exception occurs while accessing its corresponding resource.
* @return the first raw classpath entry that corresponds to this package fragment root
* @since 2.0
</body>
</ownedComment>
<ownedParameter xmi:id="_fe3b4mHaEeCIr_fxSkYSJA" type="_j4GRkGEMEeCdEc4VzBeWeQ" direction="return"/>
</ownedOperation>
<ownedOperation xmi:id="_ffBM4GHaEeCIr_fxSkYSJA" name="getResolvedClasspathEntry">
<ownedComment xmi:id="_ffBM4WHaEeCIr_fxSkYSJA">
<body>
* Returns the first resolved classpath entry that corresponds to this package fragment root.
* A resolved classpath entry is said to correspond to a root if the path of the resolved
* entry is equal to the root's path.
*
* @return the first resolved classpath entry that corresponds to this package fragment root
* @throws JavaModelException if this element does not exist or if an
* exception occurs while accessing its corresponding resource.
* @since 3.6
</body>
</ownedComment>
<ownedParameter xmi:id="_ffBM4mHaEeCIr_fxSkYSJA" type="_j4GRkGEMEeCdEc4VzBeWeQ" direction="return"/>
</ownedOperation>
<ownedOperation xmi:id="_ffKW0GHaEeCIr_fxSkYSJA" name="getSourceAttachmentPath">
<ownedComment xmi:id="_ffKW0WHaEeCIr_fxSkYSJA">
<body>
* Returns the absolute path to the source archive attached to
* this package fragment root's binary archive.
*
* @return the absolute path to the corresponding source archive,
* or &lt;code>null&lt;/code> if this package fragment root's binary archive
* has no corresponding source archive, or if this package fragment root
* is not a binary archive
* @exception JavaModelException if this operation fails
</body>
</ownedComment>
<ownedParameter xmi:id="_ffKW0mHaEeCIr_fxSkYSJA" type="_j00UEmEMEeCdEc4VzBeWeQ" direction="return"/>
</ownedOperation>
<ownedOperation xmi:id="_ffUH0GHaEeCIr_fxSkYSJA" name="getSourceAttachmentRootPath">
<ownedComment xmi:id="_ffUH0WHaEeCIr_fxSkYSJA">
<body>
* Returns the path within this package fragment root's source archive.
* An empty path indicates that packages are located at the root of the
* source archive.
*
* @return the path within the corresponding source archive,
* or &lt;code>null&lt;/code> if this package fragment root's binary archive
* has no corresponding source archive, or if this package fragment root
* is not a binary archive
* @exception JavaModelException if this operation fails
</body>
</ownedComment>
<ownedParameter xmi:id="_ffUH0mHaEeCIr_fxSkYSJA" type="_j00UEmEMEeCdEc4VzBeWeQ" direction="return"/>
</ownedOperation>
<ownedOperation xmi:id="_ffdRwGHaEeCIr_fxSkYSJA" name="isArchive" visibility="public">
<ownedComment xmi:id="_ffdRwWHaEeCIr_fxSkYSJA">
<body>
* Returns whether this package fragment root's underlying
* resource is a binary archive (a JAR or zip file).
* &lt;p>
* This is a handle-only method.
* &lt;/p>
*
* @return true if this package fragment root's underlying resource is a binary archive, false otherwise
</body>
</ownedComment>
<ownedParameter xmi:id="_ffnCwGHaEeCIr_fxSkYSJA" type="_dVOadGEMEeCdEc4VzBeWeQ" direction="return"/>
</ownedOperation>
<ownedOperation xmi:id="_ffnCwWHaEeCIr_fxSkYSJA" name="isExternal">
<ownedComment xmi:id="_ffnCwmHaEeCIr_fxSkYSJA">
<body>
* Returns whether this package fragment root is external
* to the workbench (that is, a local file), and has no
* underlying resource.
* &lt;p>
* This is a handle-only method.
* &lt;/p>
*
* @return true if this package fragment root is external
* to the workbench (that is, a local file), and has no
* underlying resource, false otherwise
</body>
</ownedComment>
<ownedParameter xmi:id="_ffnCw2HaEeCIr_fxSkYSJA" type="_dVOadGEMEeCdEc4VzBeWeQ" direction="return"/>
</ownedOperation>
<ownedOperation xmi:id="_ffwzwGHaEeCIr_fxSkYSJA" name="move">
<ownedComment xmi:id="_ffwzwWHaEeCIr_fxSkYSJA">
<body>
* Moves the resource of this package fragment root to the destination path
* as specified by &lt;code>IResource.move(IPath,int,IProgressMonitor)&lt;/code>
* but excluding nested source folders.
* &lt;p>
* If &lt;code>NO_RESOURCE_MODIFICATION&lt;/code> is specified in
* &lt;code>updateModelFlags&lt;/code> or if this package fragment root is external,
* this operation doesn't move the resource. &lt;code>updateResourceFlags&lt;/code>
* is then ignored.
* &lt;/p>&lt;p>
* If &lt;code>DESTINATION_PROJECT_CLASSPATH&lt;/code> is specified in
* &lt;code>updateModelFlags&lt;/code>, updates the classpath of the
* destination's project (if it is a Java project). If a non-&lt;code>null&lt;/code>
* sibling is specified, a copy of this root's classpath entry is inserted before the
* sibling on the destination project's raw classpath. If &lt;code>null&lt;/code> is
* specified, the classpath entry is added at the end of the raw classpath.
* &lt;/p>&lt;p>
* If &lt;code>ORIGINATING_PROJECT_CLASSPATH&lt;/code> is specified in
* &lt;code>updateModelFlags&lt;/code>, update the raw classpath of this package
* fragment root's project by removing the corresponding classpath entry.
* &lt;/p>&lt;p>
* If &lt;code>OTHER_REFERRING_PROJECTS_CLASSPATH&lt;/code> is specified in
* &lt;code>updateModelFlags&lt;/code>, update the raw classpaths of all other Java
* projects referring to this root's resource by removing the corresponding classpath
* entries.
* &lt;/p>&lt;p>
* If &lt;code>REPLACE&lt;/code> is specified in &lt;code>updateModelFlags&lt;/code>,
* overwrites the resource at the destination path if any.
* If the same classpath entry already exists on the destination project's raw
* classpath, then the sibling is ignored and the new classpath entry replaces the
* existing one.
* &lt;/p>&lt;p>
* If no flags is specified in &lt;code>updateModelFlags&lt;/code> (using
* &lt;code>IResource.NONE&lt;/code>), the default behavior applies: the
* resource is moved (if this package fragment root is not external) and no
* classpaths are updated.
* &lt;/p>
*
* @param destination the destination path
* @param updateResourceFlags bit-wise or of update flag constants
* (&lt;code>IResource.FORCE&lt;/code>, &lt;code>IResource.KEEP_HISTORY&lt;/code>
* and &lt;code>IResource.SHALLOW&lt;/code>)
* @param updateModelFlags bit-wise or of update resource flag constants
* (&lt;code>DESTINATION_PROJECT_CLASSPATH&lt;/code>,
* &lt;code>ORIGINATING_PROJECT_CLASSPATH&lt;/code>,
* &lt;code>OTHER_REFERRING_PROJECTS_CLASSPATH&lt;/code> and
* &lt;code>NO_RESOURCE_MODIFICATION&lt;/code>)
* @param sibling the classpath entry before which a copy of the classpath
* entry should be inserted or &lt;code>null&lt;/code> if the classpath entry should
* be inserted at the end
* @param monitor a progress monitor
*
* @exception JavaModelException if this root could not be moved. Reasons
* include:
* &lt;ul>
* &lt;li> This root does not exist (ELEMENT_DOES_NOT_EXIST)&lt;/li>
* &lt;li> A &lt;code>CoreException&lt;/code> occurred while copying the
* resource or updating a classpath&lt;/li>
* &lt;li>
* The destination is not inside an existing project and &lt;code>updateModelFlags&lt;/code>
* has been specified as &lt;code>DESTINATION_PROJECT_CLASSPATH&lt;/code>
* (INVALID_DESTINATION)&lt;/li>
* &lt;li> The sibling is not a classpath entry on the destination project's
* raw classpath (INVALID_SIBLING)&lt;/li>
* &lt;li> The same classpath entry already exists on the destination project's
* classpath (NAME_COLLISION) and &lt;code>updateModelFlags&lt;/code>
* has not been specified as &lt;code>REPLACE&lt;/code>&lt;/li>
* &lt;/ul>
* @see org.eclipse.core.resources.IResource#move(IPath, boolean, IProgressMonitor)
* @since 2.1
</body>
</ownedComment>
<ownedParameter xmi:id="_ff59sGHaEeCIr_fxSkYSJA" name="destination" type="_j00UEmEMEeCdEc4VzBeWeQ"/>
<ownedParameter xmi:id="_fgDusGHaEeCIr_fxSkYSJA" name="updateResourceFlags" type="_dTlbsGEMEeCdEc4VzBeWeQ"/>
<ownedParameter xmi:id="_fgDusWHaEeCIr_fxSkYSJA" name="updateModelFlags" type="_dTlbsGEMEeCdEc4VzBeWeQ"/>
<ownedParameter xmi:id="_fgNfsGHaEeCIr_fxSkYSJA" name="sibling" type="_j4GRkGEMEeCdEc4VzBeWeQ"/>
<ownedParameter xmi:id="_fgWpoGHaEeCIr_fxSkYSJA" name="monitor" type="_jqFqwGEMEeCdEc4VzBeWeQ"/>
</ownedOperation>
</packagedElement>
<packagedElement xmi:type="uml:Interface" xmi:id="_kq6OkGEMEeCdEc4VzBeWeQ" name="IParent">
<ownedComment xmi:id="_kq6OkWEMEeCdEc4VzBeWeQ">
<body>
* Common protocol for Java elements that contain other Java elements.
*
* @noimplement This interface is not intended to be implemented by clients.
</body>
</ownedComment>
<ownedOperation xmi:id="_kq6OkmEMEeCdEc4VzBeWeQ" name="getChildren">
<ownedComment xmi:id="_kq6Ok2EMEeCdEc4VzBeWeQ">
<body>
* Returns the immediate children of this element.
* Unless otherwise specified by the implementing element,
* the children are in no particular order.
*
* @exception JavaModelException if this element does not exist or if an
* exception occurs while accessing its corresponding resource
* @return the immediate children of this element
</body>
</ownedComment>
<ownedParameter xmi:id="_kq6OlGEMEeCdEc4VzBeWeQ" type="_kO5A8GEMEeCdEc4VzBeWeQ" direction="return">
<upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_krDYgWEMEeCdEc4VzBeWeQ" value="*"/>
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_krDYgGEMEeCdEc4VzBeWeQ"/>
</ownedParameter>
</ownedOperation>
<ownedOperation xmi:id="_krDYgmEMEeCdEc4VzBeWeQ" name="hasChildren">
<ownedComment xmi:id="_krDYg2EMEeCdEc4VzBeWeQ">
<body>
* Returns whether this element has one or more immediate children.
* This is a convenience method, and may be more efficient than
* testing whether &lt;code>getChildren&lt;/code> is an empty array.
*
* @exception JavaModelException if this element does not exist or if an
* exception occurs while accessing its corresponding resource
* @return true if the immediate children of this element, false otherwise
</body>
</ownedComment>
<ownedParameter xmi:id="_krDYhGEMEeCdEc4VzBeWeQ" type="_dVOadGEMEeCdEc4VzBeWeQ" direction="return"/>
</ownedOperation>
</packagedElement>
<packagedElement xmi:type="uml:Interface" xmi:id="_krNJgGEMEeCdEc4VzBeWeQ" name="IProblemRequestor">
<ownedComment xmi:id="_krNJgWEMEeCdEc4VzBeWeQ">
<body>
* A callback interface for receiving java problem as they are discovered
* by some Java operation.
*
* @see IProblem
* @since 2.0
</body>
</ownedComment>
<ownedOperation xmi:id="_krW6gGEMEeCdEc4VzBeWeQ" name="acceptProblem">
<ownedComment xmi:id="_krW6gWEMEeCdEc4VzBeWeQ">
<body>
* Notification of a Java problem.
*
* @param problem IProblem - The discovered Java problem.
</body>
</ownedComment>
<ownedParameter xmi:id="_krW6gmEMEeCdEc4VzBeWeQ" name="problem" type="_jrk4hWEMEeCdEc4VzBeWeQ"/>
</ownedOperation>
<ownedOperation xmi:id="_krW6g2EMEeCdEc4VzBeWeQ" name="beginReporting">
<ownedComment xmi:id="_krW6hGEMEeCdEc4VzBeWeQ">
<body>
* Notification sent before starting the problem detection process.
* Typically, this would tell a problem collector to clear previously recorded problems.
</body>
</ownedComment>
</ownedOperation>
<ownedOperation xmi:id="_krW6hWEMEeCdEc4VzBeWeQ" name="endReporting">
<ownedComment xmi:id="_krW6hmEMEeCdEc4VzBeWeQ">
<body>
* Notification sent after having completed problem detection process.
* Typically, this would tell a problem collector that no more problems should be expected in this
* iteration.
</body>
</ownedComment>
</ownedOperation>
<ownedOperation xmi:id="_krW6h2EMEeCdEc4VzBeWeQ" name="isActive">
<ownedComment xmi:id="_krW6iGEMEeCdEc4VzBeWeQ">
<body>
* Predicate allowing the problem requestor to signal whether or not it is currently
* interested by problem reports. When answering &lt;code>false&lt;/code>, problem will
* not be discovered any more until the next iteration.
*
* This predicate will be invoked once prior to each problem detection iteration.
*
* @return boolean - indicates whether the requestor is currently interested by problems.
</body>
</ownedComment>
<ownedParameter xmi:id="_krW6iWEMEeCdEc4VzBeWeQ" type="_dVOadGEMEeCdEc4VzBeWeQ" direction="return"/>
</ownedOperation>
</packagedElement>
<packagedElement xmi:type="uml:Interface" xmi:id="_krp1cGEMEeCdEc4VzBeWeQ" name="IRegion">
<ownedComment xmi:id="_kry_YGEMEeCdEc4VzBeWeQ">
<body>
* A Java model region describes a hierarchical set of elements.
* Regions are often used to describe a set of elements to be considered
* when performing operations; for example, the set of elements to be
* considered during a search. A region may include elements from different
* projects.
* &lt;p>
* When an element is included in a region, all of its children
* are considered to be included. Children of an included element
* &lt;b>cannot&lt;/b> be selectively excluded.
* &lt;/p>
* &lt;p>
* Instances can be created via the &lt;code>JavaCore.newRegion&lt;/code>.
* &lt;/p>
*
* @see JavaCore#newRegion()
* @noimplement This interface is not intended to be implemented by clients.
</body>
</ownedComment>
<ownedOperation xmi:id="_kry_YWEMEeCdEc4VzBeWeQ" name="add">
<ownedComment xmi:id="_kry_YmEMEeCdEc4VzBeWeQ">
<body>
* Adds the given element and all of its descendents to this region.
* If the specified element is already included, or one of its
* ancestors is already included, this has no effect. If the element
* being added is an ancestor of an element already contained in this
* region, the ancestor subsumes the descendent.
*
* @param element the given element
</body>
</ownedComment>
<ownedParameter xmi:id="_kry_Y2EMEeCdEc4VzBeWeQ" name="element" type="_kO5A8GEMEeCdEc4VzBeWeQ"/>
</ownedOperation>
<ownedOperation xmi:id="_kry_ZGEMEeCdEc4VzBeWeQ" name="contains">
<ownedComment xmi:id="_kry_ZWEMEeCdEc4VzBeWeQ">
<body>
* Returns whether the given element is contained in this region.
*
* @param element the given element
* @return true if the given element is contained in this region, false otherwise
</body>
</ownedComment>
<ownedParameter xmi:id="_kry_ZmEMEeCdEc4VzBeWeQ" type="_dVOadGEMEeCdEc4VzBeWeQ" direction="return"/>
<ownedParameter xmi:id="_kr8wYGEMEeCdEc4VzBeWeQ" name="element" type="_kO5A8GEMEeCdEc4VzBeWeQ"/>
</ownedOperation>
<ownedOperation xmi:id="_kr8wYWEMEeCdEc4VzBeWeQ" name="getElements">
<ownedComment xmi:id="_kr8wYmEMEeCdEc4VzBeWeQ">
<body>
* Returns the top level elements in this region.
* All descendents of these elements are also included in this region.
*
* @return the top level elements in this region
</body>
</ownedComment>
<ownedParameter xmi:id="_kr8wY2EMEeCdEc4VzBeWeQ" type="_kO5A8GEMEeCdEc4VzBeWeQ" direction="return">
<upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_kr8wZWEMEeCdEc4VzBeWeQ" value="*"/>
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_kr8wZGEMEeCdEc4VzBeWeQ"/>
</ownedParameter>
</ownedOperation>
<ownedOperation xmi:id="_ksGhYGEMEeCdEc4VzBeWeQ" name="remove">
<ownedComment xmi:id="_ksGhYWEMEeCdEc4VzBeWeQ">
<body>
* Removes the specified element from the region and returns
* &lt;code>true&lt;/code> if successful, &lt;code>false&lt;/code> if the remove
* fails. If an ancestor of the given element is included, the
* remove fails (in other words, it is not possible to selectively
* exclude descendants of included ancestors).
*
* @param element the given element
* @return &lt;code>true&lt;/code> if successful, &lt;code>false&lt;/code> if the remove fails
</body>
</ownedComment>
<ownedParameter xmi:id="_ksGhYmEMEeCdEc4VzBeWeQ" type="_dVOadGEMEeCdEc4VzBeWeQ" direction="return"/>
<ownedParameter xmi:id="_ksGhY2EMEeCdEc4VzBeWeQ" name="element" type="_kO5A8GEMEeCdEc4VzBeWeQ"/>
</ownedOperation>
</packagedElement>
<packagedElement xmi:type="uml:Interface" xmi:id="_kssXQGEMEeCdEc4VzBeWeQ" name="ISourceManipulation">
<ownedComment xmi:id="_kssXQWEMEeCdEc4VzBeWeQ">
<body>
* Common protocol for Java elements that support source code manipulations such
* as copy, move, rename, and delete.
*
* @noimplement This interface is not intended to be implemented by clients.
</body>
</ownedComment>
<ownedOperation xmi:id="_kssXQmEMEeCdEc4VzBeWeQ" name="copy">
<ownedComment xmi:id="_kssXQ2EMEeCdEc4VzBeWeQ">
<body>
* Copies this element to the given container.
*
* @param container the container
* @param sibling the sibling element before which the copy should be inserted,
* or &lt;code>null&lt;/code> if the copy should be inserted as the last child of
* the container
* @param rename the new name for the element, or &lt;code>null&lt;/code> if the copy
* retains the name of this element
* @param replace &lt;code>true&lt;/code> if any existing child in the container with
* the target name should be replaced, and &lt;code>false&lt;/code> to throw an
* exception in the event of a name collision
* @param monitor a progress monitor
* @exception JavaModelException if this element could not be copied. Reasons include:
* &lt;ul>
* &lt;li> This Java element, container element, or sibling does not exist (ELEMENT_DOES_NOT_EXIST)&lt;/li>
* &lt;li> A &lt;code>CoreException&lt;/code> occurred while updating an underlying resource
* &lt;li> The container is of an incompatible type (INVALID_DESTINATION)
* &lt;li> The sibling is not a child of the given container (INVALID_SIBLING)
* &lt;li> The new name is invalid (INVALID_NAME)
* &lt;li> A child in the container already exists with the same name (NAME_COLLISION)
* and &lt;code>replace&lt;/code> has been specified as &lt;code>false&lt;/code>
* &lt;li> The container or this element is read-only (READ_ONLY)
* &lt;/ul>
*
* @exception IllegalArgumentException if container is &lt;code>null&lt;/code>
* @see org.eclipse.jdt.core.IJavaModelStatusConstants#INVALID_DESTINATION
</body>
</ownedComment>
<ownedParameter xmi:id="_kssXRGEMEeCdEc4VzBeWeQ" name="container" type="_kO5A8GEMEeCdEc4VzBeWeQ"/>
<ownedParameter xmi:id="_ks2IQGEMEeCdEc4VzBeWeQ" name="sibling" type="_kO5A8GEMEeCdEc4VzBeWeQ"/>
<ownedParameter xmi:id="_ks2IQWEMEeCdEc4VzBeWeQ" name="rename" type="_dSiS02EMEeCdEc4VzBeWeQ"/>
<ownedParameter xmi:id="_ks2IQmEMEeCdEc4VzBeWeQ" name="replace" type="_dVOadGEMEeCdEc4VzBeWeQ"/>
<ownedParameter xmi:id="_ks_SMGEMEeCdEc4VzBeWeQ" name="monitor" type="_jqFqwGEMEeCdEc4VzBeWeQ"/>
</ownedOperation>
<ownedOperation xmi:id="_ks_SMWEMEeCdEc4VzBeWeQ" name="delete">
<ownedComment xmi:id="_ks_SMmEMEeCdEc4VzBeWeQ">
<body>
* Deletes this element, forcing if specified and necessary.
*
* @param force a flag controlling whether underlying resources that are not
* in sync with the local file system will be tolerated (same as the force flag
* in IResource operations).
* @param monitor a progress monitor
* @exception JavaModelException if this element could not be deleted. Reasons include:
* &lt;ul>
* &lt;li> This Java element does not exist (ELEMENT_DOES_NOT_EXIST)&lt;/li>
* &lt;li> A &lt;code>CoreException&lt;/code> occurred while updating an underlying resource (CORE_EXCEPTION)&lt;/li>
* &lt;li> This element is read-only (READ_ONLY)&lt;/li>
* &lt;/ul>
</body>
</ownedComment>
<ownedParameter xmi:id="_ks_SM2EMEeCdEc4VzBeWeQ" name="force" type="_dVOadGEMEeCdEc4VzBeWeQ"/>
<ownedParameter xmi:id="_ks_SNGEMEeCdEc4VzBeWeQ" name="monitor" type="_jqFqwGEMEeCdEc4VzBeWeQ"/>
</ownedOperation>
<ownedOperation xmi:id="_ks_SNWEMEeCdEc4VzBeWeQ" name="move">
<ownedComment xmi:id="_ks_SNmEMEeCdEc4VzBeWeQ">
<body>
* Moves this element to the given container.
*
* @param container the container
* @param sibling the sibling element before which the element should be inserted,
* or &lt;code>null&lt;/code> if the element should be inserted as the last child of
* the container
* @param rename the new name for the element, or &lt;code>null&lt;/code> if the
* element retains its name
* @param replace &lt;code>true&lt;/code> if any existing child in the container with
* the target name should be replaced, and &lt;code>false&lt;/code> to throw an
* exception in the event of a name collision
* @param monitor a progress monitor
* @exception JavaModelException if this element could not be moved. Reasons include:
* &lt;ul>
* &lt;li> This Java element, container element, or sibling does not exist (ELEMENT_DOES_NOT_EXIST)&lt;/li>
* &lt;li> A &lt;code>CoreException&lt;/code> occurred while updating an underlying resource
* &lt;li> The container is of an incompatible type (INVALID_DESTINATION)
* &lt;li> The sibling is not a child of the given container (INVALID_SIBLING)
* &lt;li> The new name is invalid (INVALID_NAME)
* &lt;li> A child in the container already exists with the same name (NAME_COLLISION)
* and &lt;code>replace&lt;/code> has been specified as &lt;code>false&lt;/code>
* &lt;li> The container or this element is read-only (READ_ONLY)
* &lt;/ul>
*
* @exception IllegalArgumentException if container is &lt;code>null&lt;/code>
* @see org.eclipse.jdt.core.IJavaModelStatusConstants#INVALID_DESTINATION
</body>
</ownedComment>
<ownedParameter xmi:id="_ktJDMGEMEeCdEc4VzBeWeQ" name="container" type="_kO5A8GEMEeCdEc4VzBeWeQ"/>
<ownedParameter xmi:id="_ktJDMWEMEeCdEc4VzBeWeQ" name="sibling" type="_kO5A8GEMEeCdEc4VzBeWeQ"/>
<ownedParameter xmi:id="_ktJDMmEMEeCdEc4VzBeWeQ" name="rename" type="_dSiS02EMEeCdEc4VzBeWeQ"/>
<ownedParameter xmi:id="_ktJDM2EMEeCdEc4VzBeWeQ" name="replace" type="_dVOadGEMEeCdEc4VzBeWeQ"/>
<ownedParameter xmi:id="_ktS0MGEMEeCdEc4VzBeWeQ" name="monitor" type="_jqFqwGEMEeCdEc4VzBeWeQ"/>
</ownedOperation>
<ownedOperation xmi:id="_ktS0MWEMEeCdEc4VzBeWeQ" name="rename">
<ownedComment xmi:id="_ktS0MmEMEeCdEc4VzBeWeQ">
<body>
* Renames this element to the given name.
*
* @param name the new name for the element
* @param replace &lt;code>true&lt;/code> if any existing element with the target name
* should be replaced, and &lt;code>false&lt;/code> to throw an exception in the
* event of a name collision
* @param monitor a progress monitor
* @exception JavaModelException if this element could not be renamed. Reasons include:
* &lt;ul>
* &lt;li> This Java element does not exist (ELEMENT_DOES_NOT_EXIST)&lt;/li>
* &lt;li> A &lt;code>CoreException&lt;/code> occurred while updating an underlying resource
* &lt;li> The new name is invalid (INVALID_NAME)
* &lt;li> A child in the container already exists with the same name (NAME_COLLISION)
* and &lt;code>replace&lt;/code> has been specified as &lt;code>false&lt;/code>
* &lt;li> This element is read-only (READ_ONLY)
* &lt;/ul>
</body>
</ownedComment>
<ownedParameter xmi:id="_ktS0M2EMEeCdEc4VzBeWeQ" name="name" type="_dSiS02EMEeCdEc4VzBeWeQ"/>
<ownedParameter xmi:id="_ktS0NGEMEeCdEc4VzBeWeQ" name="replace" type="_dVOadGEMEeCdEc4VzBeWeQ"/>
<ownedParameter xmi:id="_ktb-IGEMEeCdEc4VzBeWeQ" name="monitor" type="_jqFqwGEMEeCdEc4VzBeWeQ"/>
</ownedOperation>
</packagedElement>
<packagedElement xmi:type="uml:Interface" xmi:id="_ktlvIGEMEeCdEc4VzBeWeQ" name="ISourceRange">
<ownedComment xmi:id="_ktlvIWEMEeCdEc4VzBeWeQ">
<body>
* A source range defines an element's source coordinates relative to
* its source buffer.
*
* &lt;p>Clients may use the method {@link org.eclipse.jdt.core.SourceRange#isAvailable(ISourceRange)}
* in order to find out if a source range is available. This method returns &lt;code>false&lt;/code>
* when the source range offset is equals to &lt;code>-1&lt;/code>.&lt;/p>
*
* &lt;p>Clients may use the default implementation provided by {@link SourceRange}.&lt;/p>
*
* @see SourceRange
* @noimplement This interface is not intended to be implemented by clients.
</body>
</ownedComment>
<ownedOperation xmi:id="_ktlvImEMEeCdEc4VzBeWeQ" name="getLength">
<ownedComment xmi:id="_ktlvI2EMEeCdEc4VzBeWeQ">
<body>
* Returns the number of characters of the source code for this element,
* relative to the source buffer in which this element is contained.
*
* @return the number of characters of the source code for this element,
* relative to the source buffer in which this element is contained
</body>
</ownedComment>
<ownedParameter xmi:id="_ktlvJGEMEeCdEc4VzBeWeQ" type="_dTlbsGEMEeCdEc4VzBeWeQ" direction="return"/>
</ownedOperation>
<ownedOperation xmi:id="_ktlvJWEMEeCdEc4VzBeWeQ" name="getOffset">
<ownedComment xmi:id="_ktlvJmEMEeCdEc4VzBeWeQ">
<body>
* Returns the 0-based index of the first character of the source code for this element,
* relative to the source buffer in which this element is contained. However, if the element
* has no associated source code, an implementation may return -1.
*
* @return the 0-based index of the first character of the source code for this element,
* relative to the source buffer in which this element is contained. However, if the element
* has no associated source code, an implementation may return -1.
</body>
</ownedComment>
<ownedParameter xmi:id="_ktvgIGEMEeCdEc4VzBeWeQ" type="_dTlbsGEMEeCdEc4VzBeWeQ" direction="return"/>
</ownedOperation>
</packagedElement>
<packagedElement xmi:type="uml:Interface" xmi:id="_kuCbEGEMEeCdEc4VzBeWeQ" name="ISourceReference">
<ownedComment xmi:id="_kuCbEWEMEeCdEc4VzBeWeQ">
<body>
* Common protocol for Java elements that have associated source code.
* This set consists of {@link IClassFile}, {@link ICompilationUnit},
* {@link IPackageDeclaration}, {@link IImportDeclaration},
* {@link IImportContainer}, {@link IType}, {@link IField},
* {@link IMethod}, {@link IInitializer}, {@link ITypeParameter},
* {@link ILocalVariable}, and {@link IAnnotation}.
* &lt;p>
* Note: For &lt;code>IClassFile&lt;/code>, &lt;code>IType&lt;/code> and other members
* derived from a binary type, the implementation returns source iff the
* element has attached source code.
* &lt;/p>
* &lt;p>
* Source reference elements may be working copies if they were created from
* a compilation unit that is a working copy.
* &lt;/p>
*
* @see IPackageFragmentRoot#attachSource(org.eclipse.core.runtime.IPath, org.eclipse.core.runtime.IPath, org.eclipse.core.runtime.IProgressMonitor)
* @noimplement This interface is not intended to be implemented by clients.
</body>
</ownedComment>
<ownedOperation xmi:id="_kuLlAGEMEeCdEc4VzBeWeQ" name="exists">
<ownedComment xmi:id="_kuLlAWEMEeCdEc4VzBeWeQ">
<body>
* Returns whether this element exists in the model.
*
* @return &lt;code>true&lt;/code> if this element exists in the Java model
* @since 2.0
</body>
</ownedComment>
<ownedParameter xmi:id="_kuLlAmEMEeCdEc4VzBeWeQ" type="_dVOadGEMEeCdEc4VzBeWeQ" direction="return"/>
</ownedOperation>
<ownedOperation xmi:id="_kuLlA2EMEeCdEc4VzBeWeQ" name="getSource">
<ownedComment xmi:id="_kuLlBGEMEeCdEc4VzBeWeQ">
<body>
* Returns the source code associated with this element.
* This extracts the substring from the source buffer containing this source
* element. This corresponds to the source range that would be returned by
* &lt;code>getSourceRange&lt;/code>.
* &lt;p>
* For class files, this returns the source of the entire compilation unit
* associated with the class file (if there is one).
* &lt;/p>
*
* @return the source code, or &lt;code>null&lt;/code> if this element has no
* associated source code
* @exception JavaModelException if an exception occurs while accessing its corresponding resource
</body>
</ownedComment>
<ownedParameter xmi:id="_kuLlBWEMEeCdEc4VzBeWeQ" type="_dSiS02EMEeCdEc4VzBeWeQ" direction="return"/>
</ownedOperation>
<ownedOperation xmi:id="_kuLlBmEMEeCdEc4VzBeWeQ" name="getSourceRange">
<ownedComment xmi:id="_kuLlB2EMEeCdEc4VzBeWeQ">
<body>
* Returns the source range associated with this element.
* &lt;p>
* For class files, this returns the range of the entire compilation unit
* associated with the class file (if there is one).
* &lt;/p>
* &lt;p>
* If this element has no associated source code, either &lt;code>null&lt;/code> is returned,
* or a source range with a -1 offset and a 0 length. {@link SourceRange#isAvailable(ISourceRange)}
* can be used to detect that case.
* &lt;/p>
*
* @return the source range, or either &lt;code>null&lt;/code> or [-1, 0] if this element has no
* associated source code
* @exception JavaModelException if an exception occurs while accessing its corresponding resource
* @see SourceRange#isAvailable(ISourceRange)
</body>
</ownedComment>
<ownedParameter xmi:id="_kuLlCGEMEeCdEc4VzBeWeQ" type="_ktlvIGEMEeCdEc4VzBeWeQ" direction="return"/>
</ownedOperation>
<ownedOperation xmi:id="_kuVWAGEMEeCdEc4VzBeWeQ" name="getNameRange">
<ownedComment xmi:id="_kuVWAWEMEeCdEc4VzBeWeQ">
<body>
* Returns the name range associated with this element.
*
* &lt;p>If the element is an {@link IMember}, it returns
* the source range of this member's simple name,
* or &lt;code>null&lt;/code> if this member does not have a name
* (for example, an initializer), or if this member does not have
* associated source code (for example, a binary type).&lt;/p>
*
* &lt;p>If this element is an {@link IImportDeclaration}, the source range
* of this import declaration's name, or &lt;code>null&lt;/code> if this import
* declaration does not have associated source code (for example, a binary type).
* &lt;br>The source range for the name includes the trailing '*' if the call to
* {@link IImportDeclaration#isOnDemand()} returns true.
* &lt;/p>
*
* &lt;p>If this element is an {@link IPackageDeclaration}, the source range of
* this package declaration's name, or &lt;code>null&lt;/code> if this package
* declaration does not have associated source code (for example, a binary type).&lt;/p>
*
* &lt;p>If this element is an {@link IAnnotation}, the source range of
* this annotation's name, or &lt;code>null&lt;/code> if this annotation does not have
* associated source code (for example, in a binary type).&lt;/p>
*
* &lt;p>If this element is an {@link ITypeParameter}, the source range of this
* type parameter's name, or &lt;code>null&lt;/code> if this type parameter does not have
* associated source code (for example, in a binary type).&lt;/p>
*
* &lt;p>If this element is an {@link ITypeRoot} or {@link IImportContainer}, it
* returns null.&lt;/p>
*
* @return the name range associated with this element, or &lt;code>null&lt;/code> if
* not available
*
* @since 3.7
</body>
</ownedComment>
<ownedParameter xmi:id="_kuVWAmEMEeCdEc4VzBeWeQ" type="_ktlvIGEMEeCdEc4VzBeWeQ" direction="return"/>
</ownedOperation>
</packagedElement>
<packagedElement xmi:type="uml:Interface" xmi:id="_kvE84GEMEeCdEc4VzBeWeQ" name="IType">
<ownedComment xmi:id="_kvE84WEMEeCdEc4VzBeWeQ">
<body>
* Represents either a source type in a compilation unit (either a top-level
* type, a member type, a local type or an anonymous type)
* or a binary type in a class file. Enumeration classes and annotation
* types are subkinds of classes and interfaces, respectively.
* &lt;p>
* Note that the element name of an anonymous source type is always empty.
* &lt;/p>&lt;p>
* If a binary type cannot be parsed, its structure remains unknown.
* Use &lt;code>IJavaElement.isStructureKnown&lt;/code> to determine whether this
* is the case.
* &lt;/p>
* &lt;p>
* The children are of type &lt;code>IMember&lt;/code>, which includes &lt;code>IField&lt;/code>,
* &lt;code>IMethod&lt;/code>, &lt;code>IInitializer&lt;/code> and &lt;code>IType&lt;/code>.
* The children are listed in the order in which they appear in the source or class file.
* &lt;/p>
*
* @noimplement This interface is not intended to be implemented by clients.
</body>
</ownedComment>
<generalization xmi:id="_kvOt4GEMEeCdEc4VzBeWeQ" general="_klF6cGEMEeCdEc4VzBeWeQ"/>
<generalization xmi:id="_kvOt4WEMEeCdEc4VzBeWeQ" general="_j09eAGEMEeCdEc4VzBeWeQ"/>
<ownedOperation xmi:id="_kvOt4mEMEeCdEc4VzBeWeQ" name="codeComplete">
<ownedComment xmi:id="_kvOt42EMEeCdEc4VzBeWeQ">
<body>
* Do code completion inside a code snippet in the context of the current type.
*
* If the type has access to its source code and the insertion position is valid,
* then completion is performed against the source. Otherwise the completion is performed
* against the type structure and the given locals variables.
*
* @param snippet the code snippet
* @param insertion the position with in source where the snippet
* is inserted. This position must not be in comments.
* A possible value is -1, if the position is not known.
* @param position the position within snippet where the user
* is performing code assist.
* @param localVariableTypeNames an array (possibly empty) of fully qualified
* type names of local variables visible at the current scope
* @param localVariableNames an array (possibly empty) of local variable names
* that are visible at the current scope
* @param localVariableModifiers an array (possible empty) of modifiers for
* local variables
* @param isStatic whether the current scope is in a static context
* @param requestor the completion requestor
* @exception JavaModelException if this element does not exist or if an
* exception occurs while accessing its corresponding resource.
* @since 2.0
* @deprecated Use {@link #codeComplete(char[],int,int,char[][],char[][],int[],boolean,CompletionRequestor)} instead.
</body>
</ownedComment>
<ownedParameter xmi:id="_kvOt5GEMEeCdEc4VzBeWeQ" name="snippet" type="_dUn9g2EMEeCdEc4VzBeWeQ">
<upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_kvX30GEMEeCdEc4VzBeWeQ" value="*"/>
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_kvOt5WEMEeCdEc4VzBeWeQ"/>
</ownedParameter>
<ownedParameter xmi:id="_kvX30WEMEeCdEc4VzBeWeQ" name="insertion" type="_dTlbsGEMEeCdEc4VzBeWeQ"/>
<ownedParameter xmi:id="_kvX30mEMEeCdEc4VzBeWeQ" name="position" type="_dTlbsGEMEeCdEc4VzBeWeQ"/>
<ownedParameter xmi:id="_kvho0GEMEeCdEc4VzBeWeQ" name="localVariableTypeNames" type="_dUn9g2EMEeCdEc4VzBeWeQ">
<upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_kvho0mEMEeCdEc4VzBeWeQ" value="*"/>
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_kvho0WEMEeCdEc4VzBeWeQ"/>
</ownedParameter>
<ownedParameter xmi:id="_kvho02EMEeCdEc4VzBeWeQ" name="localVariableNames" type="_dUn9g2EMEeCdEc4VzBeWeQ">
<upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_kvrZ0WEMEeCdEc4VzBeWeQ" value="*"/>
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_kvrZ0GEMEeCdEc4VzBeWeQ"/>
</ownedParameter>
<ownedParameter xmi:id="_kvrZ0mEMEeCdEc4VzBeWeQ" name="localVariableModifiers" type="_dTlbsGEMEeCdEc4VzBeWeQ">
<upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_kv0jwWEMEeCdEc4VzBeWeQ" value="*"/>
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_kv0jwGEMEeCdEc4VzBeWeQ"/>
</ownedParameter>
<ownedParameter xmi:id="_kv0jwmEMEeCdEc4VzBeWeQ" name="isStatic" type="_dVOadGEMEeCdEc4VzBeWeQ"/>
<ownedParameter xmi:id="_kv-UwGEMEeCdEc4VzBeWeQ" name="requestor" type="_j_i9YGEMEeCdEc4VzBeWeQ"/>
</ownedOperation>
<ownedOperation xmi:id="_wmBF4WHhEeCCRJbbKD_TsQ" name="codeComplete">
<ownedComment xmi:id="_wmBF4mHhEeCCRJbbKD_TsQ">
<body>
* Do code completion inside a code snippet in the context of the current type.
* It considers types in the working copies with the given owner first. In other words,
* the owner's working copies will take precedence over their original compilation units
* in the workspace.
* &lt;p>
* Note that if a working copy is empty, it will be as if the original compilation
* unit had been deleted.
* &lt;/p>&lt;p>
* If the type has access to its source code and the insertion position is valid,
* then completion is performed against the source. Otherwise the completion is performed
* against the type structure and the given locals variables.
* &lt;/p>
*
* @param snippet the code snippet
* @param insertion the position with in source where the snippet
* is inserted. This position must not be in comments.
* A possible value is -1, if the position is not known.
* @param position the position with in snippet where the user
* is performing code assist.
* @param localVariableTypeNames an array (possibly empty) of fully qualified
* type names of local variables visible at the current scope
* @param localVariableNames an array (possibly empty) of local variable names
* that are visible at the current scope
* @param localVariableModifiers an array (possible empty) of modifiers for
* local variables
* @param isStatic whether the current scope is in a static context
* @param requestor the completion requestor
* @param owner the owner of working copies that take precedence over their original compilation units
* @exception JavaModelException if this element does not exist or if an
* exception occurs while accessing its corresponding resource.
* @since 3.0
* @deprecated Use {@link #codeComplete(char[],int,int,char[][],char[][],int[],boolean,CompletionRequestor,WorkingCopyOwner)} instead.
</body>
</ownedComment>
<ownedParameter xmi:id="_wmBF42HhEeCCRJbbKD_TsQ" name="snippet" type="_dUn9g2EMEeCdEc4VzBeWeQ">
<upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_wmK24WHhEeCCRJbbKD_TsQ" value="*"/>
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_wmK24GHhEeCCRJbbKD_TsQ"/>
</ownedParameter>
<ownedParameter xmi:id="_wmdx0GHhEeCCRJbbKD_TsQ" name="insertion" type="_dTlbsGEMEeCdEc4VzBeWeQ"/>
<ownedParameter xmi:id="_wmni0GHhEeCCRJbbKD_TsQ" name="position" type="_dTlbsGEMEeCdEc4VzBeWeQ"/>
<ownedParameter xmi:id="_wmni0WHhEeCCRJbbKD_TsQ" name="localVariableTypeNames" type="_dUn9g2EMEeCdEc4VzBeWeQ">
<upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_wm6dwGHhEeCCRJbbKD_TsQ" value="*"/>
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_wmxT0GHhEeCCRJbbKD_TsQ"/>
</ownedParameter>
<ownedParameter xmi:id="_wm6dwWHhEeCCRJbbKD_TsQ" name="localVariableNames" type="_dUn9g2EMEeCdEc4VzBeWeQ">
<upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_wnNYsGHhEeCCRJbbKD_TsQ" value="*"/>
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_wnEOwGHhEeCCRJbbKD_TsQ"/>
</ownedParameter>
<ownedParameter xmi:id="_wnNYsWHhEeCCRJbbKD_TsQ" name="localVariableModifiers" type="_dTlbsGEMEeCdEc4VzBeWeQ">
<upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_wnXJsWHhEeCCRJbbKD_TsQ" value="*"/>
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_wnXJsGHhEeCCRJbbKD_TsQ"/>
</ownedParameter>
<ownedParameter xmi:id="_wng6sGHhEeCCRJbbKD_TsQ" name="isStatic" type="_dVOadGEMEeCdEc4VzBeWeQ"/>
<ownedParameter xmi:id="_wnqEoGHhEeCCRJbbKD_TsQ" name="requestor" type="_j_i9YGEMEeCdEc4VzBeWeQ"/>
<ownedParameter xmi:id="_wnz1oGHhEeCCRJbbKD_TsQ" name="owner" type="_nI23sGEMEeCdEc4VzBeWeQ"/>
</ownedOperation>
<ownedOperation xmi:id="_wnz1oWHhEeCCRJbbKD_TsQ" name="codeComplete">
<ownedComment xmi:id="_wnz1omHhEeCCRJbbKD_TsQ">
<body>
* Do code completion inside a code snippet in the context of the current type.
*
* If the type has access to its source code and the insertion position is valid,
* then completion is performed against the source. Otherwise the completion is performed
* against the type structure and the given locals variables.
*
* @param snippet the code snippet
* @param insertion the position with in source where the snippet
* is inserted. This position must not be in comments.
* A possible value is -1, if the position is not known.
* @param position the position within snippet where the user
* is performing code assist.
* @param localVariableTypeNames an array (possibly empty) of fully qualified
* type names of local variables visible at the current scope
* @param localVariableNames an array (possibly empty) of local variable names
* that are visible at the current scope
* @param localVariableModifiers an array (possible empty) of modifiers for
* local variables
* @param isStatic whether the current scope is in a static context
* @param requestor the completion requestor
* @exception JavaModelException if this element does not exist or if an
* exception occurs while accessing its corresponding resource.
* @since 3.1
</body>
</ownedComment>
<ownedParameter xmi:id="_wnz1o2HhEeCCRJbbKD_TsQ" name="snippet" type="_dUn9g2EMEeCdEc4VzBeWeQ">
<upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_woQhkGHhEeCCRJbbKD_TsQ" value="*"/>
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_woGwkGHhEeCCRJbbKD_TsQ"/>
</ownedParameter>
<ownedParameter xmi:id="_woQhkWHhEeCCRJbbKD_TsQ" name="insertion" type="_dTlbsGEMEeCdEc4VzBeWeQ"/>
<ownedParameter xmi:id="_woZrgGHhEeCCRJbbKD_TsQ" name="position" type="_dTlbsGEMEeCdEc4VzBeWeQ"/>
<ownedParameter xmi:id="_wojcgGHhEeCCRJbbKD_TsQ" name="localVariableTypeNames" type="_dUn9g2EMEeCdEc4VzBeWeQ">
<upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_wotNgWHhEeCCRJbbKD_TsQ" value="*"/>
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_wotNgGHhEeCCRJbbKD_TsQ"/>
</ownedParameter>
<ownedParameter xmi:id="_wo2XcGHhEeCCRJbbKD_TsQ" name="localVariableNames" type="_dUn9g2EMEeCdEc4VzBeWeQ">
<upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_wpAIcGHhEeCCRJbbKD_TsQ" value="*"/>
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_wo2XcWHhEeCCRJbbKD_TsQ"/>
</ownedParameter>
<ownedParameter xmi:id="_wpJ5cGHhEeCCRJbbKD_TsQ" name="localVariableModifiers" type="_dTlbsGEMEeCdEc4VzBeWeQ">
<upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_wpTDYGHhEeCCRJbbKD_TsQ" value="*"/>
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_wpJ5cWHhEeCCRJbbKD_TsQ"/>
</ownedParameter>
<ownedParameter xmi:id="_wpTDYWHhEeCCRJbbKD_TsQ" name="isStatic" type="_dVOadGEMEeCdEc4VzBeWeQ"/>
<ownedParameter xmi:id="_wpc0YGHhEeCCRJbbKD_TsQ" name="requestor" type="_jq_CoGEMEeCdEc4VzBeWeQ"/>
</ownedOperation>
<ownedOperation xmi:id="_wp5gUGHhEeCCRJbbKD_TsQ" name="codeComplete">
<ownedComment xmi:id="_wp5gUWHhEeCCRJbbKD_TsQ">
<body>
* Do code completion inside a code snippet in the context of the current type.
*
* If the type has access to its source code and the insertion position is valid,
* then completion is performed against the source. Otherwise the completion is performed
* against the type structure and the given locals variables.
* &lt;p>
* If {@link IProgressMonitor} is not &lt;code>null&lt;/code> then some proposals which
* can be very long to compute are proposed. To avoid that the code assist operation
* take too much time a {@link IProgressMonitor} which automatically cancel the code
* assist operation when a specified amount of time is reached could be used.
*
* &lt;pre>
* new IProgressMonitor() {
* private final static int TIMEOUT = 500; //ms
* private long endTime;
* public void beginTask(String name, int totalWork) {
* fEndTime= System.currentTimeMillis() + TIMEOUT;
* }
* public boolean isCanceled() {
* return endTime &lt;= System.currentTimeMillis();
* }
* ...
* };
* &lt;/pre>
* &lt;p>
*
* @param snippet the code snippet
* @param insertion the position with in source where the snippet
* is inserted. This position must not be in comments.
* A possible value is -1, if the position is not known.
* @param position the position within snippet where the user
* is performing code assist.
* @param localVariableTypeNames an array (possibly empty) of fully qualified
* type names of local variables visible at the current scope
* @param localVariableNames an array (possibly empty) of local variable names
* that are visible at the current scope
* @param localVariableModifiers an array (possible empty) of modifiers for
* local variables
* @param isStatic whether the current scope is in a static context
* @param requestor the completion requestor
* @param monitor the progress monitor used to report progress
* @exception JavaModelException if this element does not exist or if an
* exception occurs while accessing its corresponding resource.
* @since 3.5
</body>
</ownedComment>
<ownedParameter xmi:id="_wqCqQGHhEeCCRJbbKD_TsQ" name="snippet" type="_dUn9g2EMEeCdEc4VzBeWeQ">
<upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_wqWMQGHhEeCCRJbbKD_TsQ" value="*"/>
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_wqMbQGHhEeCCRJbbKD_TsQ"/>
</ownedParameter>
<ownedParameter xmi:id="_wqWMQWHhEeCCRJbbKD_TsQ" name="insertion" type="_dTlbsGEMEeCdEc4VzBeWeQ"/>
<ownedParameter xmi:id="_wqfWMGHhEeCCRJbbKD_TsQ" name="position" type="_dTlbsGEMEeCdEc4VzBeWeQ"/>
<ownedParameter xmi:id="_wqpHMGHhEeCCRJbbKD_TsQ" name="localVariableTypeNames" type="_dUn9g2EMEeCdEc4VzBeWeQ">
<upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_wqyRIGHhEeCCRJbbKD_TsQ" value="*"/>
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_wqpHMWHhEeCCRJbbKD_TsQ"/>
</ownedParameter>
<ownedParameter xmi:id="_wq8CIGHhEeCCRJbbKD_TsQ" name="localVariableNames" type="_dUn9g2EMEeCdEc4VzBeWeQ">
<upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_wrFzIGHhEeCCRJbbKD_TsQ" value="*"/>
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_wq8CIWHhEeCCRJbbKD_TsQ"/>
</ownedParameter>
<ownedParameter xmi:id="_wrFzIWHhEeCCRJbbKD_TsQ" name="localVariableModifiers" type="_dTlbsGEMEeCdEc4VzBeWeQ">
<upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_wrYuEGHhEeCCRJbbKD_TsQ" value="*"/>
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_wrO9EGHhEeCCRJbbKD_TsQ"/>
</ownedParameter>
<ownedParameter xmi:id="_wrYuEWHhEeCCRJbbKD_TsQ" name="isStatic" type="_dVOadGEMEeCdEc4VzBeWeQ"/>
<ownedParameter xmi:id="_wrifEGHhEeCCRJbbKD_TsQ" name="requestor" type="_jq_CoGEMEeCdEc4VzBeWeQ"/>
<ownedParameter xmi:id="_wrrpAGHhEeCCRJbbKD_TsQ" name="monitor" type="_jqFqwGEMEeCdEc4VzBeWeQ"/>
</ownedOperation>
<ownedOperation xmi:id="_wsSF8GHhEeCCRJbbKD_TsQ" name="codeComplete">
<ownedComment xmi:id="_wsSF8WHhEeCCRJbbKD_TsQ">
<body>
* Do code completion inside a code snippet in the context of the current type.
* It considers types in the working copies with the given owner first. In other words,
* the owner's working copies will take precedence over their original compilation units
* in the workspace.
* &lt;p>
* Note that if a working copy is empty, it will be as if the original compilation
* unit had been deleted.
* &lt;/p>&lt;p>
* If the type has access to its source code and the insertion position is valid,
* then completion is performed against the source. Otherwise the completion is performed
* against the type structure and the given locals variables.
* &lt;/p>
*
* @param snippet the code snippet
* @param insertion the position with in source where the snippet
* is inserted. This position must not be in comments.
* A possible value is -1, if the position is not known.
* @param position the position with in snippet where the user
* is performing code assist.
* @param localVariableTypeNames an array (possibly empty) of fully qualified
* type names of local variables visible at the current scope
* @param localVariableNames an array (possibly empty) of local variable names
* that are visible at the current scope
* @param localVariableModifiers an array (possible empty) of modifiers for
* local variables
* @param isStatic whether the current scope is in a static context
* @param requestor the completion requestor
* @param owner the owner of working copies that take precedence over their original compilation units
* @exception JavaModelException if this element does not exist or if an
* exception occurs while accessing its corresponding resource.
* @since 3.1
</body>
</ownedComment>
<ownedParameter xmi:id="_wsSF8mHhEeCCRJbbKD_TsQ" name="snippet" type="_dUn9g2EMEeCdEc4VzBeWeQ">
<upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_wsbP4WHhEeCCRJbbKD_TsQ" value="*"/>
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_wsbP4GHhEeCCRJbbKD_TsQ"/>
</ownedParameter>
<ownedParameter xmi:id="_wslA4GHhEeCCRJbbKD_TsQ" name="insertion" type="_dTlbsGEMEeCdEc4VzBeWeQ"/>
<ownedParameter xmi:id="_wsux4GHhEeCCRJbbKD_TsQ" name="position" type="_dTlbsGEMEeCdEc4VzBeWeQ"/>
<ownedParameter xmi:id="_wsux4WHhEeCCRJbbKD_TsQ" name="localVariableTypeNames" type="_dUn9g2EMEeCdEc4VzBeWeQ">
<upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_ws370WHhEeCCRJbbKD_TsQ" value="*"/>
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_ws370GHhEeCCRJbbKD_TsQ"/>
</ownedParameter>
<ownedParameter xmi:id="_wtK2wGHhEeCCRJbbKD_TsQ" name="localVariableNames" type="_dUn9g2EMEeCdEc4VzBeWeQ">
<upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_wtUnwWHhEeCCRJbbKD_TsQ" value="*"/>
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_wtUnwGHhEeCCRJbbKD_TsQ"/>
</ownedParameter>
<ownedParameter xmi:id="_wteYwGHhEeCCRJbbKD_TsQ" name="localVariableModifiers" type="_dTlbsGEMEeCdEc4VzBeWeQ">
<upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_wtnisGHhEeCCRJbbKD_TsQ" value="*"/>
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_wteYwWHhEeCCRJbbKD_TsQ"/>
</ownedParameter>
<ownedParameter xmi:id="_wt7EsGHhEeCCRJbbKD_TsQ" name="isStatic" type="_dVOadGEMEeCdEc4VzBeWeQ"/>
<ownedParameter xmi:id="_wt7EsWHhEeCCRJbbKD_TsQ" name="requestor" type="_jq_CoGEMEeCdEc4VzBeWeQ"/>
<ownedParameter xmi:id="_wuEOoGHhEeCCRJbbKD_TsQ" name="owner" type="_nI23sGEMEeCdEc4VzBeWeQ"/>
</ownedOperation>
<ownedOperation xmi:id="_wuqrkGHhEeCCRJbbKD_TsQ" name="codeComplete">
<ownedComment xmi:id="_wuqrkWHhEeCCRJbbKD_TsQ">
<body>
* Do code completion inside a code snippet in the context of the current type.
* It considers types in the working copies with the given owner first. In other words,
* the owner's working copies will take precedence over their original compilation units
* in the workspace.
* &lt;p>
* Note that if a working copy is empty, it will be as if the original compilation
* unit had been deleted.
* &lt;/p>&lt;p>
* If the type has access to its source code and the insertion position is valid,
* then completion is performed against the source. Otherwise the completion is performed
* against the type structure and the given locals variables.
* &lt;/p>
* &lt;p>
* If {@link IProgressMonitor} is not &lt;code>null&lt;/code> then some proposals which
* can be very long to compute are proposed. To avoid that the code assist operation
* take too much time a {@link IProgressMonitor} which automatically cancel the code
* assist operation when a specified amount of time is reached could be used.
*
* &lt;pre>
* new IProgressMonitor() {
* private final static int TIMEOUT = 500; //ms
* private long endTime;
* public void beginTask(String name, int totalWork) {
* endTime= System.currentTimeMillis() + TIMEOUT;
* }
* public boolean isCanceled() {
* return endTime &lt;= System.currentTimeMillis();
* }
* ...
* };
* &lt;/pre>
* &lt;p>
*
* @param snippet the code snippet
* @param insertion the position with in source where the snippet
* is inserted. This position must not be in comments.
* A possible value is -1, if the position is not known.
* @param position the position with in snippet where the user
* is performing code assist.
* @param localVariableTypeNames an array (possibly empty) of fully qualified
* type names of local variables visible at the current scope
* @param localVariableNames an array (possibly empty) of local variable names
* that are visible at the current scope
* @param localVariableModifiers an array (possible empty) of modifiers for
* local variables
* @param isStatic whether the current scope is in a static context
* @param requestor the completion requestor
* @param owner the owner of working copies that take precedence over their original compilation units
* @param monitor the progress monitor used to report progress
* @exception JavaModelException if this element does not exist or if an
* exception occurs while accessing its corresponding resource.
* @since 3.5
</body>
</ownedComment>
<ownedParameter xmi:id="_wuqrkmHhEeCCRJbbKD_TsQ" name="snippet" type="_dUn9g2EMEeCdEc4VzBeWeQ">
<upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_wuz1gWHhEeCCRJbbKD_TsQ" value="*"/>
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_wuz1gGHhEeCCRJbbKD_TsQ"/>
</ownedParameter>
<ownedParameter xmi:id="_wu9mgGHhEeCCRJbbKD_TsQ" name="insertion" type="_dTlbsGEMEeCdEc4VzBeWeQ"/>
<ownedParameter xmi:id="_wvHXgGHhEeCCRJbbKD_TsQ" name="position" type="_dTlbsGEMEeCdEc4VzBeWeQ"/>
<ownedParameter xmi:id="_wvHXgWHhEeCCRJbbKD_TsQ" name="localVariableTypeNames" type="_dUn9g2EMEeCdEc4VzBeWeQ">
<upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_wvQhcWHhEeCCRJbbKD_TsQ" value="*"/>
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_wvQhcGHhEeCCRJbbKD_TsQ"/>
</ownedParameter>
<ownedParameter xmi:id="_wvaScGHhEeCCRJbbKD_TsQ" name="localVariableNames" type="_dUn9g2EMEeCdEc4VzBeWeQ">
<upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_wvjcYWHhEeCCRJbbKD_TsQ" value="*"/>
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_wvjcYGHhEeCCRJbbKD_TsQ"/>
</ownedParameter>
<ownedParameter xmi:id="_wv2-YGHhEeCCRJbbKD_TsQ" name="localVariableModifiers" type="_dTlbsGEMEeCdEc4VzBeWeQ">
<upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_wwAIUGHhEeCCRJbbKD_TsQ" value="*"/>
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_wv2-YWHhEeCCRJbbKD_TsQ"/>
</ownedParameter>
<ownedParameter xmi:id="_wwJ5UGHhEeCCRJbbKD_TsQ" name="isStatic" type="_dVOadGEMEeCdEc4VzBeWeQ"/>
<ownedParameter xmi:id="_wwTqUGHhEeCCRJbbKD_TsQ" name="requestor" type="_jq_CoGEMEeCdEc4VzBeWeQ"/>
<ownedParameter xmi:id="_wwTqUWHhEeCCRJbbKD_TsQ" name="owner" type="_nI23sGEMEeCdEc4VzBeWeQ"/>
<ownedParameter xmi:id="_wwc0QGHhEeCCRJbbKD_TsQ" name="monitor" type="_jqFqwGEMEeCdEc4VzBeWeQ"/>
</ownedOperation>
<ownedOperation xmi:id="_wwmlQGHhEeCCRJbbKD_TsQ" name="createField">
<ownedComment xmi:id="_wwmlQWHhEeCCRJbbKD_TsQ">
<body>
* Creates and returns a field in this type with the
* given contents.
* &lt;p>
* Optionally, the new element can be positioned before the specified
* sibling. If no sibling is specified, the element will be inserted
* as the last field declaration in this type.&lt;/p>
*
* &lt;p>It is possible that a field with the same name already exists in this type.
* The value of the &lt;code>force&lt;/code> parameter affects the resolution of
* such a conflict:&lt;ul>
* &lt;li> &lt;code>true&lt;/code> - in this case the field is created with the new contents&lt;/li>
* &lt;li> &lt;code>false&lt;/code> - in this case a &lt;code>JavaModelException&lt;/code> is thrown&lt;/li>
* &lt;/ul>&lt;/p>
*
* @param contents the given contents
* @param sibling the given sibling
* @param force a flag in case the same name already exists in this type
* @param monitor the given progress monitor
* @exception JavaModelException if the element could not be created. Reasons include:
* &lt;ul>
* &lt;li> This Java element does not exist (ELEMENT_DOES_NOT_EXIST)&lt;/li>
* &lt;li> A &lt;code>CoreException&lt;/code> occurred while updating an underlying resource
* &lt;li> The specified sibling is not a child of this type (INVALID_SIBLING)
* &lt;li> The contents could not be recognized as a field declaration (INVALID_CONTENTS)
* &lt;li> This type is read-only (binary) (READ_ONLY)
* &lt;li> There was a naming collision with an existing field (NAME_COLLISION)
* &lt;/ul>
* @return a field in this type with the given contents
</body>
</ownedComment>
<ownedParameter xmi:id="_ww5gMGHhEeCCRJbbKD_TsQ" type="_kNQCMGEMEeCdEc4VzBeWeQ" direction="return"/>
<ownedParameter xmi:id="_wxDRMGHhEeCCRJbbKD_TsQ" name="contents" type="_dSiS02EMEeCdEc4VzBeWeQ"/>
<ownedParameter xmi:id="_wxMbIGHhEeCCRJbbKD_TsQ" name="sibling" type="_kO5A8GEMEeCdEc4VzBeWeQ"/>
<ownedParameter xmi:id="_wxMbIWHhEeCCRJbbKD_TsQ" name="force" type="_dVOadGEMEeCdEc4VzBeWeQ"/>
<ownedParameter xmi:id="_wxWMIGHhEeCCRJbbKD_TsQ" name="monitor" type="_jqFqwGEMEeCdEc4VzBeWeQ"/>
</ownedOperation>
<ownedOperation xmi:id="_wxf9IGHhEeCCRJbbKD_TsQ" name="createInitializer">
<ownedComment xmi:id="_wxf9IWHhEeCCRJbbKD_TsQ">
<body>
* Creates and returns a static initializer in this type with the
* given contents.
* &lt;p>
* Optionally, the new element can be positioned before the specified
* sibling. If no sibling is specified, the new initializer is positioned
* after the last existing initializer declaration, or as the first member
* in the type if there are no initializers.&lt;/p>
*
* @param contents the given contents
* @param sibling the given sibling
* @param monitor the given progress monitor
* @exception JavaModelException if the element could not be created. Reasons include:
* &lt;ul>
* &lt;li> This element does not exist
* &lt;li> A &lt;code>CoreException&lt;/code> occurred while updating an underlying resource
* &lt;li> The specified sibling is not a child of this type (INVALID_SIBLING)
* &lt;li> The contents could not be recognized as an initializer declaration (INVALID_CONTENTS)
* &lt;li> This type is read-only (binary) (READ_ONLY)
* &lt;/ul>
* @return a static initializer in this type with the given contents
</body>
</ownedComment>
<ownedParameter xmi:id="_wxf9ImHhEeCCRJbbKD_TsQ" type="_kNjkMmEMEeCdEc4VzBeWeQ" direction="return"/>
<ownedParameter xmi:id="_wxpHEGHhEeCCRJbbKD_TsQ" name="contents" type="_dSiS02EMEeCdEc4VzBeWeQ"/>
<ownedParameter xmi:id="_wxpHEWHhEeCCRJbbKD_TsQ" name="sibling" type="_kO5A8GEMEeCdEc4VzBeWeQ"/>
<ownedParameter xmi:id="_wyPkAGHhEeCCRJbbKD_TsQ" name="monitor" type="_jqFqwGEMEeCdEc4VzBeWeQ"/>
</ownedOperation>
<ownedOperation xmi:id="_wyPkAWHhEeCCRJbbKD_TsQ" name="createMethod">
<ownedComment xmi:id="_wyPkAmHhEeCCRJbbKD_TsQ">
<body>
* Creates and returns a method or constructor in this type with the
* given contents.
* &lt;p>
* Optionally, the new element can be positioned before the specified
* sibling. If no sibling is specified, the element will be appended
* to this type.
*
* &lt;p>It is possible that a method with the same signature already exists in this type.
* The value of the &lt;code>force&lt;/code> parameter affects the resolution of
* such a conflict:&lt;ul>
* &lt;li> &lt;code>true&lt;/code> - in this case the method is created with the new contents&lt;/li>
* &lt;li> &lt;code>false&lt;/code> - in this case a &lt;code>JavaModelException&lt;/code> is thrown&lt;/li>
* &lt;/ul>&lt;/p>
*
* @param contents the given contents
* @param sibling the given sibling
* @param force a flag in case the same name already exists in this type
* @param monitor the given progress monitor
* @exception JavaModelException if the element could not be created. Reasons include:
* &lt;ul>
* &lt;li> This Java element does not exist (ELEMENT_DOES_NOT_EXIST)&lt;/li>
* &lt;li> A &lt;code>CoreException&lt;/code> occurred while updating an underlying resource
* &lt;li> The specified sibling is not a child of this type (INVALID_SIBLING)
* &lt;li> The contents could not be recognized as a method or constructor
* declaration (INVALID_CONTENTS)
* &lt;li> This type is read-only (binary) (READ_ONLY)
* &lt;li> There was a naming collision with an existing method (NAME_COLLISION)
* &lt;/ul>
* @return a method or constructor in this type with the given contents
</body>
</ownedComment>
<ownedParameter xmi:id="_wyYt8GHhEeCCRJbbKD_TsQ" type="_knoREGEMEeCdEc4VzBeWeQ" direction="return"/>
<ownedParameter xmi:id="_wyYt8WHhEeCCRJbbKD_TsQ" name="contents" type="_dSiS02EMEeCdEc4VzBeWeQ"/>
<ownedParameter xmi:id="_wyie8GHhEeCCRJbbKD_TsQ" name="sibling" type="_kO5A8GEMEeCdEc4VzBeWeQ"/>
<ownedParameter xmi:id="_wyie8WHhEeCCRJbbKD_TsQ" name="force" type="_dVOadGEMEeCdEc4VzBeWeQ"/>
<ownedParameter xmi:id="_wysP8GHhEeCCRJbbKD_TsQ" name="monitor" type="_jqFqwGEMEeCdEc4VzBeWeQ"/>
</ownedOperation>
<ownedOperation xmi:id="_wy1Z4GHhEeCCRJbbKD_TsQ" name="createType">
<ownedComment xmi:id="_wy1Z4WHhEeCCRJbbKD_TsQ">
<body>
* Creates and returns a type in this type with the
* given contents.
* &lt;p>
* Optionally, the new type can be positioned before the specified
* sibling. If no sibling is specified, the type will be appended
* to this type.&lt;/p>
*
* &lt;p>It is possible that a type with the same name already exists in this type.
* The value of the &lt;code>force&lt;/code> parameter affects the resolution of
* such a conflict:&lt;ul>
* &lt;li> &lt;code>true&lt;/code> - in this case the type is created with the new contents&lt;/li>
* &lt;li> &lt;code>false&lt;/code> - in this case a &lt;code>JavaModelException&lt;/code> is thrown&lt;/li>
* &lt;/ul>&lt;/p>
*
* @param contents the given contents
* @param sibling the given sibling
* @param force a flag in case the same name already exists in this type
* @param monitor the given progress monitor
* @exception JavaModelException if the element could not be created. Reasons include:
* &lt;ul>
* &lt;li> This Java element does not exist (ELEMENT_DOES_NOT_EXIST)&lt;/li>
* &lt;li> A &lt;code>CoreException&lt;/code> occurred while updating an underlying resource
* &lt;li> The specified sibling is not a child of this type (INVALID_SIBLING)
* &lt;li> The contents could not be recognized as a type declaration (INVALID_CONTENTS)
* &lt;li> This type is read-only (binary) (READ_ONLY)
* &lt;li> There was a naming collision with an existing field (NAME_COLLISION)
* &lt;/ul>
* @return a type in this type with the given contents
</body>
</ownedComment>
<ownedParameter xmi:id="_wy1Z4mHhEeCCRJbbKD_TsQ" type="_kvE84GEMEeCdEc4VzBeWeQ" direction="return"/>
<ownedParameter xmi:id="_wy1Z42HhEeCCRJbbKD_TsQ" name="contents" type="_dSiS02EMEeCdEc4VzBeWeQ"/>
<ownedParameter xmi:id="_wy_K4GHhEeCCRJbbKD_TsQ" name="sibling" type="_kO5A8GEMEeCdEc4VzBeWeQ"/>
<ownedParameter xmi:id="_wzIU0GHhEeCCRJbbKD_TsQ" name="force" type="_dVOadGEMEeCdEc4VzBeWeQ"/>
<ownedParameter xmi:id="_wzIU0WHhEeCCRJbbKD_TsQ" name="monitor" type="_jqFqwGEMEeCdEc4VzBeWeQ"/>
</ownedOperation>
<ownedOperation xmi:id="_wzSF0GHhEeCCRJbbKD_TsQ" name="findMethods">
<ownedComment xmi:id="_wzSF0WHhEeCCRJbbKD_TsQ">
<body>
* Finds the methods in this type that correspond to
* the given method.
* A method m1 corresponds to another method m2 if:
* &lt;ul>
* &lt;li>m1 has the same element name as m2.
* &lt;li>m1 has the same number of arguments as m2 and
* the simple names of the argument types must be equals.
* &lt;li>m1 exists.
* &lt;/ul>
* @param method the given method
* @return the found method or &lt;code>null&lt;/code> if no such methods can be found.
*
* @since 2.0
</body>
</ownedComment>
<ownedParameter xmi:id="_wzSF0mHhEeCCRJbbKD_TsQ" type="_knoREGEMEeCdEc4VzBeWeQ" direction="return">
<upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_wzlAwGHhEeCCRJbbKD_TsQ" value="*"/>
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_wzb20GHhEeCCRJbbKD_TsQ"/>
</ownedParameter>
<ownedParameter xmi:id="_wzuxwGHhEeCCRJbbKD_TsQ" name="method" type="_knoREGEMEeCdEc4VzBeWeQ"/>
</ownedOperation>
<ownedOperation xmi:id="_wzuxwWHhEeCCRJbbKD_TsQ" name="getChildrenForCategory">
<ownedComment xmi:id="_wzuxwmHhEeCCRJbbKD_TsQ">
<body>
* Returns the children of this type that have the given category as a &lt;code>@category&lt;/code> tag.
* Returns an empty array if no children with this category exist.
*
* &lt;p>
* The results are listed in the order in which they appear in the source or class file.
* &lt;/p>
*
* @return the children for the given category.
* @exception JavaModelException if this element does not exist or if an
* exception occurs while accessing its corresponding resource.
* @since 3.2
</body>
</ownedComment>
<ownedParameter xmi:id="_wz4iwGHhEeCCRJbbKD_TsQ" type="_kO5A8GEMEeCdEc4VzBeWeQ" direction="return">
<upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_w0BssGHhEeCCRJbbKD_TsQ" value="*"/>
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_wz4iwWHhEeCCRJbbKD_TsQ"/>
</ownedParameter>
<ownedParameter xmi:id="_w0BssWHhEeCCRJbbKD_TsQ" name="category" type="_dSiS02EMEeCdEc4VzBeWeQ"/>
</ownedOperation>
<ownedOperation xmi:id="_w0LdsGHhEeCCRJbbKD_TsQ" name="getElementName">
<ownedComment xmi:id="_w0LdsWHhEeCCRJbbKD_TsQ">
<body>
* Returns the simple name of this type, unqualified by package or enclosing type.
* This is a handle-only method.
*
* @return the simple name of this type
</body>
</ownedComment>
<ownedParameter xmi:id="_w0LdsmHhEeCCRJbbKD_TsQ" type="_dSiS02EMEeCdEc4VzBeWeQ" direction="return"/>
</ownedOperation>
<ownedOperation xmi:id="_w0UnoGHhEeCCRJbbKD_TsQ" name="getField">
<ownedComment xmi:id="_w0UnoWHhEeCCRJbbKD_TsQ">
<body>
* Returns the field with the specified name
* in this type (for example, &lt;code>&quot;bar&quot;&lt;/code>).
* This is a handle-only method. The field may or may not exist.
*
* @param name the given name
* @return the field with the specified name in this type
</body>
</ownedComment>
<ownedParameter xmi:id="_w0UnomHhEeCCRJbbKD_TsQ" type="_kNQCMGEMEeCdEc4VzBeWeQ" direction="return"/>
<ownedParameter xmi:id="_w0eYoGHhEeCCRJbbKD_TsQ" name="name" type="_dSiS02EMEeCdEc4VzBeWeQ"/>
</ownedOperation>
<ownedOperation xmi:id="_w0eYoWHhEeCCRJbbKD_TsQ" name="getFields">
<ownedComment xmi:id="_w0eYomHhEeCCRJbbKD_TsQ">
<body>
* Returns the fields declared by this type in the order in which they appear
* in the source or class file. For binary types, this includes synthetic fields.
*
* @exception JavaModelException if this element does not exist or if an
* exception occurs while accessing its corresponding resource.
* @return the fields declared by this type
</body>
</ownedComment>
<ownedParameter xmi:id="_w0oJoGHhEeCCRJbbKD_TsQ" type="_kNQCMGEMEeCdEc4VzBeWeQ" direction="return">
<upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_w0xTkGHhEeCCRJbbKD_TsQ" value="*"/>
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_w0oJoWHhEeCCRJbbKD_TsQ"/>
</ownedParameter>
</ownedOperation>
<ownedOperation xmi:id="_w0xTkWHhEeCCRJbbKD_TsQ" name="getFullyQualifiedName">
<ownedComment xmi:id="_w0xTkmHhEeCCRJbbKD_TsQ">
<body>
* Returns the fully qualified name of this type,
* including qualification for any containing types and packages.
* This is the name of the package, followed by &lt;code>'.'&lt;/code>,
* followed by the type-qualified name.
* &lt;p>
* &lt;b>Note&lt;/b>: The enclosing type separator used in the type-qualified
* name is &lt;code>'$'&lt;/code>, not &lt;code>'.'&lt;/code>.
* &lt;/p>
* This method is fully equivalent to &lt;code>getFullyQualifiedName('$')&lt;/code>.
* This is a handle-only method.
*
* @see IType#getTypeQualifiedName()
* @see IType#getFullyQualifiedName(char)
* @return the fully qualified name of this type
</body>
</ownedComment>
<ownedParameter xmi:id="_w07EkGHhEeCCRJbbKD_TsQ" type="_dSiS02EMEeCdEc4VzBeWeQ" direction="return"/>
</ownedOperation>
<ownedOperation xmi:id="_w1g6cGHhEeCCRJbbKD_TsQ" name="getFullyQualifiedName">
<ownedComment xmi:id="_w1g6cWHhEeCCRJbbKD_TsQ">
<body>
* Returns the fully qualified name of this type,
* including qualification for any containing types and packages.
* This is the name of the package, followed by &lt;code>'.'&lt;/code>,
* followed by the type-qualified name using the &lt;code>enclosingTypeSeparator&lt;/code>.
*
* For example:
* &lt;ul>
* &lt;li>the fully qualified name of a class B defined as a member of a class A in a compilation unit A.java
* in a package x.y using the '.' separator is &quot;x.y.A.B&quot;&lt;/li>
* &lt;li>the fully qualified name of a class B defined as a member of a class A in a compilation unit A.java
* in a package x.y using the '$' separator is &quot;x.y.A$B&quot;&lt;/li>
* &lt;li>the fully qualified name of a binary type whose class file is x/y/A$B.class
* using the '.' separator is &quot;x.y.A.B&quot;&lt;/li>
* &lt;li>the fully qualified name of a binary type whose class file is x/y/A$B.class
* using the '$' separator is &quot;x.y.A$B&quot;&lt;/li>
* &lt;li>the fully qualified name of an anonymous binary type whose class file is x/y/A$1.class
* using the '.' separator is &quot;x.y.A.1&quot;&lt;/li>
* &lt;/ul>
*
* This is a handle-only method.
*
* @param enclosingTypeSeparator the given enclosing type separator
* @return the fully qualified name of this type, including qualification for any containing types and packages
* @see IType#getTypeQualifiedName(char)
* @since 2.0
</body>
</ownedComment>
<ownedParameter xmi:id="_w1qrcGHhEeCCRJbbKD_TsQ" type="_dSiS02EMEeCdEc4VzBeWeQ" direction="return"/>
<ownedParameter xmi:id="_w1qrcWHhEeCCRJbbKD_TsQ" name="enclosingTypeSeparator" type="_dUn9g2EMEeCdEc4VzBeWeQ"/>
</ownedOperation>
<ownedOperation xmi:id="_w10ccGHhEeCCRJbbKD_TsQ" name="getFullyQualifiedParameterizedName">
<ownedComment xmi:id="_w10ccWHhEeCCRJbbKD_TsQ">
<body>
* Returns this type's fully qualified name using a '.' enclosing type separator
* followed by its type parameters between angle brackets if it is a generic type.
* For example, &quot;p.X&amp;lt;T&amp;gt;&quot;, &quot;java.util.Map&amp;lt;java.lang.String, p.X&amp;gt;&quot;
*
* @exception JavaModelException if this element does not exist or if an
* exception occurs while accessing its corresponding resource.
* @return the fully qualified parameterized representation of this type
* @since 3.1
</body>
</ownedComment>
<ownedParameter xmi:id="_w10ccmHhEeCCRJbbKD_TsQ" type="_dSiS02EMEeCdEc4VzBeWeQ" direction="return"/>
</ownedOperation>
<ownedOperation xmi:id="_w19mYGHhEeCCRJbbKD_TsQ" name="getInitializer">
<ownedComment xmi:id="_w19mYWHhEeCCRJbbKD_TsQ">
<body>
* Returns the initializer with the specified position relative to
* the order they are defined in the source.
* Numbering starts at 1 (thus the first occurrence is occurrence 1, not occurrence 0).
* This is a handle-only method. The initializer may or may not be present.
*
* @param occurrenceCount the specified position
* @return the initializer with the specified position relative to the order they are defined in the source
</body>
</ownedComment>
<ownedParameter xmi:id="_w19mYmHhEeCCRJbbKD_TsQ" type="_kNjkMmEMEeCdEc4VzBeWeQ" direction="return"/>
<ownedParameter xmi:id="_w2HXYGHhEeCCRJbbKD_TsQ" name="occurrenceCount" type="_dTlbsGEMEeCdEc4VzBeWeQ"/>
</ownedOperation>
<ownedOperation xmi:id="_w2RIYGHhEeCCRJbbKD_TsQ" name="getInitializers">
<ownedComment xmi:id="_w2RIYWHhEeCCRJbbKD_TsQ">
<body>
* Returns the initializers declared by this type. For binary types this is an
* empty collection. For source types, the results are listed in the order in
* which they appear in the source.
*
* @exception JavaModelException if this element does not exist or if an
* exception occurs while accessing its corresponding resource.
* @return the initializers declared by this type
</body>
</ownedComment>
<ownedParameter xmi:id="_w2RIYmHhEeCCRJbbKD_TsQ" type="_kNjkMmEMEeCdEc4VzBeWeQ" direction="return">
<upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_w2aSUWHhEeCCRJbbKD_TsQ" value="*"/>
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_w2aSUGHhEeCCRJbbKD_TsQ"/>
</ownedParameter>
</ownedOperation>
<ownedOperation xmi:id="_w2kDUGHhEeCCRJbbKD_TsQ" name="getKey">
<ownedComment xmi:id="_w2kDUWHhEeCCRJbbKD_TsQ">
<body>
* Returns the binding key for this type only if the given type is {@link #isResolved() resolved}.
* A binding key is a key that uniquely identifies this type. It allows access
* to generic info for parameterized types.
*
* &lt;p>If the given type is not resolved, the returned key is simply the java element's key.
* &lt;/p>
* @return the binding key for this type
* @see org.eclipse.jdt.core.dom.IBinding#getKey()
* @see BindingKey
* @since 3.1
* @see #isResolved()
</body>
</ownedComment>
<ownedParameter xmi:id="_w2kDUmHhEeCCRJbbKD_TsQ" type="_dSiS02EMEeCdEc4VzBeWeQ" direction="return"/>
</ownedOperation>
<ownedOperation xmi:id="_w2tNQGHhEeCCRJbbKD_TsQ" name="getMethod">
<ownedComment xmi:id="_w2tNQWHhEeCCRJbbKD_TsQ">
<body>
* Returns the method with the specified name and parameter types
* in this type (for example, &lt;code>&quot;foo&quot;, {&quot;I&quot;, &quot;QString;&quot;}&lt;/code>).
* To get the handle for a constructor, the name specified must be the
* simple name of the enclosing type.
* This is a handle-only method. The method may or may not be present.
* &lt;p>
* The type signatures may be either unresolved (for source types)
* or resolved (for binary types), and either basic (for basic types)
* or rich (for parameterized types). See {@link Signature} for details.
* &lt;/p>
*
* @param name the given name
* @param parameterTypeSignatures the given parameter types
* @return the method with the specified name and parameter types in this type
</body>
</ownedComment>
<ownedParameter xmi:id="_w2tNQmHhEeCCRJbbKD_TsQ" type="_knoREGEMEeCdEc4VzBeWeQ" direction="return"/>
<ownedParameter xmi:id="_w22-QGHhEeCCRJbbKD_TsQ" name="name" type="_dSiS02EMEeCdEc4VzBeWeQ"/>
<ownedParameter xmi:id="_w3AvQGHhEeCCRJbbKD_TsQ" name="parameterTypeSignatures" type="_dSiS02EMEeCdEc4VzBeWeQ">
<upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_w3J5MWHhEeCCRJbbKD_TsQ" value="*"/>
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_w3J5MGHhEeCCRJbbKD_TsQ"/>
</ownedParameter>
</ownedOperation>
<ownedOperation xmi:id="_w3TqMGHhEeCCRJbbKD_TsQ" name="getMethods">
<ownedComment xmi:id="_w3TqMWHhEeCCRJbbKD_TsQ">
<body>
* Returns the methods and constructors declared by this type.
* For binary types, this may include the special &lt;code>&amp;lt;clinit&amp;gt;&lt;/code> method
* and synthetic methods.
* &lt;p>
* The results are listed in the order in which they appear in the source or class file.
* &lt;/p>
*
* @exception JavaModelException if this element does not exist or if an
* exception occurs while accessing its corresponding resource.
* @return the methods and constructors declared by this type
</body>
</ownedComment>
<ownedParameter xmi:id="_w3TqMmHhEeCCRJbbKD_TsQ" type="_knoREGEMEeCdEc4VzBeWeQ" direction="return">
<upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_w3dbMWHhEeCCRJbbKD_TsQ" value="*"/>
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_w3dbMGHhEeCCRJbbKD_TsQ"/>
</ownedParameter>
</ownedOperation>
<ownedOperation xmi:id="_w3mlIGHhEeCCRJbbKD_TsQ" name="getPackageFragment">
<ownedComment xmi:id="_w3mlIWHhEeCCRJbbKD_TsQ">
<body>
* Returns the package fragment in which this element is defined.
* This is a handle-only method.
*
* @return the package fragment in which this element is defined
</body>
</ownedComment>
<ownedParameter xmi:id="_w3mlImHhEeCCRJbbKD_TsQ" type="_kqTxoGEMEeCdEc4VzBeWeQ" direction="return"/>
</ownedOperation>
<ownedOperation xmi:id="_w3wWIGHhEeCCRJbbKD_TsQ" name="getSuperclassName">
<ownedComment xmi:id="_w3wWIWHhEeCCRJbbKD_TsQ">
<body>
* Returns the name of this type's superclass, or &lt;code>null&lt;/code>
* for source types that do not specify a superclass.
* &lt;p>
* For interfaces, the superclass name is always &lt;code>&quot;java.lang.Object&quot;&lt;/code>.
* For source types, the name as declared is returned, for binary types,
* the resolved, qualified name is returned.
* For anonymous types, the superclass name is the name appearing after the 'new' keyword'.
* If the superclass is a parameterized type, the string
* may include its type arguments enclosed in &quot;&amp;lt;&amp;gt;&quot;.
* If the returned string is needed for anything other than display
* purposes, use {@link #getSuperclassTypeSignature()} which returns
* a structured type signature string containing more precise information.
* &lt;/p>
*
* @exception JavaModelException if this element does not exist or if an
* exception occurs while accessing its corresponding resource.
* @return the name of this type's superclass, or &lt;code>null&lt;/code> for source types that do not specify a superclass
</body>
</ownedComment>
<ownedParameter xmi:id="_w3wWImHhEeCCRJbbKD_TsQ" type="_dSiS02EMEeCdEc4VzBeWeQ" direction="return"/>
</ownedOperation>
<ownedOperation xmi:id="_w35gEGHhEeCCRJbbKD_TsQ" name="getSuperclassTypeSignature">
<ownedComment xmi:id="_w35gEWHhEeCCRJbbKD_TsQ">
<body>
* Returns the type signature of this type's superclass, or
* &lt;code>null&lt;/code> if none.
* &lt;p>
* The type signature may be either unresolved (for source types)
* or resolved (for binary types), and either basic (for basic types)
* or rich (for parameterized types). See {@link Signature} for details.
* &lt;/p>
*
* @exception JavaModelException if this element does not exist or if an
* exception occurs while accessing its corresponding resource.
* @return the type signature of this type's superclass, or
* &lt;code>null&lt;/code> if none
* @since 3.0
</body>
</ownedComment>
<ownedParameter xmi:id="_w35gEmHhEeCCRJbbKD_TsQ" type="_dSiS02EMEeCdEc4VzBeWeQ" direction="return"/>
</ownedOperation>
<ownedOperation xmi:id="_w4DREGHhEeCCRJbbKD_TsQ" name="getSuperInterfaceTypeSignatures">
<ownedComment xmi:id="_w4DREWHhEeCCRJbbKD_TsQ">
<body>
* Returns the type signatures of the interfaces that this type
* implements or extends, in the order in which they are listed in the
* source.
* &lt;p>
* For classes and enum types, this gives the interfaces that this
* class implements. For interfaces and annotation types,
* this gives the interfaces that this interface extends.
* An empty collection is returned if this type does not implement or
* extend any interfaces. For anonymous types, an empty collection is
* always returned.
* &lt;/p>
* &lt;p>
* The type signatures may be either unresolved (for source types)
* or resolved (for binary types), and either basic (for basic types)
* or rich (for parameterized types). See {@link Signature} for details.
* &lt;/p>
*
* @exception JavaModelException if this element does not exist or if an
* exception occurs while accessing its corresponding resource.
* @return the type signatures of interfaces that this type implements
* or extends, in the order in which they are listed in the source,
* an empty collection if none
* @since 3.0
</body>
</ownedComment>
<ownedParameter xmi:id="_w4DREmHhEeCCRJbbKD_TsQ" type="_dSiS02EMEeCdEc4VzBeWeQ" direction="return">
<upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_w4NCEWHhEeCCRJbbKD_TsQ" value="*"/>
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_w4NCEGHhEeCCRJbbKD_TsQ"/>
</ownedParameter>
</ownedOperation>
<ownedOperation xmi:id="_w4WMAGHhEeCCRJbbKD_TsQ" name="getSuperInterfaceNames">
<ownedComment xmi:id="_w4WMAWHhEeCCRJbbKD_TsQ">
<body>
* Returns the names of interfaces that this type implements or extends,
* in the order in which they are listed in the source.
* &lt;p>
* For classes, this gives the interfaces that this class implements.
* For interfaces, this gives the interfaces that this interface extends.
* An empty collection is returned if this type does not implement or
* extend any interfaces. For source types, simple names are returned,
* for binary types, qualified names are returned.
* For anonymous types, an empty collection is always returned.
* If the list of supertypes includes parameterized types,
* the string may include type arguments enclosed in &quot;&amp;lt;&amp;gt;&quot;.
* If the result is needed for anything other than display
* purposes, use {@link #getSuperInterfaceTypeSignatures()} which returns
* structured signature strings containing more precise information.
* &lt;/p>
*
* @exception JavaModelException if this element does not exist or if an
* exception occurs while accessing its corresponding resource.
* @return the names of interfaces that this type implements or extends, in the order in which they are listed in the source,
* an empty collection if none
</body>
</ownedComment>
<ownedParameter xmi:id="_w4WMAmHhEeCCRJbbKD_TsQ" type="_dSiS02EMEeCdEc4VzBeWeQ" direction="return">
<upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_w4puAWHhEeCCRJbbKD_TsQ" value="*"/>
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_w4puAGHhEeCCRJbbKD_TsQ"/>
</ownedParameter>
</ownedOperation>
<ownedOperation xmi:id="_w4y38GHhEeCCRJbbKD_TsQ" name="getTypeParameterSignatures">
<ownedComment xmi:id="_w4y38WHhEeCCRJbbKD_TsQ">
<body>
* Returns the formal type parameter signatures for this type.
* Returns an empty array if this type has no formal type parameters.
* &lt;p>
* The formal type parameter signatures may be either unresolved (for source
* types) or resolved (for binary types). See {@link Signature} for details.
* &lt;/p>
*
* @exception JavaModelException if this element does not exist or if an
* exception occurs while accessing its corresponding resource.
* @return the formal type parameter signatures of this type,
* in the order declared in the source, an empty array if none
* @see Signature
* @since 3.0
</body>
</ownedComment>
<ownedParameter xmi:id="_w4y38mHhEeCCRJbbKD_TsQ" type="_dSiS02EMEeCdEc4VzBeWeQ" direction="return">
<upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_w48o8WHhEeCCRJbbKD_TsQ" value="*"/>
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_w48o8GHhEeCCRJbbKD_TsQ"/>
</ownedParameter>
</ownedOperation>
<ownedOperation xmi:id="_w5Fy4GHhEeCCRJbbKD_TsQ" name="getTypeParameters">
<ownedComment xmi:id="_w5Fy4WHhEeCCRJbbKD_TsQ">
<body>
* Returns the formal type parameters for this type.
* Returns an empty array if this type has no formal type parameters.
*
* @exception JavaModelException if this element does not exist or if an
* exception occurs while accessing its corresponding resource.
* @return the formal type parameters of this type,
* in the order declared in the source, an empty array if none
* @since 3.1
</body>
</ownedComment>
<ownedParameter xmi:id="_w5Fy4mHhEeCCRJbbKD_TsQ" type="_kxKnkGEMEeCdEc4VzBeWeQ" direction="return">
<upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_w5ZU4GHhEeCCRJbbKD_TsQ" value="*"/>
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_w5Pj4GHhEeCCRJbbKD_TsQ"/>
</ownedParameter>
</ownedOperation>
<ownedOperation xmi:id="_w5ZU4WHhEeCCRJbbKD_TsQ" name="getType">
<ownedComment xmi:id="_w5ZU4mHhEeCCRJbbKD_TsQ">
<body>
* Returns the member type declared in this type with the given simple name.
* This is a handle-only method. The type may or may not exist.
*
* @param name the given simple name
* @return the member type declared in this type with the given simple name
</body>
</ownedComment>
<ownedParameter xmi:id="_w5ie0GHhEeCCRJbbKD_TsQ" type="_kvE84GEMEeCdEc4VzBeWeQ" direction="return"/>
<ownedParameter xmi:id="_w5ie0WHhEeCCRJbbKD_TsQ" name="name" type="_dSiS02EMEeCdEc4VzBeWeQ"/>
</ownedOperation>
<ownedOperation xmi:id="_w5sP0GHhEeCCRJbbKD_TsQ" name="getTypeParameter">
<ownedComment xmi:id="_w5sP0WHhEeCCRJbbKD_TsQ">
<body>
* Returns the type parameter declared in this type with the given name.
* This is a handle-only method. The type parameter may or may not exist.
*
* @param name the given simple name
* @return the type parameter declared in this type with the given name
* @since 3.1
</body>
</ownedComment>
<ownedParameter xmi:id="_w5sP0mHhEeCCRJbbKD_TsQ" type="_kxKnkGEMEeCdEc4VzBeWeQ" direction="return"/>
<ownedParameter xmi:id="_w5_KwGHhEeCCRJbbKD_TsQ" name="name" type="_dSiS02EMEeCdEc4VzBeWeQ"/>
</ownedOperation>
<ownedOperation xmi:id="_w6I7wGHhEeCCRJbbKD_TsQ" name="getTypeQualifiedName">
<ownedComment xmi:id="_w6I7wWHhEeCCRJbbKD_TsQ">
<body>
* Returns the type-qualified name of this type,
* including qualification for any enclosing types,
* but not including package qualification.
* For source types, this consists of the simple names of any enclosing types,
* separated by &lt;code>'$'&lt;/code>, followed by the simple name of this type
* or the occurrence count of this type if it is anonymous.
* For binary types, this is the name of the class file without the &quot;.class&quot; suffix.
* This method is fully equivalent to &lt;code>getTypeQualifiedName('$')&lt;/code>.
* This is a handle-only method.
*
* @see #getTypeQualifiedName(char)
* @return the type-qualified name of this type
</body>
</ownedComment>
<ownedParameter xmi:id="_w6SFsGHhEeCCRJbbKD_TsQ" type="_dSiS02EMEeCdEc4VzBeWeQ" direction="return"/>
</ownedOperation>
<ownedOperation xmi:id="_w64ioGHhEeCCRJbbKD_TsQ" name="getTypeQualifiedName">
<ownedComment xmi:id="_w64ioWHhEeCCRJbbKD_TsQ">
<body>
* Returns the type-qualified name of this type,
* including qualification for any enclosing types,
* but not including package qualification.
* For source types, this consists of the simple names of any enclosing types,
* separated by &lt;code>enclosingTypeSeparator&lt;/code>, followed by the
* simple name of this type or the occurrence count of this type if it is anonymous.
* For binary types, this is the name of the class file without the &quot;.class&quot; suffix,
* and - since 3.4 - the '$' characters in the class file name are replaced with the
* &lt;code>enclosingTypeSeparator&lt;/code> character.
*
* For example:
* &lt;ul>
* &lt;li>the type qualified name of a class B defined as a member of a class A
* using the '.' separator is &quot;A.B&quot;&lt;/li>
* &lt;li>the type qualified name of a class B defined as a member of a class A
* using the '$' separator is &quot;A$B&quot;&lt;/li>
* &lt;li>the type qualified name of a binary type whose class file is A$B.class
* using the '.' separator is &quot;A.B&quot;&lt;/li>
* &lt;li>the type qualified name of a binary type whose class file is A$B.class
* using the '$' separator is &quot;A$B&quot;&lt;/li>
* &lt;li>the type qualified name of an anonymous binary type whose class file is A$1.class
* using the '.' separator is &quot;A.1&quot;&lt;/li>
* &lt;/ul>
*
* This is a handle-only method.
*
* @param enclosingTypeSeparator the specified enclosing type separator
* @return the type-qualified name of this type
* @since 2.0
</body>
</ownedComment>
<ownedParameter xmi:id="_w64iomHhEeCCRJbbKD_TsQ" type="_dSiS02EMEeCdEc4VzBeWeQ" direction="return"/>
<ownedParameter xmi:id="_w7eYgGHhEeCCRJbbKD_TsQ" name="enclosingTypeSeparator" type="_dUn9g2EMEeCdEc4VzBeWeQ"/>
</ownedOperation>
<ownedOperation xmi:id="_w7eYgWHhEeCCRJbbKD_TsQ" name="getTypes">
<ownedComment xmi:id="_w7eYgmHhEeCCRJbbKD_TsQ">
<body>
* Returns the immediate member types declared by this type.
* The results are listed in the order in which they appear in the source or class file.
*
* @exception JavaModelException if this element does not exist or if an
* exception occurs while accessing its corresponding resource.
* @return the immediate member types declared by this type
</body>
</ownedComment>
<ownedParameter xmi:id="_w7oJgGHhEeCCRJbbKD_TsQ" type="_kvE84GEMEeCdEc4VzBeWeQ" direction="return">
<upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_w7x6gGHhEeCCRJbbKD_TsQ" value="*"/>
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_w7oJgWHhEeCCRJbbKD_TsQ"/>
</ownedParameter>
</ownedOperation>
<ownedOperation xmi:id="_w77EcGHhEeCCRJbbKD_TsQ" name="isAnonymous">
<ownedComment xmi:id="_w77EcWHhEeCCRJbbKD_TsQ">
<body>
* Returns whether this type represents an anonymous type.
*
* @exception JavaModelException if this element does not exist or if an
* exception occurs while accessing its corresponding resource.
* @return true if this type represents an anonymous type, false otherwise
* @since 2.0
</body>
</ownedComment>
<ownedParameter xmi:id="_w77EcmHhEeCCRJbbKD_TsQ" type="_dVOadGEMEeCdEc4VzBeWeQ" direction="return"/>
</ownedOperation>
<ownedOperation xmi:id="_w8E1cGHhEeCCRJbbKD_TsQ" name="isClass">
<ownedComment xmi:id="_w8E1cWHhEeCCRJbbKD_TsQ">
<body>
* Returns whether this type represents a class.
* &lt;p>
* Note that a class can neither be an interface, an enumeration class, nor an annotation type.
* &lt;/p>
*
* @exception JavaModelException if this element does not exist or if an
* exception occurs while accessing its corresponding resource.
* @return true if this type represents a class, false otherwise
</body>
</ownedComment>
<ownedParameter xmi:id="_w8E1cmHhEeCCRJbbKD_TsQ" type="_dVOadGEMEeCdEc4VzBeWeQ" direction="return"/>
</ownedOperation>
<ownedOperation xmi:id="_w8OmcGHhEeCCRJbbKD_TsQ" name="isEnum">
<ownedComment xmi:id="_w8OmcWHhEeCCRJbbKD_TsQ">
<body>
* Returns whether this type represents an enumeration class.
* &lt;p>
* Note that an enumeration class can neither be a class, an interface, nor an annotation type.
* &lt;/p>
*
* @exception JavaModelException if this element does not exist or if an
* exception occurs while accessing its corresponding resource.
* @return true if this type represents an enumeration class,
* false otherwise
* @since 3.0
</body>
</ownedComment>
<ownedParameter xmi:id="_w8OmcmHhEeCCRJbbKD_TsQ" type="_dVOadGEMEeCdEc4VzBeWeQ" direction="return"/>
</ownedOperation>
<ownedOperation xmi:id="_w8XwYGHhEeCCRJbbKD_TsQ" name="isInterface">
<ownedComment xmi:id="_w8XwYWHhEeCCRJbbKD_TsQ">
<body>
* Returns whether this type represents an interface.
* &lt;p>
* Note that an interface can also be an annotation type, but it can neither be a class nor an enumeration class.
* &lt;/p>
*
* @exception JavaModelException if this element does not exist or if an
* exception occurs while accessing its corresponding resource.
* @return true if this type represents an interface, false otherwise
</body>
</ownedComment>
<ownedParameter xmi:id="_w8XwYmHhEeCCRJbbKD_TsQ" type="_dVOadGEMEeCdEc4VzBeWeQ" direction="return"/>
</ownedOperation>
<ownedOperation xmi:id="_w8hhYGHhEeCCRJbbKD_TsQ" name="isAnnotation">
<ownedComment xmi:id="_w8hhYWHhEeCCRJbbKD_TsQ">
<body>
* Returns whether this type represents an annotation type.
* &lt;p>
* Note that an annotation type is also an interface, but it can neither be a class nor an enumeration class.
* &lt;/p>
*
* @exception JavaModelException if this element does not exist or if an
* exception occurs while accessing its corresponding resource.
* @return true if this type represents an annotation type,
* false otherwise
* @since 3.0
</body>
</ownedComment>
<ownedParameter xmi:id="_w8hhYmHhEeCCRJbbKD_TsQ" type="_dVOadGEMEeCdEc4VzBeWeQ" direction="return"/>
</ownedOperation>
<ownedOperation xmi:id="_w8qrUGHhEeCCRJbbKD_TsQ" name="isLocal">
<ownedComment xmi:id="_w8qrUWHhEeCCRJbbKD_TsQ">
<body>
* Returns whether this type represents a local type.
*
* @exception JavaModelException if this element does not exist or if an
* exception occurs while accessing its corresponding resource.
* @return true if this type represents a local type, false otherwise
* @since 2.0
</body>
</ownedComment>
<ownedParameter xmi:id="_w8qrUmHhEeCCRJbbKD_TsQ" type="_dVOadGEMEeCdEc4VzBeWeQ" direction="return"/>
</ownedOperation>
<ownedOperation xmi:id="_w80cUGHhEeCCRJbbKD_TsQ" name="isMember">
<ownedComment xmi:id="_w80cUWHhEeCCRJbbKD_TsQ">
<body>
* Returns whether this type represents a member type.
*
* @exception JavaModelException if this element does not exist or if an
* exception occurs while accessing its corresponding resource.
* @return true if this type represents a member type, false otherwise
* @since 2.0
</body>
</ownedComment>
<ownedParameter xmi:id="_w80cUmHhEeCCRJbbKD_TsQ" type="_dVOadGEMEeCdEc4VzBeWeQ" direction="return"/>
</ownedOperation>
<ownedOperation xmi:id="_w8-NUGHhEeCCRJbbKD_TsQ" name="isResolved">
<ownedComment xmi:id="_w8-NUWHhEeCCRJbbKD_TsQ">
<body>
* Returns whether this type represents a resolved type.
* If a type is resolved, its key contains resolved information.
*
* @return whether this type represents a resolved type.
* @since 3.1
</body>
</ownedComment>
<ownedParameter xmi:id="_w8-NUmHhEeCCRJbbKD_TsQ" type="_dVOadGEMEeCdEc4VzBeWeQ" direction="return"/>
</ownedOperation>
<ownedOperation xmi:id="_w9HXQGHhEeCCRJbbKD_TsQ" name="loadTypeHierachy">
<ownedComment xmi:id="_w9HXQWHhEeCCRJbbKD_TsQ">
<body>
* Loads a previously saved ITypeHierarchy from an input stream. A type hierarchy can
* be stored using ITypeHierachy#store(OutputStream).
*
* Only hierarchies originally created by the following methods can be loaded:
* &lt;ul>
* &lt;li>IType#newSupertypeHierarchy(IProgressMonitor)&lt;/li>
* &lt;li>IType#newTypeHierarchy(IJavaProject, IProgressMonitor)&lt;/li>
* &lt;li>IType#newTypeHierarchy(IProgressMonitor)&lt;/li>
* &lt;/ul>
*
* @param input stream where hierarchy will be read
* @param monitor the given progress monitor
* @return the stored hierarchy
* @exception JavaModelException if the hierarchy could not be restored, reasons include:
* - type is not the focus of the hierarchy or
* - unable to read the input stream (wrong format, IOException during reading, ...)
* @see ITypeHierarchy#store(java.io.OutputStream, IProgressMonitor)
* @since 2.1
</body>
</ownedComment>
<ownedParameter xmi:id="_w9HXQmHhEeCCRJbbKD_TsQ" type="_kwkKoGEMEeCdEc4VzBeWeQ" direction="return"/>
<ownedParameter xmi:id="_w9RIQGHhEeCCRJbbKD_TsQ" name="input" type="_nDyxgGEMEeCdEc4VzBeWeQ"/>
<ownedParameter xmi:id="_w9a5QGHhEeCCRJbbKD_TsQ" name="monitor" type="_jqFqwGEMEeCdEc4VzBeWeQ"/>
</ownedOperation>
<ownedOperation xmi:id="_w9a5QWHhEeCCRJbbKD_TsQ" name="newSupertypeHierarchy">
<ownedComment xmi:id="_w9a5QmHhEeCCRJbbKD_TsQ">
<body>
* Creates and returns a type hierarchy for this type containing
* this type and all of its supertypes.
*
* @param monitor the given progress monitor
* @exception JavaModelException if this element does not exist or if an
* exception occurs while accessing its corresponding resource.
* @return a type hierarchy for this type containing this type and all of its supertypes
</body>
</ownedComment>
<ownedParameter xmi:id="_w9kDMGHhEeCCRJbbKD_TsQ" type="_kwkKoGEMEeCdEc4VzBeWeQ" direction="return"/>
<ownedParameter xmi:id="_w9t0MGHhEeCCRJbbKD_TsQ" name="monitor" type="_jqFqwGEMEeCdEc4VzBeWeQ"/>
</ownedOperation>
<ownedOperation xmi:id="_w92-IGHhEeCCRJbbKD_TsQ" name="newSupertypeHierarchy">
<ownedComment xmi:id="_w92-IWHhEeCCRJbbKD_TsQ">
<body>
* Creates and returns a type hierarchy for this type containing
* this type and all of its supertypes, considering types in the given
* working copies. In other words, the list of working copies will take
* precedence over their original compilation units in the workspace.
* &lt;p>
* Note that passing an empty working copy will be as if the original compilation
* unit had been deleted.
* &lt;/p>
*
* @param workingCopies the working copies that take precedence over their original compilation units
* @param monitor the given progress monitor
* @return a type hierarchy for this type containing this type and all of its supertypes
* @exception JavaModelException if this element does not exist or if an
* exception occurs while accessing its corresponding resource.
* @since 3.0
</body>
</ownedComment>
<ownedParameter xmi:id="_w92-ImHhEeCCRJbbKD_TsQ" type="_kwkKoGEMEeCdEc4VzBeWeQ" direction="return"/>
<ownedParameter xmi:id="_w-AvIGHhEeCCRJbbKD_TsQ" name="workingCopies" type="_j-plgGEMEeCdEc4VzBeWeQ">
<upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_w-KgIGHhEeCCRJbbKD_TsQ" value="*"/>
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_w-AvIWHhEeCCRJbbKD_TsQ"/>
</ownedParameter>
<ownedParameter xmi:id="_w-TqEGHhEeCCRJbbKD_TsQ" name="monitor" type="_jqFqwGEMEeCdEc4VzBeWeQ"/>
</ownedOperation>
<ownedOperation xmi:id="_w-TqEWHhEeCCRJbbKD_TsQ" name="newSupertypeHierarchy">
<ownedComment xmi:id="_w-TqEmHhEeCCRJbbKD_TsQ">
<body>
* Creates and returns a type hierarchy for this type containing
* this type and all of its supertypes, considering types in the given
* working copies. In other words, the list of working copies will take
* precedence over their original compilation units in the workspace.
* &lt;p>
* Note that passing an empty working copy will be as if the original compilation
* unit had been deleted.
* &lt;/p>
*
* @param workingCopies the working copies that take precedence over their original compilation units
* @param monitor the given progress monitor
* @return a type hierarchy for this type containing this type and all of its supertypes
* @exception JavaModelException if this element does not exist or if an
* exception occurs while accessing its corresponding resource.
* @since 2.0
* @deprecated Use {@link #newSupertypeHierarchy(ICompilationUnit[], IProgressMonitor)} instead
</body>
</ownedComment>
<ownedParameter xmi:id="_w-dbEGHhEeCCRJbbKD_TsQ" type="_kwkKoGEMEeCdEc4VzBeWeQ" direction="return"/>
<ownedParameter xmi:id="_w-nMEGHhEeCCRJbbKD_TsQ" name="workingCopies" type="_ky8wQGEMEeCdEc4VzBeWeQ">
<upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_w-wWAGHhEeCCRJbbKD_TsQ" value="*"/>
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_w-nMEWHhEeCCRJbbKD_TsQ"/>
</ownedParameter>
<ownedParameter xmi:id="_w-6HAGHhEeCCRJbbKD_TsQ" name="monitor" type="_jqFqwGEMEeCdEc4VzBeWeQ"/>
</ownedOperation>
<ownedOperation xmi:id="_w-6HAWHhEeCCRJbbKD_TsQ" name="newSupertypeHierarchy">
<ownedComment xmi:id="_w-6HAmHhEeCCRJbbKD_TsQ">
<body>
* Creates and returns a type hierarchy for this type containing
* this type and all of its supertypes, considering types in the
* working copies with the given owner.
* In other words, the owner's working copies will take
* precedence over their original compilation units in the workspace.
* &lt;p>
* Note that if a working copy is empty, it will be as if the original compilation
* unit had been deleted.
* &lt;p>
*
* @param owner the owner of working copies that take precedence over their original compilation units
* @param monitor the given progress monitor
* @return a type hierarchy for this type containing this type and all of its supertypes
* @exception JavaModelException if this element does not exist or if an
* exception occurs while accessing its corresponding resource.
* @since 3.0
</body>
</ownedComment>
<ownedParameter xmi:id="_w_DQ8GHhEeCCRJbbKD_TsQ" type="_kwkKoGEMEeCdEc4VzBeWeQ" direction="return"/>
<ownedParameter xmi:id="_w_DQ8WHhEeCCRJbbKD_TsQ" name="owner" type="_nI23sGEMEeCdEc4VzBeWeQ"/>
<ownedParameter xmi:id="_w_NB8GHhEeCCRJbbKD_TsQ" name="monitor" type="_jqFqwGEMEeCdEc4VzBeWeQ"/>
</ownedOperation>
<ownedOperation xmi:id="_w_Wy8GHhEeCCRJbbKD_TsQ" name="newTypeHierarchy">
<ownedComment xmi:id="_w_Wy8WHhEeCCRJbbKD_TsQ">
<body>
* Creates and returns a type hierarchy for this type containing
* this type, all of its supertypes, and all its subtypes
* in the context of the given project.
*
* @param project the given project
* @param monitor the given progress monitor
* @exception JavaModelException if this element does not exist or if an
* exception occurs while accessing its corresponding resource.
* @return a type hierarchy for this type containing
* this type, all of its supertypes, and all its subtypes
* in the context of the given project
</body>
</ownedComment>
<ownedParameter xmi:id="_w_Wy8mHhEeCCRJbbKD_TsQ" type="_kwkKoGEMEeCdEc4VzBeWeQ" direction="return"/>
<ownedParameter xmi:id="_w_f84GHhEeCCRJbbKD_TsQ" name="project" type="_kjmssGEMEeCdEc4VzBeWeQ"/>
<ownedParameter xmi:id="_w_pt4GHhEeCCRJbbKD_TsQ" name="monitor" type="_jqFqwGEMEeCdEc4VzBeWeQ"/>
</ownedOperation>
<ownedOperation xmi:id="_w_pt4WHhEeCCRJbbKD_TsQ" name="newTypeHierarchy">
<ownedComment xmi:id="_w_pt4mHhEeCCRJbbKD_TsQ">
<body>
* Creates and returns a type hierarchy for this type containing
* this type, all of its supertypes, and all its subtypes
* in the context of the given project, considering types in the
* working copies with the given owner.
* In other words, the owner's working copies will take
* precedence over their original compilation units in the workspace.
* &lt;p>
* Note that if a working copy is empty, it will be as if the original compilation
* unit had been deleted.
* &lt;p>
*
* @param project the given project
* @param owner the owner of working copies that take precedence over their original compilation units
* @param monitor the given progress monitor
* @exception JavaModelException if this element does not exist or if an
* exception occurs while accessing its corresponding resource.
* @return a type hierarchy for this type containing
* this type, all of its supertypes, and all its subtypes
* in the context of the given project
* @since 3.0
</body>
</ownedComment>
<ownedParameter xmi:id="_w_ze4GHhEeCCRJbbKD_TsQ" type="_kwkKoGEMEeCdEc4VzBeWeQ" direction="return"/>
<ownedParameter xmi:id="_w_8o0GHhEeCCRJbbKD_TsQ" name="project" type="_kjmssGEMEeCdEc4VzBeWeQ"/>
<ownedParameter xmi:id="_w_8o0WHhEeCCRJbbKD_TsQ" name="owner" type="_nI23sGEMEeCdEc4VzBeWeQ"/>
<ownedParameter xmi:id="_xAGZ0GHhEeCCRJbbKD_TsQ" name="monitor" type="_jqFqwGEMEeCdEc4VzBeWeQ"/>
</ownedOperation>
<ownedOperation xmi:id="_xAPjwGHhEeCCRJbbKD_TsQ" name="newTypeHierarchy">
<ownedComment xmi:id="_xAPjwWHhEeCCRJbbKD_TsQ">
<body>
* Creates and returns a type hierarchy for this type containing
* this type, all of its supertypes, and all its subtypes in the workspace.
*
* @param monitor the given progress monitor
* @exception JavaModelException if this element does not exist or if an
* exception occurs while accessing its corresponding resource.
* @return a type hierarchy for this type containing
* this type, all of its supertypes, and all its subtypes in the workspace
</body>
</ownedComment>
<ownedParameter xmi:id="_xAPjwmHhEeCCRJbbKD_TsQ" type="_kwkKoGEMEeCdEc4VzBeWeQ" direction="return"/>
<ownedParameter xmi:id="_xAZUwGHhEeCCRJbbKD_TsQ" name="monitor" type="_jqFqwGEMEeCdEc4VzBeWeQ"/>
</ownedOperation>
<ownedOperation xmi:id="_xAjFwGHhEeCCRJbbKD_TsQ" name="newTypeHierarchy">
<ownedComment xmi:id="_xAjFwWHhEeCCRJbbKD_TsQ">
<body>
* Creates and returns a type hierarchy for this type containing
* this type, all of its supertypes, and all its subtypes in the workspace,
* considering types in the given working copies. In other words, the list of working
* copies that will take precedence over their original compilation units in the workspace.
* &lt;p>
* Note that passing an empty working copy will be as if the original compilation
* unit had been deleted.
*
* @param workingCopies the working copies that take precedence over their original compilation units
* @param monitor the given progress monitor
* @return a type hierarchy for this type containing
* this type, all of its supertypes, and all its subtypes in the workspace
* @exception JavaModelException if this element does not exist or if an
* exception occurs while accessing its corresponding resource.
* @since 3.0
</body>
</ownedComment>
<ownedParameter xmi:id="_xAjFwmHhEeCCRJbbKD_TsQ" type="_kwkKoGEMEeCdEc4VzBeWeQ" direction="return"/>
<ownedParameter xmi:id="_xAsPsGHhEeCCRJbbKD_TsQ" name="workingCopies" type="_j-plgGEMEeCdEc4VzBeWeQ">
<upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_xA2AsGHhEeCCRJbbKD_TsQ" value="*"/>
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_xAsPsWHhEeCCRJbbKD_TsQ"/>
</ownedParameter>
<ownedParameter xmi:id="_xA2AsWHhEeCCRJbbKD_TsQ" name="monitor" type="_jqFqwGEMEeCdEc4VzBeWeQ"/>
</ownedOperation>
<ownedOperation xmi:id="_xA_xsGHhEeCCRJbbKD_TsQ" name="newTypeHierarchy">
<ownedComment xmi:id="_xA_xsWHhEeCCRJbbKD_TsQ">
<body>
* Creates and returns a type hierarchy for this type containing
* this type, all of its supertypes, and all its subtypes in the workspace,
* considering types in the given working copies. In other words, the list of working
* copies that will take precedence over their original compilation units in the workspace.
* &lt;p>
* Note that passing an empty working copy will be as if the original compilation
* unit had been deleted.
*
* @param workingCopies the working copies that take precedence over their original compilation units
* @param monitor the given progress monitor
* @return a type hierarchy for this type containing
* this type, all of its supertypes, and all its subtypes in the workspace
* @exception JavaModelException if this element does not exist or if an
* exception occurs while accessing its corresponding resource.
* @since 2.0
* @deprecated Use {@link #newTypeHierarchy(ICompilationUnit[], IProgressMonitor)} instead
</body>
</ownedComment>
<ownedParameter xmi:id="_xBI7oGHhEeCCRJbbKD_TsQ" type="_kwkKoGEMEeCdEc4VzBeWeQ" direction="return"/>
<ownedParameter xmi:id="_xBI7oWHhEeCCRJbbKD_TsQ" name="workingCopies" type="_ky8wQGEMEeCdEc4VzBeWeQ">
<upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_xBb2kGHhEeCCRJbbKD_TsQ" value="*"/>
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_xBSsoGHhEeCCRJbbKD_TsQ"/>
</ownedParameter>
<ownedParameter xmi:id="_xBlnkGHhEeCCRJbbKD_TsQ" name="monitor" type="_jqFqwGEMEeCdEc4VzBeWeQ"/>
</ownedOperation>
<ownedOperation xmi:id="_xBlnkWHhEeCCRJbbKD_TsQ" name="newTypeHierarchy">
<ownedComment xmi:id="_xBlnkmHhEeCCRJbbKD_TsQ">
<body>
* Creates and returns a type hierarchy for this type containing
* this type, all of its supertypes, and all its subtypes in the workspace,
* considering types in the working copies with the given owner.
* In other words, the owner's working copies will take
* precedence over their original compilation units in the workspace.
* &lt;p>
* Note that if a working copy is empty, it will be as if the original compilation
* unit had been deleted.
* &lt;p>
*
* @param owner the owner of working copies that take precedence over their original compilation units
* @param monitor the given progress monitor
* @return a type hierarchy for this type containing
* this type, all of its supertypes, and all its subtypes in the workspace
* @exception JavaModelException if this element does not exist or if an
* exception occurs while accessing its corresponding resource.
* @since 3.0
</body>
</ownedComment>
<ownedParameter xmi:id="_xBvYkGHhEeCCRJbbKD_TsQ" type="_kwkKoGEMEeCdEc4VzBeWeQ" direction="return"/>
<ownedParameter xmi:id="_xBvYkWHhEeCCRJbbKD_TsQ" name="owner" type="_nI23sGEMEeCdEc4VzBeWeQ"/>
<ownedParameter xmi:id="_xB4igGHhEeCCRJbbKD_TsQ" name="monitor" type="_jqFqwGEMEeCdEc4VzBeWeQ"/>
</ownedOperation>
<ownedOperation xmi:id="_xCCTgGHhEeCCRJbbKD_TsQ" name="resolveType">
<ownedComment xmi:id="_xCCTgWHhEeCCRJbbKD_TsQ">
<body>
* Resolves the given type name within the context of this type (depending on the type hierarchy
* and its imports).
* &lt;p>
* Multiple answers might be found in case there are ambiguous matches.
* &lt;/p>
* &lt;p>
* Each matching type name is decomposed as an array of two strings, the first denoting the package
* name (dot-separated) and the second being the type name. The package name is empty if it is the
* default package. The type name is the type qualified name using a '.' enclosing type separator.
* &lt;/p>
* &lt;p>
* Returns &lt;code>null&lt;/code> if unable to find any matching type.
* &lt;/p>
*&lt;p>
* For example, resolution of &lt;code>&quot;Object&quot;&lt;/code> would typically return
* &lt;code>{{&quot;java.lang&quot;, &quot;Object&quot;}}&lt;/code>. Another resolution that returns
* &lt;code>{{&quot;&quot;, &quot;X.Inner&quot;}}&lt;/code> represents the inner type Inner defined in type X in the
* default package.
* &lt;/p>
*
* @param typeName the given type name
* @exception JavaModelException if code resolve could not be performed.
* @return the resolved type names or &lt;code>null&lt;/code> if unable to find any matching type
* @see #getTypeQualifiedName(char)
</body>
</ownedComment>
<ownedParameter xmi:id="_xCCTgmHhEeCCRJbbKD_TsQ" type="_dSiS02EMEeCdEc4VzBeWeQ" direction="return">
<upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_xCMEgWHhEeCCRJbbKD_TsQ" value="*"/>
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_xCMEgGHhEeCCRJbbKD_TsQ"/>
</ownedParameter>
<ownedParameter xmi:id="_xCVOcGHhEeCCRJbbKD_TsQ" name="typeName" type="_dSiS02EMEeCdEc4VzBeWeQ"/>
</ownedOperation>
<ownedOperation xmi:id="_xCx6YGHhEeCCRJbbKD_TsQ" name="resolveType">
<ownedComment xmi:id="_xCx6YWHhEeCCRJbbKD_TsQ">
<body>
* Resolves the given type name within the context of this type (depending on the type hierarchy
* and its imports) and using the given owner's working copies, considering types in the
* working copies with the given owner. In other words, the owner's working copies will take
* precedence over their original compilation units in the workspace.
* &lt;p>
* Note that if a working copy is empty, it will be as if the original compilation
* unit had been deleted.
* &lt;/p>
* &lt;p>Multiple answers might be found in case there are ambiguous matches.
* &lt;/p>
* &lt;p>
* Each matching type name is decomposed as an array of two strings, the first denoting the package
* name (dot-separated) and the second being the type name. The package name is empty if it is the
* default package. The type name is the type qualified name using a '.' enclosing type separator.
* &lt;/p>
* &lt;p>
* Returns &lt;code>null&lt;/code> if unable to find any matching type.
*&lt;/p>
*&lt;p>
* For example, resolution of &lt;code>&quot;Object&quot;&lt;/code> would typically return
* &lt;code>{{&quot;java.lang&quot;, &quot;Object&quot;}}&lt;/code>. Another resolution that returns
* &lt;code>{{&quot;&quot;, &quot;X.Inner&quot;}}&lt;/code> represents the inner type Inner defined in type X in the
* default package.
* &lt;/p>
*
* @param typeName the given type name
* @param owner the owner of working copies that take precedence over their original compilation units
* @exception JavaModelException if code resolve could not be performed.
* @return the resolved type names or &lt;code>null&lt;/code> if unable to find any matching type
* @see #getTypeQualifiedName(char)
* @since 3.0
</body>
</ownedComment>
<ownedParameter xmi:id="_xCx6YmHhEeCCRJbbKD_TsQ" type="_dSiS02EMEeCdEc4VzBeWeQ" direction="return">
<upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_xDE1UGHhEeCCRJbbKD_TsQ" value="*"/>
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_xC7rYGHhEeCCRJbbKD_TsQ"/>
</ownedParameter>
<ownedParameter xmi:id="_xDOmUGHhEeCCRJbbKD_TsQ" name="typeName" type="_dSiS02EMEeCdEc4VzBeWeQ"/>
<ownedParameter xmi:id="_xDYXUGHhEeCCRJbbKD_TsQ" name="owner" type="_nI23sGEMEeCdEc4VzBeWeQ"/>
</ownedOperation>
</packagedElement>
<packagedElement xmi:type="uml:Interface" xmi:id="_kwkKoGEMEeCdEc4VzBeWeQ" name="ITypeHierarchy">
<ownedComment xmi:id="_kwt7oGEMEeCdEc4VzBeWeQ">
<body>
* A type hierarchy provides navigations between a type and its resolved
* supertypes and subtypes for a specific type or for all types within a region.
* Supertypes may extend outside of the type hierarchy's region in which it was
* created such that the root of the hierarchy is always included. For example, if a type
* hierarchy is created for a &lt;code>java.io.File&lt;/code>, and the region the hierarchy was
* created in is the package fragment &lt;code>java.io&lt;/code>, the supertype
* &lt;code>java.lang.Object&lt;/code> will still be included. As a historical quirk,
* &lt;code>java.lang.Object&lt;/code> has always been included in type hierarchies
* created on interface types.
* &lt;p>
* A type hierarchy is static and can become stale. Although consistent when
* created, it does not automatically track changes in the model.
* As changes in the model potentially invalidate the hierarchy, change notifications
* are sent to registered &lt;code>ITypeHierarchyChangedListener&lt;/code>s. Listeners should
* use the &lt;code>exists&lt;/code> method to determine if the hierarchy has become completely
* invalid (for example, when the type or project the hierarchy was created on
* has been removed). To refresh a hierarchy, use the &lt;code>refresh&lt;/code> method.
* &lt;/p>
* &lt;p>
* The type hierarchy may contain cycles due to malformed supertype declarations.
* Most type hierarchy queries are oblivious to cycles; the &lt;code>getAll* &lt;/code>
* methods are implemented such that they are unaffected by cycles.
* &lt;/p>
*
* @noimplement This interface is not intended to be implemented by clients.
</body>
</ownedComment>
</packagedElement>
<packagedElement xmi:type="uml:Interface" xmi:id="_kwt7oWEMEeCdEc4VzBeWeQ" name="ITypeHierarchyChangedListener">
<ownedComment xmi:id="_kw3soGEMEeCdEc4VzBeWeQ">
<body>
* A listener which gets notified when a particular type hierarchy object
* changes.
* &lt;p>
* This interface may be implemented by clients.
* &lt;/p>
</body>
</ownedComment>
<ownedOperation xmi:id="_kw3soWEMEeCdEc4VzBeWeQ" name="typeHierarchyChanged">
<ownedComment xmi:id="_kw3somEMEeCdEc4VzBeWeQ">
<body>
* Notifies that the given type hierarchy has changed in some way and should
* be refreshed at some point to make it consistent with the current state of
* the Java model.
*
* @param typeHierarchy the given type hierarchy
</body>
</ownedComment>
<ownedParameter xmi:id="_kw3so2EMEeCdEc4VzBeWeQ" name="typeHierarchy" type="_kwkKoGEMEeCdEc4VzBeWeQ"/>
</ownedOperation>
</packagedElement>
<packagedElement xmi:type="uml:Interface" xmi:id="_kxKnkGEMEeCdEc4VzBeWeQ" name="ITypeParameter">
<ownedComment xmi:id="_kxKnkWEMEeCdEc4VzBeWeQ">
<body>
* Represents a type parameter defined by a type or a method
* in a compilation unit or a class file.
* &lt;p>
* Type parameters are obtained using {@link IType#getTypeParameter(String)} and
* {@link IMethod#getTypeParameter(String)}.
* &lt;/p>&lt;p>
* Note that type parameters are not children of their declaring type or method. To get a list
* of the type parameters use {@link IType#getTypeParameters()} for a type and use
* {@link IMethod#getTypeParameters()} for a method.
* &lt;/p>
*
* @since 3.1
* @noimplement This interface is not intended to be implemented by clients.
</body>
</ownedComment>
<generalization xmi:id="_kxKnkmEMEeCdEc4VzBeWeQ" general="_kO5A8GEMEeCdEc4VzBeWeQ"/>
<generalization xmi:id="_kxKnk2EMEeCdEc4VzBeWeQ" general="_kuCbEGEMEeCdEc4VzBeWeQ"/>
<ownedOperation xmi:id="_kxUYkGEMEeCdEc4VzBeWeQ" name="getBounds">
<ownedComment xmi:id="_kxUYkWEMEeCdEc4VzBeWeQ">
<body>
* Returns the names of the class and interface bounds of this type parameter. Returns an empty
* array if this type parameter has no bounds. A bound name is the name as it appears in the
* source (without the &lt;code>extends&lt;/code> keyword) if the type parameter comes from a
* compilation unit. It is the dot-separated fully qualified name of the bound if the type
* parameter comes from a class file.
*
* @return the names of the bounds
* @throws JavaModelException if this element does not exist or if an
* exception occurs while accessing its corresponding resource
</body>
</ownedComment>
<ownedParameter xmi:id="_kxUYkmEMEeCdEc4VzBeWeQ" type="_dSiS02EMEeCdEc4VzBeWeQ" direction="return">
<upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_kxUYlGEMEeCdEc4VzBeWeQ" value="*"/>
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_kxUYk2EMEeCdEc4VzBeWeQ"/>
</ownedParameter>
</ownedOperation>
<ownedOperation xmi:id="_kxUYlWEMEeCdEc4VzBeWeQ" name="getBoundsSignatures">
<ownedComment xmi:id="_kxUYlmEMEeCdEc4VzBeWeQ">
<body>
* Returns the signatures for this type parameter's bounds. The type parameter may have
* been declared as part of a type or a method. The signatures represent only the individual
* bounds and do not include the type variable name or the &lt;code>extends&lt;/code> keyword.
* The signatures may be either unresolved (for source types) or resolved (for binary types).
* See {@link Signature} for details.
*
* @return the signatures for the bounds of this formal type parameter
* @throws JavaModelException
* if this element does not exist or if an exception occurs while accessing its corresponding resource.
* @see Signature
* @since 3.6
</body>
</ownedComment>
<ownedParameter xmi:id="_kxdigGEMEeCdEc4VzBeWeQ" type="_dSiS02EMEeCdEc4VzBeWeQ" direction="return">
<upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_kxdigmEMEeCdEc4VzBeWeQ" value="*"/>
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_kxdigWEMEeCdEc4VzBeWeQ"/>
</ownedParameter>
</ownedOperation>
<ownedOperation xmi:id="_kxdig2EMEeCdEc4VzBeWeQ" name="getDeclaringMember">
<ownedComment xmi:id="_kxdihGEMEeCdEc4VzBeWeQ">
<body>
* Returns the declaring member of this type parameter. This can be either an &lt;code>IType&lt;/code>
* or an &lt;code>IMethod&lt;/code>.
* &lt;p>
* This is a handle-only method.
* &lt;/p>
*
* @return the declaring member of this type parameter.
</body>
</ownedComment>
<ownedParameter xmi:id="_kxnTgGEMEeCdEc4VzBeWeQ" type="_klF6cGEMEeCdEc4VzBeWeQ" direction="return"/>
</ownedOperation>
<ownedOperation xmi:id="_kxnTgWEMEeCdEc4VzBeWeQ" name="getTypeRoot">
<ownedComment xmi:id="_kxnTgmEMEeCdEc4VzBeWeQ">
<body>
* Returns the Java type root in which this type parameter is declared.
* &lt;p>
* This is a handle-only method.
* &lt;/p>
*
* @return the Java type root in which this type parameter is declared
* @since 3.7
</body>
</ownedComment>
</ownedOperation>
</packagedElement>
<packagedElement xmi:type="uml:Interface" xmi:id="_kyNJYGEMEeCdEc4VzBeWeQ" name="ITypeRoot">
<ownedComment xmi:id="_kyW6YGEMEeCdEc4VzBeWeQ">
<body>
* Represents an entire Java type root (either an &lt;code>ICompilationUnit&lt;/code>
* or an &lt;code>IClassFile&lt;/code>).
*
* @see ICompilationUnit Note that methods {@link #findPrimaryType()} and {@link #getElementAt(int)}
* were already implemented in this interface respectively since version 3.0 and version 1.0.
* @see IClassFile Note that method {@link #getWorkingCopy(WorkingCopyOwner, IProgressMonitor)}
* was already implemented in this interface since version 3.0.
* @since 3.3
* @noimplement This interface is not intended to be implemented by clients.
</body>
</ownedComment>
<generalization xmi:id="_kyW6YWEMEeCdEc4VzBeWeQ" general="_kO5A8GEMEeCdEc4VzBeWeQ"/>
<generalization xmi:id="_kyW6YmEMEeCdEc4VzBeWeQ" general="_kq6OkGEMEeCdEc4VzBeWeQ"/>
<generalization xmi:id="_kyW6Y2EMEeCdEc4VzBeWeQ" general="_koX38GEMEeCdEc4VzBeWeQ"/>
<generalization xmi:id="_kyW6ZGEMEeCdEc4VzBeWeQ" general="_kuCbEGEMEeCdEc4VzBeWeQ"/>
<generalization xmi:id="_kyW6ZWEMEeCdEc4VzBeWeQ" general="_j54aQGEMEeCdEc4VzBeWeQ"/>
<ownedOperation xmi:id="_kygrYGEMEeCdEc4VzBeWeQ" name="findPrimaryType">
<ownedComment xmi:id="_kygrYWEMEeCdEc4VzBeWeQ">
<body>
* Finds the primary type of this Java type root (that is, the type with the same name as the
* compilation unit, or the type of a class file), or &lt;code>null&lt;/code> if no such a type exists.
*
* @return the found primary type of this Java type root, or &lt;code>null&lt;/code> if no such a type exists
</body>
</ownedComment>
<ownedParameter xmi:id="_kygrYmEMEeCdEc4VzBeWeQ" type="_kvE84GEMEeCdEc4VzBeWeQ" direction="return"/>
</ownedOperation>
<ownedOperation xmi:id="_kygrY2EMEeCdEc4VzBeWeQ" name="getElementAt">
<ownedComment xmi:id="_kygrZGEMEeCdEc4VzBeWeQ">
<body>
* Returns the smallest element within this Java type root that
* includes the given source position (that is, a method, field, etc.), or
* &lt;code>null&lt;/code> if there is no element other than the Java type root
* itself at the given position, or if the given position is not
* within the source range of the source of this Java type root.
*
* @param position a source position inside the Java type root
* @return the innermost Java element enclosing a given source position or &lt;code>null&lt;/code>
* if none (excluding the Java type root).
* @throws JavaModelException if the Java type root does not exist or if an
* exception occurs while accessing its corresponding resource
</body>
</ownedComment>
<ownedParameter xmi:id="_kygrZWEMEeCdEc4VzBeWeQ" type="_kO5A8GEMEeCdEc4VzBeWeQ" direction="return"/>
<ownedParameter xmi:id="_kyp1UGEMEeCdEc4VzBeWeQ" name="position" type="_dTlbsGEMEeCdEc4VzBeWeQ"/>
</ownedOperation>
</packagedElement>
<packagedElement xmi:type="uml:Interface" xmi:id="_ky8wQGEMEeCdEc4VzBeWeQ" name="IWorkingCopy">
<ownedComment xmi:id="_kzGhQGEMEeCdEc4VzBeWeQ">
<body>
* Common protocol for Java elements that support working copies.
* &lt;p>
* A working copy of a Java element acts just like a regular element (handle),
* except it is not attached to an underlying resource. A working copy is not
* visible to the rest of the Java model. Changes in a working copy's
* buffer are not realized in a resource. To bring the Java model up-to-date with a working
* copy's contents, an explicit commit must be performed on the working copy.
* Other operations performed on a working copy update the
* contents of the working copy's buffer but do not commit the contents
* of the working copy.
* &lt;/p>
* &lt;p>
* Note: The contents of a working copy is determined when a working
* copy is created, based on the current content of the element the working
* copy is created from. If a working copy is an &lt;code>IOpenable&lt;/code> and is explicitly
* closed, the working copy's buffer will be thrown away. However, clients should not
* explicitly open and close working copies.
* &lt;/p>
* &lt;p>
* The client that creates a working copy is responsible for
* destroying the working copy. The Java model will never automatically
* destroy or close a working copy. (Note that destroying a working copy
* does not commit it to the model, it only frees up the memory occupied by
* the element). After a working copy is destroyed, the working copy cannot
* be accessed again. Non-handle methods will throw a
* &lt;code>JavaModelException&lt;/code> indicating the Java element does not exist.
* &lt;/p>
* &lt;p>
* A working copy cannot be created from another working copy.
* Calling &lt;code>getWorkingCopy&lt;/code> on a working copy returns the receiver.
* &lt;/p>
*
* @deprecated Use {@link ICompilationUnit} instead
* @noimplement This interface is not intended to be implemented by clients.
</body>
</ownedComment>
<ownedOperation xmi:id="_kzGhQWEMEeCdEc4VzBeWeQ" name="commit">
<ownedComment xmi:id="_kzGhQmEMEeCdEc4VzBeWeQ">
<body>
* Commits the contents of this working copy to its original element
* and underlying resource, bringing the Java model up-to-date with
* the current contents of the working copy.
*
* &lt;p>It is possible that the contents of the original resource have changed
* since this working copy was created, in which case there is an update conflict.
* The value of the &lt;code>force&lt;/code> parameter affects the resolution of
* such a conflict:&lt;ul>
* &lt;li> &lt;code>true&lt;/code> - in this case the contents of this working copy are applied to
* the underlying resource even though this working copy was created before
* a subsequent change in the resource&lt;/li>
* &lt;li> &lt;code>false&lt;/code> - in this case a &lt;code>JavaModelException&lt;/code> is thrown&lt;/li>
* &lt;/ul>
* &lt;p>
* Since 2.1, a working copy can be created on a not-yet existing compilation
* unit. In particular, such a working copy can then be committed in order to create
* the corresponding compilation unit.
* &lt;/p>
* @param force a flag to handle the cases when the contents of the original resource have changed
* since this working copy was created
* @param monitor the given progress monitor
* @exception JavaModelException if this working copy could not commit. Reasons include:
* &lt;ul>
* &lt;li> A &lt;code>CoreException&lt;/code> occurred while updating an underlying resource
* &lt;li> This element is not a working copy (INVALID_ELEMENT_TYPES)
* &lt;li> A update conflict (described above) (UPDATE_CONFLICT)
* &lt;/ul>
* @deprecated Use {@link ICompilationUnit#commitWorkingCopy(boolean, IProgressMonitor)} instead.
</body>
</ownedComment>
<ownedParameter xmi:id="_kzGhQ2EMEeCdEc4VzBeWeQ" name="force" type="_dVOadGEMEeCdEc4VzBeWeQ"/>
<ownedParameter xmi:id="_kzGhRGEMEeCdEc4VzBeWeQ" name="monitor" type="_jqFqwGEMEeCdEc4VzBeWeQ"/>
</ownedOperation>
<ownedOperation xmi:id="_kzQSQGEMEeCdEc4VzBeWeQ" name="destroy">
<ownedComment xmi:id="_kzQSQWEMEeCdEc4VzBeWeQ">
<body>
* Destroys this working copy, closing its buffer and discarding
* its structure. Subsequent attempts to access non-handle information
* for this working copy will result in &lt;code>IJavaModelException&lt;/code>s. Has
* no effect if this element is not a working copy.
* &lt;p>
* If this working copy is shared, it is destroyed only when the number of calls to
* &lt;code>destroy()&lt;/code> is the same as the number of calls to &lt;code>
* getSharedWorkingCopy(IProgressMonitor, IBufferFactory)&lt;/code>.
* &lt;/p>&lt;p>
* When it is destroyed, a REMOVED IJavaElementDelta is reported on this
* working copy.
* &lt;/p>
* @deprecated Use {@link ICompilationUnit#discardWorkingCopy()} instead.
</body>
</ownedComment>
</ownedOperation>
<ownedOperation xmi:id="_kzQSQmEMEeCdEc4VzBeWeQ" name="findSharedWorkingCopy">
<ownedComment xmi:id="_kzQSQ2EMEeCdEc4VzBeWeQ">
<body>
* Finds the shared working copy for this element, given a &lt;code>IBuffer&lt;/code> factory.
* If no working copy has been created for this element associated with this
* buffer factory, returns &lt;code>null&lt;/code>.
* &lt;p>
* Users of this method must not destroy the resulting working copy.
*
* @param bufferFactory the given &lt;code>IBuffer&lt;/code> factory
* @return the found shared working copy for this element, &lt;code>null&lt;/code> if none
* @see IBufferFactory
* @since 2.0
*
* @deprecated Use {@link ICompilationUnit#findWorkingCopy(WorkingCopyOwner)} instead.
</body>
</ownedComment>
<ownedParameter xmi:id="_kzQSRGEMEeCdEc4VzBeWeQ" type="_kO5A8GEMEeCdEc4VzBeWeQ" direction="return"/>
<ownedParameter xmi:id="_kzQSRWEMEeCdEc4VzBeWeQ" name="bufferFactory" type="_j2Am4GEMEeCdEc4VzBeWeQ"/>
</ownedOperation>
<ownedOperation xmi:id="_kzZcMGEMEeCdEc4VzBeWeQ" name="getOriginal">
<ownedComment xmi:id="_kzZcMWEMEeCdEc4VzBeWeQ">
<body>
* Returns the original element the specified working copy element was created from,
* or &lt;code>null&lt;/code> if this is not a working copy element. This is a handle
* only method, the returned element may or may not exist.
*
* @param workingCopyElement the specified working copy element
* @return the original element the specified working copy element was created from,
* or &lt;code>null&lt;/code> if this is not a working copy element
*
* @deprecated Use {@link IJavaElement#getPrimaryElement()} instead.
</body>
</ownedComment>
<ownedParameter xmi:id="_kzZcMmEMEeCdEc4VzBeWeQ" type="_kO5A8GEMEeCdEc4VzBeWeQ" direction="return"/>
<ownedParameter xmi:id="_kzZcM2EMEeCdEc4VzBeWeQ" name="workingCopyElement" type="_kO5A8GEMEeCdEc4VzBeWeQ"/>
</ownedOperation>
<ownedOperation xmi:id="_kzZcNGEMEeCdEc4VzBeWeQ" name="getOriginalElement">
<ownedComment xmi:id="_kzZcNWEMEeCdEc4VzBeWeQ">
<body>
* Returns the original element this working copy was created from,
* or &lt;code>null&lt;/code> if this is not a working copy.
*
* @return the original element this working copy was created from,
* or &lt;code>null&lt;/code> if this is not a working copy
*
* @deprecated Use {@link ICompilationUnit#getPrimaryElement()} instead.
</body>
</ownedComment>
<ownedParameter xmi:id="_kzZcNmEMEeCdEc4VzBeWeQ" type="_kO5A8GEMEeCdEc4VzBeWeQ" direction="return"/>
</ownedOperation>
<ownedOperation xmi:id="_kzjNMGEMEeCdEc4VzBeWeQ" name="findElements">
<ownedComment xmi:id="_kzjNMWEMEeCdEc4VzBeWeQ">
<body>
* Finds the elements in this compilation unit that correspond to
* the given element.
* An element A corresponds to an element B if:
* &lt;ul>
* &lt;li>A has the same element name as B.
* &lt;li>If A is a method, A must have the same number of arguments as
* B and the simple names of the argument types must be equals.
* &lt;li>The parent of A corresponds to the parent of B recursively up to
* their respective compilation units.
* &lt;li>A exists.
* &lt;/ul>
* Returns &lt;code>null&lt;/code> if no such java elements can be found
* or if the given element is not included in a compilation unit.
*
* @param element the given element
* @return the found elements in this compilation unit that correspond to the given element
* @since 2.0
*
* @deprecated Use {@link ICompilationUnit#findElements(IJavaElement)} instead.
</body>
</ownedComment>
<ownedParameter xmi:id="_kzjNMmEMEeCdEc4VzBeWeQ" type="_kO5A8GEMEeCdEc4VzBeWeQ" direction="return">
<upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_kzjNNGEMEeCdEc4VzBeWeQ" value="*"/>
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_kzjNM2EMEeCdEc4VzBeWeQ"/>
</ownedParameter>
<ownedParameter xmi:id="_kzs-MGEMEeCdEc4VzBeWeQ" name="element" type="_kO5A8GEMEeCdEc4VzBeWeQ"/>
</ownedOperation>
<ownedOperation xmi:id="_kzs-MWEMEeCdEc4VzBeWeQ" name="findPrimaryType">
<ownedComment xmi:id="_kzs-MmEMEeCdEc4VzBeWeQ">
<body>
* Finds the primary type of this compilation unit (that is, the type with the same name as the
* compilation unit), or &lt;code>null&lt;/code> if no such a type exists.
*
* @return the found primary type of this compilation unit, or &lt;code>null&lt;/code> if no such a type exists
* @since 2.0
*
* @deprecated Use {@link ITypeRoot#findPrimaryType()} instead.
</body>
</ownedComment>
<ownedParameter xmi:id="_kzs-M2EMEeCdEc4VzBeWeQ" type="_kvE84GEMEeCdEc4VzBeWeQ" direction="return"/>
</ownedOperation>
<ownedOperation xmi:id="_kzs-NGEMEeCdEc4VzBeWeQ" name="getSharedWorkingCopy">
<ownedComment xmi:id="_kzs-NWEMEeCdEc4VzBeWeQ">
<body>
* Returns a shared working copy on this element using the given factory to create
* the buffer, or this element if this element is already a working copy.
* This API can only answer an already existing working copy if it is based on the same
* original compilation unit AND was using the same buffer factory (that is, as defined by &lt;code>Object.equals&lt;/code>).
* &lt;p>
* The life time of a shared working copy is as follows:
* &lt;ul>
* &lt;li>The first call to &lt;code>getSharedWorkingCopy(...)&lt;/code> creates a new working copy for this
* element&lt;/li>
* &lt;li>Subsequent calls increment an internal counter.&lt;/li>
* &lt;li>A call to &lt;code>destroy()&lt;/code> decrements the internal counter.&lt;/li>
* &lt;li>When this counter is 0, the working copy is destroyed.
* &lt;/ul>
* So users of this method must destroy exactly once the working copy.
* &lt;p>
* Note that the buffer factory will be used for the life time of this working copy, that is if the
* working copy is closed then reopened, this factory will be used.
* The buffer will be automatically initialized with the original's compilation unit content
* upon creation.
* &lt;p>
* When the shared working copy instance is created, an ADDED IJavaElementDelta is reported on this
* working copy.
*
* @param monitor a progress monitor used to report progress while opening this compilation unit
* or &lt;code>null&lt;/code> if no progress should be reported
* @param factory the factory that creates a buffer that is used to get the content of the working copy
* or &lt;code>null&lt;/code> if the internal factory should be used
* @param problemRequestor a requestor which will get notified of problems detected during
* reconciling as they are discovered. The requestor can be set to &lt;code>null&lt;/code> indicating
* that the client is not interested in problems.
* @exception JavaModelException if the contents of this element can
* not be determined.
* @return a shared working copy on this element using the given factory to create
* the buffer, or this element if this element is already a working copy
* @see IBufferFactory
* @see IProblemRequestor
* @since 2.0
*
* @deprecated Use {@link ICompilationUnit#getWorkingCopy(WorkingCopyOwner, IProblemRequestor, IProgressMonitor)} instead.
</body>
</ownedComment>
<ownedParameter xmi:id="_kz2IIGEMEeCdEc4VzBeWeQ" type="_kO5A8GEMEeCdEc4VzBeWeQ" direction="return"/>
<ownedParameter xmi:id="_kz2IIWEMEeCdEc4VzBeWeQ" name="monitor" type="_jqFqwGEMEeCdEc4VzBeWeQ"/>
<ownedParameter xmi:id="_kz2IImEMEeCdEc4VzBeWeQ" name="factory" type="_j2Am4GEMEeCdEc4VzBeWeQ"/>
<ownedParameter xmi:id="_kz2II2EMEeCdEc4VzBeWeQ" name="problemRequestor" type="_krNJgGEMEeCdEc4VzBeWeQ"/>
</ownedOperation>
<ownedOperation xmi:id="_kz_5IGEMEeCdEc4VzBeWeQ" name="getWorkingCopy">
<ownedComment xmi:id="_kz_5IWEMEeCdEc4VzBeWeQ">
<body>
* Returns a new working copy of this element if this element is not
* a working copy, or this element if this element is already a working copy.
* &lt;p>
* Note: if intending to share a working copy amongst several clients, then
* &lt;code>#getSharedWorkingCopy&lt;/code> should be used instead.
* &lt;/p>&lt;p>
* When the working copy instance is created, an ADDED IJavaElementDelta is
* reported on this working copy.
* &lt;/p>&lt;p>
* Since 2.1, a working copy can be created on a not-yet existing compilation
* unit. In particular, such a working copy can then be committed in order to create
* the corresponding compilation unit.
* &lt;/p>
* @exception JavaModelException if the contents of this element can
* not be determined.
* @return a new working copy of this element if this element is not
* a working copy, or this element if this element is already a working copy
*
* @deprecated Use {@link ICompilationUnit#getWorkingCopy(IProgressMonitor)} instead.
</body>
</ownedComment>
<ownedParameter xmi:id="_kz_5ImEMEeCdEc4VzBeWeQ" type="_kO5A8GEMEeCdEc4VzBeWeQ" direction="return"/>
</ownedOperation>
<ownedOperation xmi:id="_k0clEGEMEeCdEc4VzBeWeQ" name="getWorkingCopy">
<ownedComment xmi:id="_k0clEWEMEeCdEc4VzBeWeQ">
<body>
* Returns a new working copy of this element using the given factory to create
* the buffer, or this element if this element is already a working copy.
* Note that this factory will be used for the life time of this working copy, that is if the
* working copy is closed then reopened, this factory will be reused.
* The buffer will be automatically initialized with the original's compilation unit content
* upon creation.
* &lt;p>
* Note: if intending to share a working copy amongst several clients, then
* &lt;code>#getSharedWorkingCopy&lt;/code> should be used instead.
* &lt;/p>&lt;p>
* When the working copy instance is created, an ADDED IJavaElementDelta is
* reported on this working copy.
* &lt;/p>&lt;p>
* Since 2.1, a working copy can be created on a not-yet existing compilation
* unit. In particular, such a working copy can then be committed in order to create
* the corresponding compilation unit.
* &lt;/p>
* @param monitor a progress monitor used to report progress while opening this compilation unit
* or &lt;code>null&lt;/code> if no progress should be reported
* @param factory the factory that creates a buffer that is used to get the content of the working copy
* or &lt;code>null&lt;/code> if the internal factory should be used
* @param problemRequestor a requestor which will get notified of problems detected during
* reconciling as they are discovered. The requestor can be set to &lt;code>null&lt;/code> indicating
* that the client is not interested in problems.
* @exception JavaModelException if the contents of this element can
* not be determined.
* @return a new working copy of this element using the given factory to create
* the buffer, or this element if this element is already a working copy
* @since 2.0
*
* @deprecated Use {@link ICompilationUnit#getWorkingCopy(WorkingCopyOwner, IProblemRequestor, IProgressMonitor)} instead.
</body>
</ownedComment>
<ownedParameter xmi:id="_k0clEmEMEeCdEc4VzBeWeQ" type="_kO5A8GEMEeCdEc4VzBeWeQ" direction="return"/>
<ownedParameter xmi:id="_k0clE2EMEeCdEc4VzBeWeQ" name="monitor" type="_jqFqwGEMEeCdEc4VzBeWeQ"/>
<ownedParameter xmi:id="_k0lvAGEMEeCdEc4VzBeWeQ" name="factory" type="_j2Am4GEMEeCdEc4VzBeWeQ"/>
<ownedParameter xmi:id="_k0lvAWEMEeCdEc4VzBeWeQ" name="problemRequestor" type="_krNJgGEMEeCdEc4VzBeWeQ"/>
</ownedOperation>
<ownedOperation xmi:id="_k0lvAmEMEeCdEc4VzBeWeQ" name="isBasedOn">
<ownedComment xmi:id="_k0lvA2EMEeCdEc4VzBeWeQ">
<body>
* Returns whether this working copy's original element's content
* has not changed since the inception of this working copy.
*
* @param resource this working copy's resource
* @return true if this working copy's original element's content
* has not changed since the inception of this working copy, false otherwise
*
* @deprecated Use {@link ICompilationUnit#hasResourceChanged()} instead.
</body>
</ownedComment>
<ownedParameter xmi:id="_k0vgAGEMEeCdEc4VzBeWeQ" type="_dVOadGEMEeCdEc4VzBeWeQ" direction="return"/>
<ownedParameter xmi:id="_k0vgAWEMEeCdEc4VzBeWeQ" name="resource" type="_kQh_smEMEeCdEc4VzBeWeQ"/>
</ownedOperation>
<ownedOperation xmi:id="_k0vgAmEMEeCdEc4VzBeWeQ" name="isWorkingCopy">
<ownedComment xmi:id="_k0vgA2EMEeCdEc4VzBeWeQ">
<body>
* Returns whether this element is a working copy.
*
* @return true if this element is a working copy, false otherwise
*
* @deprecated Use {@link ICompilationUnit#isWorkingCopy()} instead.
</body>
</ownedComment>
<ownedParameter xmi:id="_k0vgBGEMEeCdEc4VzBeWeQ" type="_dVOadGEMEeCdEc4VzBeWeQ" direction="return"/>
</ownedOperation>
<ownedOperation xmi:id="_k05RAGEMEeCdEc4VzBeWeQ" name="reconcile">
<ownedComment xmi:id="_k05RAWEMEeCdEc4VzBeWeQ">
<body>
* Reconciles the contents of this working copy.
* It performs the reconciliation by locally caching the contents of
* the working copy, updating the contents, then creating a delta
* over the cached contents and the new contents, and finally firing
* this delta.
* &lt;p>
* If the working copy hasn't changed, then no problem will be detected,
* this is equivalent to &lt;code>IWorkingCopy#reconcile(false, null)&lt;/code>.&lt;/p>
* &lt;p>
* Compilation problems found in the new contents are notified through the
* &lt;code>IProblemRequestor&lt;/code> interface which was passed at
* creation, and no longer as transient markers. Therefore this API will
* return &lt;code>null&lt;/code>.&lt;/p>
* &lt;p>
* Note: Since 3.0 added/removed/changed inner types generate change deltas.&lt;/p>
*
* @exception JavaModelException if the contents of the original element
* cannot be accessed. Reasons include:
* &lt;ul>
* &lt;li> The original Java element does not exist (ELEMENT_DOES_NOT_EXIST)&lt;/li>
* &lt;/ul>
* @return &lt;code>null&lt;/code>
*
* @deprecated Use {@link ICompilationUnit#reconcile(int, boolean, WorkingCopyOwner, IProgressMonitor)} instead.
</body>
</ownedComment>
<ownedParameter xmi:id="_k05RAmEMEeCdEc4VzBeWeQ" type="_j6oBIGEMEeCdEc4VzBeWeQ" direction="return">
<upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_k05RBGEMEeCdEc4VzBeWeQ" value="*"/>
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_k05RA2EMEeCdEc4VzBeWeQ"/>
</ownedParameter>
</ownedOperation>
<ownedOperation xmi:id="_k1Ca8GEMEeCdEc4VzBeWeQ" name="reconcile">
<ownedComment xmi:id="_k1Ca8WEMEeCdEc4VzBeWeQ">
<body>
* Reconciles the contents of this working copy.
* It performs the reconciliation by locally caching the contents of
* the working copy, updating the contents, then creating a delta
* over the cached contents and the new contents, and finally firing
* this delta.
* &lt;p>
* The boolean argument allows to force problem detection even if the
* working copy is already consistent.&lt;/p>
* &lt;p>
* Compilation problems found in the new contents are notified through the
* &lt;code>IProblemRequestor&lt;/code> interface which was passed at
* creation, and no longer as transient markers. Therefore this API answers
* nothing.&lt;/p>
* &lt;p>
* Note: Since 3.0 added/removed/changed inner types generate change deltas.&lt;/p>
*
* @param forceProblemDetection boolean indicating whether problem should be recomputed
* even if the source hasn't changed.
* @param monitor a progress monitor
* @exception JavaModelException if the contents of the original element
* cannot be accessed. Reasons include:
* &lt;ul>
* &lt;li> The original Java element does not exist (ELEMENT_DOES_NOT_EXIST)&lt;/li>
* &lt;/ul>
* @since 2.0
*
* @deprecated Use {@link ICompilationUnit#reconcile(int, boolean, WorkingCopyOwner, IProgressMonitor)} instead.
</body>
</ownedComment>
<ownedParameter xmi:id="_k1Ca8mEMEeCdEc4VzBeWeQ" name="forceProblemDetection" type="_dVOadGEMEeCdEc4VzBeWeQ"/>
<ownedParameter xmi:id="_k1Ca82EMEeCdEc4VzBeWeQ" name="monitor" type="_jqFqwGEMEeCdEc4VzBeWeQ"/>
</ownedOperation>
<ownedOperation xmi:id="_k1Ca9GEMEeCdEc4VzBeWeQ" name="restore">
<ownedComment xmi:id="_k1Ca9WEMEeCdEc4VzBeWeQ">
<body>
* Restores the contents of this working copy to the current contents of
* this working copy's original element. Has no effect if this element
* is not a working copy.
*
* &lt;p>Note: This is the inverse of committing the content of the
* working copy to the original element with &lt;code>commit(boolean, IProgressMonitor)&lt;/code>.
*
* @exception JavaModelException if the contents of the original element
* cannot be accessed. Reasons include:
* &lt;ul>
* &lt;li> The original Java element does not exist (ELEMENT_DOES_NOT_EXIST)&lt;/li>
* &lt;/ul>
* @deprecated Use {@link ICompilationUnit#restore()} instead.
</body>
</ownedComment>
</ownedOperation>
</packagedElement>
<packagedElement xmi:type="uml:Class" xmi:id="_k3bAkGEMEeCdEc4VzBeWeQ" name="JavaConventions" isLeaf="true">
<ownedComment xmi:id="_k3kxkGEMEeCdEc4VzBeWeQ">
<body>
* Provides methods for checking Java-specific conventions such as name syntax.
* &lt;p>
* This class provides static methods and constants only.
* &lt;/p>
* @noinstantiate This class is not intended to be instantiated by clients.
</body>
</ownedComment>
<ownedAttribute xmi:id="_k3kxkWEMEeCdEc4VzBeWeQ" name="DOT" visibility="private" isLeaf="true" isStatic="true" type="_dUn9g2EMEeCdEc4VzBeWeQ" isUnique="false"/>
<ownedAttribute xmi:id="_k3t7gGEMEeCdEc4VzBeWeQ" name="PACKAGE_INFO" visibility="private" isLeaf="true" isStatic="true" type="_dSiS02EMEeCdEc4VzBeWeQ" isUnique="false"/>
<ownedAttribute xmi:id="_k33shGEMEeCdEc4VzBeWeQ" name="SCANNER" visibility="private" isLeaf="true" isStatic="true" type="_k33sg2EMEeCdEc4VzBeWeQ" isUnique="false"/>
<ownedOperation xmi:id="_k4BdgGEMEeCdEc4VzBeWeQ" name="isOverlappingRoots" visibility="public" isStatic="true">
<ownedComment xmi:id="_k4BdgWEMEeCdEc4VzBeWeQ">
<body>
* Returns whether the given package fragment root paths are considered
* to overlap.
* &lt;p>
* Two root paths overlap if one is a prefix of the other, or they point to
* the same location. However, a JAR is allowed to be nested in a root.
*
* @param rootPath1 the first root path
* @param rootPath2 the second root path
* @return true if the given package fragment root paths are considered to overlap, false otherwise
* @deprecated Overlapping roots are allowed in 2.1
</body>
</ownedComment>
<ownedParameter xmi:id="_k4KncGEMEeCdEc4VzBeWeQ" type="_dVOadGEMEeCdEc4VzBeWeQ" direction="return"/>
<ownedParameter xmi:id="_k4UYcGEMEeCdEc4VzBeWeQ" name="rootPath1" type="_j00UEmEMEeCdEc4VzBeWeQ"/>
<ownedParameter xmi:id="_k4UYcWEMEeCdEc4VzBeWeQ" name="rootPath2" type="_j00UEmEMEeCdEc4VzBeWeQ"/>
</ownedOperation>
<ownedOperation xmi:id="_k4UYcmEMEeCdEc4VzBeWeQ" name="scannedIdentifier" visibility="private" isStatic="true">
<ownedParameter xmi:id="_k4UYc2EMEeCdEc4VzBeWeQ" type="_dUn9g2EMEeCdEc4VzBeWeQ" direction="return">
<upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_k4eJcWEMEeCdEc4VzBeWeQ" value="*"/>
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_k4eJcGEMEeCdEc4VzBeWeQ"/>
</ownedParameter>
<ownedParameter xmi:id="_k4eJcmEMEeCdEc4VzBeWeQ" name="id" type="_dSiS02EMEeCdEc4VzBeWeQ"/>
<ownedParameter xmi:id="_k4nTYGEMEeCdEc4VzBeWeQ" name="sourceLevel" type="_dSiS02EMEeCdEc4VzBeWeQ"/>
<ownedParameter xmi:id="_k4nTYWEMEeCdEc4VzBeWeQ" name="complianceLevel" type="_dSiS02EMEeCdEc4VzBeWeQ"/>
</ownedOperation>
<ownedOperation xmi:id="_k4nTYmEMEeCdEc4VzBeWeQ" name="validateCompilationUnitName" visibility="public" isStatic="true">
<ownedComment xmi:id="_k4nTY2EMEeCdEc4VzBeWeQ">
<body>
* Validate the given compilation unit name.
* &lt;p>
* A compilation unit name must obey the following rules:
* &lt;ul>
* &lt;li> it must not be null
* &lt;li> it must be suffixed by a dot ('.') followed by one of the
* {@link JavaCore#getJavaLikeExtensions() Java-like extensions}
* &lt;li> its prefix must be a valid identifier
* &lt;li> it must not contain any characters or substrings that are not valid
* on the file system on which workspace root is located.
* &lt;/ul>
* &lt;/p>
* @param name the name of a compilation unit
* @return a status object with code &lt;code>IStatus.OK&lt;/code> if
* the given name is valid as a compilation unit name, otherwise a status
* object indicating what is wrong with the name
* @deprecated Use {@link #validateCompilationUnitName(String id, String sourceLevel, String complianceLevel)} instead
</body>
</ownedComment>
<ownedParameter xmi:id="_k4xEYGEMEeCdEc4VzBeWeQ" type="_kaOHMWEMEeCdEc4VzBeWeQ" direction="return"/>
<ownedParameter xmi:id="_k4xEYWEMEeCdEc4VzBeWeQ" name="name" type="_dSiS02EMEeCdEc4VzBeWeQ"/>
</ownedOperation>
<ownedOperation xmi:id="_k5D_UGEMEeCdEc4VzBeWeQ" name="validateCompilationUnitName" visibility="public" isStatic="true">
<ownedComment xmi:id="_k5D_UWEMEeCdEc4VzBeWeQ">
<body>
* Validate the given compilation unit name for the given source and compliance levels.
* &lt;p>
* A compilation unit name must obey the following rules:
* &lt;ul>
* &lt;li> it must not be null
* &lt;li> it must be suffixed by a dot ('.') followed by one of the
* {@link JavaCore#getJavaLikeExtensions() Java-like extensions}
* &lt;li> its prefix must be a valid identifier
* &lt;li> it must not contain any characters or substrings that are not valid
* on the file system on which workspace root is located.
* &lt;/ul>
* &lt;/p>
* @param name the name of a compilation unit
* @param sourceLevel the source level
* @param complianceLevel the compliance level
* @return a status object with code &lt;code>IStatus.OK&lt;/code> if
* the given name is valid as a compilation unit name, otherwise a status
* object indicating what is wrong with the name
* @since 3.3
</body>
</ownedComment>
<ownedParameter xmi:id="_k5NwUGEMEeCdEc4VzBeWeQ" type="_kaOHMWEMEeCdEc4VzBeWeQ" direction="return"/>
<ownedParameter xmi:id="_k5NwUWEMEeCdEc4VzBeWeQ" name="name" type="_dSiS02EMEeCdEc4VzBeWeQ"/>
<ownedParameter xmi:id="_k5NwUmEMEeCdEc4VzBeWeQ" name="sourceLevel" type="_dSiS02EMEeCdEc4VzBeWeQ"/>
<ownedParameter xmi:id="_k5W6QGEMEeCdEc4VzBeWeQ" name="complianceLevel" type="_dSiS02EMEeCdEc4VzBeWeQ"/>
</ownedOperation>
<ownedOperation xmi:id="_k5W6QWEMEeCdEc4VzBeWeQ" name="validateClassFileName" visibility="public" isStatic="true">
<ownedComment xmi:id="_k5W6QmEMEeCdEc4VzBeWeQ">
<body>
* Validate the given .class file name.
* &lt;p>
* A .class file name must obey the following rules:
* &lt;ul>
* &lt;li> it must not be null
* &lt;li> it must include the &lt;code>&quot;.class&quot;&lt;/code> suffix
* &lt;li> its prefix must be a valid identifier
* &lt;li> it must not contain any characters or substrings that are not valid
* on the file system on which workspace root is located.
* &lt;/ul>
* &lt;/p>
* @param name the name of a .class file
* @return a status object with code &lt;code>IStatus.OK&lt;/code> if
* the given name is valid as a .class file name, otherwise a status
* object indicating what is wrong with the name
* @since 2.0
* @deprecated Use {@link #validateClassFileName(String id, String sourceLevel, String complianceLevel)} instead
</body>
</ownedComment>
<ownedParameter xmi:id="_k5grQGEMEeCdEc4VzBeWeQ" type="_kaOHMWEMEeCdEc4VzBeWeQ" direction="return"/>
<ownedParameter xmi:id="_k5grQWEMEeCdEc4VzBeWeQ" name="name" type="_dSiS02EMEeCdEc4VzBeWeQ"/>
</ownedOperation>
<ownedOperation xmi:id="_k5grQmEMEeCdEc4VzBeWeQ" name="validateClassFileName" visibility="public" isStatic="true">
<ownedComment xmi:id="_k5grQ2EMEeCdEc4VzBeWeQ">
<body>
* Validate the given .class file name for the given source and compliance levels.
* &lt;p>
* A .class file name must obey the following rules:
* &lt;ul>
* &lt;li> it must not be null
* &lt;li> it must include the &lt;code>&quot;.class&quot;&lt;/code> suffix
* &lt;li> its prefix must be a valid identifier
* &lt;li> it must not contain any characters or substrings that are not valid
* on the file system on which workspace root is located.
* &lt;/ul>
* &lt;/p>
* @param name the name of a .class file
* @param sourceLevel the source level
* @param complianceLevel the compliance level
* @return a status object with code &lt;code>IStatus.OK&lt;/code> if
* the given name is valid as a .class file name, otherwise a status
* object indicating what is wrong with the name
* @since 3.3
</body>
</ownedComment>
<ownedParameter xmi:id="_k5qcQGEMEeCdEc4VzBeWeQ" type="_kaOHMWEMEeCdEc4VzBeWeQ" direction="return"/>
<ownedParameter xmi:id="_k5qcQWEMEeCdEc4VzBeWeQ" name="name" type="_dSiS02EMEeCdEc4VzBeWeQ"/>
<ownedParameter xmi:id="_k5qcQmEMEeCdEc4VzBeWeQ" name="sourceLevel" type="_dSiS02EMEeCdEc4VzBeWeQ"/>
<ownedParameter xmi:id="_k5zmMGEMEeCdEc4VzBeWeQ" name="complianceLevel" type="_dSiS02EMEeCdEc4VzBeWeQ"/>
</ownedOperation>
<ownedOperation xmi:id="_k5zmMWEMEeCdEc4VzBeWeQ" name="validateFieldName" visibility="public" isStatic="true">
<ownedComment xmi:id="_k5zmMmEMEeCdEc4VzBeWeQ">
<body>
* Validate the given field name.
* &lt;p>
* Syntax of a field name corresponds to VariableDeclaratorId (JLS2 8.3).
* For example, &lt;code>&quot;x&quot;&lt;/code>.
*
* @param name the name of a field
* @return a status object with code &lt;code>IStatus.OK&lt;/code> if
* the given name is valid as a field name, otherwise a status
* object indicating what is wrong with the name
* @deprecated Use {@link #validateFieldName(String id, String sourceLevel, String complianceLevel)} instead
</body>
</ownedComment>
<ownedParameter xmi:id="_k5zmM2EMEeCdEc4VzBeWeQ" type="_kaOHMWEMEeCdEc4VzBeWeQ" direction="return"/>
<ownedParameter xmi:id="_k59XMGEMEeCdEc4VzBeWeQ" name="name" type="_dSiS02EMEeCdEc4VzBeWeQ"/>
</ownedOperation>
<ownedOperation xmi:id="_k59XMWEMEeCdEc4VzBeWeQ" name="validateFieldName" visibility="public" isStatic="true">
<ownedComment xmi:id="_k59XMmEMEeCdEc4VzBeWeQ">
<body>
* Validate the given field name for the given source and compliance levels.
* &lt;p>
* Syntax of a field name corresponds to VariableDeclaratorId (JLS2 8.3).
* For example, &lt;code>&quot;x&quot;&lt;/code>.
*
* @param name the name of a field
* @param sourceLevel the source level
* @param complianceLevel the compliance level
* @return a status object with code &lt;code>IStatus.OK&lt;/code> if
* the given name is valid as a field name, otherwise a status
* object indicating what is wrong with the name
* @since 3.3
</body>
</ownedComment>
<ownedParameter xmi:id="_k6GhIGEMEeCdEc4VzBeWeQ" type="_kaOHMWEMEeCdEc4VzBeWeQ" direction="return"/>
<ownedParameter xmi:id="_k6GhIWEMEeCdEc4VzBeWeQ" name="name" type="_dSiS02EMEeCdEc4VzBeWeQ"/>
<ownedParameter xmi:id="_k6QSIGEMEeCdEc4VzBeWeQ" name="sourceLevel" type="_dSiS02EMEeCdEc4VzBeWeQ"/>
<ownedParameter xmi:id="_k6QSIWEMEeCdEc4VzBeWeQ" name="complianceLevel" type="_dSiS02EMEeCdEc4VzBeWeQ"/>
</ownedOperation>
<ownedOperation xmi:id="_k6QSImEMEeCdEc4VzBeWeQ" name="validateIdentifier" visibility="public" isStatic="true">
<ownedComment xmi:id="_k6QSI2EMEeCdEc4VzBeWeQ">
<body>
* Validate the given Java identifier.
* The identifier must not have the same spelling as a Java keyword,
* boolean literal (&lt;code>&quot;true&quot;&lt;/code>, &lt;code>&quot;false&quot;&lt;/code>), or null literal (&lt;code>&quot;null&quot;&lt;/code>).
* See section 3.8 of the &lt;em>Java Language Specification, Second Edition&lt;/em> (JLS2).
* A valid identifier can act as a simple type name, method name or field name.
*
* @param id the Java identifier
* @return a status object with code &lt;code>IStatus.OK&lt;/code> if
* the given identifier is a valid Java identifier, otherwise a status
* object indicating what is wrong with the identifier
* @deprecated Use {@link #validateIdentifier(String id, String sourceLevel, String complianceLevel)} instead
</body>
</ownedComment>
<ownedParameter xmi:id="_k6aDIGEMEeCdEc4VzBeWeQ" type="_kaOHMWEMEeCdEc4VzBeWeQ" direction="return"/>
<ownedParameter xmi:id="_k6s-EGEMEeCdEc4VzBeWeQ" name="id" type="_dSiS02EMEeCdEc4VzBeWeQ"/>
</ownedOperation>
<ownedOperation xmi:id="_k7JqAGEMEeCdEc4VzBeWeQ" name="validateIdentifier" visibility="public" isStatic="true">
<ownedComment xmi:id="_k7JqAWEMEeCdEc4VzBeWeQ">
<body>
* Validate the given Java identifier for the given source and compliance levels
* The identifier must not have the same spelling as a Java keyword,
* boolean literal (&lt;code>&quot;true&quot;&lt;/code>, &lt;code>&quot;false&quot;&lt;/code>), or null literal (&lt;code>&quot;null&quot;&lt;/code>).
* See section 3.8 of the &lt;em>Java Language Specification, Second Edition&lt;/em> (JLS2).
* A valid identifier can act as a simple type name, method name or field name.
*
* @param id the Java identifier
* @param sourceLevel the source level
* @param complianceLevel the compliance level
* @return a status object with code &lt;code>IStatus.OK&lt;/code> if
* the given identifier is a valid Java identifier, otherwise a status
* object indicating what is wrong with the identifier
* @since 3.3
</body>
</ownedComment>
<ownedParameter xmi:id="_k7JqAmEMEeCdEc4VzBeWeQ" type="_kaOHMWEMEeCdEc4VzBeWeQ" direction="return"/>
<ownedParameter xmi:id="_k7Sz8GEMEeCdEc4VzBeWeQ" name="id" type="_dSiS02EMEeCdEc4VzBeWeQ"/>
<ownedParameter xmi:id="_k7Sz8WEMEeCdEc4VzBeWeQ" name="sourceLevel" type="_dSiS02EMEeCdEc4VzBeWeQ"/>
<ownedParameter xmi:id="_k7Sz8mEMEeCdEc4VzBeWeQ" name="complianceLevel" type="_dSiS02EMEeCdEc4VzBeWeQ"/>
</ownedOperation>
<ownedOperation xmi:id="_k7ck8GEMEeCdEc4VzBeWeQ" name="validateImportDeclaration" visibility="public" isStatic="true">
<ownedComment xmi:id="_k7ck8WEMEeCdEc4VzBeWeQ">
<body>
* Validate the given import declaration name.
* &lt;p>
* The name of an import corresponds to a fully qualified type name
* or an on-demand package name as defined by ImportDeclaration (JLS2 7.5).
* For example, &lt;code>&quot;java.util.*&quot;&lt;/code> or &lt;code>&quot;java.util.Hashtable&quot;&lt;/code>.
*
* @param name the import declaration
* @return a status object with code &lt;code>IStatus.OK&lt;/code> if
* the given name is valid as an import declaration, otherwise a status
* object indicating what is wrong with the name
* @deprecated Use {@link #validateImportDeclaration(String id, String sourceLevel, String complianceLevel)} instead
</body>
</ownedComment>
<ownedParameter xmi:id="_k7ck8mEMEeCdEc4VzBeWeQ" type="_kaOHMWEMEeCdEc4VzBeWeQ" direction="return"/>
<ownedParameter xmi:id="_k7ck82EMEeCdEc4VzBeWeQ" name="name" type="_dSiS02EMEeCdEc4VzBeWeQ"/>
</ownedOperation>
<ownedOperation xmi:id="_k7mV8GEMEeCdEc4VzBeWeQ" name="validateImportDeclaration" visibility="public" isStatic="true">
<ownedComment xmi:id="_k7mV8WEMEeCdEc4VzBeWeQ">
<body>
* Validate the given import declaration name for the given source and compliance levels.
* &lt;p>
* The name of an import corresponds to a fully qualified type name
* or an on-demand package name as defined by ImportDeclaration (JLS2 7.5).
* For example, &lt;code>&quot;java.util.*&quot;&lt;/code> or &lt;code>&quot;java.util.Hashtable&quot;&lt;/code>.
*
* @param name the import declaration
* @param sourceLevel the source level
* @param complianceLevel the compliance level
* @return a status object with code &lt;code>IStatus.OK&lt;/code> if
* the given name is valid as an import declaration, otherwise a status
* object indicating what is wrong with the name
* @since 3.3
</body>
</ownedComment>
<ownedParameter xmi:id="_k7mV8mEMEeCdEc4VzBeWeQ" type="_kaOHMWEMEeCdEc4VzBeWeQ" direction="return"/>
<ownedParameter xmi:id="_k7mV82EMEeCdEc4VzBeWeQ" name="name" type="_dSiS02EMEeCdEc4VzBeWeQ"/>
<ownedParameter xmi:id="_k7vf4GEMEeCdEc4VzBeWeQ" name="sourceLevel" type="_dSiS02EMEeCdEc4VzBeWeQ"/>
<ownedParameter xmi:id="_k7vf4WEMEeCdEc4VzBeWeQ" name="complianceLevel" type="_dSiS02EMEeCdEc4VzBeWeQ"/>
</ownedOperation>
<ownedOperation xmi:id="_k7vf4mEMEeCdEc4VzBeWeQ" name="validateJavaTypeName" visibility="public" isStatic="true">
<ownedComment xmi:id="_k7vf42EMEeCdEc4VzBeWeQ">
<body>
* Validate the given Java type name, either simple or qualified.
* For example, &lt;code>&quot;java.lang.Object&quot;&lt;/code>, or &lt;code>&quot;Object&quot;&lt;/code>.
* &lt;p>
*
* @param name the name of a type
* @return a status object with code &lt;code>IStatus.OK&lt;/code> if
* the given name is valid as a Java type name,
* a status with code &lt;code>IStatus.WARNING&lt;/code>
* indicating why the given name is discouraged,
* otherwise a status object indicating what is wrong with
* the name
* @deprecated Use {@link #validateJavaTypeName(String id, String sourceLevel, String complianceLevel)} instead
</body>
</ownedComment>
<ownedParameter xmi:id="_k75Q4GEMEeCdEc4VzBeWeQ" type="_kaOHMWEMEeCdEc4VzBeWeQ" direction="return"/>
<ownedParameter xmi:id="_k75Q4WEMEeCdEc4VzBeWeQ" name="name" type="_dSiS02EMEeCdEc4VzBeWeQ"/>
</ownedOperation>
<ownedOperation xmi:id="_k75Q4mEMEeCdEc4VzBeWeQ" name="validateJavaTypeName" visibility="public" isStatic="true">
<ownedComment xmi:id="_k75Q42EMEeCdEc4VzBeWeQ">
<body>
* Validate the given Java type name, either simple or qualified, for the given source and compliance levels.
*
* &lt;p>For example, &lt;code>&quot;java.lang.Object&quot;&lt;/code>, or &lt;code>&quot;Object&quot;&lt;/code>.&lt;/p>
*
* &lt;p>The source level and compliance level values should be taken from the constant defined inside
* {@link JavaCore} class. The constants are named &lt;code>JavaCore#VERSION_1_x&lt;/code>, x being set
* between '1' and '7'.
* &lt;/p>
*
* @param name the name of a type
* @param sourceLevel the source level
* @param complianceLevel the compliance level
* @return a status object with code &lt;code>IStatus.OK&lt;/code> if
* the given name is valid as a Java type name,
* a status with code &lt;code>IStatus.WARNING&lt;/code>
* indicating why the given name is discouraged,
* otherwise a status object indicating what is wrong with
* the name
* @since 3.3
* @see JavaCore#VERSION_1_1
* @see JavaCore#VERSION_1_2
* @see JavaCore#VERSION_1_3
* @see JavaCore#VERSION_1_4
* @see JavaCore#VERSION_1_5
* @see JavaCore#VERSION_1_6
* @see JavaCore#VERSION_1_7
</body>
</ownedComment>
<ownedParameter xmi:id="_k8DB4GEMEeCdEc4VzBeWeQ" type="_kaOHMWEMEeCdEc4VzBeWeQ" direction="return"/>
<ownedParameter xmi:id="_k8DB4WEMEeCdEc4VzBeWeQ" name="name" type="_dSiS02EMEeCdEc4VzBeWeQ"/>
<ownedParameter xmi:id="_k8ML0GEMEeCdEc4VzBeWeQ" name="sourceLevel" type="_dSiS02EMEeCdEc4VzBeWeQ"/>
<ownedParameter xmi:id="_k8ML0WEMEeCdEc4VzBeWeQ" name="complianceLevel" type="_dSiS02EMEeCdEc4VzBeWeQ"/>
</ownedOperation>
<ownedOperation xmi:id="_k8ML0mEMEeCdEc4VzBeWeQ" name="validateMethodName" visibility="public" isStatic="true">
<ownedComment xmi:id="_k8ML02EMEeCdEc4VzBeWeQ">
<body>
* Validate the given method name.
* The special names &quot;&amp;lt;init&amp;gt;&quot; and &quot;&amp;lt;clinit&amp;gt;&quot; are not valid.
* &lt;p>
* The syntax for a method name is defined by Identifier
* of MethodDeclarator (JLS2 8.4). For example &quot;println&quot;.
*
* @param name the name of a method
* @return a status object with code &lt;code>IStatus.OK&lt;/code> if
* the given name is valid as a method name, otherwise a status
* object indicating what is wrong with the name
* @deprecated Use {@link #validateMethodName(String id, String sourceLevel, String complianceLevel)} instead
</body>
</ownedComment>
<ownedParameter xmi:id="_k8V80GEMEeCdEc4VzBeWeQ" type="_kaOHMWEMEeCdEc4VzBeWeQ" direction="return"/>
<ownedParameter xmi:id="_k8V80WEMEeCdEc4VzBeWeQ" name="name" type="_dSiS02EMEeCdEc4VzBeWeQ"/>
</ownedOperation>
<ownedOperation xmi:id="_k8yowGEMEeCdEc4VzBeWeQ" name="validateMethodName" visibility="public" isStatic="true">
<ownedComment xmi:id="_k8yowWEMEeCdEc4VzBeWeQ">
<body>
* Validate the given method name for the given source and compliance levels.
* The special names &quot;&amp;lt;init&amp;gt;&quot; and &quot;&amp;lt;clinit&amp;gt;&quot; are not valid.
* &lt;p>
* The syntax for a method name is defined by Identifier
* of MethodDeclarator (JLS2 8.4). For example &quot;println&quot;.
*
* @param name the name of a method
* @param sourceLevel the source level
* @param complianceLevel the compliance level
* @return a status object with code &lt;code>IStatus.OK&lt;/code> if
* the given name is valid as a method name, otherwise a status
* object indicating what is wrong with the name
* @since 3.3
</body>
</ownedComment>
<ownedParameter xmi:id="_k8yowmEMEeCdEc4VzBeWeQ" type="_kaOHMWEMEeCdEc4VzBeWeQ" direction="return"/>
<ownedParameter xmi:id="_k87ysGEMEeCdEc4VzBeWeQ" name="name" type="_dSiS02EMEeCdEc4VzBeWeQ"/>
<ownedParameter xmi:id="_k87ysWEMEeCdEc4VzBeWeQ" name="sourceLevel" type="_dSiS02EMEeCdEc4VzBeWeQ"/>
<ownedParameter xmi:id="_k87ysmEMEeCdEc4VzBeWeQ" name="complianceLevel" type="_dSiS02EMEeCdEc4VzBeWeQ"/>
</ownedOperation>
<ownedOperation xmi:id="_k9FjsGEMEeCdEc4VzBeWeQ" name="validatePackageName" visibility="public" isStatic="true">
<ownedComment xmi:id="_k9FjsWEMEeCdEc4VzBeWeQ">
<body>
* Validate the given package name.
* &lt;p>
* The syntax of a package name corresponds to PackageName as
* defined by PackageDeclaration (JLS2 7.4). For example, &lt;code>&quot;java.lang&quot;&lt;/code>.
* &lt;p>
* Note that the given name must be a non-empty package name (that is, attempting to
* validate the default package will return an error status.)
* Also it must not contain any characters or substrings that are not valid
* on the file system on which workspace root is located.
*
* @param name the name of a package
* @return a status object with code &lt;code>IStatus.OK&lt;/code> if
* the given name is valid as a package name, otherwise a status
* object indicating what is wrong with the name
* @deprecated Use {@link #validatePackageName(String id, String sourceLevel, String complianceLevel)} instead
</body>
</ownedComment>
<ownedParameter xmi:id="_k9FjsmEMEeCdEc4VzBeWeQ" type="_kaOHMWEMEeCdEc4VzBeWeQ" direction="return"/>
<ownedParameter xmi:id="_k9Fjs2EMEeCdEc4VzBeWeQ" name="name" type="_dSiS02EMEeCdEc4VzBeWeQ"/>
</ownedOperation>
<ownedOperation xmi:id="_k9PUsGEMEeCdEc4VzBeWeQ" name="validatePackageName" visibility="public" isStatic="true">
<ownedComment xmi:id="_k9PUsWEMEeCdEc4VzBeWeQ">
<body>
* Validate the given package name for the given source and compliance levels.
* &lt;p>
* The syntax of a package name corresponds to PackageName as
* defined by PackageDeclaration (JLS2 7.4). For example, &lt;code>&quot;java.lang&quot;&lt;/code>.
* &lt;p>
* Note that the given name must be a non-empty package name (that is, attempting to
* validate the default package will return an error status.)
* Also it must not contain any characters or substrings that are not valid
* on the file system on which workspace root is located.
*
* @param name the name of a package
* @param sourceLevel the source level
* @param complianceLevel the compliance level
* @return a status object with code &lt;code>IStatus.OK&lt;/code> if
* the given name is valid as a package name, otherwise a status
* object indicating what is wrong with the name
* @since 3.3
</body>
</ownedComment>
<ownedParameter xmi:id="_k9PUsmEMEeCdEc4VzBeWeQ" type="_kaOHMWEMEeCdEc4VzBeWeQ" direction="return"/>
<ownedParameter xmi:id="_k9PUs2EMEeCdEc4VzBeWeQ" name="name" type="_dSiS02EMEeCdEc4VzBeWeQ"/>
<ownedParameter xmi:id="_k9YeoGEMEeCdEc4VzBeWeQ" name="sourceLevel" type="_dSiS02EMEeCdEc4VzBeWeQ"/>
<ownedParameter xmi:id="_k9YeoWEMEeCdEc4VzBeWeQ" name="complianceLevel" type="_dSiS02EMEeCdEc4VzBeWeQ"/>
</ownedOperation>
<ownedOperation xmi:id="_k9YeomEMEeCdEc4VzBeWeQ" name="validateClasspath" visibility="public" isStatic="true">
<ownedComment xmi:id="_k9Yeo2EMEeCdEc4VzBeWeQ">
<body>
* Validate a given classpath and output location for a project, using the following rules:
* &lt;ul>
* &lt;li> Classpath entries cannot collide with each other; that is, all entry paths must be unique.
* &lt;li> The project output location path cannot be null, must be absolute and located inside the project.
* &lt;li> Specific output locations (specified on source entries) can be null, if not they must be located inside the project,
* &lt;li> A project entry cannot refer to itself directly (that is, a project cannot prerequisite itself).
* &lt;li> Classpath entries or output locations cannot coincidate or be nested in each other, except for the following scenarii listed below:
* &lt;ul>&lt;li> A source folder can coincidate with its own output location, in which case this output can then contain library archives.
* However, a specific output location cannot coincidate with any library or a distinct source folder than the one referring to it. &lt;/li>
* &lt;li> A source/library folder can be nested in any source folder as long as the nested folder is excluded from the enclosing one. &lt;/li>
* &lt;li> An output location can be nested in a source folder, if the source folder coincidates with the project itself, or if the output
* location is excluded from the source folder.
* &lt;/ul>
* &lt;/ul>
*
* Note that the classpath entries are not validated automatically. Only bound variables or containers are considered
* in the checking process (this allows to perform a consistency check on a classpath which has references to
* yet non existing projects, folders, ...).
* &lt;p>
* This validation is intended to anticipate classpath issues prior to assigning it to a project. In particular, it will automatically
* be performed during the classpath setting operation (if validation fails, the classpath setting will not complete).
* &lt;p>
* @param javaProject the given java project
* @param rawClasspath the given classpath
* @param projectOutputLocation the given output location
* @return a status object with code &lt;code>IStatus.OK&lt;/code> if
* the given classpath and output location are compatible, otherwise a status
* object indicating what is wrong with the classpath or output location
* @since 2.0
</body>
</ownedComment>
<ownedParameter xmi:id="_k9iPoGEMEeCdEc4VzBeWeQ" type="_kaEWMGEMEeCdEc4VzBeWeQ" direction="return"/>
<ownedParameter xmi:id="_k9iPoWEMEeCdEc4VzBeWeQ" name="javaProject" type="_kjmssGEMEeCdEc4VzBeWeQ"/>
<ownedParameter xmi:id="_k9rZkGEMEeCdEc4VzBeWeQ" name="rawClasspath" type="_j4GRkGEMEeCdEc4VzBeWeQ">
<upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_k9rZkmEMEeCdEc4VzBeWeQ" value="*"/>
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_k9rZkWEMEeCdEc4VzBeWeQ"/>
</ownedParameter>
<ownedParameter xmi:id="_k9rZk2EMEeCdEc4VzBeWeQ" name="projectOutputLocation" type="_j00UEmEMEeCdEc4VzBeWeQ"/>
</ownedOperation>
<ownedOperation xmi:id="_k91KkGEMEeCdEc4VzBeWeQ" name="validateClasspathEntry" visibility="public" isStatic="true">
<ownedComment xmi:id="_k91KkWEMEeCdEc4VzBeWeQ">
<body>
* Returns a Java model status describing the problem related to this classpath entry if any,
* a status object with code &lt;code>IStatus.OK&lt;/code> if the entry is fine (that is, if the
* given classpath entry denotes a valid element to be referenced onto a classpath).
*
* @param project the given java project
* @param entry the given classpath entry
* @param checkSourceAttachment a flag to determine if source attachment should be checked
* @return a java model status describing the problem related to this classpath entry if any, a status object with code &lt;code>IStatus.OK&lt;/code> if the entry is fine
* @since 2.0
</body>
</ownedComment>
<ownedParameter xmi:id="_k91KkmEMEeCdEc4VzBeWeQ" type="_kaEWMGEMEeCdEc4VzBeWeQ" direction="return"/>
<ownedParameter xmi:id="_k9-7kGEMEeCdEc4VzBeWeQ" name="project" type="_kjmssGEMEeCdEc4VzBeWeQ"/>
<ownedParameter xmi:id="_k9-7kWEMEeCdEc4VzBeWeQ" name="entry" type="_j4GRkGEMEeCdEc4VzBeWeQ"/>
<ownedParameter xmi:id="_k9-7kmEMEeCdEc4VzBeWeQ" name="checkSourceAttachment" type="_dVOadGEMEeCdEc4VzBeWeQ"/>
</ownedOperation>
<ownedOperation xmi:id="_k9-7k2EMEeCdEc4VzBeWeQ" name="validateTypeVariableName" visibility="public" isStatic="true">
<ownedComment xmi:id="_k9-7lGEMEeCdEc4VzBeWeQ">
<body>
* Validate the given type variable name.
* &lt;p>
* Syntax of a type variable name corresponds to a Java identifier (JLS3 4.3).
* For example, &lt;code>&quot;E&quot;&lt;/code>.
*
* @param name the name of a type variable
* @return a status object with code &lt;code>IStatus.OK&lt;/code> if
* the given name is valid as a type variable name, otherwise a status
* object indicating what is wrong with the name
* @since 3.1
* @deprecated Use {@link #validateTypeVariableName(String id, String sourceLevel, String complianceLevel)} instead
</body>
</ownedComment>
<ownedParameter xmi:id="_k-IFgGEMEeCdEc4VzBeWeQ" type="_kaOHMWEMEeCdEc4VzBeWeQ" direction="return"/>
<ownedParameter xmi:id="_k-R2gGEMEeCdEc4VzBeWeQ" name="name" type="_dSiS02EMEeCdEc4VzBeWeQ"/>
</ownedOperation>
<ownedOperation xmi:id="_k-kxcGEMEeCdEc4VzBeWeQ" name="validateTypeVariableName" visibility="public" isStatic="true">
<ownedComment xmi:id="_k-kxcWEMEeCdEc4VzBeWeQ">
<body>
* Validate the given type variable name for the given source and compliance levels.
* &lt;p>
* Syntax of a type variable name corresponds to a Java identifier (JLS3 4.3).
* For example, &lt;code>&quot;E&quot;&lt;/code>.
*
* @param name the name of a type variable
* @param sourceLevel the source level
* @param complianceLevel the compliance level
* @return a status object with code &lt;code>IStatus.OK&lt;/code> if
* the given name is valid as a type variable name, otherwise a status
* object indicating what is wrong with the name
* @since 3.3
</body>
</ownedComment>
<ownedParameter xmi:id="_k-uicGEMEeCdEc4VzBeWeQ" type="_kaOHMWEMEeCdEc4VzBeWeQ" direction="return"/>
<ownedParameter xmi:id="_k-uicWEMEeCdEc4VzBeWeQ" name="name" type="_dSiS02EMEeCdEc4VzBeWeQ"/>
<ownedParameter xmi:id="_k-uicmEMEeCdEc4VzBeWeQ" name="sourceLevel" type="_dSiS02EMEeCdEc4VzBeWeQ"/>
<ownedParameter xmi:id="_k-uic2EMEeCdEc4VzBeWeQ" name="complianceLevel" type="_dSiS02EMEeCdEc4VzBeWeQ"/>
</ownedOperation>
</packagedElement>
<packagedElement xmi:type="uml:Class" xmi:id="_lIjz4GEMEeCdEc4VzBeWeQ" name="JavaCore" isLeaf="true">
<ownedComment xmi:id="_lIjz4WEMEeCdEc4VzBeWeQ">
<body>
* The plug-in runtime class for the Java model plug-in containing the core
* (UI-free) support for Java projects.
* &lt;p>
* Like all plug-in runtime classes (subclasses of &lt;code>Plugin&lt;/code>), this
* class is automatically instantiated by the platform when the plug-in gets
* activated. Clients must not attempt to instantiate plug-in runtime classes
* directly.
* &lt;/p>
* &lt;p>
* The single instance of this class can be accessed from any plug-in declaring
* the Java model plug-in as a prerequisite via
* &lt;code>JavaCore.getJavaCore()&lt;/code>. The Java model plug-in will be activated
* automatically if not already active.
* &lt;/p>
* @noinstantiate This class is not intended to be instantiated by clients.
</body>
</ownedComment>
<generalization xmi:id="_lIjz42EMEeCdEc4VzBeWeQ" general="_lIjz4mEMEeCdEc4VzBeWeQ"/>
<ownedAttribute xmi:id="_lItk4GEMEeCdEc4VzBeWeQ" name="NO_GENERATED_RESOURCES" visibility="private" isLeaf="true" isStatic="true" type="_kQh_smEMEeCdEc4VzBeWeQ" isUnique="false">
<upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_lI2u0WEMEeCdEc4VzBeWeQ" value="*"/>
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_lI2u0GEMEeCdEc4VzBeWeQ"/>
</ownedAttribute>
<ownedAttribute xmi:id="_lI2u0mEMEeCdEc4VzBeWeQ" name="JAVA_CORE_PLUGIN" visibility="private" isStatic="true" type="_lIjz4mEMEeCdEc4VzBeWeQ" isUnique="false"/>
<ownedAttribute xmi:id="_lJAf0GEMEeCdEc4VzBeWeQ" name="PLUGIN_ID" visibility="public" isLeaf="true" isStatic="true" type="_dSiS02EMEeCdEc4VzBeWeQ" isUnique="false">
<ownedComment xmi:id="_lJAf0WEMEeCdEc4VzBeWeQ">
<body>
* The plug-in identifier of the Java core support
* (value &lt;code>&quot;org.eclipse.jdt.core&quot;&lt;/code>).
</body>
</ownedComment>
</ownedAttribute>
<ownedAttribute xmi:id="_lJTawGEMEeCdEc4VzBeWeQ" name="BUILDER_ID" visibility="public" isLeaf="true" isStatic="true" type="_dSiS02EMEeCdEc4VzBeWeQ" isUnique="false">
<ownedComment xmi:id="_lJTawWEMEeCdEc4VzBeWeQ">
<body>
* The identifier for the Java builder
* (value &lt;code>&quot;org.eclipse.jdt.core.javabuilder&quot;&lt;/code>).
</body>
</ownedComment>
</ownedAttribute>
<ownedAttribute xmi:id="_lJdLwGEMEeCdEc4VzBeWeQ" name="MODEL_ID" visibility="public" isLeaf="true" isStatic="true" type="_dSiS02EMEeCdEc4VzBeWeQ" isUnique="false">
<ownedComment xmi:id="_lJmVsGEMEeCdEc4VzBeWeQ">
<body>
* The identifier for the Java model
* (value &lt;code>&quot;org.eclipse.jdt.core.javamodel&quot;&lt;/code>).
</body>
</ownedComment>
</ownedAttribute>
<ownedAttribute xmi:id="_lJmVsWEMEeCdEc4VzBeWeQ" name="NATURE_ID" visibility="public" isLeaf="true" isStatic="true" type="_dSiS02EMEeCdEc4VzBeWeQ" isUnique="false">
<ownedComment xmi:id="_lJwGsGEMEeCdEc4VzBeWeQ">
<body>
* The identifier for the Java nature
* (value &lt;code>&quot;org.eclipse.jdt.core.javanature&quot;&lt;/code>).
* The presence of this nature on a project indicates that it is
* Java-capable.
*
* @see org.eclipse.core.resources.IProject#hasNature(java.lang.String)
</body>
</ownedComment>
</ownedAttribute>
<ownedAttribute xmi:id="_lJwGsWEMEeCdEc4VzBeWeQ" name="ATT_HANDLE_ID" visibility="protected" isLeaf="true" isStatic="true" type="_dSiS02EMEeCdEc4VzBeWeQ" isUnique="false">
<ownedComment xmi:id="_lJ53sGEMEeCdEc4VzBeWeQ">
<body>
* Name of the handle id attribute in a Java marker.
</body>
</ownedComment>
</ownedAttribute>
<ownedAttribute xmi:id="_lKDBoGEMEeCdEc4VzBeWeQ" name="USER_LIBRARY_CONTAINER_ID" visibility="public" isLeaf="true" isStatic="true" type="_dSiS02EMEeCdEc4VzBeWeQ" isUnique="false">
<ownedComment xmi:id="_lKDBoWEMEeCdEc4VzBeWeQ">
<body>
* Name of the User Library Container id.
* @since 3.0
</body>
</ownedComment>
</ownedAttribute>
<ownedAttribute xmi:id="_lKMyoGEMEeCdEc4VzBeWeQ" name="COMPILER_LOCAL_VARIABLE_ATTR" visibility="public" isLeaf="true" isStatic="true" type="_dSiS02EMEeCdEc4VzBeWeQ" isUnique="false">
<ownedComment xmi:id="_lKWjoGEMEeCdEc4VzBeWeQ">
<body>
* Compiler option ID: Generating Local Variable Debug Attribute.
* &lt;p>When generated, this attribute will enable local variable names
* to be displayed in debugger, only in place where variables are
* definitely assigned (.class file is then bigger).
* &lt;dl>
* &lt;dt>Option id:&lt;/dt>&lt;dd>&lt;code>&quot;org.eclipse.jdt.core.compiler.debug.localVariable&quot;&lt;/code>&lt;/dd>
* &lt;dt>Possible values:&lt;/dt>&lt;dd>&lt;code>{ &quot;generate&quot;, &quot;do not generate&quot; }&lt;/code>&lt;/dd>
* &lt;dt>Default:&lt;/dt>&lt;dd>&lt;code>&quot;generate&quot;&lt;/code>&lt;/dd>
* &lt;/dl>
* @category CompilerOptionID
</body>
</ownedComment>
</ownedAttribute>
<ownedAttribute xmi:id="_lKWjoWEMEeCdEc4VzBeWeQ" name="COMPILER_LINE_NUMBER_ATTR" visibility="public" isLeaf="true" isStatic="true" type="_dSiS02EMEeCdEc4VzBeWeQ" isUnique="false">
<ownedComment xmi:id="_lKftkGEMEeCdEc4VzBeWeQ">
<body>
* Compiler option ID: Generating Line Number Debug Attribute.
* &lt;p>When generated, this attribute will enable source code highlighting in debugger
* (.class file is then bigger).
* &lt;dl>
* &lt;dt>Option id:&lt;/dt>&lt;dd>&lt;code>&quot;org.eclipse.jdt.core.compiler.debug.lineNumber&quot;&lt;/code>&lt;/dd>
* &lt;dt>Possible values:&lt;/dt>&lt;dd>&lt;code>{ &quot;generate&quot;, &quot;do not generate&quot; }&lt;/code>&lt;/dd>
* &lt;dt>Default:&lt;/dt>&lt;dd>&lt;code>&quot;generate&quot;&lt;/code>&lt;/dd>
* &lt;/dl>
* @category CompilerOptionID
</body>
</ownedComment>
</ownedAttribute>
<ownedAttribute xmi:id="_lKpekGEMEeCdEc4VzBeWeQ" name="COMPILER_SOURCE_FILE_ATTR" visibility="public" isLeaf="true" isStatic="true" type="_dSiS02EMEeCdEc4VzBeWeQ" isUnique="false">
<ownedComment xmi:id="_lKpekWEMEeCdEc4VzBeWeQ">
<body>
* Compiler option ID: Generating Source Debug Attribute.
* &lt;p>When generated, this attribute will enable the debugger to present the
* corresponding source code.
* &lt;dl>
* &lt;dt>Option id:&lt;/dt>&lt;dd>&lt;code>&quot;org.eclipse.jdt.core.compiler.debug.sourceFile&quot;&lt;/code>&lt;/dd>
* &lt;dt>Possible values:&lt;/dt>&lt;dd>&lt;code>{ &quot;generate&quot;, &quot;do not generate&quot; }&lt;/code>&lt;/dd>
* &lt;dt>Default:&lt;/dt>&lt;dd>&lt;code>&quot;generate&quot;&lt;/code>&lt;/dd>
* &lt;/dl>
* @category CompilerOptionID
</body>
</ownedComment>
</ownedAttribute>
<ownedAttribute xmi:id="_lKyogGEMEeCdEc4VzBeWeQ" name="COMPILER_CODEGEN_UNUSED_LOCAL" visibility="public" isLeaf="true" isStatic="true" type="_dSiS02EMEeCdEc4VzBeWeQ" isUnique="false">
<ownedComment xmi:id="_lKyogWEMEeCdEc4VzBeWeQ">
<body>
* Compiler option ID: Preserving Unused Local Variables.
* &lt;p>Unless requested to preserve unused local variables (that is, never read), the
* compiler will optimize them out, potentially altering debugging.
* &lt;dl>
* &lt;dt>Option id:&lt;/dt>&lt;dd>&lt;code>&quot;org.eclipse.jdt.core.compiler.codegen.unusedLocal&quot;&lt;/code>&lt;/dd>
* &lt;dt>Possible values:&lt;/dt>&lt;dd>&lt;code>{ &quot;preserve&quot;, &quot;optimize out&quot; }&lt;/code>&lt;/dd>
* &lt;dt>Default:&lt;/dt>&lt;dd>&lt;code>&quot;preserve&quot;&lt;/code>&lt;/dd>
* &lt;/dl>
* @category CompilerOptionID
</body>
</ownedComment>
</ownedAttribute>
<ownedAttribute xmi:id="_lK8ZgGEMEeCdEc4VzBeWeQ" name="COMPILER_CODEGEN_TARGET_PLATFORM" visibility="public" isLeaf="true" isStatic="true" type="_dSiS02EMEeCdEc4VzBeWeQ" isUnique="false">
<ownedComment xmi:id="_lLGKgGEMEeCdEc4VzBeWeQ">
<body>
* Compiler option ID: Defining Target Java Platform.
* &lt;p>For binary compatibility reason, .class files can be tagged to with certain VM versions and later.
* &lt;p>Note that &lt;code>&quot;1.4&quot;&lt;/code> target requires to toggle compliance mode to &lt;code>&quot;1.4&quot;&lt;/code>, &lt;code>&quot;1.5&quot;&lt;/code> target requires
* to toggle compliance mode to &lt;code>&quot;1.5&quot;&lt;/code>, &lt;code>&quot;1.6&quot;&lt;/code> target requires to toggle compliance mode to &lt;code>&quot;1.6&quot;&lt;/code> and
* &lt;code>&quot;1.7&quot;&lt;/code> target requires to toggle compliance mode to &lt;code>&quot;1.7&quot;&lt;/code>.
* &lt;code>&quot;cldc1.1&quot;&lt;/code> requires the source version to be &lt;code>&quot;1.3&quot;&lt;/code> and the compliance version to be &lt;code>&quot;1.4&quot;&lt;/code> or lower.
* &lt;dl>
* &lt;dt>Option id:&lt;/dt>&lt;dd>&lt;code>&quot;org.eclipse.jdt.core.compiler.codegen.targetPlatform&quot;&lt;/code>&lt;/dd>
* &lt;dt>Possible values:&lt;/dt>&lt;dd>&lt;code>{ &quot;1.1&quot;, &quot;1.2&quot;, &quot;1.3&quot;, &quot;1.4&quot;, &quot;1.5&quot;, &quot;1.6&quot;, &quot;1.7&quot;, &quot;cldc1.1&quot; }&lt;/code>&lt;/dd>
* &lt;dt>Default:&lt;/dt>&lt;dd>&lt;code>&quot;1.2&quot;&lt;/code>&lt;/dd>
* &lt;/dl>
* @category CompilerOptionID
</body>
</ownedComment>
</ownedAttribute>
<ownedAttribute xmi:id="_lLGKgWEMEeCdEc4VzBeWeQ" name="COMPILER_CODEGEN_INLINE_JSR_BYTECODE" visibility="public" isLeaf="true" isStatic="true" type="_dSiS02EMEeCdEc4VzBeWeQ" isUnique="false">
<ownedComment xmi:id="_lLPUcGEMEeCdEc4VzBeWeQ">
<body>
* Compiler option ID: Inline JSR Bytecode Instruction.
* &lt;p>When enabled, the compiler will no longer generate JSR instructions, but rather inline corresponding
* subroutine code sequences (mostly corresponding to try finally blocks). The generated code will thus
* get bigger, but will load faster on virtual machines since the verification process is then much simpler.
* &lt;p>This mode is anticipating support for the Java Specification Request 202.
* &lt;p>Note that JSR inlining is optional only for target platform lesser than 1.5. From 1.5 on, the JSR
* inlining is mandatory (also see related setting {@link #COMPILER_CODEGEN_TARGET_PLATFORM}).
* &lt;dl>
* &lt;dt>Option id:&lt;/dt>&lt;dd>&lt;code>&quot;org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode&quot;&lt;/code>&lt;/dd>
* &lt;dt>Possible values:&lt;/dt>&lt;dd>&lt;code>{ &quot;enabled&quot;, &quot;disabled&quot; }&lt;/code>&lt;/dd>
* &lt;dt>Default:&lt;/dt>&lt;dd>&lt;code>&quot;disabled&quot;&lt;/code>&lt;/dd>
* &lt;/dl>
* @since 3.0
* @category CompilerOptionID
</body>
</ownedComment>
</ownedAttribute>
<ownedAttribute xmi:id="_lLPUcWEMEeCdEc4VzBeWeQ" name="COMPILER_DOC_COMMENT_SUPPORT" visibility="public" isLeaf="true" isStatic="true" type="_dSiS02EMEeCdEc4VzBeWeQ" isUnique="false">
<ownedComment xmi:id="_lLZFcGEMEeCdEc4VzBeWeQ">
<body>
* Compiler option ID: Javadoc Comment Support.
* &lt;p>When this support is disabled, the compiler will ignore all javadoc problems options settings
* and will not report any javadoc problem. It will also not find any reference in javadoc comment and
* DOM AST Javadoc node will be only a flat text instead of having structured tag elements.
* &lt;dl>
* &lt;dt>Option id:&lt;/dt>&lt;dd>&lt;code>&quot;org.eclipse.jdt.core.compiler.doc.comment.support&quot;&lt;/code>&lt;/dd>
* &lt;dt>Possible values:&lt;/dt>&lt;dd>&lt;code>{ &quot;enabled&quot;, &quot;disabled&quot; }&lt;/code>&lt;/dd>
* &lt;dt>Default:&lt;/dt>&lt;dd>&lt;code>&quot;enabled&quot;&lt;/code>&lt;/dd>
* &lt;/dl>
* @since 3.0
* @category CompilerOptionID
</body>
</ownedComment>
</ownedAttribute>
<ownedAttribute xmi:id="_lLZFcWEMEeCdEc4VzBeWeQ" name="COMPILER_PB_UNREACHABLE_CODE" visibility="public" isLeaf="true" isStatic="true" type="_dSiS02EMEeCdEc4VzBeWeQ" isUnique="false">
<ownedComment xmi:id="_lLi2cGEMEeCdEc4VzBeWeQ">
<body>
* @deprecated Discontinued since turning off would violate language specs.
* @category DeprecatedOptionID
</body>
</ownedComment>
</ownedAttribute>
<ownedAttribute xmi:id="_lLi2cWEMEeCdEc4VzBeWeQ" name="COMPILER_PB_INVALID_IMPORT" visibility="public" isLeaf="true" isStatic="true" type="_dSiS02EMEeCdEc4VzBeWeQ" isUnique="false">
<ownedComment xmi:id="_lLsAYGEMEeCdEc4VzBeWeQ">
<body>
* @deprecated Discontinued since turning off would violate language specs.
* @category DeprecatedOptionID
</body>
</ownedComment>
</ownedAttribute>
<ownedAttribute xmi:id="_lL1xYGEMEeCdEc4VzBeWeQ" name="COMPILER_PB_OVERRIDING_PACKAGE_DEFAULT_METHOD" visibility="public" isLeaf="true" isStatic="true" type="_dSiS02EMEeCdEc4VzBeWeQ" isUnique="false">
<ownedComment xmi:id="_lL1xYWEMEeCdEc4VzBeWeQ">
<body>
* Compiler option ID: Reporting Attempt to Override Package Visible Method.
* &lt;p>A package visible method, which is any method that is not explicitly
* declared as public, protected or private, is not visible from other
* packages, and thus cannot be overridden from another package.
* Attempting to override a package visible method from another package
* introduces a new method that is unrelated to the original one. When
* enabling this option, the compiler will signal such situations as an
* error or a warning.
* &lt;dl>
* &lt;dt>Option id:&lt;/dt>&lt;dd>&lt;code>&quot;org.eclipse.jdt.core.compiler.problem.overridingPackageDefaultMethod&quot;&lt;/code>&lt;/dd>
* &lt;dt>Possible values:&lt;/dt>&lt;dd>&lt;code>{ &quot;error&quot;, &quot;warning&quot;, &quot;ignore&quot; }&lt;/code>&lt;/dd>
* &lt;dt>Default:&lt;/dt>&lt;dd>&lt;code>&quot;warning&quot;&lt;/code>&lt;/dd>
* &lt;/dl>
* @category CompilerOptionID
</body>
</ownedComment>
</ownedAttribute>
<ownedAttribute xmi:id="_lL-7UGEMEeCdEc4VzBeWeQ" name="COMPILER_PB_METHOD_WITH_CONSTRUCTOR_NAME" visibility="public" isLeaf="true" isStatic="true" type="_dSiS02EMEeCdEc4VzBeWeQ" isUnique="false">
<ownedComment xmi:id="_lL-7UWEMEeCdEc4VzBeWeQ">
<body>
* Compiler option ID: Reporting Method With Constructor Name.
* &lt;p>Naming a method with a constructor name is generally considered poor
* style programming. When enabling this option, the compiler will signal such
* scenarii either as an error or a warning.
* &lt;dl>
* &lt;dt>Option id:&lt;/dt>&lt;dd>&lt;code>&quot;org.eclipse.jdt.core.compiler.problem.methodWithConstructorName&quot;&lt;/code>&lt;/dd>
* &lt;dt>Possible values:&lt;/dt>&lt;dd>&lt;code>{ &quot;error&quot;, &quot;warning&quot;, &quot;ignore&quot; }&lt;/code>&lt;/dd>
* &lt;dt>Default:&lt;/dt>&lt;dd>&lt;code>&quot;warning&quot;&lt;/code>&lt;/dd>
* &lt;/dl>
* @category CompilerOptionID
</body>
</ownedComment>
</ownedAttribute>
<ownedAttribute xmi:id="_lMIsUGEMEeCdEc4VzBeWeQ" name="COMPILER_PB_DEPRECATION" visibility="public" isLeaf="true" isStatic="true" type="_dSiS02EMEeCdEc4VzBeWeQ" isUnique="false">
<ownedComment xmi:id="_lMIsUWEMEeCdEc4VzBeWeQ">
<body>
* Compiler option ID: Reporting Deprecation.
* &lt;p>When enabled, the compiler will signal use of deprecated API either as an
* error or a warning.
* &lt;dl>
* &lt;dt>Option id:&lt;/dt>&lt;dd>&lt;code>&quot;org.eclipse.jdt.core.compiler.problem.deprecation&quot;&lt;/code>&lt;/dd>
* &lt;dt>Possible values:&lt;/dt>&lt;dd>&lt;code>{ &quot;error&quot;, &quot;warning&quot;, &quot;ignore&quot; }&lt;/code>&lt;/dd>
* &lt;dt>Default:&lt;/dt>&lt;dd>&lt;code>&quot;warning&quot;&lt;/code>&lt;/dd>
* &lt;/dl>
* @category CompilerOptionID
</body>
</ownedComment>
</ownedAttribute>
<ownedAttribute xmi:id="_lMSdUGEMEeCdEc4VzBeWeQ" name="COMPILER_PB_DEPRECATION_IN_DEPRECATED_CODE" visibility="public" isLeaf="true" isStatic="true" type="_dSiS02EMEeCdEc4VzBeWeQ" isUnique="false">
<ownedComment xmi:id="_lMbnQGEMEeCdEc4VzBeWeQ">
<body>
* Compiler option ID: Reporting Deprecation Inside Deprecated Code.
* &lt;p>When enabled, the compiler will signal use of deprecated API inside deprecated code.
* &lt;p>The severity of the problem is controlled with option {@link #COMPILER_PB_DEPRECATION}.
* &lt;dl>
* &lt;dt>Option id:&lt;/dt>&lt;dd>&lt;code>&quot;org.eclipse.jdt.core.compiler.problem.deprecationInDeprecatedCode&quot;&lt;/code>&lt;/dd>
* &lt;dt>Possible values:&lt;/dt>&lt;dd>&lt;code>{ &quot;enabled&quot;, &quot;disabled&quot; }&lt;/code>&lt;/dd>
* &lt;dt>Default:&lt;/dt>&lt;dd>&lt;code>&quot;disabled&quot;&lt;/code>&lt;/dd>
* &lt;/dl>
* @since 2.1
* @category CompilerOptionID
</body>
</ownedComment>
</ownedAttribute>
<ownedAttribute xmi:id="_lMlYQGEMEeCdEc4VzBeWeQ" name="COMPILER_PB_DEPRECATION_WHEN_OVERRIDING_DEPRECATED_METHOD" visibility="public" isLeaf="true" isStatic="true" type="_dSiS02EMEeCdEc4VzBeWeQ" isUnique="false">
<ownedComment xmi:id="_lMlYQWEMEeCdEc4VzBeWeQ">
<body>
* Compiler option ID: Reporting Deprecation When Overriding Deprecated Method.
* &lt;p>When enabled, the compiler will signal the declaration of a method overriding a deprecated one.
* &lt;p>The severity of the problem is controlled with option {@link #COMPILER_PB_DEPRECATION}.
* &lt;dl>
* &lt;dt>Option id:&lt;/dt>&lt;dd>&lt;code>&quot;org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod&quot;&lt;/code>&lt;/dd>
* &lt;dt>Possible values:&lt;/dt>&lt;dd>&lt;code>{ &quot;enabled&quot;, &quot;disabled&quot; }&lt;/code>&lt;/dd>
* &lt;dt>Default:&lt;/dt>&lt;dd>&lt;code>&quot;disabled&quot;&lt;/code>&lt;/dd>
* &lt;/dl>
* @since 3.0
* @category CompilerOptionID
</body>
</ownedComment>
</ownedAttribute>
<ownedAttribute xmi:id="_lMvJQGEMEeCdEc4VzBeWeQ" name="COMPILER_PB_HIDDEN_CATCH_BLOCK" visibility="public" isLeaf="true" isStatic="true" type="_dSiS02EMEeCdEc4VzBeWeQ" isUnique="false">
<ownedComment xmi:id="_lMvJQWEMEeCdEc4VzBeWeQ">
<body>
* Compiler option ID: Reporting Hidden Catch Block.
* &lt;p>Locally to a try statement, some catch blocks may hide others. For example,
* &lt;pre>
* try { throw new java.io.CharConversionException();
* } catch (java.io.CharConversionException e) {
* } catch (java.io.IOException e) {}.
* &lt;/pre>
* When enabling this option, the compiler will issue an error or a warning for hidden
* catch blocks corresponding to checked exceptions.
* &lt;dl>
* &lt;dt>Option id:&lt;/dt>&lt;dd>&lt;code>&quot;org.eclipse.jdt.core.compiler.problem.hiddenCatchBlock&quot;&lt;/code>&lt;/dd>
* &lt;dt>Possible values:&lt;/dt>&lt;dd>&lt;code>{ &quot;error&quot;, &quot;warning&quot;, &quot;ignore&quot; }&lt;/code>&lt;/dd>
* &lt;dt>Default:&lt;/dt>&lt;dd>&lt;code>&quot;warning&quot;&lt;/code>&lt;/dd>
* &lt;/dl>
* @category CompilerOptionID
</body>
</ownedComment>
</ownedAttribute>
<ownedAttribute xmi:id="_lM4TMGEMEeCdEc4VzBeWeQ" name="COMPILER_PB_UNUSED_LOCAL" visibility="public" isLeaf="true" isStatic="true" type="_dSiS02EMEeCdEc4VzBeWeQ" isUnique="false">
<ownedComment xmi:id="_lNCEMGEMEeCdEc4VzBeWeQ">
<body>
* Compiler option ID: Reporting Unused Local.
* &lt;p>When enabled, the compiler will issue an error or a warning for unused local
* variables (that is, variables never read from).
* &lt;dl>
* &lt;dt>Option id:&lt;/dt>&lt;dd>&lt;code>&quot;org.eclipse.jdt.core.compiler.problem.unusedLocal&quot;&lt;/code>&lt;/dd>
* &lt;dt>Possible values:&lt;/dt>&lt;dd>&lt;code>{ &quot;error&quot;, &quot;warning&quot;, &quot;ignore&quot; }&lt;/code>&lt;/dd>
* &lt;dt>Default:&lt;/dt>&lt;dd>&lt;code>&quot;warning&quot;&lt;/code>&lt;/dd>
* &lt;/dl>
* @category CompilerOptionID
</body>
</ownedComment>
</ownedAttribute>
<ownedAttribute xmi:id="_lNCEMWEMEeCdEc4VzBeWeQ" name="COMPILER_PB_UNUSED_PARAMETER" visibility="public" isLeaf="true" isStatic="true" type="_dSiS02EMEeCdEc4VzBeWeQ" isUnique="false">
<ownedComment xmi:id="_lNLOIGEMEeCdEc4VzBeWeQ">
<body>
* Compiler option ID: Reporting Unused Parameter.
* &lt;p>When enabled, the compiler will issue an error or a warning for unused method
* parameters (that is, parameters never read from).
* &lt;dl>
* &lt;dt>Option id:&lt;/dt>&lt;dd>&lt;code>&quot;org.eclipse.jdt.core.compiler.problem.unusedParameter&quot;&lt;/code>&lt;/dd>
* &lt;dt>Possible values:&lt;/dt>&lt;dd>&lt;code>{ &quot;error&quot;, &quot;warning&quot;, &quot;ignore&quot; }&lt;/code>&lt;/dd>
* &lt;dt>Default:&lt;/dt>&lt;dd>&lt;code>&quot;ignore&quot;&lt;/code>&lt;/dd>
* &lt;/dl>
* @category CompilerOptionID
</body>
</ownedComment>
</ownedAttribute>
<ownedAttribute xmi:id="_lNLOIWEMEeCdEc4VzBeWeQ" name="COMPILER_PB_UNUSED_PARAMETER_WHEN_IMPLEMENTING_ABSTRACT" visibility="public" isLeaf="true" isStatic="true" type="_dSiS02EMEeCdEc4VzBeWeQ" isUnique="false">
<ownedComment xmi:id="_lNU_IGEMEeCdEc4VzBeWeQ">
<body>
* Compiler option ID: Reporting Unused Parameter if Implementing Abstract Method.
* &lt;p>When enabled, the compiler will signal unused parameters in abstract method implementations.
* &lt;p>The severity of the problem is controlled with option {@link #COMPILER_PB_UNUSED_PARAMETER}.
* &lt;dl>
* &lt;dt>Option id:&lt;/dt>&lt;dd>&lt;code>&quot;org.eclipse.jdt.core.compiler.problem.unusedParameterWhenImplementingAbstract&quot;&lt;/code>&lt;/dd>
* &lt;dt>Possible values:&lt;/dt>&lt;dd>&lt;code>{ &quot;enabled&quot;, &quot;disabled&quot; }&lt;/code>&lt;/dd>
* &lt;dt>Default:&lt;/dt>&lt;dd>&lt;code>&quot;disabled&quot;&lt;/code>&lt;/dd>
* &lt;/dl>
* @since 2.1
* @category CompilerOptionID
</body>
</ownedComment>
</ownedAttribute>
<ownedAttribute xmi:id="_lNU_IWEMEeCdEc4VzBeWeQ" name="COMPILER_PB_UNUSED_PARAMETER_WHEN_OVERRIDING_CONCRETE" visibility="public" isLeaf="true" isStatic="true" type="_dSiS02EMEeCdEc4VzBeWeQ" isUnique="false">
<ownedComment xmi:id="_lNewIGEMEeCdEc4VzBeWeQ">
<body>
* Compiler option ID: Reporting Unused Parameter if Overriding Concrete Method.
* &lt;p>When enabled, the compiler will signal unused parameters in methods overriding concrete ones.
* &lt;p>The severity of the problem is controlled with option {@link #COMPILER_PB_UNUSED_PARAMETER}.
* &lt;dl>
* &lt;dt>Option id:&lt;/dt>&lt;dd>&lt;code>&quot;org.eclipse.jdt.core.compiler.problem.unusedParameterWhenOverridingConcrete&quot;&lt;/code>&lt;/dd>
* &lt;dt>Possible values:&lt;/dt>&lt;dd>&lt;code>{ &quot;enabled&quot;, &quot;disabled&quot; }&lt;/code>&lt;/dd>
* &lt;dt>Default:&lt;/dt>&lt;dd>&lt;code>&quot;disabled&quot;&lt;/code>&lt;/dd>
* &lt;/dl>
* @since 2.1
* @category CompilerOptionID
</body>
</ownedComment>
</ownedAttribute>
<ownedAttribute xmi:id="_lNewIWEMEeCdEc4VzBeWeQ" name="COMPILER_PB_UNUSED_PARAMETER_INCLUDE_DOC_COMMENT_REFERENCE" visibility="public" isLeaf="true" isStatic="true" type="_dSiS02EMEeCdEc4VzBeWeQ" isUnique="false">
<ownedComment xmi:id="_lNn6EGEMEeCdEc4VzBeWeQ">
<body>
* Compiler option ID: Consider Reference in Doc Comment for Unused Parameter Check.
* &lt;p>When enabled, the compiler will consider doc comment references to parameters (i.e. &lt;code>@param&lt;/code> clauses) for the unused
* parameter check. Thus, documented parameters will be considered as mandated as per doc contract.
* &lt;p>The severity of the unused parameter problem is controlled with option {@link #COMPILER_PB_UNUSED_PARAMETER}.
* &lt;p>Note: this option has no effect until the doc comment support is enabled according to the
* option {@link #COMPILER_DOC_COMMENT_SUPPORT}.
* &lt;dl>
* &lt;dt>Option id:&lt;/dt>&lt;dd>&lt;code>&quot;org.eclipse.jdt.core.compiler.problem.unusedParameterIncludeDocCommentReference&quot;&lt;/code>&lt;/dd>
* &lt;dt>Possible values:&lt;/dt>&lt;dd>&lt;code>{ &quot;enabled&quot;, &quot;disabled&quot; }&lt;/code>&lt;/dd>
* &lt;dt>Default:&lt;/dt>&lt;dd>&lt;code>&quot;enabled&quot;&lt;/code>&lt;/dd>
* &lt;/dl>
* @since 3.3
* @category CompilerOptionID
</body>
</ownedComment>
</ownedAttribute>
<ownedAttribute xmi:id="_lNn6EWEMEeCdEc4VzBeWeQ" name="COMPILER_PB_UNUSED_IMPORT" visibility="public" isLeaf="true" isStatic="true" type="_dSiS02EMEeCdEc4VzBeWeQ" isUnique="false">
<ownedComment xmi:id="_lNxrEGEMEeCdEc4VzBeWeQ">
<body>
* Compiler option ID: Reporting Unused Import.
* &lt;p>When enabled, the compiler will issue an error or a warning for unused import
* reference.
* &lt;dl>
* &lt;dt>Option id:&lt;/dt>&lt;dd>&lt;code>&quot;org.eclipse.jdt.core.compiler.problem.unusedImport&quot;&lt;/code>&lt;/dd>
* &lt;dt>Possible values:&lt;/dt>&lt;dd>&lt;code>{ &quot;error&quot;, &quot;warning&quot;, &quot;ignore&quot; }&lt;/code>&lt;/dd>
* &lt;dt>Default:&lt;/dt>&lt;dd>&lt;code>&quot;warning&quot;&lt;/code>&lt;/dd>
* &lt;/dl>
* @since 2.0
* @category CompilerOptionID
</body>
</ownedComment>
</ownedAttribute>
<ownedAttribute xmi:id="_lNxrEWEMEeCdEc4VzBeWeQ" name="COMPILER_PB_UNUSED_TYPE_ARGUMENTS_FOR_METHOD_INVOCATION" visibility="public" isLeaf="true" isStatic="true" type="_dSiS02EMEeCdEc4VzBeWeQ" isUnique="false">
<ownedComment xmi:id="_lN7cEGEMEeCdEc4VzBeWeQ">
<body>
* Compiler option ID: Reporting Presence of Type Arguments for a Non-Generic Method Invocation.
* &lt;p>When enabled, the compiler will issue an error or a warning whenever type arguments are encountered for a
* non-generic method invocation. Note that prior to compliance level is &lt;code>&quot;1.7&quot;&lt;/code>, this situation would automatically result
* in an error. From Java7 on, unused type arguments are being tolerated, and optionally warned against.
* &lt;dl>
* &lt;dt>Option id:&lt;/dt>&lt;dd>&lt;code>&quot;org.eclipse.jdt.core.compiler.problem.unusedTypeArgumentsForMethodInvocation&quot;&lt;/code>&lt;/dd>
* &lt;dt>Possible values:&lt;/dt>&lt;dd>&lt;code>{ &quot;error&quot;, &quot;warning&quot;, &quot;ignore&quot; }&lt;/code>&lt;/dd>
* &lt;dt>Default:&lt;/dt>&lt;dd>&lt;code>&quot;warning&quot;&lt;/code>&lt;/dd>
* &lt;/dl>
* @since 3.4
* @category CompilerOptionID
</body>
</ownedComment>
</ownedAttribute>
<ownedAttribute xmi:id="_lOEmAGEMEeCdEc4VzBeWeQ" name="COMPILER_PB_SYNTHETIC_ACCESS_EMULATION" visibility="public" isLeaf="true" isStatic="true" type="_dSiS02EMEeCdEc4VzBeWeQ" isUnique="false">
<ownedComment xmi:id="_lOOXAGEMEeCdEc4VzBeWeQ">
<body>
* Compiler option ID: Reporting Synthetic Access Emulation.
* &lt;p>When enabled, the compiler will issue an error or a warning whenever it emulates
* access to a non-accessible member of an enclosing type. Such access can have
* performance implications.
* &lt;dl>
* &lt;dt>Option id:&lt;/dt>&lt;dd>&lt;code>&quot;org.eclipse.jdt.core.compiler.problem.syntheticAccessEmulation&quot;&lt;/code>&lt;/dd>
* &lt;dt>Possible values:&lt;/dt>&lt;dd>&lt;code>{ &quot;error&quot;, &quot;warning&quot;, &quot;ignore&quot; }&lt;/code>&lt;/dd>
* &lt;dt>Default:&lt;/dt>&lt;dd>&lt;code>&quot;ignore&quot;&lt;/code>&lt;/dd>
* &lt;/dl>
* @category CompilerOptionID
</body>
</ownedComment>
</ownedAttribute>
<ownedAttribute xmi:id="_lOXg8GEMEeCdEc4VzBeWeQ" name="COMPILER_PB_NON_NLS_STRING_LITERAL" visibility="public" isLeaf="true" isStatic="true" type="_dSiS02EMEeCdEc4VzBeWeQ" isUnique="false">
<ownedComment xmi:id="_lOXg8WEMEeCdEc4VzBeWeQ">
<body>
* Compiler option ID: Reporting Non-Externalized String Literal.
* &lt;p>When enabled, the compiler will issue an error or a warning for non externalized
* String literal (that is, not tagged with &lt;code>//$NON-NLS-&amp;lt;n&amp;gt;$&lt;/code>).
* &lt;dl>
* &lt;dt>Option id:&lt;/dt>&lt;dd>&lt;code>&quot;org.eclipse.jdt.core.compiler.problem.nonExternalizedStringLiteral&quot;&lt;/code>&lt;/dd>
* &lt;dt>Possible values:&lt;/dt>&lt;dd>&lt;code>{ &quot;error&quot;, &quot;warning&quot;, &quot;ignore&quot; }&lt;/code>&lt;/dd>
* &lt;dt>Default:&lt;/dt>&lt;dd>&lt;code>&quot;ignore&quot;&lt;/code>&lt;/dd>
* &lt;/dl>
* @since 2.0
* @category CompilerOptionID
</body>
</ownedComment>
</ownedAttribute>
<ownedAttribute xmi:id="_lUxq8GEMEeCdEc4VzBeWeQ" name="COMPILER_PB_ASSERT_IDENTIFIER" visibility="public" isLeaf="true" isStatic="true" type="_dSiS02EMEeCdEc4VzBeWeQ" isUnique="false">
<ownedComment xmi:id="_lUxq8WEMEeCdEc4VzBeWeQ">
<body>
* Compiler option ID: Reporting Usage of &lt;code>'assert'&lt;/code> Identifier.
* &lt;p>When enabled, the compiler will issue an error or a warning whenever &lt;code>'assert'&lt;/code> is
* used as an identifier (reserved keyword in 1.4).
* &lt;dl>
* &lt;dt>Option id:&lt;/dt>&lt;dd>&lt;code>&quot;org.eclipse.jdt.core.compiler.problem.assertIdentifier&quot;&lt;/code>&lt;/dd>
* &lt;dt>Possible values:&lt;/dt>&lt;dd>&lt;code>{ &quot;error&quot;, &quot;warning&quot;, &quot;ignore&quot; }&lt;/code>&lt;/dd>
* &lt;dt>Default:&lt;/dt>&lt;dd>&lt;code>&quot;warning&quot;&lt;/code>&lt;/dd>
* &lt;/dl>
* @since 2.0
* @category CompilerOptionID
</body>
</ownedComment>
</ownedAttribute>
<ownedAttribute xmi:id="_lU7b8GEMEeCdEc4VzBeWeQ" name="COMPILER_PB_ENUM_IDENTIFIER" visibility="public" isLeaf="true" isStatic="true" type="_dSiS02EMEeCdEc4VzBeWeQ" isUnique="false">
<ownedComment xmi:id="_lU7b8WEMEeCdEc4VzBeWeQ">
<body>
* Compiler option ID: Reporting Usage of &lt;code>'enum'&lt;/code> Identifier.
* &lt;p>When enabled, the compiler will issue an error or a warning whenever &lt;code>'enum'&lt;/code> is
* used as an identifier (reserved keyword in 1.5).
* &lt;dl>
* &lt;dt>Option id:&lt;/dt>&lt;dd>&lt;code>&quot;org.eclipse.jdt.core.compiler.problem.enumIdentifier&quot;&lt;/code>&lt;/dd>
* &lt;dt>Possible values:&lt;/dt>&lt;dd>&lt;code>{ &quot;error&quot;, &quot;warning&quot;, &quot;ignore&quot; }&lt;/code>&lt;/dd>
* &lt;dt>Default:&lt;/dt>&lt;dd>&lt;code>&quot;warning&quot;&lt;/code>&lt;/dd>
* &lt;/dl>
* @since 3.1
* @category CompilerOptionID
</body>
</ownedComment>
</ownedAttribute>
<ownedAttribute xmi:id="_lVFM8GEMEeCdEc4VzBeWeQ" name="COMPILER_PB_STATIC_ACCESS_RECEIVER" visibility="public" isLeaf="true" isStatic="true" type="_dSiS02EMEeCdEc4VzBeWeQ" isUnique="false">
<ownedComment xmi:id="_lVFM8WEMEeCdEc4VzBeWeQ">
<body>
* Compiler option ID: Reporting Non-Static Reference to a Static Member.
* &lt;p>When enabled, the compiler will issue an error or a warning whenever a static field
* or method is accessed with an expression receiver. A reference to a static member should
* be qualified with a type name.
* &lt;dl>
* &lt;dt>Option id:&lt;/dt>&lt;dd>&lt;code>&quot;org.eclipse.jdt.core.compiler.problem.staticAccessReceiver&quot;&lt;/code>&lt;/dd>
* &lt;dt>Possible values:&lt;/dt>&lt;dd>&lt;code>{ &quot;error&quot;, &quot;warning&quot;, &quot;ignore&quot; }&lt;/code>&lt;/dd>
* &lt;dt>Default:&lt;/dt>&lt;dd>&lt;code>&quot;warning&quot;&lt;/code>&lt;/dd>
* &lt;/dl>
* @since 2.1
* @category CompilerOptionID
</body>
</ownedComment>
</ownedAttribute>
<ownedAttribute xmi:id="_lVOW4GEMEeCdEc4VzBeWeQ" name="COMPILER_PB_INDIRECT_STATIC_ACCESS" visibility="public" isLeaf="true" isStatic="true" type="_dSiS02EMEeCdEc4VzBeWeQ" isUnique="false">
<ownedComment xmi:id="_lVYH4GEMEeCdEc4VzBeWeQ">
<body>
* Compiler option ID: Reporting Indirect Reference to a Static Member.
* &lt;p>When enabled, the compiler will issue an error or a warning whenever a static field
* or method is accessed in an indirect way. A reference to a static member should
* preferably be qualified with its declaring type name.
* &lt;dl>
* &lt;dt>Option id:&lt;/dt>&lt;dd>&lt;code>&quot;org.eclipse.jdt.core.compiler.problem.indirectStaticAccess&quot;&lt;/code>&lt;/dd>
* &lt;dt>Possible values:&lt;/dt>&lt;dd>&lt;code>{ &quot;error&quot;, &quot;warning&quot;, &quot;ignore&quot; }&lt;/code>&lt;/dd>
* &lt;dt>Default:&lt;/dt>&lt;dd>&lt;code>&quot;ignore&quot;&lt;/code>&lt;/dd>
* &lt;/dl>
* @since 3.0
* @category CompilerOptionID
</body>
</ownedComment>
</ownedAttribute>
<ownedAttribute xmi:id="_lVYH4WEMEeCdEc4VzBeWeQ" name="COMPILER_PB_NO_EFFECT_ASSIGNMENT" visibility="public" isLeaf="true" isStatic="true" type="_dSiS02EMEeCdEc4VzBeWeQ" isUnique="false">
<ownedComment xmi:id="_lVhR0GEMEeCdEc4VzBeWeQ">
<body>
* Compiler option ID: Reporting Assignment with no Effect.
* &lt;p>When enabled, the compiler will issue an error or a warning whenever an assignment
* has no effect (e.g &lt;code>'x = x'&lt;/code>).
* &lt;dl>
* &lt;dt>Option id:&lt;/dt>&lt;dd>&lt;code>&quot;org.eclipse.jdt.core.compiler.problem.noEffectAssignment&quot;&lt;/code>&lt;/dd>
* &lt;dt>Possible values:&lt;/dt>&lt;dd>&lt;code>{ &quot;error&quot;, &quot;warning&quot;, &quot;ignore&quot; }&lt;/code>&lt;/dd>
* &lt;dt>Default:&lt;/dt>&lt;dd>&lt;code>&quot;warning&quot;&lt;/code>&lt;/dd>
* &lt;/dl>
* @since 2.1
* @category CompilerOptionID
</body>
</ownedComment>
</ownedAttribute>
<ownedAttribute xmi:id="_lVhR0WEMEeCdEc4VzBeWeQ" name="COMPILER_PB_INCOMPATIBLE_NON_INHERITED_INTERFACE_METHOD" visibility="public" isLeaf="true" isStatic="true" type="_dSiS02EMEeCdEc4VzBeWeQ" isUnique="false">
<ownedComment xmi:id="_lVrC0GEMEeCdEc4VzBeWeQ">
<body>
* Compiler option ID: Reporting Interface Method not Compatible with non-Inherited Methods.
* &lt;p>When enabled, the compiler will issue an error or a warning whenever an interface
* defines a method incompatible with a non-inherited &lt;code>Object&lt;/code> method. Until this conflict
* is resolved, such an interface cannot be implemented, For example,
* &lt;pre>
* interface I {
* int clone();
* }
* &lt;/pre>
* &lt;dl>
* &lt;dt>Option id:&lt;/dt>&lt;dd>&lt;code>&quot;org.eclipse.jdt.core.compiler.problem.incompatibleNonInheritedInterfaceMethod&quot;&lt;/code>&lt;/dd>
* &lt;dt>Possible values:&lt;/dt>&lt;dd>&lt;code>{ &quot;error&quot;, &quot;warning&quot;, &quot;ignore&quot; }&lt;/code>&lt;/dd>
* &lt;dt>Default:&lt;/dt>&lt;dd>&lt;code>&quot;warning&quot;&lt;/code>&lt;/dd>
* &lt;/dl>
* @since 2.1
* @category CompilerOptionID
</body>
</ownedComment>
</ownedAttribute>
<ownedAttribute xmi:id="_lV0z0GEMEeCdEc4VzBeWeQ" name="COMPILER_PB_UNUSED_PRIVATE_MEMBER" visibility="public" isLeaf="true" isStatic="true" type="_dSiS02EMEeCdEc4VzBeWeQ" isUnique="false">
<ownedComment xmi:id="_lV99wGEMEeCdEc4VzBeWeQ">
<body>
* Compiler option ID: Reporting Unused Private Members.
* &lt;p>When enabled, the compiler will issue an error or a warning whenever a private
* method or field is declared but never used within the same unit.
* &lt;dl>
* &lt;dt>Option id:&lt;/dt>&lt;dd>&lt;code>&quot;org.eclipse.jdt.core.compiler.problem.unusedPrivateMember&quot;&lt;/code>&lt;/dd>
* &lt;dt>Possible values:&lt;/dt>&lt;dd>&lt;code>{ &quot;error&quot;, &quot;warning&quot;, &quot;ignore&quot; }&lt;/code>&lt;/dd>
* &lt;dt>Default:&lt;/dt>&lt;dd>&lt;code>&quot;warning&quot;&lt;/code>&lt;/dd>
* &lt;/dl>
* @since 2.1
* @category CompilerOptionID
</body>
</ownedComment>
</ownedAttribute>
<ownedAttribute xmi:id="_lV99wWEMEeCdEc4VzBeWeQ" name="COMPILER_PB_LOCAL_VARIABLE_HIDING" visibility="public" isLeaf="true" isStatic="true" type="_dSiS02EMEeCdEc4VzBeWeQ" isUnique="false">
<ownedComment xmi:id="_lWHuwGEMEeCdEc4VzBeWeQ">
<body>
* Compiler option ID: Reporting Local Variable Declaration Hiding another Variable.
* &lt;p>When enabled, the compiler will issue an error or a warning whenever a local variable
* declaration is hiding some field or local variable (either locally, inherited or defined in enclosing type).
* &lt;dl>
* &lt;dt>Option id:&lt;/dt>&lt;dd>&lt;code>&quot;org.eclipse.jdt.core.compiler.problem.localVariableHiding&quot;&lt;/code>&lt;/dd>
* &lt;dt>Possible values:&lt;/dt>&lt;dd>&lt;code>{ &quot;error&quot;, &quot;warning&quot;, &quot;ignore&quot; }&lt;/code>&lt;/dd>
* &lt;dt>Default:&lt;/dt>&lt;dd>&lt;code>&quot;ignore&quot;&lt;/code>&lt;/dd>
* &lt;/dl>
* @since 3.0
* @category CompilerOptionID
</body>
</ownedComment>
</ownedAttribute>
<ownedAttribute xmi:id="_lWHuwWEMEeCdEc4VzBeWeQ" name="COMPILER_PB_SPECIAL_PARAMETER_HIDING_FIELD" visibility="public" isLeaf="true" isStatic="true" type="_dSiS02EMEeCdEc4VzBeWeQ" isUnique="false">
<ownedComment xmi:id="_lWRfwGEMEeCdEc4VzBeWeQ">
<body>
* Compiler option ID: Reporting Special Parameter Hiding another Field.
* &lt;p>When enabled, the compiler will signal cases where a constructor or setter method parameter declaration
* is hiding some field (either locally, inherited or defined in enclosing type).
* &lt;p>The severity of the problem is controlled with option {@link #COMPILER_PB_LOCAL_VARIABLE_HIDING}.
* &lt;dl>
* &lt;dt>Option id:&lt;/dt>&lt;dd>&lt;code>&quot;org.eclipse.jdt.core.compiler.problem.specialParameterHidingField&quot;&lt;/code>&lt;/dd>
* &lt;dt>Possible values:&lt;/dt>&lt;dd>&lt;code>{ &quot;enabled&quot;, &quot;disabled&quot; }&lt;/code>&lt;/dd>
* &lt;dt>Default:&lt;/dt>&lt;dd>&lt;code>&quot;disabled&quot;&lt;/code>&lt;/dd>
* &lt;/dl>
* @since 3.0
* @category CompilerOptionID
</body>
</ownedComment>
</ownedAttribute>
<ownedAttribute xmi:id="_lWapsGEMEeCdEc4VzBeWeQ" name="COMPILER_PB_FIELD_HIDING" visibility="public" isLeaf="true" isStatic="true" type="_dSiS02EMEeCdEc4VzBeWeQ" isUnique="false">
<ownedComment xmi:id="_lWapsWEMEeCdEc4VzBeWeQ">
<body>
* Compiler option ID: Reporting Field Declaration Hiding another Variable.
* &lt;p>When enabled, the compiler will issue an error or a warning whenever a field
* declaration is hiding some field or local variable (either locally, inherited or defined in enclosing type).
* &lt;dl>
* &lt;dt>Option id:&lt;/dt>&lt;dd>&lt;code>&quot;org.eclipse.jdt.core.compiler.problem.fieldHiding&quot;&lt;/code>&lt;/dd>
* &lt;dt>Possible values:&lt;/dt>&lt;dd>&lt;code>{ &quot;error&quot;, &quot;warning&quot;, &quot;ignore&quot; }&lt;/code>&lt;/dd>
* &lt;dt>Default:&lt;/dt>&lt;dd>&lt;code>&quot;ignore&quot;&lt;/code>&lt;/dd>
* &lt;/dl>
* @since 3.0
* @category CompilerOptionID
</body>
</ownedComment>
</ownedAttribute>
<ownedAttribute xmi:id="_lWkasGEMEeCdEc4VzBeWeQ" name="COMPILER_PB_TYPE_PARAMETER_HIDING" visibility="public" isLeaf="true" isStatic="true" type="_dSiS02EMEeCdEc4VzBeWeQ" isUnique="false">
<ownedComment xmi:id="_lWtkoGEMEeCdEc4VzBeWeQ">
<body>
* Compiler option ID: Reporting Type Declaration Hiding another Type.
* &lt;p>When enabled, the compiler will issue an error or a warning in situations where a type parameter
* declaration is hiding some type, when a nested type is hiding some type parameter, or when
* a nested type is hiding another nested type defined in same unit.
* &lt;dl>
* &lt;dt>Option id:&lt;/dt>&lt;dd>&lt;code>&quot;org.eclipse.jdt.core.compiler.problem.typeParameterHiding&quot;&lt;/code>&lt;/dd>
* &lt;dt>Possible values:&lt;/dt>&lt;dd>&lt;code>{ &quot;error&quot;, &quot;warning&quot;, &quot;ignore&quot; }&lt;/code>&lt;/dd>
* &lt;dt>Default:&lt;/dt>&lt;dd>&lt;code>&quot;warning&quot;&lt;/code>&lt;/dd>
* &lt;/dl>
* @since 3.1
* @category CompilerOptionID
</body>
</ownedComment>
</ownedAttribute>
<ownedAttribute xmi:id="_lWtkoWEMEeCdEc4VzBeWeQ" name="COMPILER_PB_POSSIBLE_ACCIDENTAL_BOOLEAN_ASSIGNMENT" visibility="public" isLeaf="true" isStatic="true" type="_dSiS02EMEeCdEc4VzBeWeQ" isUnique="false">
<ownedComment xmi:id="_lW3VoGEMEeCdEc4VzBeWeQ">
<body>
* Compiler option ID: Reporting Possible Accidental Boolean Assignment.
* &lt;p>When enabled, the compiler will issue an error or a warning if a boolean assignment is acting as the condition
* of a control statement (where it probably was meant to be a boolean comparison).
* &lt;dl>
* &lt;dt>Option id:&lt;/dt>&lt;dd>&lt;code>&quot;org.eclipse.jdt.core.compiler.problem.possibleAccidentalBooleanAssignment&quot;&lt;/code>&lt;/dd>
* &lt;dt>Possible values:&lt;/dt>&lt;dd>&lt;code>{ &quot;error&quot;, &quot;warning&quot;, &quot;ignore&quot; }&lt;/code>&lt;/dd>
* &lt;dt>Default:&lt;/dt>&lt;dd>&lt;code>&quot;ignore&quot;&lt;/code>&lt;/dd>
* &lt;/dl>
* @since 3.0
* @category CompilerOptionID
</body>
</ownedComment>
</ownedAttribute>
<ownedAttribute xmi:id="_lW3VoWEMEeCdEc4VzBeWeQ" name="COMPILER_PB_FALLTHROUGH_CASE" visibility="public" isLeaf="true" isStatic="true" type="_dSiS02EMEeCdEc4VzBeWeQ" isUnique="false">
<ownedComment xmi:id="_lXBGoGEMEeCdEc4VzBeWeQ">
<body>
* Compiler option ID: Reporting Switch Fall-Through Case.
* &lt;p>When enabled, the compiler will issue an error or a warning if a case may be
* entered by falling through previous case. Empty cases are allowed.
* &lt;dl>
* &lt;dt>Option id:&lt;/dt>&lt;dd>&lt;code>&quot;org.eclipse.jdt.core.compiler.problem.fallthroughCase&quot;&lt;/code>&lt;/dd>
* &lt;dt>Possible values:&lt;/dt>&lt;dd>&lt;code>{ &quot;error&quot;, &quot;warning&quot;, &quot;ignore&quot; }&lt;/code>&lt;/dd>
* &lt;dt>Default:&lt;/dt>&lt;dd>&lt;code>&quot;ignore&quot;&lt;/code>&lt;/dd>
* &lt;/dl>
* @since 3.2
* @category CompilerOptionID
</body>
</ownedComment>
</ownedAttribute>
<ownedAttribute xmi:id="_lXBGoWEMEeCdEc4VzBeWeQ" name="COMPILER_PB_EMPTY_STATEMENT" visibility="public" isLeaf="true" isStatic="true" type="_dSiS02EMEeCdEc4VzBeWeQ" isUnique="false">
<ownedComment xmi:id="_lXKQkGEMEeCdEc4VzBeWeQ">
<body>
* Compiler option ID: Reporting Empty Statements and Unnecessary Semicolons.
* &lt;p>When enabled, the compiler will issue an error or a warning if an empty statement or a
* unnecessary semicolon is encountered.
* &lt;dl>
* &lt;dt>Option id:&lt;/dt>&lt;dd>&lt;code>&quot;org.eclipse.jdt.core.compiler.problem.emptyStatement&quot;&lt;/code>&lt;/dd>
* &lt;dt>Possible values:&lt;/dt>&lt;dd>&lt;code>{ &quot;error&quot;, &quot;warning&quot;, &quot;ignore&quot; }&lt;/code>&lt;/dd>
* &lt;dt>Default:&lt;/dt>&lt;dd>&lt;code>&quot;ignore&quot;&lt;/code>&lt;/dd>
* &lt;/dl>
* @since 3.0
* @category CompilerOptionID
</body>
</ownedComment>
</ownedAttribute>
<ownedAttribute xmi:id="_lXKQkWEMEeCdEc4VzBeWeQ" name="COMPILER_PB_BOOLEAN_METHOD_THROWING_EXCEPTION" visibility="public" isLeaf="true" isStatic="true" type="_dSiS02EMEeCdEc4VzBeWeQ" isUnique="false">
<ownedComment xmi:id="_lXUBkGEMEeCdEc4VzBeWeQ">
<body>
* Compiler option ID.
* &lt;dl>
* &lt;dt>Option id:&lt;/dt>&lt;dd>&lt;code>&quot;org.eclipse.jdt.core.compiler.problem.booleanMethodThrowingException&quot;&lt;/code>&lt;/dd>
* &lt;dt>Possible values:&lt;/dt>&lt;dd>&lt;code>{ &quot;error&quot;, &quot;warning&quot;, &quot;ignore&quot; }&lt;/code>&lt;/dd>
* &lt;dt>Default:&lt;/dt>&lt;dd>&lt;code>&quot;ignore&quot;&lt;/code>&lt;/dd>
* &lt;/dl>
* @since 3.0
* @category CompilerOptionID
* @deprecated - this option has no effect
</body>
</ownedComment>
</ownedAttribute>
<ownedAttribute xmi:id="_lXdykGEMEeCdEc4VzBeWeQ" name="COMPILER_PB_UNNECESSARY_TYPE_CHECK" visibility="public" isLeaf="true" isStatic="true" type="_dSiS02EMEeCdEc4VzBeWeQ" isUnique="false">
<ownedComment xmi:id="_lXdykWEMEeCdEc4VzBeWeQ">
<body>
* Compiler option ID: Reporting Unnecessary Type Check.
* &lt;p>When enabled, the compiler will issue an error or a warning when a cast or an &lt;code>instanceof&lt;/code> operation
* is unnecessary.
* &lt;dl>
* &lt;dt>Option id:&lt;/dt>&lt;dd>&lt;code>&quot;org.eclipse.jdt.core.compiler.problem.unnecessaryTypeCheck&quot;&lt;/code>&lt;/dd>
* &lt;dt>Possible values:&lt;/dt>&lt;dd>&lt;code>{ &quot;error&quot;, &quot;warning&quot;, &quot;ignore&quot; }&lt;/code>&lt;/dd>
* &lt;dt>Default:&lt;/dt>&lt;dd>&lt;code>&quot;ignore&quot;&lt;/code>&lt;/dd>
* &lt;/dl>
* @since 3.0
* @category CompilerOptionID
</body>
</ownedComment>
</ownedAttribute>
<ownedAttribute xmi:id="_lXm8gGEMEeCdEc4VzBeWeQ" name="COMPILER_PB_UNNECESSARY_ELSE" visibility="public" isLeaf="true" isStatic="true" type="_dSiS02EMEeCdEc4VzBeWeQ" isUnique="false">
<ownedComment xmi:id="_lXm8gWEMEeCdEc4VzBeWeQ">
<body>
* Compiler option ID: Reporting Unnecessary Else.
* &lt;p>When enabled, the compiler will issue an error or a warning when a statement is unnecessarily
* nested within an &lt;code>else&lt;/code> clause (in situation where then clause is not completing normally).
* &lt;dl>
* &lt;dt>Option id:&lt;/dt>&lt;dd>&lt;code>&quot;org.eclipse.jdt.core.compiler.problem.unnecessaryElse&quot;&lt;/code>&lt;/dd>
* &lt;dt>Possible values:&lt;/dt>&lt;dd>&lt;code>{ &quot;error&quot;, &quot;warning&quot;, &quot;ignore&quot; }&lt;/code>&lt;/dd>
* &lt;dt>Default:&lt;/dt>&lt;dd>&lt;code>&quot;ignore&quot;&lt;/code>&lt;/dd>
* &lt;/dl>
* @since 3.0
* @category CompilerOptionID
</body>
</ownedComment>
</ownedAttribute>
<ownedAttribute xmi:id="_lXwtgGEMEeCdEc4VzBeWeQ" name="COMPILER_PB_UNDOCUMENTED_EMPTY_BLOCK" visibility="public" isLeaf="true" isStatic="true" type="_dSiS02EMEeCdEc4VzBeWeQ" isUnique="false">
<ownedComment xmi:id="_lX53cGEMEeCdEc4VzBeWeQ">
<body>
* Compiler option ID: Reporting Undocumented Empty Block.
* &lt;p>When enabled, the compiler will issue an error or a warning when an empty block is detected and it is not
* documented with any comment.
* &lt;dl>
* &lt;dt>Option id:&lt;/dt>&lt;dd>&lt;code>&quot;org.eclipse.jdt.core.compiler.problem.undocumentedEmptyBlock&quot;&lt;/code>&lt;/dd>
* &lt;dt>Possible values:&lt;/dt>&lt;dd>&lt;code>{ &quot;error&quot;, &quot;warning&quot;, &quot;ignore&quot; }&lt;/code>&lt;/dd>
* &lt;dt>Default:&lt;/dt>&lt;dd>&lt;code>&quot;ignore&quot;&lt;/code>&lt;/dd>
* &lt;/dl>
* @since 3.0
* @category CompilerOptionID
</body>
</ownedComment>
</ownedAttribute>
<ownedAttribute xmi:id="_lX53cWEMEeCdEc4VzBeWeQ" name="COMPILER_PB_FINALLY_BLOCK_NOT_COMPLETING" visibility="public" isLeaf="true" isStatic="true" type="_dSiS02EMEeCdEc4VzBeWeQ" isUnique="false">
<ownedComment xmi:id="_lYDocGEMEeCdEc4VzBeWeQ">
<body>
* Compiler option ID: Reporting Finally Blocks Not Completing Normally.
* &lt;p>When enabled, the compiler will issue an error or a warning when a finally block does not complete normally.
* &lt;dl>
* &lt;dt>Option id:&lt;/dt>&lt;dd>&lt;code>&quot;org.eclipse.jdt.core.compiler.problem.finallyBlockNotCompletingNormally&quot;&lt;/code>&lt;/dd>
* &lt;dt>Possible values:&lt;/dt>&lt;dd>&lt;code>{ &quot;error&quot;, &quot;warning&quot;, &quot;ignore&quot; }&lt;/code>&lt;/dd>
* &lt;dt>Default:&lt;/dt>&lt;dd>&lt;code>&quot;warning&quot;&lt;/code>&lt;/dd>
* &lt;/dl>
* @since 3.0
* @category CompilerOptionID
</body>
</ownedComment>
</ownedAttribute>
<ownedAttribute xmi:id="_lYDocWEMEeCdEc4VzBeWeQ" name="COMPILER_PB_UNUSED_DECLARED_THROWN_EXCEPTION" visibility="public" isLeaf="true" isStatic="true" type="_dSiS02EMEeCdEc4VzBeWeQ" isUnique="false">
<ownedComment xmi:id="_lYNZcGEMEeCdEc4VzBeWeQ">
<body>
* Compiler option ID: Reporting Unused Declared Thrown Exception.
* &lt;p>When enabled, the compiler will issue an error or a warning when a
* method or a constructor is declaring a checked exception as thrown,
* but its body actually raises neither that exception, nor any other
* exception extending it.
* &lt;p>This diagnostic is further tuned by options
* {@link #COMPILER_PB_UNUSED_DECLARED_THROWN_EXCEPTION_INCLUDE_DOC_COMMENT_REFERENCE},
* {@link #COMPILER_PB_UNUSED_DECLARED_THROWN_EXCEPTION_EXEMPT_EXCEPTION_AND_THROWABLE},
* and {@link #COMPILER_PB_UNUSED_DECLARED_THROWN_EXCEPTION_WHEN_OVERRIDING}.
* &lt;dl>
* &lt;dt>Option id:&lt;/dt>&lt;dd>&lt;code>&quot;org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownException&quot;&lt;/code>&lt;/dd>
* &lt;dt>Possible values:&lt;/dt>&lt;dd>&lt;code>{ &quot;error&quot;, &quot;warning&quot;, &quot;ignore&quot; }&lt;/code>&lt;/dd>
* &lt;dt>Default:&lt;/dt>&lt;dd>&lt;code>&quot;ignore&quot;&lt;/code>&lt;/dd>
* &lt;/dl>
* @since 3.0
* @category CompilerOptionID
</body>
</ownedComment>
</ownedAttribute>
<ownedAttribute xmi:id="_lYNZcWEMEeCdEc4VzBeWeQ" name="COMPILER_PB_UNUSED_DECLARED_THROWN_EXCEPTION_WHEN_OVERRIDING" visibility="public" isLeaf="true" isStatic="true" type="_dSiS02EMEeCdEc4VzBeWeQ" isUnique="false">
<ownedComment xmi:id="_lYgUYGEMEeCdEc4VzBeWeQ">
<body>
* Compiler option ID: Reporting Unused Declared Thrown Exception in Overriding Method.
* &lt;p>When disabled, the compiler will report unused declared thrown
* exceptions neither on overriding methods nor on implementing methods.
* &lt;p>The severity of the unused declared thrown exception problem is
* controlled with option {@link #COMPILER_PB_UNUSED_DECLARED_THROWN_EXCEPTION}.
* &lt;p>This diagnostic is further tuned by options
* {@link #COMPILER_PB_UNUSED_DECLARED_THROWN_EXCEPTION_INCLUDE_DOC_COMMENT_REFERENCE} and
* {@link #COMPILER_PB_UNUSED_DECLARED_THROWN_EXCEPTION_EXEMPT_EXCEPTION_AND_THROWABLE}.
* &lt;dl>
* &lt;dt>Option id:&lt;/dt>&lt;dd>&lt;code>&quot;org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionWhenOverriding&quot;&lt;/code>&lt;/dd>
* &lt;dt>Possible values:&lt;/dt>&lt;dd>&lt;code>{ &quot;enabled&quot;, &quot;disabled&quot; }&lt;/code>&lt;/dd>
* &lt;dt>Default:&lt;/dt>&lt;dd>&lt;code>&quot;disabled&quot;&lt;/code>&lt;/dd>
* &lt;/dl>
* @since 3.0
* @category CompilerOptionID
</body>
</ownedComment>
</ownedAttribute>
<ownedAttribute xmi:id="_lYqFYGEMEeCdEc4VzBeWeQ" name="COMPILER_PB_UNUSED_DECLARED_THROWN_EXCEPTION_INCLUDE_DOC_COMMENT_REFERENCE" visibility="public" isLeaf="true" isStatic="true" type="_dSiS02EMEeCdEc4VzBeWeQ" isUnique="false">
<ownedComment xmi:id="_lYzPUGEMEeCdEc4VzBeWeQ">
<body>
* Compiler option ID: Consider Reference in Doc Comment for Unused Declared Thrown Exception Check.
* &lt;p>When enabled, the compiler will consider doc comment references to
* exceptions (i.e. &lt;code>@throws&lt;/code> clauses) for the unused
* declared thrown exception check. Thus, documented exceptions will be
* considered as mandated as per doc contract.
* &lt;p>The severity of the unused declared thrown exception problem is controlled with option {@link #COMPILER_PB_UNUSED_DECLARED_THROWN_EXCEPTION}.
* &lt;p>Note: this option has no effect until the doc comment support is enabled according to the
* option {@link #COMPILER_DOC_COMMENT_SUPPORT}.
* &lt;p>This diagnostic is further tuned by options
* {@link #COMPILER_PB_UNUSED_DECLARED_THROWN_EXCEPTION_EXEMPT_EXCEPTION_AND_THROWABLE}
* and {@link #COMPILER_PB_UNUSED_DECLARED_THROWN_EXCEPTION_WHEN_OVERRIDING}.
* &lt;dl>
* &lt;dt>Option id:&lt;/dt>&lt;dd>&lt;code>&quot;org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionIncludeDocCommentReference&quot;&lt;/code>&lt;/dd>
* &lt;dt>Possible values:&lt;/dt>&lt;dd>&lt;code>{ &quot;enabled&quot;, &quot;disabled&quot; }&lt;/code>&lt;/dd>
* &lt;dt>Default:&lt;/dt>&lt;dd>&lt;code>&quot;enabled&quot;&lt;/code>&lt;/dd>
* &lt;/dl>
* @since 3.4
* @category CompilerOptionID
</body>
</ownedComment>
</ownedAttribute>
<ownedAttribute xmi:id="_lYzPUWEMEeCdEc4VzBeWeQ" name="COMPILER_PB_UNUSED_DECLARED_THROWN_EXCEPTION_EXEMPT_EXCEPTION_AND_THROWABLE" visibility="public" isLeaf="true" isStatic="true" type="_dSiS02EMEeCdEc4VzBeWeQ" isUnique="false">
<ownedComment xmi:id="_lY9AUGEMEeCdEc4VzBeWeQ">
<body>
* Compiler option ID: Reporting Unused Declared Thrown Exception Exempts Exception And Throwable.
* &lt;p>When enabled, the compiler will issue an error or a warning when a
* method or a constructor is declaring a checked exception else than
* {@link java.lang.Throwable} or {@link java.lang.Exception} as thrown,
* but its body actually raises neither that exception, nor any other
* exception extending it. When disabled, the compiler will issue an
* error or a warning when a method or a constructor is declaring a
* checked exception (including {@link java.lang.Throwable} and
* {@link java.lang.Exception}) as thrown, but its body actually raises
* neither that exception, nor any other exception extending it.
* &lt;p>The severity of the unused declared thrown exception problem is
* controlled with option
* {@link #COMPILER_PB_UNUSED_DECLARED_THROWN_EXCEPTION}.
* &lt;p>This diagnostic is further tuned by options
* {@link #COMPILER_PB_UNUSED_DECLARED_THROWN_EXCEPTION_INCLUDE_DOC_COMMENT_REFERENCE}
* and {@link #COMPILER_PB_UNUSED_DECLARED_THROWN_EXCEPTION_WHEN_OVERRIDING}.
* &lt;dl>
* &lt;dt>Option id:&lt;/dt>&lt;dd>&lt;code>&quot;org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionExemptExceptionAndThrowable&quot;&lt;/code>&lt;/dd>
* &lt;dt>Possible values:&lt;/dt>&lt;dd>&lt;code>{ &quot;enabled&quot;, &quot;disabled&quot; }&lt;/code>&lt;/dd>
* &lt;dt>Default:&lt;/dt>&lt;dd>&lt;code>&quot;enabled&quot;&lt;/code>&lt;/dd>
* &lt;/dl>
* @since 3.4
* @category CompilerOptionID
</body>
</ownedComment>
</ownedAttribute>
<ownedAttribute xmi:id="_lZGKQGEMEeCdEc4VzBeWeQ" name="COMPILER_PB_UNQUALIFIED_FIELD_ACCESS" visibility="public" isLeaf="true" isStatic="true" type="_dSiS02EMEeCdEc4VzBeWeQ" isUnique="false">
<ownedComment xmi:id="_lZGKQWEMEeCdEc4VzBeWeQ">
<body>
* Compiler option ID: Reporting Unqualified Access to Field.
* &lt;p>When enabled, the compiler will issue an error or a warning when a field is access without any qualification.
* In order to improve code readability, it should be qualified, e.g. &lt;code>'x'&lt;/code> should rather be written &lt;code>'this.x'&lt;/code>.
* &lt;dl>
* &lt;dt>Option id:&lt;/dt>&lt;dd>&lt;code>&quot;org.eclipse.jdt.core.compiler.problem.unqualifiedFieldAccess&quot;&lt;/code>&lt;/dd>
* &lt;dt>Possible values:&lt;/dt>&lt;dd>&lt;code>{ &quot;error&quot;, &quot;warning&quot;, &quot;ignore&quot; }&lt;/code>&lt;/dd>
* &lt;dt>Default:&lt;/dt>&lt;dd>&lt;code>&quot;ignore&quot;&lt;/code>&lt;/dd>
* &lt;/dl>
* @since 3.0
* @category CompilerOptionID
</body>
</ownedComment>
</ownedAttribute>
<ownedAttribute xmi:id="_lZP7QGEMEeCdEc4VzBeWeQ" name="COMPILER_PB_UNSAFE_TYPE_OPERATION" visibility="public" isLeaf="true" isStatic="true" type="_dSiS02EMEeCdEc4VzBeWeQ" isUnique="false">
<ownedComment xmi:id="_lZZsQGEMEeCdEc4VzBeWeQ">
<body>
* @deprecated Use {@link #COMPILER_PB_UNCHECKED_TYPE_OPERATION} instead.
* @since 3.1
* @category DeprecatedOptionID
</body>
</ownedComment>
</ownedAttribute>
<ownedAttribute xmi:id="_lZZsQWEMEeCdEc4VzBeWeQ" name="COMPILER_PB_UNCHECKED_TYPE_OPERATION" visibility="public" isLeaf="true" isStatic="true" type="_dSiS02EMEeCdEc4VzBeWeQ" isUnique="false">
<ownedComment xmi:id="_lZi2MGEMEeCdEc4VzBeWeQ">
<body>
* Compiler option ID: Reporting Unchecked Type Operation.
* &lt;p>When enabled, the compiler will issue an error or a warning whenever an operation involves generic types, and potentially
* invalidates type safety since involving raw types (e.g. invoking &lt;code>#foo(X&amp;lt;String&amp;gt;)&lt;/code> with arguments &lt;code>(X)&lt;/code>).
* &lt;dl>
* &lt;dt>Option id:&lt;/dt>&lt;dd>&lt;code>&quot;org.eclipse.jdt.core.compiler.problem.uncheckedTypeOperation&quot;&lt;/code>&lt;/dd>
* &lt;dt>Possible values:&lt;/dt>&lt;dd>&lt;code>{ &quot;error&quot;, &quot;warning&quot;, &quot;ignore&quot; }&lt;/code>&lt;/dd>
* &lt;dt>Default:&lt;/dt>&lt;dd>&lt;code>&quot;warning&quot;&lt;/code>&lt;/dd>
* &lt;/dl>
* @since 3.1
* @category CompilerOptionID
</body>
</ownedComment>
</ownedAttribute>
<ownedAttribute xmi:id="_lZi2MWEMEeCdEc4VzBeWeQ" name="COMPILER_PB_RAW_TYPE_REFERENCE" visibility="public" isLeaf="true" isStatic="true" type="_dSiS02EMEeCdEc4VzBeWeQ" isUnique="false">
<ownedComment xmi:id="_lZsnMGEMEeCdEc4VzBeWeQ">
<body>
* Compiler option ID: Reporting Raw Type Reference.
* &lt;p>When enabled, the compiler will issue an error or a warning when detecting references to raw types. Raw types are
* discouraged, and are intended to help interfacing with legacy code. In the future, the language specification may
* reject raw references to generic types.
* &lt;dl>
* &lt;dt>Option id:&lt;/dt>&lt;dd>&lt;code>&quot;org.eclipse.jdt.core.compiler.problem.rawTypeReference&quot;&lt;/code>&lt;/dd>
* &lt;dt>Possible values:&lt;/dt>&lt;dd>&lt;code>{ &quot;error&quot;, &quot;warning&quot;, &quot;ignore&quot; }&lt;/code>&lt;/dd>
* &lt;dt>Default:&lt;/dt>&lt;dd>&lt;code>&quot;warning&quot;&lt;/code>&lt;/dd>
* &lt;/dl>
* @since 3.2
* @category CompilerOptionID
</body>
</ownedComment>
</ownedAttribute>
<ownedAttribute xmi:id="_lZ_iIGEMEeCdEc4VzBeWeQ" name="COMPILER_PB_UNAVOIDABLE_GENERIC_TYPE_PROBLEMS" visibility="public" isLeaf="true" isStatic="true" type="_dSiS02EMEeCdEc4VzBeWeQ" isUnique="false">
<ownedComment xmi:id="_laJTIGEMEeCdEc4VzBeWeQ">
<body>
* Compiler option ID: Reporting of Unavoidable Generic Type Problems.
* &lt;p> When enabled, the compiler will issue an error or warning even when it detects a generic type problem
* that could not have been avoided by the programmer. As an example, a type may be forced to use raw types
* in its method signatures and return types because the methods it overrides from a super type are declared to
* use raw types in the first place.
* &lt;dl>
* &lt;dt>Option id:&lt;/dt>&lt;dd>&lt;code>&quot;org.eclipse.jdt.core.compiler.problem.unavoidableGenericTypeProblems&quot;&lt;/code>&lt;/dd>
* &lt;dt>Possible values:&lt;/dt>&lt;dd>&lt;code>{ &quot;enabled&quot;, &quot;disabled&quot; }&lt;/code>&lt;/dd>
* &lt;dt>Default:&lt;/dt>&lt;dd>&lt;code>&quot;enabled&quot;&lt;/code>&lt;/dd>
* &lt;/dl>
* @since 3.7
* @category CompilerOptionID
</body>
</ownedComment>
</ownedAttribute>
<ownedAttribute xmi:id="_laJTIWEMEeCdEc4VzBeWeQ" name="COMPILER_PB_FINAL_PARAMETER_BOUND" visibility="public" isLeaf="true" isStatic="true" type="_dSiS02EMEeCdEc4VzBeWeQ" isUnique="false">
<ownedComment xmi:id="_laSdEGEMEeCdEc4VzBeWeQ">
<body>
* Compiler option ID: Reporting final Bound for Type Parameter.
* &lt;p>When enabled, the compiler will issue an error or a warning whenever a generic type parameter is associated with a
* bound corresponding to a final type; since final types cannot be further extended, the parameter is pretty useless.
* &lt;dl>
* &lt;dt>Option id:&lt;/dt>&lt;dd>&lt;code>&quot;org.eclipse.jdt.core.compiler.problem.finalParameterBound&quot;&lt;/code>&lt;/dd>
* &lt;dt>Possible values:&lt;/dt>&lt;dd>&lt;code>{ &quot;error&quot;, &quot;warning&quot;, &quot;ignore&quot; }&lt;/code>&lt;/dd>
* &lt;dt>Default:&lt;/dt>&lt;dd>&lt;code>&quot;warning&quot;&lt;/code>&lt;/dd>
* &lt;/dl>
* @since 3.1
* @category CompilerOptionID
</body>
</ownedComment>
</ownedAttribute>
<ownedAttribute xmi:id="_laSdEWEMEeCdEc4VzBeWeQ" name="COMPILER_PB_MISSING_SERIAL_VERSION" visibility="public" isLeaf="true" isStatic="true" type="_dSiS02EMEeCdEc4VzBeWeQ" isUnique="false">
<ownedComment xmi:id="_lacOEGEMEeCdEc4VzBeWeQ">
<body>
* Compiler option ID: Reporting Missing Declaration of serialVersionUID Field on Serializable Class.
* &lt;p>When enabled, the compiler will issue an error or a warning whenever a serializable class is missing a local declaration
* of a &lt;code>serialVersionUID&lt;/code> field. This field must be declared as static final and be of type &lt;code>long&lt;/code>.
* &lt;dl>
* &lt;dt>Option id:&lt;/dt>&lt;dd>&lt;code>&quot;org.eclipse.jdt.core.compiler.problem.missingSerialVersion&quot;&lt;/code>&lt;/dd>
* &lt;dt>Possible values:&lt;/dt>&lt;dd>&lt;code>{ &quot;error&quot;, &quot;warning&quot;, &quot;ignore&quot; }&lt;/code>&lt;/dd>
* &lt;dt>Default:&lt;/dt>&lt;dd>&lt;code>&quot;warning&quot;&lt;/code>&lt;/dd>
* &lt;/dl>
* @since 3.1
* @category CompilerOptionID
</body>
</ownedComment>
</ownedAttribute>
<ownedAttribute xmi:id="_lal_EGEMEeCdEc4VzBeWeQ" name="COMPILER_PB_VARARGS_ARGUMENT_NEED_CAST" visibility="public" isLeaf="true" isStatic="true" type="_dSiS02EMEeCdEc4VzBeWeQ" isUnique="false">
<ownedComment xmi:id="_lal_EWEMEeCdEc4VzBeWeQ">
<body>
* Compiler option ID: Reporting Varargs Argument Needing a Cast in Method/Constructor Invocation.
* &lt;p>When enabled, the compiler will issue an error or a warning whenever a varargs arguments should be cast
* when passed to a method/constructor invocation. (e.g. &lt;code>Class.getMethod(String name, Class ... args )&lt;/code>
* invoked with arguments &lt;code>(&quot;foo&quot;, null)&lt;/code>).
* &lt;dl>
* &lt;dt>Option id:&lt;/dt>&lt;dd>&lt;code>&quot;org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast&quot;&lt;/code>&lt;/dd>
* &lt;dt>Possible values:&lt;/dt>&lt;dd>&lt;code>{ &quot;error&quot;, &quot;warning&quot;, &quot;ignore&quot; }&lt;/code>&lt;/dd>
* &lt;dt>Default:&lt;/dt>&lt;dd>&lt;code>&quot;warning&quot;&lt;/code>&lt;/dd>
* &lt;/dl>
* @since 3.1
* @category CompilerOptionID
</body>
</ownedComment>
</ownedAttribute>
<ownedAttribute xmi:id="_lavJAGEMEeCdEc4VzBeWeQ" name="COMPILER_PB_AUTOBOXING" visibility="public" isLeaf="true" isStatic="true" type="_dSiS02EMEeCdEc4VzBeWeQ" isUnique="false">
<ownedComment xmi:id="_la46AGEMEeCdEc4VzBeWeQ">
<body>
* Compiler option ID: Reporting Boxing/Unboxing Conversion.
* &lt;p>When enabled, the compiler will issue an error or a warning whenever a boxing or an unboxing
* conversion is performed.
* &lt;dl>
* &lt;dt>Option id:&lt;/dt>&lt;dd>&lt;code>&quot;org.eclipse.jdt.core.compiler.problem.autoboxing&quot;&lt;/code>&lt;/dd>
* &lt;dt>Possible values:&lt;/dt>&lt;dd>&lt;code>{ &quot;error&quot;, &quot;warning&quot;, &quot;ignore&quot; }&lt;/code>&lt;/dd>
* &lt;dt>Default:&lt;/dt>&lt;dd>&lt;code>&quot;ignore&quot;&lt;/code>&lt;/dd>
* &lt;/dl>
* @since 3.1
* @category CompilerOptionID
</body>
</ownedComment>
</ownedAttribute>
<ownedAttribute xmi:id="_la46AWEMEeCdEc4VzBeWeQ" name="COMPILER_PB_ANNOTATION_SUPER_INTERFACE" visibility="public" isLeaf="true" isStatic="true" type="_dSiS02EMEeCdEc4VzBeWeQ" isUnique="false">
<ownedComment xmi:id="_lbCrAGEMEeCdEc4VzBeWeQ">
<body>
* Compiler option ID: Reporting Use of Annotation Type as Super Interface.
* &lt;p>When enabled, the compiler will issue an error or a warning whenever an annotation type is used
* as a super-interface. Though legal, this is discouraged.
* &lt;dl>
* &lt;dt>Option id:&lt;/dt>&lt;dd>&lt;code>&quot;org.eclipse.jdt.core.compiler.problem.annotationSuperInterface&quot;&lt;/code>&lt;/dd>
* &lt;dt>Possible values:&lt;/dt>&lt;dd>&lt;code>{ &quot;error&quot;, &quot;warning&quot;, &quot;ignore&quot; }&lt;/code>&lt;/dd>
* &lt;dt>Default:&lt;/dt>&lt;dd>&lt;code>&quot;warning&quot;&lt;/code>&lt;/dd>
* &lt;/dl>
* @since 3.1
* @category CompilerOptionID
</body>
</ownedComment>
</ownedAttribute>
<ownedAttribute xmi:id="_lbL08GEMEeCdEc4VzBeWeQ" name="COMPILER_PB_MISSING_OVERRIDE_ANNOTATION" visibility="public" isLeaf="true" isStatic="true" type="_dSiS02EMEeCdEc4VzBeWeQ" isUnique="false">
<ownedComment xmi:id="_lbL08WEMEeCdEc4VzBeWeQ">
<body>
* Compiler option ID: Reporting Missing &lt;code>@Override&lt;/code> Annotation.
* &lt;p>When enabled, the compiler will issue an error or a warning whenever encountering a method
* declaration which overrides a superclass method but has no &lt;code>@Override&lt;/code> annotation.
* &lt;dl>
* &lt;dt>Option id:&lt;/dt>&lt;dd>&lt;code>&quot;org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotation&quot;&lt;/code>&lt;/dd>
* &lt;dt>Possible values:&lt;/dt>&lt;dd>&lt;code>{ &quot;error&quot;, &quot;warning&quot;, &quot;ignore&quot; }&lt;/code>&lt;/dd>
* &lt;dt>Default:&lt;/dt>&lt;dd>&lt;code>&quot;ignore&quot;&lt;/code>&lt;/dd>
* &lt;/dl>
* @since 3.1
* @category CompilerOptionID
</body>
</ownedComment>
</ownedAttribute>
<ownedAttribute xmi:id="_lbVl8GEMEeCdEc4VzBeWeQ" name="COMPILER_PB_MISSING_OVERRIDE_ANNOTATION_FOR_INTERFACE_METHOD_IMPLEMENTATION" visibility="public" isLeaf="true" isStatic="true" type="_dSiS02EMEeCdEc4VzBeWeQ" isUnique="false">
<ownedComment xmi:id="_lbVl8WEMEeCdEc4VzBeWeQ">
<body>
* Compiler option ID: Reporting Missing &lt;code>@Override&lt;/code> Annotation for interface method implementation.
* &lt;p>When enabled, the compiler will issue an error or a warning whenever encountering a method
* declaration which overrides or implements a superinterface method but has no &lt;code>@Override&lt;/code> annotation.&lt;/p>
* &lt;p>This option only has an effect if the compiler compliance is 1.6 or greater.&lt;/p>
* &lt;p>The severity of the problem is controlled with option {@link #COMPILER_PB_MISSING_OVERRIDE_ANNOTATION}.&lt;/p>
* &lt;dl>
* &lt;dt>Option id:&lt;/dt>&lt;dd>&lt;code>&quot;org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotationForInterfaceMethodImplementation&quot;&lt;/code>&lt;/dd>
* &lt;dt>Possible values:&lt;/dt>&lt;dd>&lt;code>{ &quot;enabled&quot;, &quot;disabled&quot; }&lt;/code>&lt;/dd>
* &lt;dt>Default:&lt;/dt>&lt;dd>&lt;code>&quot;enabled&quot;&lt;/code>&lt;/dd>
* &lt;/dl>
* @since 3.6
* @category CompilerOptionID
</body>
</ownedComment>
</ownedAttribute>
<ownedAttribute xmi:id="_lbev4GEMEeCdEc4VzBeWeQ" name="COMPILER_PB_MISSING_DEPRECATED_ANNOTATION" visibility="public" isLeaf="true" isStatic="true" type="_dSiS02EMEeCdEc4VzBeWeQ" isUnique="false">
<ownedComment xmi:id="_lbog4GEMEeCdEc4VzBeWeQ">
<body>
* Compiler option ID: Reporting Missing &lt;code>@Deprecated&lt;/code> Annotation.
* &lt;p>When enabled, the compiler will issue an error or a warning whenever encountering a declaration
* carrying a &lt;code>@deprecated&lt;/code> doc tag but having no corresponding &lt;code>@Deprecated&lt;/code> annotation.
* &lt;dl>
* &lt;dt>Option id:&lt;/dt>&lt;dd>&lt;code>&quot;org.eclipse.jdt.core.compiler.problem.missingDeprecatedAnnotation&quot;&lt;/code>&lt;/dd>
* &lt;dt>Possible values:&lt;/dt>&lt;dd>&lt;code>{ &quot;error&quot;, &quot;warning&quot;, &quot;ignore&quot; }&lt;/code>&lt;/dd>
* &lt;dt>Default:&lt;/dt>&lt;dd>&lt;code>&quot;ignore&quot;&lt;/code>&lt;/dd>
* &lt;/dl>
* @since 3.1
* @category CompilerOptionID
</body>
</ownedComment>
</ownedAttribute>
<ownedAttribute xmi:id="_lbyR4GEMEeCdEc4VzBeWeQ" name="COMPILER_PB_MISSING_HASHCODE_METHOD" visibility="public" isLeaf="true" isStatic="true" type="_dSiS02EMEeCdEc4VzBeWeQ" isUnique="false">
<ownedComment xmi:id="_lbyR4WEMEeCdEc4VzBeWeQ">
<body>
* Compiler option ID: Reporting Missing HashCode Method.
* &lt;p>When enabled, the compiler will issue an error or a warning if a type
* overrides Object.equals(Object) but does not override hashCode().
* &lt;dl>
* &lt;dt>Option id:&lt;/dt>&lt;dd>&lt;code>&quot;org.eclipse.jdt.core.compiler.problem.missingHashCodeMethod&quot;&lt;/code>&lt;/dd>
* &lt;dt>Possible values:&lt;/dt>&lt;dd>&lt;code>{ &quot;error&quot;, &quot;warning&quot;, &quot;ignore&quot; }&lt;/code>&lt;/dd>
* &lt;dt>Default:&lt;/dt>&lt;dd>&lt;code>&quot;ignore&quot;&lt;/code>&lt;/dd>
* &lt;/dl>
* @since 3.5
* @category CompilerOptionID
</body>
</ownedComment>
</ownedAttribute>
<ownedAttribute xmi:id="_lb7b0GEMEeCdEc4VzBeWeQ" name="COMPILER_PB_DEAD_CODE" visibility="public" isLeaf="true" isStatic="true" type="_dSiS02EMEeCdEc4VzBeWeQ" isUnique="false">
<ownedComment xmi:id="_lcFM0GEMEeCdEc4VzBeWeQ">
<body>
* Compiler option ID: Reporting Dead Code.
* &lt;p>When enabled, the compiler will issue an error or a warning if some non fatal dead code is detected. For instance, &lt;code>if (false) foo();&lt;/code>
* is not reported as truly unreachable code by the Java Language Specification. If this diagnostic is enabled, then the invocation of &lt;code>foo()&lt;/code> is
* going to be signaled as being dead code.
* &lt;dl>
* &lt;dt>Option id:&lt;/dt>&lt;dd>&lt;code>&quot;org.eclipse.jdt.core.compiler.problem.deadCode&quot;&lt;/code>&lt;/dd>
* &lt;dt>Possible values:&lt;/dt>&lt;dd>&lt;code>{ &quot;error&quot;, &quot;warning&quot;, &quot;ignore&quot; }&lt;/code>&lt;/dd>
* &lt;dt>Default:&lt;/dt>&lt;dd>&lt;code>&quot;warning&quot;&lt;/code>&lt;/dd>
* &lt;/dl>
* @since 3.5
* @category CompilerOptionID
</body>
</ownedComment>
</ownedAttribute>
<ownedAttribute xmi:id="_lcFM0WEMEeCdEc4VzBeWeQ" name="COMPILER_PB_DEAD_CODE_IN_TRIVIAL_IF_STATEMENT" visibility="public" isLeaf="true" isStatic="true" type="_dSiS02EMEeCdEc4VzBeWeQ" isUnique="false">
<ownedComment xmi:id="_lcO90GEMEeCdEc4VzBeWeQ">
<body>
* Compiler option ID: Reporting Dead Code Inside Trivial If Statement.
* &lt;p>When enabled, the compiler will signal presence of dead code inside trivial IF statement, e.g. &lt;code>if (DEBUG)...&lt;/code>..
* &lt;p>The severity of the problem is controlled with option {@link #COMPILER_PB_DEAD_CODE}.
* &lt;dl>
* &lt;dt>Option id:&lt;/dt>&lt;dd>&lt;code>&quot;org.eclipse.jdt.core.compiler.problem.deadCodeInTrivialIfStatement&quot;&lt;/code>&lt;/dd>
* &lt;dt>Possible values:&lt;/dt>&lt;dd>&lt;code>{ &quot;enabled&quot;, &quot;disabled&quot; }&lt;/code>&lt;/dd>
* &lt;dt>Default:&lt;/dt>&lt;dd>&lt;code>&quot;disabled&quot;&lt;/code>&lt;/dd>
* &lt;/dl>
* @since 3.5
* @category CompilerOptionID
</body>
</ownedComment>
</ownedAttribute>
<ownedAttribute xmi:id="_lcO90WEMEeCdEc4VzBeWeQ" name="COMPILER_PB_INCOMPLETE_ENUM_SWITCH" visibility="public" isLeaf="true" isStatic="true" type="_dSiS02EMEeCdEc4VzBeWeQ" isUnique="false">
<ownedComment xmi:id="_lcYHwGEMEeCdEc4VzBeWeQ">
<body>
* Compiler option ID: Reporting Incomplete Enum Switch.
* &lt;p>When enabled, the compiler will issue an error or a warning whenever
* an enum constant has no corresponding case label in an enum switch
* statement.
* &lt;dl>
* &lt;dt>Option id:&lt;/dt>&lt;dd>&lt;code>&quot;org.eclipse.jdt.core.compiler.problem.incompleteEnumSwitch&quot;&lt;/code>&lt;/dd>
* &lt;dt>Possible values:&lt;/dt>&lt;dd>&lt;code>{ &quot;error&quot;, &quot;warning&quot;, &quot;ignore&quot; }&lt;/code>&lt;/dd>
* &lt;dt>Default:&lt;/dt>&lt;dd>&lt;code>&quot;ignore&quot;&lt;/code>&lt;/dd>
* &lt;/dl>
* @since 3.1
* @category CompilerOptionID
</body>
</ownedComment>
</ownedAttribute>
<ownedAttribute xmi:id="_lch4wGEMEeCdEc4VzBeWeQ" name="COMPILER_PB_INCONSISTENT_NULL_CHECK" visibility="public" isLeaf="true" isStatic="true" type="_dSiS02EMEeCdEc4VzBeWeQ" isUnique="false">
<ownedComment xmi:id="_lch4wWEMEeCdEc4VzBeWeQ">
<body>
* @since 3.1
* @deprecated Use {@link #COMPILER_PB_NULL_REFERENCE} instead.
* @category DeprecatedOptionID
</body>
</ownedComment>
</ownedAttribute>
<ownedAttribute xmi:id="_lcrCsGEMEeCdEc4VzBeWeQ" name="COMPILER_PB_UNUSED_LABEL" visibility="public" isLeaf="true" isStatic="true" type="_dSiS02EMEeCdEc4VzBeWeQ" isUnique="false">
<ownedComment xmi:id="_lc0zsGEMEeCdEc4VzBeWeQ">
<body>
* Compiler option ID: Reporting Unreferenced Label.
* &lt;p>When enabled, the compiler will issue an error or a warning when encountering a labeled statement which label
* is never explicitly referenced. A label is considered to be referenced if its name explicitly appears behind a break
* or continue statement; for instance the following label would be considered unreferenced:
* &lt;code>LABEL: { break; }&lt;/code>
* &lt;dl>
* &lt;dt>Option id:&lt;/dt>&lt;dd>&lt;code>&quot;org.eclipse.jdt.core.compiler.problem.unusedLabel&quot;&lt;/code>&lt;/dd>
* &lt;dt>Possible values:&lt;/dt>&lt;dd>&lt;code>{ &quot;error&quot;, &quot;warning&quot;, &quot;ignore&quot; }&lt;/code>&lt;/dd>
* &lt;dt>Default:&lt;/dt>&lt;dd>&lt;code>&quot;warning&quot;&lt;/code>&lt;/dd>
* &lt;/dl>
* @since 3.2
* @category CompilerOptionID
</body>
</ownedComment>
</ownedAttribute>
<ownedAttribute xmi:id="_lc0zsWEMEeCdEc4VzBeWeQ" name="COMPILER_PB_INVALID_JAVADOC" visibility="public" isLeaf="true" isStatic="true" type="_dSiS02EMEeCdEc4VzBeWeQ" isUnique="false">
<ownedComment xmi:id="_lc-ksGEMEeCdEc4VzBeWeQ">
<body>
* Compiler option ID: Reporting Invalid Javadoc Comment.
* &lt;p>This is the generic control for the severity of Javadoc problems.
* When enabled, the compiler will issue an error or a warning for a problem in Javadoc.
* &lt;dl>
* &lt;dt>Option id:&lt;/dt>&lt;dd>&lt;code>&quot;org.eclipse.jdt.core.compiler.problem.invalidJavadoc&quot;&lt;/code>&lt;/dd>
* &lt;dt>Possible values:&lt;/dt>&lt;dd>&lt;code>{ &quot;error&quot;, &quot;warning&quot;, &quot;ignore&quot; }&lt;/code>&lt;/dd>
* &lt;dt>Default:&lt;/dt>&lt;dd>&lt;code>&quot;ignore&quot;&lt;/code>&lt;/dd>
* &lt;/dl>
* @since 3.0
* @category CompilerOptionID
</body>
</ownedComment>
</ownedAttribute>
<ownedAttribute xmi:id="_lc-ksWEMEeCdEc4VzBeWeQ" name="COMPILER_PB_INVALID_JAVADOC_TAGS" visibility="public" isLeaf="true" isStatic="true" type="_dSiS02EMEeCdEc4VzBeWeQ" isUnique="false">
<ownedComment xmi:id="_ldHuoGEMEeCdEc4VzBeWeQ">
<body>
* Compiler option ID: Reporting Invalid Javadoc Tags.
* &lt;p>When enabled, the compiler will signal unbound or unexpected reference tags in Javadoc.
* A &lt;code>@throws&lt;/code> tag referencing an undeclared exception would be considered as unexpected.
* &lt;p>Note that this diagnosis can be enabled based on the visibility of the construct associated with the Javadoc;
* also see the setting {@link #COMPILER_PB_INVALID_JAVADOC_TAGS_VISIBILITY}.
* &lt;dl>
* &lt;dt>Option id:&lt;/dt>&lt;dd>&lt;code>&quot;org.eclipse.jdt.core.compiler.problem.invalidJavadocTags&quot;&lt;/code>&lt;/dd>
* &lt;dt>Possible values:&lt;/dt>&lt;dd>&lt;code>{ &quot;enabled&quot;, &quot;disabled&quot; }&lt;/code>&lt;/dd>
* &lt;dt>Default:&lt;/dt>&lt;dd>&lt;code>&quot;disabled&quot;&lt;/code>&lt;/dd>
* &lt;/dl>
* @since 3.0
* @category CompilerOptionID
</body>
</ownedComment>
</ownedAttribute>
<ownedAttribute xmi:id="_ldRfoGEMEeCdEc4VzBeWeQ" name="COMPILER_PB_INVALID_JAVADOC_TAGS__DEPRECATED_REF" visibility="public" isLeaf="true" isStatic="true" type="_dSiS02EMEeCdEc4VzBeWeQ" isUnique="false">
<ownedComment xmi:id="_ldRfoWEMEeCdEc4VzBeWeQ">
<body>
* Compiler option ID: Reporting Invalid Javadoc Tags with Deprecated References.
* &lt;p>Specify whether the compiler will report deprecated references used in Javadoc tags.
* &lt;p>Note that this diagnosis can be enabled based on the visibility of the construct associated with the Javadoc;
* also see the setting {@link #COMPILER_PB_INVALID_JAVADOC_TAGS_VISIBILITY}.
* &lt;dl>
* &lt;dt>Option id:&lt;/dt>&lt;dd>&lt;code>&quot;org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsDeprecatedRef&quot;&lt;/code>&lt;/dd>
* &lt;dt>Possible values:&lt;/dt>&lt;dd>&lt;code>{ &quot;enabled&quot;, &quot;disabled&quot; }&lt;/code>&lt;/dd>
* &lt;dt>Default:&lt;/dt>&lt;dd>&lt;code>&quot;disabled&quot;&lt;/code>&lt;/dd>
* &lt;/dl>
* @since 3.1
* @category CompilerOptionID
</body>
</ownedComment>
</ownedAttribute>
<ownedAttribute xmi:id="_ldbQoGEMEeCdEc4VzBeWeQ" name="COMPILER_PB_INVALID_JAVADOC_TAGS__NOT_VISIBLE_REF" visibility="public" isLeaf="true" isStatic="true" type="_dSiS02EMEeCdEc4VzBeWeQ" isUnique="false">
<ownedComment xmi:id="_ldbQoWEMEeCdEc4VzBeWeQ">
<body>
* Compiler option ID: Reporting Invalid Javadoc Tags with Not Visible References.
* &lt;p>Specify whether the compiler will report non-visible references used in Javadoc tags.
* &lt;p>Note that this diagnosis can be enabled based on the visibility of the construct associated with the Javadoc;
* also see the setting {@link #COMPILER_PB_INVALID_JAVADOC_TAGS_VISIBILITY}.
* &lt;dl>
* &lt;dt>Option id:&lt;/dt>&lt;dd>&lt;code>&quot;org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsNotVisibleRef&quot;&lt;/code>&lt;/dd>
* &lt;dt>Possible values:&lt;/dt>&lt;dd>&lt;code>{ &quot;enabled&quot;, &quot;disabled&quot; }&lt;/code>&lt;/dd>
* &lt;dt>Default:&lt;/dt>&lt;dd>&lt;code>&quot;disabled&quot;&lt;/code>&lt;/dd>
* &lt;/dl>
* @since 3.1
* @category CompilerOptionID
</body>
</ownedComment>
</ownedAttribute>
<ownedAttribute xmi:id="_ldkakGEMEeCdEc4VzBeWeQ" name="COMPILER_PB_INVALID_JAVADOC_TAGS_VISIBILITY" visibility="public" isLeaf="true" isStatic="true" type="_dSiS02EMEeCdEc4VzBeWeQ" isUnique="false">
<ownedComment xmi:id="_ldkakWEMEeCdEc4VzBeWeQ">
<body>
* Compiler option ID: Visibility Level For Invalid Javadoc Tags.
* &lt;p>Set the minimum visibility level for Javadoc tag problems. Below this level problems will be ignored.
* &lt;dl>
* &lt;dt>Option id:&lt;/dt>&lt;dd>&lt;code>&quot;org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsVisibility&quot;&lt;/code>&lt;/dd>
* &lt;dt>Possible values:&lt;/dt>&lt;dd>&lt;code>{ &quot;public&quot;, &quot;protected&quot;, &quot;default&quot;, &quot;private&quot; }&lt;/code>&lt;/dd>
* &lt;dt>Default:&lt;/dt>&lt;dd>&lt;code>&quot;public&quot;&lt;/code>&lt;/dd>
* &lt;/dl>
* @since 3.0
* @category CompilerOptionID
</body>
</ownedComment>
</ownedAttribute>
<ownedAttribute xmi:id="_lduLkGEMEeCdEc4VzBeWeQ" name="COMPILER_PB_MISSING_JAVADOC_TAG_DESCRIPTION" visibility="public" isLeaf="true" isStatic="true" type="_dSiS02EMEeCdEc4VzBeWeQ" isUnique="false">
<ownedComment xmi:id="_ld3VgGEMEeCdEc4VzBeWeQ">
<body>
* Compiler option ID: Reporting missing tag description.
* &lt;p>When enabled, the compiler will report a warning or an error for any Javadoc tag missing a required description.
* &lt;p>The severity of the problem is controlled with option {@link #COMPILER_PB_INVALID_JAVADOC}.
* &lt;p>It does not depend on option {@link #COMPILER_PB_INVALID_JAVADOC_TAGS}.
* &lt;p>When this option is valued to {@link #COMPILER_PB_MISSING_JAVADOC_TAG_DESCRIPTION_ALL_STANDARD_TAGS},
* a subset of the standard &lt;a href=&quot;http://java.sun.com/javase/6/docs/technotes/tools/windows/javadoc.html#javadoctags&quot;>Javadoc tags&lt;/a>
* that have a description, text or label are checked. While this set may grow in the future, note that user-defined tags are not and will not be checked.
* &lt;dl>
* &lt;dt>Option id:&lt;/dt>&lt;dd>&lt;code>&quot;org.eclipse.jdt.core.compiler.problem.missingJavadocTagDescription&quot;&lt;/code>&lt;/dd>
* &lt;dt>Possible values:&lt;/dt>&lt;dd>&lt;code>{ &quot;return_tag&quot;, &quot;all_standard_tags&quot;, &quot;no_tag&quot; }&lt;/code>&lt;/dd>
* &lt;dt>Default:&lt;/dt>&lt;dd>&lt;code>&quot;return_tag&quot;&lt;/code>&lt;/dd>
* &lt;/dl>
* @since 3.4
* @category CompilerOptionID
</body>
</ownedComment>
</ownedAttribute>
<ownedAttribute xmi:id="_ld3VgWEMEeCdEc4VzBeWeQ" name="COMPILER_PB_MISSING_JAVADOC_TAGS" visibility="public" isLeaf="true" isStatic="true" type="_dSiS02EMEeCdEc4VzBeWeQ" isUnique="false">
<ownedComment xmi:id="_leBGgGEMEeCdEc4VzBeWeQ">
<body>
* Compiler option ID: Reporting Missing Javadoc Tags.
* &lt;p>This is the generic control for the severity of Javadoc missing tag problems.
* When enabled, the compiler will issue an error or a warning when tags are missing in Javadoc comments.
* &lt;p>Note that this diagnosis can be enabled based on the visibility of the construct associated with the Javadoc;
* also see the setting {@link #COMPILER_PB_MISSING_JAVADOC_TAGS_VISIBILITY}.
* &lt;dl>
* &lt;dt>Option id:&lt;/dt>&lt;dd>&lt;code>&quot;org.eclipse.jdt.core.compiler.problem.missingJavadocTags&quot;&lt;/code>&lt;/dd>
* &lt;dt>Possible values:&lt;/dt>&lt;dd>&lt;code>{ &quot;error&quot;, &quot;warning&quot;, &quot;ignore&quot; }&lt;/code>&lt;/dd>
* &lt;dt>Default:&lt;/dt>&lt;dd>&lt;code>&quot;ignore&quot;&lt;/code>&lt;/dd>
* &lt;/dl>
* @since 3.0
* @category CompilerOptionID
</body>
</ownedComment>
</ownedAttribute>
<ownedAttribute xmi:id="_leK3gGEMEeCdEc4VzBeWeQ" name="COMPILER_PB_MISSING_JAVADOC_TAGS_VISIBILITY" visibility="public" isLeaf="true" isStatic="true" type="_dSiS02EMEeCdEc4VzBeWeQ" isUnique="false">
<ownedComment xmi:id="_leK3gWEMEeCdEc4VzBeWeQ">
<body>
* Compiler option ID: Visibility Level For Missing Javadoc Tags.
* &lt;p>Set the minimum visibility level for Javadoc missing tag problems. Below this level problems will be ignored.
* &lt;dl>
* &lt;dt>Option id:&lt;/dt>&lt;dd>&lt;code>&quot;org.eclipse.jdt.core.compiler.problem.missingJavadocTagsVisibility&quot;&lt;/code>&lt;/dd>
* &lt;dt>Possible values:&lt;/dt>&lt;dd>&lt;code>{ &quot;public&quot;, &quot;protected&quot;, &quot;default&quot;, &quot;private&quot; }&lt;/code>&lt;/dd>
* &lt;dt>Default:&lt;/dt>&lt;dd>&lt;code>&quot;public&quot;&lt;/code>&lt;/dd>
* &lt;/dl>
* @since 3.0
* @category CompilerOptionID
</body>
</ownedComment>
</ownedAttribute>
<ownedAttribute xmi:id="_leUBcGEMEeCdEc4VzBeWeQ" name="COMPILER_PB_MISSING_JAVADOC_TAGS_OVERRIDING" visibility="public" isLeaf="true" isStatic="true" type="_dSiS02EMEeCdEc4VzBeWeQ" isUnique="false">
<ownedComment xmi:id="_leUBcWEMEeCdEc4VzBeWeQ">
<body>
* Compiler option ID: Reporting Missing Javadoc Tags on Overriding Methods.
* &lt;p>Specify whether the compiler will verify overriding methods in order to report Javadoc missing tag problems.
* &lt;dl>
* &lt;dt>Option id:&lt;/dt>&lt;dd>&lt;code>&quot;org.eclipse.jdt.core.compiler.problem.missingJavadocTagsOverriding&quot;&lt;/code>&lt;/dd>
* &lt;dt>Possible values:&lt;/dt>&lt;dd>&lt;code>{ &quot;enabled&quot;, &quot;disabled&quot; }&lt;/code>&lt;/dd>
* &lt;dt>Default:&lt;/dt>&lt;dd>&lt;code>&quot;disabled&quot;&lt;/code>&lt;/dd>
* &lt;/dl>
* @since 3.0
* @category CompilerOptionID
</body>
</ownedComment>
</ownedAttribute>
<ownedAttribute xmi:id="_ledycGEMEeCdEc4VzBeWeQ" name="COMPILER_PB_MISSING_JAVADOC_TAGS_METHOD_TYPE_PARAMETERS" visibility="public" isLeaf="true" isStatic="true" type="_dSiS02EMEeCdEc4VzBeWeQ" isUnique="false">
<ownedComment xmi:id="_lenjcGEMEeCdEc4VzBeWeQ">
<body>
* Compiler option ID: Reporting Missing Javadoc Tags for Method Type Parameters.
* &lt;p>Specify whether a missing &lt;code>@param&lt;/code> for a type parameter in a method declaration should be reported.
* When enabled, the compiler will issue a missing Javadoc tag error or warning for a type parameter without a
* corresponding &lt;code>@param&lt;/code> tag.&lt;/p>
* &lt;p>This option only has an effect if the compiler compliance is 1.5 or greater.&lt;/p>
* &lt;dl>
* &lt;dt>Option id:&lt;/dt>&lt;dd>&lt;code>&quot;org.eclipse.jdt.core.compiler.problem.missingJavadocTagsMethodTypeParameters&quot;&lt;/code>&lt;/dd>
* &lt;dt>Possible values:&lt;/dt>&lt;dd>&lt;code>{ &quot;enabled&quot;, &quot;disabled&quot; }&lt;/code>&lt;/dd>
* &lt;dt>Default:&lt;/dt>&lt;dd>&lt;code>&quot;disabled&quot;&lt;/code>&lt;/dd>
* &lt;/dl>
* @since 3.7
* @category CompilerOptionID
</body>
</ownedComment>
</ownedAttribute>
<ownedAttribute xmi:id="_lenjcWEMEeCdEc4VzBeWeQ" name="COMPILER_PB_MISSING_JAVADOC_COMMENTS" visibility="public" isLeaf="true" isStatic="true" type="_dSiS02EMEeCdEc4VzBeWeQ" isUnique="false">
<ownedComment xmi:id="_lewtYGEMEeCdEc4VzBeWeQ">
<body>
* Compiler option ID: Reporting Missing Javadoc Comments.
* &lt;p>This is the generic control for the severity of missing Javadoc comment problems.
* When enabled, the compiler will issue an error or a warning when Javadoc comments are missing.
* &lt;p>Note that this diagnosis can be enabled based on the visibility of the construct associated with the expected Javadoc;
* also see the setting {@link #COMPILER_PB_MISSING_JAVADOC_COMMENTS_VISIBILITY}.
* &lt;dl>
* &lt;dt>Option id:&lt;/dt>&lt;dd>&lt;code>&quot;org.eclipse.jdt.core.compiler.problem.missingJavadocComments&quot;&lt;/code>&lt;/dd>
* &lt;dt>Possible values:&lt;/dt>&lt;dd>&lt;code>{ &quot;error&quot;, &quot;warning&quot;, &quot;ignore&quot; }&lt;/code>&lt;/dd>
* &lt;dt>Default:&lt;/dt>&lt;dd>&lt;code>&quot;ignore&quot;&lt;/code>&lt;/dd>
* &lt;/dl>
* @since 3.0
* @category CompilerOptionID
</body>
</ownedComment>
</ownedAttribute>
<ownedAttribute xmi:id="_le6eYGEMEeCdEc4VzBeWeQ" name="COMPILER_PB_MISSING_JAVADOC_COMMENTS_VISIBILITY" visibility="public" isLeaf="true" isStatic="true" type="_dSiS02EMEeCdEc4VzBeWeQ" isUnique="false">
<ownedComment xmi:id="_le6eYWEMEeCdEc4VzBeWeQ">
<body>
* Compiler option ID: Visibility Level For Missing Javadoc Comments.
* &lt;p>Set the minimum visibility level for missing Javadoc problems. Below this level problems will be ignored.
* &lt;dl>
* &lt;dt>Option id:&lt;/dt>&lt;dd>&lt;code>&quot;org.eclipse.jdt.core.compiler.problem.missingJavadocCommentsVisibility&quot;&lt;/code>&lt;/dd>
* &lt;dt>Possible values:&lt;/dt>&lt;dd>&lt;code>{ &quot;public&quot;, &quot;protected&quot;, &quot;default&quot;, &quot;private&quot; }&lt;/code>&lt;/dd>
* &lt;dt>Default:&lt;/dt>&lt;dd>&lt;code>&quot;public&quot;&lt;/code>&lt;/dd>
* &lt;/dl>
* @since 3.0
* @category CompilerOptionID
</body>
</ownedComment>
</ownedAttribute>
<ownedAttribute xmi:id="_lfNZUGEMEeCdEc4VzBeWeQ" name="COMPILER_PB_MISSING_JAVADOC_COMMENTS_OVERRIDING" visibility="public" isLeaf="true" isStatic="true" type="_dSiS02EMEeCdEc4VzBeWeQ" isUnique="false">
<ownedComment xmi:id="_lfNZUWEMEeCdEc4VzBeWeQ">
<body>
* Compiler option ID: Reporting Missing Javadoc Comments on Overriding Methods.
* &lt;p>Specify whether the compiler will verify overriding methods in order to report missing Javadoc comment problems.
* &lt;dl>
* &lt;dt>Option id:&lt;/dt>&lt;dd>&lt;code>&quot;org.eclipse.jdt.core.compiler.problem.missingJavadocCommentsOverriding&quot;&lt;/code>&lt;/dd>
* &lt;dt>Possible values:&lt;/dt>&lt;dd>&lt;code>{ &quot;enabled&quot;, &quot;disabled&quot; }&lt;/code>&lt;/dd>
* &lt;dt>Default:&lt;/dt>&lt;dd>&lt;code>&quot;disabled&quot;&lt;/code>&lt;/dd>
* &lt;/dl>
* @since 3.0
* @category CompilerOptionID
</body>
</ownedComment>
</ownedAttribute>
<ownedAttribute xmi:id="_lfXKUGEMEeCdEc4VzBeWeQ" name="COMPILER_PB_CHAR_ARRAY_IN_STRING_CONCATENATION" visibility="public" isLeaf="true" isStatic="true" type="_dSiS02EMEeCdEc4VzBeWeQ" isUnique="false">
<ownedComment xmi:id="_lfXKUWEMEeCdEc4VzBeWeQ">
<body>
* Compiler option ID: Reporting Usage of &lt;code>char[]&lt;/code> Expressions in String Concatenations.
* &lt;p>When enabled, the compiler will issue an error or a warning whenever a &lt;code>char[]&lt;/code> expression
* is used in String concatenations (for example, &lt;code>&quot;hello&quot; + new char[]{'w','o','r','l','d'}&lt;/code>).
* &lt;dl>
* &lt;dt>Option id:&lt;/dt>&lt;dd>&lt;code>&quot;org.eclipse.jdt.core.compiler.problem.noImplicitStringConversion&quot;&lt;/code>&lt;/dd>
* &lt;dt>Possible values:&lt;/dt>&lt;dd>&lt;code>{ &quot;error&quot;, &quot;warning&quot;, &quot;ignore&quot; }&lt;/code>&lt;/dd>
* &lt;dt>Default:&lt;/dt>&lt;dd>&lt;code>&quot;warning&quot;&lt;/code>&lt;/dd>
* &lt;/dl>
* @since 2.1
* @category CompilerOptionID
</body>
</ownedComment>
</ownedAttribute>
<ownedAttribute xmi:id="_lfgUQGEMEeCdEc4VzBeWeQ" name="COMPILER_PB_MAX_PER_UNIT" visibility="public" isLeaf="true" isStatic="true" type="_dSiS02EMEeCdEc4VzBeWeQ" isUnique="false">
<ownedComment xmi:id="_lfqFQGEMEeCdEc4VzBeWeQ">
<body>
* Compiler option ID: Maximum Number of Problems Reported per Compilation Unit.
* &lt;p>Specify the maximum number of problems reported on each compilation unit.
* &lt;dl>
* &lt;dt>Option id:&lt;/dt>&lt;dd>&lt;code>&quot;org.eclipse.jdt.core.compiler.maxProblemPerUnit&quot;&lt;/code>&lt;/dd>
* &lt;dt>Possible values:&lt;/dt>&lt;dd>&lt;code>&quot;&amp;lt;n&amp;gt;&quot;&lt;/code> where &lt;code>&amp;lt;n&amp;gt;&lt;/code> is zero or a positive integer (if zero then all problems are reported).&lt;/dd>
* &lt;dt>Default:&lt;/dt>&lt;dd>&lt;code>&quot;100&quot;&lt;/code>&lt;/dd>
* &lt;/dl>
* @since 2.0
* @category CompilerOptionID
</body>
</ownedComment>
</ownedAttribute>
<ownedAttribute xmi:id="_lfz2QGEMEeCdEc4VzBeWeQ" name="COMPILER_PB_FATAL_OPTIONAL_ERROR" visibility="public" isLeaf="true" isStatic="true" type="_dSiS02EMEeCdEc4VzBeWeQ" isUnique="false">
<ownedComment xmi:id="_lf9AMGEMEeCdEc4VzBeWeQ">
<body>
* Compiler option ID: Treating Optional Error as Fatal.
* &lt;p>When enabled, optional errors (i.e. optional problems which severity is set to &lt;code>&quot;error&quot;&lt;/code>) will be treated as standard
* compiler errors, yielding problem methods/types preventing from running offending code until the issue got resolved.&lt;/p>
* &lt;p>When disabled, optional errors are only considered as warnings, still carrying an error indication to make them more
* severe. Note that by default, optional errors are not fatal. Non-optional errors are
* always fatal.&lt;/p>
* &lt;dl>
* &lt;dt>Option id:&lt;/dt>&lt;dd>&lt;code>&quot;org.eclipse.jdt.core.compiler.problem.fatalOptionalError&quot;&lt;/code>&lt;/dd>
* &lt;dt>Possible values:&lt;/dt>&lt;dd>&lt;code>{ &quot;enabled&quot;, &quot;disabled&quot; }&lt;/code>&lt;/dd>
* &lt;dt>Default:&lt;/dt>&lt;dd>&lt;code>&quot;disabled&quot;&lt;/code>&lt;/dd>
* &lt;/dl>
* @since 3.2
* @category CompilerOptionID
</body>
</ownedComment>
</ownedAttribute>
<ownedAttribute xmi:id="_lgGxMGEMEeCdEc4VzBeWeQ" name="COMPILER_PB_PARAMETER_ASSIGNMENT" visibility="public" isLeaf="true" isStatic="true" type="_dSiS02EMEeCdEc4VzBeWeQ" isUnique="false">
<ownedComment xmi:id="_lgGxMWEMEeCdEc4VzBeWeQ">
<body>
* Compiler option ID: Reporting Parameter Assignment.
* &lt;p>When enabled, the compiler will issue an error or a warning if a parameter is
* assigned to.
* &lt;dl>
* &lt;dt>Option id:&lt;/dt>&lt;dd>&lt;code>&quot;org.eclipse.jdt.core.compiler.problem.parameterAssignment&quot;&lt;/code>&lt;/dd>
* &lt;dt>Possible values:&lt;/dt>&lt;dd>&lt;code>{ &quot;error&quot;, &quot;warning&quot;, &quot;ignore&quot; }&lt;/code>&lt;/dd>
* &lt;dt>Default:&lt;/dt>&lt;dd>&lt;code>&quot;ignore&quot;&lt;/code>&lt;/dd>
* &lt;/dl>
* @since 3.2
* @category CompilerOptionID
</body>
</ownedComment>
</ownedAttribute>
<ownedAttribute xmi:id="_lgP7IGEMEeCdEc4VzBeWeQ" name="COMPILER_PB_MISSING_STATIC_ON_METHOD" visibility="public" isLeaf="true" isStatic="true" type="_dSiS02EMEeCdEc4VzBeWeQ" isUnique="false">
<ownedComment xmi:id="_lgZsIGEMEeCdEc4VzBeWeQ">
<body>
* Compiler option ID: Reporting a method that qualifies as static, but not declared static.
* &lt;p>When enabled, the compiler will issue an error or a warning if a method has
* not been declared as &lt;code>static&lt;/code>, even though it qualifies as one.
* &lt;dl>
* &lt;dt>Option id:&lt;/dt>&lt;dd>&lt;code>&quot;org.eclipse.jdt.core.compiler.problem.reportMethodCanBeStatic&quot;&lt;/code>&lt;/dd>
* &lt;dt>Possible values:&lt;/dt>&lt;dd>&lt;code>{ &quot;error&quot;, &quot;warning&quot;, &quot;ignore&quot; }&lt;/code>&lt;/dd>
* &lt;dt>Default:&lt;/dt>&lt;dd>&lt;code>&quot;ignore&quot;&lt;/code>&lt;/dd>
* &lt;/dl>
* @since 3.7
* @category CompilerOptionID
</body>
</ownedComment>
</ownedAttribute>
<ownedAttribute xmi:id="_lgjdIGEMEeCdEc4VzBeWeQ" name="COMPILER_PB_POTENTIALLY_MISSING_STATIC_ON_METHOD" visibility="public" isLeaf="true" isStatic="true" type="_dSiS02EMEeCdEc4VzBeWeQ" isUnique="false">
<ownedComment xmi:id="_lgsnEGEMEeCdEc4VzBeWeQ">
<body>
* Compiler option ID: Reporting a method that may qualify as static, but not declared static.
* &lt;p>When enabled, the compiler will issue an error or a warning if a method has
* not been declared as &lt;code>static&lt;/code>, even though it may qualify as one,
* when another method doesn't override it.
* &lt;dl>
* &lt;dt>Option id:&lt;/dt>&lt;dd>&lt;code>&quot;org.eclipse.jdt.core.compiler.problem.reportMethodCanBePotentiallyStatic&quot;&lt;/code>&lt;/dd>
* &lt;dt>Possible values:&lt;/dt>&lt;dd>&lt;code>{ &quot;error&quot;, &quot;warning&quot;, &quot;ignore&quot; }&lt;/code>&lt;/dd>
* &lt;dt>Default:&lt;/dt>&lt;dd>&lt;code>&quot;ignore&quot;&lt;/code>&lt;/dd>
* &lt;/dl>
* @since 3.7
* @category CompilerOptionID
</body>
</ownedComment>
</ownedAttribute>
<ownedAttribute xmi:id="_lgsnEWEMEeCdEc4VzBeWeQ" name="COMPILER_SOURCE" visibility="public" isLeaf="true" isStatic="true" type="_dSiS02EMEeCdEc4VzBeWeQ" isUnique="false">
<ownedComment xmi:id="_lg2YEGEMEeCdEc4VzBeWeQ">
<body>
* Compiler option ID: Setting Source Compatibility Mode.
* &lt;p>Specify whether which source level compatibility is used. From 1.4 on, &lt;code>'assert'&lt;/code> is a keyword
* reserved for assertion support. Also note, than when toggling to 1.4 mode, the target VM
* level should be set to &lt;code>&quot;1.4&quot;&lt;/code> and the compliance mode should be &lt;code>&quot;1.4&quot;&lt;/code>.
* &lt;p>Source level 1.5 is necessary to enable generics, autoboxing, covariance, annotations, enumerations
* enhanced for loop, static imports and varargs. Once toggled, the target VM level should be set to &lt;code>&quot;1.5&quot;&lt;/code>
* and the compliance mode should be &lt;code>&quot;1.5&quot;&lt;/code>.
* &lt;p>Source level 1.6 is necessary to enable the computation of stack map tables. Once toggled, the target
* VM level should be set to &lt;code>&quot;1.6&quot;&lt;/code> and the compliance mode should be &lt;code>&quot;1.6&quot;&lt;/code>.
* &lt;p>Once the source level 1.7 is toggled, the target VM level should be set to &lt;code>&quot;1.7&quot;&lt;/code> and the compliance mode
* should be &lt;code>&quot;1.7&quot;&lt;/code>.
* &lt;dl>
* &lt;dt>Option id:&lt;/dt>&lt;dd>&lt;code>&quot;org.eclipse.jdt.core.compiler.source&quot;&lt;/code>&lt;/dd>
* &lt;dt>Possible values:&lt;/dt>&lt;dd>&lt;code>{ &quot;1.3&quot;, &quot;1.4&quot;, &quot;1.5&quot;, &quot;1.6&quot;, &quot;1.7&quot; }&lt;/code>&lt;/dd>
* &lt;dt>Default:&lt;/dt>&lt;dd>&lt;code>&quot;1.3&quot;&lt;/code>&lt;/dd>
* &lt;/dl>
* @since 2.0
* @category CompilerOptionID
</body>
</ownedComment>
</ownedAttribute>
<ownedAttribute xmi:id="_lhAJEGEMEeCdEc4VzBeWeQ" name="COMPILER_COMPLIANCE" visibility="public" isLeaf="true" isStatic="true" type="_dSiS02EMEeCdEc4VzBeWeQ" isUnique="false">
<ownedComment xmi:id="_lhAJEWEMEeCdEc4VzBeWeQ">
<body>
* Compiler option ID: Setting Compliance Level.
* &lt;p>Select the compliance level for the compiler. In &lt;code>&quot;1.3&quot;&lt;/code> mode, source and target settings
* should not go beyond &lt;code>&quot;1.3&quot;&lt;/code> level.
* &lt;dl>
* &lt;dt>Option id:&lt;/dt>&lt;dd>&lt;code>&quot;org.eclipse.jdt.core.compiler.compliance&quot;&lt;/code>&lt;/dd>
* &lt;dt>Possible values:&lt;/dt>&lt;dd>&lt;code>{ &quot;1.3&quot;, &quot;1.4&quot;, &quot;1.5&quot;, &quot;1.6&quot;, &quot;1.7&quot; }&lt;/code>&lt;/dd>
* &lt;dt>Default:&lt;/dt>&lt;dd>&lt;code>&quot;1.4&quot;&lt;/code>&lt;/dd>
* &lt;/dl>
* @since 2.0
* @category CompilerOptionID
</body>
</ownedComment>
</ownedAttribute>
<ownedAttribute xmi:id="_lhJTAGEMEeCdEc4VzBeWeQ" name="COMPILER_TASK_PRIORITIES" visibility="public" isLeaf="true" isStatic="true" type="_dSiS02EMEeCdEc4VzBeWeQ" isUnique="false">
<ownedComment xmi:id="_lhJTAWEMEeCdEc4VzBeWeQ">
<body>
* Compiler option ID: Defining the Automatic Task Priorities.
* &lt;p>In parallel with the Automatic Task Tags, this list defines the priorities (high, normal or low)
* of the task markers issued by the compiler.
* If the default is specified, the priority of each task marker is &lt;code>&quot;NORMAL&quot;&lt;/code>.&lt;/p>
* &lt;p>Task Priorities and task tags must have the same length. If task priorities are set, then task tags should also
* be set.&lt;/p>
* &lt;dl>
* &lt;dt>Option id:&lt;/dt>&lt;dd>&lt;code>&quot;org.eclipse.jdt.core.compiler.taskPriorities&quot;&lt;/code>&lt;/dd>
* &lt;dt>Possible values:&lt;/dt>&lt;dd>&lt;code>{ &quot;&amp;lt;priority&amp;gt;[,&amp;lt;priority&amp;gt;]*&quot; }&lt;/code> where &lt;code>&amp;lt;priority&amp;gt;&lt;/code> is one of &lt;code>&quot;HIGH&quot;&lt;/code>, &lt;code>&quot;NORMAL&quot;&lt;/code> or &lt;code>&quot;LOW&quot;&lt;/code>&lt;/dd>
* &lt;dt>Default:&lt;/dt>&lt;dd>&lt;code>&quot;NORMAL,HIGH,NORMAL&quot;&lt;/code>&lt;/dd>
* &lt;/dl>
* @since 2.1
* @category CompilerOptionID
* @see #COMPILER_TASK_TAGS
</body>
</ownedComment>
</ownedAttribute>
<ownedAttribute xmi:id="_lhTEAGEMEeCdEc4VzBeWeQ" name="COMPILER_TASK_TAGS" visibility="public" isLeaf="true" isStatic="true" type="_dSiS02EMEeCdEc4VzBeWeQ" isUnique="false">
<ownedComment xmi:id="_lhTEAWEMEeCdEc4VzBeWeQ">
<body>
* Compiler option ID: Defining the Automatic Task Tags.
* &lt;p>When the tag list is not empty, the compiler will issue a task marker whenever it encounters
* one of the corresponding tags inside any comment in Java source code.
* &lt;p>Generated task messages will start with the tag, and range until the next line separator,
* comment ending, or tag.&lt;/p>
* &lt;p>When a given line of code bears multiple tags, each tag will be reported separately.
* Moreover, a tag immediately followed by another tag will be reported using the contents of the
* next non-empty tag of the line, if any.&lt;/p>
* &lt;p>Note that tasks messages are trimmed. If a tag is starting with a letter or digit, then it cannot be leaded by
* another letter or digit to be recognized (&lt;code>&quot;fooToDo&quot;&lt;/code> will not be recognized as a task for tag &lt;code>&quot;ToDo&quot;&lt;/code>, but &lt;code>&quot;foo#ToDo&quot;&lt;/code>
* will be detected for either tag &lt;code>&quot;ToDo&quot;&lt;/code> or &lt;code>&quot;#ToDo&quot;&lt;/code>). Respectively, a tag ending with a letter or digit cannot be followed
* by a letter or digit to be recognized (&lt;code>&quot;ToDofoo&quot;&lt;/code> will not be recognized as a task for tag &lt;code>&quot;ToDo&quot;&lt;/code>, but &lt;code>&quot;ToDo:foo&quot;&lt;/code> will
* be detected either for tag &lt;code>&quot;ToDo&quot;&lt;/code> or &lt;code>&quot;ToDo:&quot;&lt;/code>).&lt;/p>
* &lt;p>Task Priorities and task tags must have the same length. If task tags are set, then task priorities should also
* be set.&lt;/p>
* &lt;dl>
* &lt;dt>Option id:&lt;/dt>&lt;dd>&lt;code>&quot;org.eclipse.jdt.core.compiler.taskTags&quot;&lt;/code>&lt;/dd>
* &lt;dt>Possible values:&lt;/dt>&lt;dd>&lt;code>{ &quot;&amp;lt;tag&amp;gt;[,&amp;lt;tag&amp;gt;]*&quot; }&lt;/code> where &lt;code>&amp;lt;tag&amp;gt;&lt;/code> is a String without any wild-card or leading/trailing spaces&lt;/dd>
* &lt;dt>Default:&lt;/dt>&lt;dd>&lt;code>&quot;TODO,FIXME,XXX&quot;&lt;/code>&lt;/dd>
* &lt;/dl>
* @since 2.1
* @category CompilerOptionID
* @see #COMPILER_TASK_PRIORITIES
</body>
</ownedComment>
</ownedAttribute>
<ownedAttribute xmi:id="_lhl-8GEMEeCdEc4VzBeWeQ" name="COMPILER_TASK_CASE_SENSITIVE" visibility="public" isLeaf="true" isStatic="true" type="_dSiS02EMEeCdEc4VzBeWeQ" isUnique="false">
<ownedComment xmi:id="_lhl-8WEMEeCdEc4VzBeWeQ">
<body>
* Compiler option ID: Determining whether task tags are case-sensitive.
* &lt;p>When enabled, task tags are considered in a case-sensitive way.
* &lt;dl>
* &lt;dt>Option id:&lt;/dt>&lt;dd>&lt;code>&quot;org.eclipse.jdt.core.compiler.taskCaseSensitive&quot;&lt;/code>&lt;/dd>
* &lt;dt>Possible values:&lt;/dt>&lt;dd>&lt;code>{ &quot;enabled&quot;, &quot;disabled&quot; }&lt;/code>&lt;/dd>
* &lt;dt>Default:&lt;/dt>&lt;dd>&lt;code>&quot;enabled&quot;&lt;/code>&lt;/dd>
* &lt;/dl>
* @since 3.0
* @category CompilerOptionID
</body>
</ownedComment>
</ownedAttribute>
<ownedAttribute xmi:id="_lhvv8GEMEeCdEc4VzBeWeQ" name="COMPILER_PB_FORBIDDEN_REFERENCE" visibility="public" isLeaf="true" isStatic="true" type="_dSiS02EMEeCdEc4VzBeWeQ" isUnique="false">
<ownedComment xmi:id="_lhvv8WEMEeCdEc4VzBeWeQ">
<body>
* Compiler option ID: Reporting Forbidden Reference to Type with Restricted Access.
* &lt;p>When enabled, the compiler will issue an error or a warning when referring to a type that is non accessible, as defined according
* to the access rule specifications.
* &lt;dl>
* &lt;dt>Option id:&lt;/dt>&lt;dd>&lt;code>&quot;org.eclipse.jdt.core.compiler.problem.forbiddenReference&quot;&lt;/code>&lt;/dd>
* &lt;dt>Possible values:&lt;/dt>&lt;dd>&lt;code>{ &quot;error&quot;, &quot;warning&quot;, &quot;ignore&quot; }&lt;/code>&lt;/dd>
* &lt;dt>Default:&lt;/dt>&lt;dd>&lt;code>&quot;error&quot;&lt;/code>&lt;/dd>
* &lt;/dl>
* @since 3.1
* @category CompilerOptionID
</body>
</ownedComment>
</ownedAttribute>
<ownedAttribute xmi:id="_lh454GEMEeCdEc4VzBeWeQ" name="COMPILER_PB_DISCOURAGED_REFERENCE" visibility="public" isLeaf="true" isStatic="true" type="_dSiS02EMEeCdEc4VzBeWeQ" isUnique="false">
<ownedComment xmi:id="_liCq4GEMEeCdEc4VzBeWeQ">
<body>
* Compiler option ID: Reporting Discouraged Reference to Type with Restricted Access.
* &lt;p>When enabled, the compiler will issue an error or a warning when referring to a type with discouraged access, as defined according
* to the access rule specifications.
* &lt;dl>
* &lt;dt>Option id:&lt;/dt>&lt;dd>&lt;code>&quot;org.eclipse.jdt.core.compiler.problem.discouragedReference&quot;&lt;/code>&lt;/dd>
* &lt;dt>Possible values:&lt;/dt>&lt;dd>&lt;code>{ &quot;error&quot;, &quot;warning&quot;, &quot;ignore&quot; }&lt;/code>&lt;/dd>
* &lt;dt>Default:&lt;/dt>&lt;dd>&lt;code>&quot;warning&quot;&lt;/code>&lt;/dd>
* &lt;/dl>
* @since 3.1
* @category CompilerOptionID
</body>
</ownedComment>
</ownedAttribute>
<ownedAttribute xmi:id="_liCq4WEMEeCdEc4VzBeWeQ" name="COMPILER_PB_SUPPRESS_WARNINGS" visibility="public" isLeaf="true" isStatic="true" type="_dSiS02EMEeCdEc4VzBeWeQ" isUnique="false">
<ownedComment xmi:id="_liMb4GEMEeCdEc4VzBeWeQ">
<body>
* Compiler option ID: Determining Effect of &lt;code>@SuppressWarnings&lt;/code>.
* &lt;p>When enabled, the &lt;code>@SuppressWarnings&lt;/code> annotation can be used to suppress some compiler warnings.
* &lt;p>When disabled, all &lt;code>@SupressWarnings&lt;/code> annotations are ignored; i.e., warnings are reported.
* &lt;dl>
* &lt;dt>Option id:&lt;/dt>&lt;dd>&lt;code>&quot;org.eclipse.jdt.core.compiler.problem.suppressWarnings&quot;&lt;/code>&lt;/dd>
* &lt;dt>Possible values:&lt;/dt>&lt;dd>&lt;code>{ &quot;enabled&quot;, &quot;disabled&quot; }&lt;/code>&lt;/dd>
* &lt;dt>Default:&lt;/dt>&lt;dd>&lt;code>&quot;enabled&quot;&lt;/code>&lt;/dd>
* &lt;/dl>
* @since 3.1
* @category CompilerOptionID
</body>
</ownedComment>
</ownedAttribute>
<ownedAttribute xmi:id="_liVl0GEMEeCdEc4VzBeWeQ" name="COMPILER_PB_INCLUDE_ASSERTS_IN_NULL_ANALYSIS" visibility="public" isLeaf="true" isStatic="true" type="_dSiS02EMEeCdEc4VzBeWeQ" isUnique="false">
<ownedComment xmi:id="_liVl0WEMEeCdEc4VzBeWeQ">
<body>
* Compiler option ID: Raise null related errors or warnings arising because of assert statements.
* &lt;p>When enabled, the compiler will flag all null related errors or warnings that have been enabled by the user,
* irrespective of whether a variable occurred in an assert statement.&lt;/p>
* &lt;p>When disabled, the compiler will not flag null related errors or warnings on variables that got marked as maybe or definitely
* &lt;code>null&lt;/code> in an assert statement upstream.&lt;/p>
* &lt;dl>
* &lt;dt>Option id:&lt;/dt>&lt;dd>&lt;code>&quot;org.eclipse.jdt.core.compiler.problem.includeNullInfoFromAsserts&quot;&lt;/code>&lt;/dd>
* &lt;dt>Possible values:&lt;/dt>&lt;dd>&lt;code>{ &quot;enabled&quot;, &quot;disabled&quot; }&lt;/code>&lt;/dd>
* &lt;dt>Default:&lt;/dt>&lt;dd>&lt;code>&quot;disabled&quot;&lt;/code>&lt;/dd>
* &lt;/dl>
* @since 3.7
* @category CompilerOptionID
</body>
</ownedComment>
</ownedAttribute>
<ownedAttribute xmi:id="_lifW0GEMEeCdEc4VzBeWeQ" name="COMPILER_PB_SUPPRESS_OPTIONAL_ERRORS" visibility="public" isLeaf="true" isStatic="true" type="_dSiS02EMEeCdEc4VzBeWeQ" isUnique="false">
<ownedComment xmi:id="_lifW0WEMEeCdEc4VzBeWeQ">
<body>
* Compiler option ID: Further Determining the Effect of &lt;code>@SuppressWarnings&lt;/code> if also
* {@link #COMPILER_PB_SUPPRESS_WARNINGS} is enabled.
* &lt;p>When enabled, the &lt;code>@SuppressWarnings&lt;/code> annotation can additionally be used to suppress
* optional compiler diagnostics that have been configured as {@link #ERROR}.
* &lt;p>When disabled, all &lt;code>@SuppressWarnings&lt;/code> annotations only affects warnings.
* &lt;dl>
* &lt;dt>Option id:&lt;/dt>&lt;dd>&lt;code>&quot;org.eclipse.jdt.core.compiler.problem.suppressOptionalErrors&quot;&lt;/code>&lt;/dd>
* &lt;dt>Possible values:&lt;/dt>&lt;dd>&lt;code>{ &quot;enabled&quot;, &quot;disabled&quot; }&lt;/code>&lt;/dd>
* &lt;dt>Default:&lt;/dt>&lt;dd>&lt;code>&quot;disabled&quot;&lt;/code>&lt;/dd>
* &lt;/dl>
* @since 3.6
* @category CompilerOptionID
</body>
</ownedComment>
</ownedAttribute>
<ownedAttribute xmi:id="_liogwGEMEeCdEc4VzBeWeQ" name="COMPILER_PB_UNHANDLED_WARNING_TOKEN" visibility="public" isLeaf="true" isStatic="true" type="_dSiS02EMEeCdEc4VzBeWeQ" isUnique="false">
<ownedComment xmi:id="_liyRwGEMEeCdEc4VzBeWeQ">
<body>
* Compiler option ID: Reporting Unhandled Warning Token for &lt;code>@SuppressWarnings&lt;/code>.
* &lt;p>When enabled, the compiler will issue an error or a warning when encountering a token
* it cannot handle inside a &lt;code>@SuppressWarnings&lt;/code> annotation.
* &lt;dl>
* &lt;dt>Option id:&lt;/dt>&lt;dd>&lt;code>&quot;org.eclipse.jdt.core.compiler.problem.unhandledWarningToken&quot;&lt;/code>&lt;/dd>
* &lt;dt>Possible values:&lt;/dt>&lt;dd>&lt;code>{ &quot;error&quot;, &quot;warning&quot;, &quot;ignore&quot; }&lt;/code>&lt;/dd>
* &lt;dt>Default:&lt;/dt>&lt;dd>&lt;code>&quot;warning&quot;&lt;/code>&lt;/dd>
* &lt;/dl>
* @since 3.1
* @category CompilerOptionID
</body>
</ownedComment>
</ownedAttribute>
<ownedAttribute xmi:id="_li8CwGEMEeCdEc4VzBeWeQ" name="COMPILER_PB_UNUSED_WARNING_TOKEN" visibility="public" isLeaf="true" isStatic="true" type="_dSiS02EMEeCdEc4VzBeWeQ" isUnique="false">
<ownedComment xmi:id="_li8CwWEMEeCdEc4VzBeWeQ">
<body>
* Compiler option ID: Reporting Unnecessary &lt;code>@SuppressWarnings&lt;/code>.
* &lt;p>When enabled, the compiler will issue an error or a warning when encountering &lt;code>@SuppressWarnings&lt;/code> annotation
* for which no corresponding warning got detected in the code. This diagnostic is provided to help developers to get
* rid of transient &lt;code>@SuppressWarnings&lt;/code> no longer needed. Note that &lt;code>@SuppressWarnings(&quot;all&quot;)&lt;/code> is still
* silencing the warning for unnecessary &lt;code>@SuppressWarnings&lt;/code>, as it is the master switch to silence ALL warnings.
* &lt;dl>
* &lt;dt>Option id:&lt;/dt>&lt;dd>&lt;code>&quot;org.eclipse.jdt.core.compiler.problem.unusedWarningToken&quot;&lt;/code>&lt;/dd>
* &lt;dt>Possible values:&lt;/dt>&lt;dd>&lt;code>{ &quot;error&quot;, &quot;warning&quot;, &quot;ignore&quot; }&lt;/code>&lt;/dd>
* &lt;dt>Default:&lt;/dt>&lt;dd>&lt;code>&quot;warning&quot;&lt;/code>&lt;/dd>
* &lt;/dl>
* @since 3.4
* @category CompilerOptionID
</body>
</ownedComment>
</ownedAttribute>
<ownedAttribute xmi:id="_ljFMsGEMEeCdEc4VzBeWeQ" name="COMPILER_PB_NULL_REFERENCE" visibility="public" isLeaf="true" isStatic="true" type="_dSiS02EMEeCdEc4VzBeWeQ" isUnique="false">
<ownedComment xmi:id="_ljFMsWEMEeCdEc4VzBeWeQ">
<body>
* Compiler option ID: Reporting Null Dereference.
* &lt;p>When enabled, the compiler will issue an error or a warning whenever a
* variable that is statically known to hold a null value is used to
* access a field or method.&lt;/p>
* &lt;p>Assert statements are ignored unless {@link #COMPILER_PB_INCLUDE_ASSERTS_IN_NULL_ANALYSIS}
* is enabled.&lt;/p>
* &lt;dl>
* &lt;dt>Option id:&lt;/dt>&lt;dd>&lt;code>&quot;org.eclipse.jdt.core.compiler.problem.nullReference&quot;&lt;/code>&lt;/dd>
* &lt;dt>Possible values:&lt;/dt>&lt;dd>&lt;code>{ &quot;error&quot;, &quot;warning&quot;, &quot;ignore&quot; }&lt;/code>&lt;/dd>
* &lt;dt>Default:&lt;/dt>&lt;dd>&lt;code>&quot;warning&quot;&lt;/code>&lt;/dd>
* &lt;/dl>
* @since 3.2
* @category CompilerOptionID
</body>
</ownedComment>
</ownedAttribute>
<ownedAttribute xmi:id="_ljO9sGEMEeCdEc4VzBeWeQ" name="COMPILER_PB_POTENTIAL_NULL_REFERENCE" visibility="public" isLeaf="true" isStatic="true" type="_dSiS02EMEeCdEc4VzBeWeQ" isUnique="false">
<ownedComment xmi:id="_ljYusGEMEeCdEc4VzBeWeQ">
<body>
* Compiler option ID: Reporting Potential Null Dereference.
* &lt;p>When enabled, the compiler will issue an error or a warning whenever a
* variable that has formerly been tested against null but is not (no more)
* statically known to hold a non-null value is used to access a field or
* method.&lt;/p>
* &lt;p>Assert statements are ignored unless {@link #COMPILER_PB_INCLUDE_ASSERTS_IN_NULL_ANALYSIS}
* is enabled.&lt;/p>
* &lt;dl>
* &lt;dt>Option id:&lt;/dt>&lt;dd>&lt;code>&quot;org.eclipse.jdt.core.compiler.problem.potentialNullReference&quot;&lt;/code>&lt;/dd>
* &lt;dt>Possible values:&lt;/dt>&lt;dd>&lt;code>{ &quot;error&quot;, &quot;warning&quot;, &quot;ignore&quot; }&lt;/code>&lt;/dd>
* &lt;dt>Default:&lt;/dt>&lt;dd>&lt;code>&quot;ignore&quot;&lt;/code>&lt;/dd>
* &lt;/dl>
* @since 3.3
* @category CompilerOptionID
</body>
</ownedComment>
</ownedAttribute>
<ownedAttribute xmi:id="_ljYusWEMEeCdEc4VzBeWeQ" name="COMPILER_PB_REDUNDANT_NULL_CHECK" visibility="public" isLeaf="true" isStatic="true" type="_dSiS02EMEeCdEc4VzBeWeQ" isUnique="false">
<ownedComment xmi:id="_ljh4oGEMEeCdEc4VzBeWeQ">
<body>
* Compiler option ID: Reporting Redundant Null Check.
* &lt;p>When enabled, the compiler will issue an error or a warning whenever a
* variable that is statically known to hold a null or a non-null value
* is tested against null.&lt;/p>
* &lt;p>Assert statements are ignored unless {@link #COMPILER_PB_INCLUDE_ASSERTS_IN_NULL_ANALYSIS}
* is enabled.&lt;/p>
* &lt;dl>
* &lt;dt>Option id:&lt;/dt>&lt;dd>&lt;code>&quot;org.eclipse.jdt.core.compiler.problem.redundantNullCheck&quot;&lt;/code>&lt;/dd>
* &lt;dt>Possible values:&lt;/dt>&lt;dd>&lt;code>{ &quot;error&quot;, &quot;warning&quot;, &quot;ignore&quot; }&lt;/code>&lt;/dd>
* &lt;dt>Default:&lt;/dt>&lt;dd>&lt;code>&quot;ignore&quot;&lt;/code>&lt;/dd>
* &lt;/dl>
* @since 3.3
* @category CompilerOptionID
</body>
</ownedComment>
</ownedAttribute>
<ownedAttribute xmi:id="_ljh4oWEMEeCdEc4VzBeWeQ" name="COMPILER_PB_OVERRIDING_METHOD_WITHOUT_SUPER_INVOCATION" visibility="public" isLeaf="true" isStatic="true" type="_dSiS02EMEeCdEc4VzBeWeQ" isUnique="false">
<ownedComment xmi:id="_ljrpoGEMEeCdEc4VzBeWeQ">
<body>
* Compiler option ID: Reporting Overriding method that doesn't call the super method invocation.
* &lt;p>When enabled, the compiler will issue an error or a warning if a method is overriding a method without calling
* the super invocation.
* &lt;dl>
* &lt;dt>Option id:&lt;/dt>&lt;dd>&lt;code>&quot;org.eclipse.jdt.core.compiler.problem.overridingMethodWithoutSuperInvocation&quot;&lt;/code>&lt;/dd>
* &lt;dt>Possible values:&lt;/dt>&lt;dd>&lt;code>{ &quot;error&quot;, &quot;warning&quot;, &quot;ignore&quot; }&lt;/code>&lt;/dd>
* &lt;dt>Default:&lt;/dt>&lt;dd>&lt;code>&quot;ignore&quot;&lt;/code>&lt;/dd>
* &lt;/dl>
* @since 3.3
* @category CompilerOptionID
</body>
</ownedComment>
</ownedAttribute>
<ownedAttribute xmi:id="_lj0zkGEMEeCdEc4VzBeWeQ" name="COMPILER_PB_REDUNDANT_SUPERINTERFACE" visibility="public" isLeaf="true" isStatic="true" type="_dSiS02EMEeCdEc4VzBeWeQ" isUnique="false">
<ownedComment xmi:id="_lj0zkWEMEeCdEc4VzBeWeQ">
<body>
* Compiler option ID: Reporting Redundant Superinterface.
* &lt;p>When enabled, the compiler will issue an error or a warning if a type
* explicitly implements an interface that is already implemented by any
* of its supertypes.
* &lt;dl>
* &lt;dt>Option id:&lt;/dt>&lt;dd>&lt;code>&quot;org.eclipse.jdt.core.compiler.problem.redundantSuperinterface&quot;&lt;/code>&lt;/dd>
* &lt;dt>Possible values:&lt;/dt>&lt;dd>&lt;code>{ &quot;error&quot;, &quot;warning&quot;, &quot;ignore&quot; }&lt;/code>&lt;/dd>
* &lt;dt>Default:&lt;/dt>&lt;dd>&lt;code>&quot;ignore&quot;&lt;/code>&lt;/dd>
* &lt;/dl>
* @since 3.4
* @category CompilerOptionID
</body>
</ownedComment>
</ownedAttribute>
<ownedAttribute xmi:id="_lj-kkGEMEeCdEc4VzBeWeQ" name="COMPILER_PB_COMPARING_IDENTICAL" visibility="public" isLeaf="true" isStatic="true" type="_dSiS02EMEeCdEc4VzBeWeQ" isUnique="false">
<ownedComment xmi:id="_lj-kkWEMEeCdEc4VzBeWeQ">
<body>
* Compiler option ID: Reporting Comparison of Identical Expressions.
* &lt;p>When enabled, the compiler will issue an error or a warning if a comparison
* is involving identical operands (e.g &lt;code>'x == x'&lt;/code>).
* &lt;dl>
* &lt;dt>Option id:&lt;/dt>&lt;dd>&lt;code>&quot;org.eclipse.jdt.core.compiler.problem.comparingIdentical&quot;&lt;/code>&lt;/dd>
* &lt;dt>Possible values:&lt;/dt>&lt;dd>&lt;code>{ &quot;error&quot;, &quot;warning&quot;, &quot;ignore&quot; }&lt;/code>&lt;/dd>
* &lt;dt>Default:&lt;/dt>&lt;dd>&lt;code>&quot;warning&quot;&lt;/code>&lt;/dd>
* &lt;/dl>
* @since 3.5
* @category CompilerOptionID
</body>
</ownedComment>
</ownedAttribute>
<ownedAttribute xmi:id="_lkIVkGEMEeCdEc4VzBeWeQ" name="COMPILER_PB_MISSING_SYNCHRONIZED_ON_INHERITED_METHOD" visibility="public" isLeaf="true" isStatic="true" type="_dSiS02EMEeCdEc4VzBeWeQ" isUnique="false">
<ownedComment xmi:id="_lkIVkWEMEeCdEc4VzBeWeQ">
<body>
* Compiler option ID: Reporting Missing Synchronized Modifier On Inherited Method.
* &lt;p>When enabled, the compiler will issue an error or a warning if a method
* overrides a synchronized method without having a synchronized modifier.
* &lt;dl>
* &lt;dt>Option id:&lt;/dt>&lt;dd>&lt;code>&quot;org.eclipse.jdt.core.compiler.problem.missingSynchronizedOnInheritedMethod&quot;&lt;/code>&lt;/dd>
* &lt;dt>Possible values:&lt;/dt>&lt;dd>&lt;code>{ &quot;error&quot;, &quot;warning&quot;, &quot;ignore&quot; }&lt;/code>&lt;/dd>
* &lt;dt>Default:&lt;/dt>&lt;dd>&lt;code>&quot;ignore&quot;&lt;/code>&lt;/dd>
* &lt;/dl>
* @since 3.5
* @category CompilerOptionID
</body>
</ownedComment>
</ownedAttribute>
<ownedAttribute xmi:id="_lkRfgGEMEeCdEc4VzBeWeQ" name="COMPILER_PB_UNUSED_OBJECT_ALLOCATION" visibility="public" isLeaf="true" isStatic="true" type="_dSiS02EMEeCdEc4VzBeWeQ" isUnique="false">
<ownedComment xmi:id="_lkbQgGEMEeCdEc4VzBeWeQ">
<body>
* Compiler option ID: Reporting Allocation of an Unused Object.
* &lt;p>When enabled, the compiler will issue an error or a warning if an object is allocated but never used,
* neither by holding a reference nor by invoking one of the object's methods.
* &lt;dl>
* &lt;dt>Option id:&lt;/dt>&lt;dd>&lt;code>&quot;org.eclipse.jdt.core.compiler.problem.unusedObjectAllocation&quot;&lt;/code>&lt;/dd>
* &lt;dt>Possible values:&lt;/dt>&lt;dd>&lt;code>{ &quot;error&quot;, &quot;warning&quot;, &quot;ignore&quot; }&lt;/code>&lt;/dd>
* &lt;dt>Default:&lt;/dt>&lt;dd>&lt;code>&quot;ignore&quot;&lt;/code>&lt;/dd>
* &lt;/dl>
* @since 3.6
* @category CompilerOptionID
</body>
</ownedComment>
</ownedAttribute>
<ownedAttribute xmi:id="_lkbQgWEMEeCdEc4VzBeWeQ" name="CORE_JAVA_BUILD_ORDER" visibility="public" isLeaf="true" isStatic="true" type="_dSiS02EMEeCdEc4VzBeWeQ" isUnique="false">
<ownedComment xmi:id="_lklBgGEMEeCdEc4VzBeWeQ">
<body>
* Core option ID: Computing Project Build Order.
* &lt;p>Indicate whether JavaCore should enforce the project build order to be based on
* the classpath prerequisite chain. When requesting to compute, this takes over
* the platform default order (based on project references).
* &lt;dl>
* &lt;dt>Option id:&lt;/dt>&lt;dd>&lt;code>&quot;org.eclipse.jdt.core.computeJavaBuildOrder&quot;&lt;/code>&lt;/dd>
* &lt;dt>Possible values:&lt;/dt>&lt;dd>&lt;code>{ &quot;compute&quot;, &quot;ignore&quot; }&lt;/code>&lt;/dd>
* &lt;dt>Default:&lt;/dt>&lt;dd>&lt;code>&quot;ignore&quot;&lt;/code>&lt;/dd>
* &lt;/dl>
* @category CoreOptionID
</body>
</ownedComment>
</ownedAttribute>
<ownedAttribute xmi:id="_lkuLcGEMEeCdEc4VzBeWeQ" name="CORE_JAVA_BUILD_RESOURCE_COPY_FILTER" visibility="public" isLeaf="true" isStatic="true" type="_dSiS02EMEeCdEc4VzBeWeQ" isUnique="false">
<ownedComment xmi:id="_lkuLcWEMEeCdEc4VzBeWeQ">
<body>
* Core option ID: Specifying Filters for Resource Copying Control.
* &lt;p>Allow to specify some filters to control the resource copy process.
* &lt;dl>
* &lt;dt>Option id:&lt;/dt>&lt;dd>&lt;code>&quot;org.eclipse.jdt.core.builder.resourceCopyExclusionFilter&quot;&lt;/code>&lt;/dd>
* &lt;dt>Possible values:&lt;/dt>&lt;dd>&lt;code>{ &quot;&amp;lt;name&amp;gt;[,&amp;lt;name&amp;gt;]* }&lt;/code> where &lt;code>&amp;lt;name&amp;gt;&lt;/code> is a file name pattern (* and ? wild-cards allowed)
* or the name of a folder which ends with &lt;code>'/'&lt;/code>&lt;/dd>
* &lt;dt>Default:&lt;/dt>&lt;dd>&lt;code>&quot;&quot;&lt;/code>&lt;/dd>
* &lt;/dl>
* @since 2.0
* @category CoreOptionID
</body>
</ownedComment>
</ownedAttribute>
<ownedAttribute xmi:id="_lk38cGEMEeCdEc4VzBeWeQ" name="CORE_JAVA_BUILD_DUPLICATE_RESOURCE" visibility="public" isLeaf="true" isStatic="true" type="_dSiS02EMEeCdEc4VzBeWeQ" isUnique="false">
<ownedComment xmi:id="_llBGYGEMEeCdEc4VzBeWeQ">
<body>
* Core option ID: Reporting Duplicate Resources.
* &lt;p>Indicate the severity of the problem reported when more than one occurrence
* of a resource is to be copied into the output location.
* &lt;dl>
* &lt;dt>Option id:&lt;/dt>&lt;dd>&lt;code>&quot;org.eclipse.jdt.core.builder.duplicateResourceTask&quot;&lt;/code>&lt;/dd>
* &lt;dt>Possible values:&lt;/dt>&lt;dd>&lt;code>{ &quot;error&quot;, &quot;warning&quot; }&lt;/code>&lt;/dd>
* &lt;dt>Default:&lt;/dt>&lt;dd>&lt;code>&quot;warning&quot;&lt;/code>&lt;/dd>
* &lt;/dl>
* @since 2.1
* @category CoreOptionID
</body>
</ownedComment>
</ownedAttribute>
<ownedAttribute xmi:id="_llBGYWEMEeCdEc4VzBeWeQ" name="CORE_JAVA_BUILD_CLEAN_OUTPUT_FOLDER" visibility="public" isLeaf="true" isStatic="true" type="_dSiS02EMEeCdEc4VzBeWeQ" isUnique="false">
<ownedComment xmi:id="_llK3YGEMEeCdEc4VzBeWeQ">
<body>
* Core option ID: Cleaning Output Folder(s).
* &lt;p>Indicate whether the JavaBuilder is allowed to clean the output folders
* when performing full build operations.
* &lt;dl>
* &lt;dt>Option id:&lt;/dt>&lt;dd>&lt;code>&quot;org.eclipse.jdt.core.builder.cleanOutputFolder&quot;&lt;/code>&lt;/dd>
* &lt;dt>Possible values:&lt;/dt>&lt;dd>&lt;code>{ &quot;clean&quot;, &quot;ignore&quot; }&lt;/code>&lt;/dd>
* &lt;dt>Default:&lt;/dt>&lt;dd>&lt;code>&quot;clean&quot;&lt;/code>&lt;/dd>
* &lt;/dl>
* @since 2.1
* @category CoreOptionID
</body>
</ownedComment>
</ownedAttribute>
<ownedAttribute xmi:id="_llUoYGEMEeCdEc4VzBeWeQ" name="CORE_JAVA_BUILD_RECREATE_MODIFIED_CLASS_FILES_IN_OUTPUT_FOLDER" visibility="public" isLeaf="true" isStatic="true" type="_dSiS02EMEeCdEc4VzBeWeQ" isUnique="false">
<ownedComment xmi:id="_llUoYWEMEeCdEc4VzBeWeQ">
<body>
* Core option ID: Recreate Modified class files in Output Folder.
* &lt;p>Indicate whether the JavaBuilder should check for any changes to .class files
* in the output folders while performing incremental build operations. If changes
* are detected to managed .class files, then a full build is performed, otherwise
* the changes are left as is. Tools further altering generated .class files, like optimizers,
* should ensure this option remains set in its default state of ignore.
* &lt;dl>
* &lt;dt>Option id:&lt;/dt>&lt;dd>&lt;code>&quot;org.eclipse.jdt.core.builder.recreateModifiedClassFileInOutputFolder&quot;&lt;/code>&lt;/dd>
* &lt;dt>Possible values:&lt;/dt>&lt;dd>&lt;code>{ &quot;enabled&quot;, &quot;ignore&quot; }&lt;/code>&lt;/dd>
* &lt;dt>Default:&lt;/dt>&lt;dd>&lt;code>&quot;ignore&quot;&lt;/code>&lt;/dd>
* &lt;/dl>
* @since 3.2
* @category CoreOptionID
</body>
</ownedComment>
</ownedAttribute>
<ownedAttribute xmi:id="_lldyUGEMEeCdEc4VzBeWeQ" name="CORE_INCOMPLETE_CLASSPATH" visibility="public" isLeaf="true" isStatic="true" type="_dSiS02EMEeCdEc4VzBeWeQ" isUnique="false">
<ownedComment xmi:id="_lldyUWEMEeCdEc4VzBeWeQ">
<body>
* Core option ID: Reporting Incomplete Classpath.
* &lt;p>Indicate the severity of the problem reported when an entry on the classpath does not exist,
* is not legite or is not visible (for example, a referenced project is closed).
* &lt;dl>
* &lt;dt>Option id:&lt;/dt>&lt;dd>&lt;code>&quot;org.eclipse.jdt.core.incompleteClasspath&quot;&lt;/code>&lt;/dd>
* &lt;dt>Possible values:&lt;/dt>&lt;dd>&lt;code>{ &quot;error&quot;, &quot;warning&quot;}&lt;/code>&lt;/dd>
* &lt;dt>Default:&lt;/dt>&lt;dd>&lt;code>&quot;error&quot;&lt;/code>&lt;/dd>
* &lt;/dl>
* @since 2.1
* @category CoreOptionID
</body>
</ownedComment>
</ownedAttribute>
<ownedAttribute xmi:id="_llnjUGEMEeCdEc4VzBeWeQ" name="CORE_CIRCULAR_CLASSPATH" visibility="public" isLeaf="true" isStatic="true" type="_dSiS02EMEeCdEc4VzBeWeQ" isUnique="false">
<ownedComment xmi:id="_llxUUGEMEeCdEc4VzBeWeQ">
<body>
* Core option ID: Reporting Classpath Cycle.
* &lt;p>Indicate the severity of the problem reported when a project is involved in a cycle.
* &lt;dl>
* &lt;dt>Option id:&lt;/dt>&lt;dd>&lt;code>&quot;org.eclipse.jdt.core.circularClasspath&quot;&lt;/code>&lt;/dd>
* &lt;dt>Possible values:&lt;/dt>&lt;dd>&lt;code>{ &quot;error&quot;, &quot;warning&quot; }&lt;/code>&lt;/dd>
* &lt;dt>Default:&lt;/dt>&lt;dd>&lt;code>&quot;error&quot;&lt;/code>&lt;/dd>
* &lt;/dl>
* @since 2.1
* @category CoreOptionID
</body>
</ownedComment>
</ownedAttribute>
<ownedAttribute xmi:id="_llxUUWEMEeCdEc4VzBeWeQ" name="CORE_INCOMPATIBLE_JDK_LEVEL" visibility="public" isLeaf="true" isStatic="true" type="_dSiS02EMEeCdEc4VzBeWeQ" isUnique="false">
<ownedComment xmi:id="_ll6eQGEMEeCdEc4VzBeWeQ">
<body>
* Core option ID: Reporting Incompatible JDK Level for Required Binaries.
* &lt;p>Indicate the severity of the problem reported when a project prerequisites another project
* or library with an incompatible target JDK level (e.g. project targeting 1.1 vm, but compiled against 1.4 libraries).
* &lt;dl>
* &lt;dt>Option id:&lt;/dt>&lt;dd>&lt;code>&quot;org.eclipse.jdt.core.incompatibleJDKLevel&quot;&lt;/code>&lt;/dd>
* &lt;dt>Possible values:&lt;/dt>&lt;dd>&lt;code>{ &quot;error&quot;, &quot;warning&quot;, &quot;ignore&quot; }&lt;/code>&lt;/dd>
* &lt;dt>Default:&lt;/dt>&lt;dd>&lt;code>&quot;ignore&quot;&lt;/code>&lt;/dd>
* &lt;/dl>
* @since 3.0
* @category CoreOptionID
</body>
</ownedComment>
</ownedAttribute>
<ownedAttribute xmi:id="_lmEPQGEMEeCdEc4VzBeWeQ" name="CORE_JAVA_BUILD_INVALID_CLASSPATH" visibility="public" isLeaf="true" isStatic="true" type="_dSiS02EMEeCdEc4VzBeWeQ" isUnique="false">
<ownedComment xmi:id="_lmEPQWEMEeCdEc4VzBeWeQ">
<body>
* Core option ID: Abort if Invalid Classpath.
* &lt;p>Allow to toggle the builder to abort if the classpath is invalid.
* &lt;dl>
* &lt;dt>Option id:&lt;/dt>&lt;dd>&lt;code>&quot;org.eclipse.jdt.core.builder.invalidClasspath&quot;&lt;/code>&lt;/dd>
* &lt;dt>Possible values:&lt;/dt>&lt;dd>&lt;code>{ &quot;abort&quot;, &quot;ignore&quot; }&lt;/code>&lt;/dd>
* &lt;dt>Default:&lt;/dt>&lt;dd>&lt;code>&quot;abort&quot;&lt;/code>&lt;/dd>
* &lt;/dl>
* @since 2.0
* @category CoreOptionID
</body>
</ownedComment>
</ownedAttribute>
<ownedAttribute xmi:id="_lmNZMGEMEeCdEc4VzBeWeQ" name="CORE_ENCODING" visibility="public" isLeaf="true" isStatic="true" type="_dSiS02EMEeCdEc4VzBeWeQ" isUnique="false">
<ownedComment xmi:id="_lmXKMGEMEeCdEc4VzBeWeQ">
<body>
* Core option ID: Default Source Encoding Format.
* &lt;p>Get the default encoding format of source files. This value is
* immutable and preset to the result of &lt;code>ResourcesPlugin.getEncoding()&lt;/code>.
* &lt;p>It is offered as a convenience shortcut only.
* &lt;dl>
* &lt;dt>Option id:&lt;/dt>&lt;dd>&lt;code>&quot;org.eclipse.jdt.core.encoding&quot;&lt;/code>&lt;/dd>
* &lt;dt>value:&lt;/dt>&lt;dd>&lt;code>&amp;lt;immutable, platform default value&amp;gt;&lt;/code>&lt;/dd>
* &lt;/dl>
* @since 2.0
* @category CoreOptionID
</body>
</ownedComment>
</ownedAttribute>
<ownedAttribute xmi:id="_lmXKMWEMEeCdEc4VzBeWeQ" name="CORE_ENABLE_CLASSPATH_EXCLUSION_PATTERNS" visibility="public" isLeaf="true" isStatic="true" type="_dSiS02EMEeCdEc4VzBeWeQ" isUnique="false">
<ownedComment xmi:id="_lmg7MGEMEeCdEc4VzBeWeQ">
<body>
* Core option ID: Enabling Usage of Classpath Exclusion Patterns.
* &lt;p>When disabled, no entry on a project classpath can be associated with
* an exclusion pattern.
* &lt;dl>
* &lt;dt>Option id:&lt;/dt>&lt;dd>&lt;code>&quot;org.eclipse.jdt.core.classpath.exclusionPatterns&quot;&lt;/code>&lt;/dd>
* &lt;dt>Possible values:&lt;/dt>&lt;dd>&lt;code>{ &quot;enabled&quot;, &quot;disabled&quot; }&lt;/code>&lt;/dd>
* &lt;dt>Default:&lt;/dt>&lt;dd>&lt;code>&quot;enabled&quot;&lt;/code>&lt;/dd>
* &lt;/dl>
* @since 2.1
* @category CoreOptionID
</body>
</ownedComment>
</ownedAttribute>
<ownedAttribute xmi:id="_lmqFIGEMEeCdEc4VzBeWeQ" name="CORE_ENABLE_CLASSPATH_MULTIPLE_OUTPUT_LOCATIONS" visibility="public" isLeaf="true" isStatic="true" type="_dSiS02EMEeCdEc4VzBeWeQ" isUnique="false">
<ownedComment xmi:id="_lmqFIWEMEeCdEc4VzBeWeQ">
<body>
* Core option ID: Enabling Usage of Classpath Multiple Output Locations.
* &lt;p>When disabled, no entry on a project classpath can be associated with
* a specific output location, preventing thus usage of multiple output locations.
* &lt;dl>
* &lt;dt>Option id:&lt;/dt>&lt;dd>&lt;code>&quot;org.eclipse.jdt.core.classpath.multipleOutputLocations&quot;&lt;/code>&lt;/dd>
* &lt;dt>Possible values:&lt;/dt>&lt;dd>&lt;code>{ &quot;enabled&quot;, &quot;disabled&quot; }&lt;/code>&lt;/dd>
* &lt;dt>Default:&lt;/dt>&lt;dd>&lt;code>&quot;enabled&quot;&lt;/code>&lt;/dd>
* &lt;/dl>
* @since 2.1
* @category CoreOptionID
</body>
</ownedComment>
</ownedAttribute>
<ownedAttribute xmi:id="_lmz2IGEMEeCdEc4VzBeWeQ" name="TIMEOUT_FOR_PARAMETER_NAME_FROM_ATTACHED_JAVADOC" visibility="public" isLeaf="true" isStatic="true" type="_dSiS02EMEeCdEc4VzBeWeQ" isUnique="false">
<ownedComment xmi:id="_lmz2IWEMEeCdEc4VzBeWeQ">
<body>
* Core option ID: Set the timeout value for retrieving the method's parameter names from javadoc.
* &lt;p>Timeout in milliseconds to retrieve the method's parameter names from javadoc.
* &lt;p>If the value is &lt;code>0&lt;/code>, the parameter names are not fetched and the raw names are returned.
* &lt;dl>
* &lt;dt>Option id:&lt;/dt>&lt;dd>&lt;code>&quot;org.eclipse.jdt.core.timeoutForParameterNameFromAttachedJavadoc&quot;&lt;/code>&lt;/dd>
* &lt;dt>Possible values:&lt;/dt>&lt;dd>&lt;code>&quot;&amp;lt;n&amp;gt;&quot;&lt;/code>, where &lt;code>n&lt;/code> is an integer greater than or equal to &lt;code>0&lt;/code>&lt;/dd>
* &lt;dt>Default:&lt;/dt>&lt;dd>&lt;code>&quot;50&quot;&lt;/code>&lt;/dd>
* &lt;/dl>
* @since 3.2
* @category CoreOptionID
</body>
</ownedComment>
</ownedAttribute>
<ownedAttribute xmi:id="_lm9nIGEMEeCdEc4VzBeWeQ" name="FORMATTER_NEWLINE_OPENING_BRACE" visibility="public" isLeaf="true" isStatic="true" type="_dSiS02EMEeCdEc4VzBeWeQ" isUnique="false">
<ownedComment xmi:id="_lnGxEGEMEeCdEc4VzBeWeQ">
<body>
* @since 2.0
* @deprecated Use {@link org.eclipse.jdt.core.formatter.DefaultCodeFormatterConstants#FORMATTER_BRACE_POSITION_FOR_ANONYMOUS_TYPE_DECLARATION},
* {@link org.eclipse.jdt.core.formatter.DefaultCodeFormatterConstants#FORMATTER_BRACE_POSITION_FOR_BLOCK} ,
* {@link org.eclipse.jdt.core.formatter.DefaultCodeFormatterConstants#FORMATTER_BRACE_POSITION_FOR_CONSTRUCTOR_DECLARATION},
* {@link org.eclipse.jdt.core.formatter.DefaultCodeFormatterConstants#FORMATTER_BRACE_POSITION_FOR_METHOD_DECLARATION},
* {@link org.eclipse.jdt.core.formatter.DefaultCodeFormatterConstants#FORMATTER_BRACE_POSITION_FOR_SWITCH},
* {@link org.eclipse.jdt.core.formatter.DefaultCodeFormatterConstants#FORMATTER_BRACE_POSITION_FOR_TYPE_DECLARATION} instead.
* @category DeprecatedOptionID
</body>
</ownedComment>
</ownedAttribute>
<ownedAttribute xmi:id="_lnGxEWEMEeCdEc4VzBeWeQ" name="FORMATTER_NEWLINE_CONTROL" visibility="public" isLeaf="true" isStatic="true" type="_dSiS02EMEeCdEc4VzBeWeQ" isUnique="false">
<ownedComment xmi:id="_lnQiEGEMEeCdEc4VzBeWeQ">
<body>
* @since 2.0
* @deprecated Use {@link org.eclipse.jdt.core.formatter.DefaultCodeFormatterConstants#FORMATTER_INSERT_NEW_LINE_BEFORE_CATCH_IN_TRY_STATEMENT},
* {@link org.eclipse.jdt.core.formatter.DefaultCodeFormatterConstants#FORMATTER_INSERT_NEW_LINE_BEFORE_ELSE_IN_IF_STATEMENT},
* {@link org.eclipse.jdt.core.formatter.DefaultCodeFormatterConstants#FORMATTER_INSERT_NEW_LINE_BEFORE_FINALLY_IN_TRY_STATEMENT},
* {@link org.eclipse.jdt.core.formatter.DefaultCodeFormatterConstants#FORMATTER_INSERT_NEW_LINE_BEFORE_WHILE_IN_DO_STATEMENT} instead.
* @category DeprecatedOptionID
</body>
</ownedComment>
</ownedAttribute>
<ownedAttribute xmi:id="_lnZsAGEMEeCdEc4VzBeWeQ" name="FORMATTER_NEWLINE_ELSE_IF" visibility="public" isLeaf="true" isStatic="true" type="_dSiS02EMEeCdEc4VzBeWeQ" isUnique="false">
<ownedComment xmi:id="_lnZsAWEMEeCdEc4VzBeWeQ">
<body>
* @since 2.0
* @deprecated Use {@link org.eclipse.jdt.core.formatter.DefaultCodeFormatterConstants#FORMATTER_COMPACT_ELSE_IF} instead.
* @category DeprecatedOptionID
</body>
</ownedComment>
</ownedAttribute>
<ownedAttribute xmi:id="_lnjdAGEMEeCdEc4VzBeWeQ" name="FORMATTER_NEWLINE_EMPTY_BLOCK" visibility="public" isLeaf="true" isStatic="true" type="_dSiS02EMEeCdEc4VzBeWeQ" isUnique="false">
<ownedComment xmi:id="_lntOAGEMEeCdEc4VzBeWeQ">
<body>
* @since 2.0
* @deprecated Use {@link org.eclipse.jdt.core.formatter.DefaultCodeFormatterConstants#FORMATTER_INSERT_NEW_LINE_IN_EMPTY_BLOCK} instead.
* @category DeprecatedOptionID
</body>
</ownedComment>
</ownedAttribute>
<ownedAttribute xmi:id="_ln2X8GEMEeCdEc4VzBeWeQ" name="FORMATTER_CLEAR_BLANK_LINES" visibility="public" isLeaf="true" isStatic="true" type="_dSiS02EMEeCdEc4VzBeWeQ" isUnique="false">
<ownedComment xmi:id="_ln2X8WEMEeCdEc4VzBeWeQ">
<body>
* @since 2.0
* @deprecated Use {@link org.eclipse.jdt.core.formatter.DefaultCodeFormatterConstants#FORMATTER_NUMBER_OF_EMPTY_LINES_TO_PRESERVE} instead.
* @category DeprecatedOptionID
</body>
</ownedComment>
</ownedAttribute>
<ownedAttribute xmi:id="_loAI8GEMEeCdEc4VzBeWeQ" name="FORMATTER_LINE_SPLIT" visibility="public" isLeaf="true" isStatic="true" type="_dSiS02EMEeCdEc4VzBeWeQ" isUnique="false">
<ownedComment xmi:id="_loAI8WEMEeCdEc4VzBeWeQ">
<body>
* @since 2.0
* @deprecated Use {@link org.eclipse.jdt.core.formatter.DefaultCodeFormatterConstants#FORMATTER_LINE_SPLIT} instead
* @category DeprecatedOptionID
</body>
</ownedComment>
</ownedAttribute>
<ownedAttribute xmi:id="_loJ58GEMEeCdEc4VzBeWeQ" name="FORMATTER_COMPACT_ASSIGNMENT" visibility="public" isLeaf="true" isStatic="true" type="_dSiS02EMEeCdEc4VzBeWeQ" isUnique="false">
<ownedComment xmi:id="_loTD4GEMEeCdEc4VzBeWeQ">
<body>
* @since 2.0
* @deprecated Use {@link org.eclipse.jdt.core.formatter.DefaultCodeFormatterConstants#FORMATTER_INSERT_SPACE_BEFORE_ASSIGNMENT_OPERATOR} instead.
* @category DeprecatedOptionID
</body>
</ownedComment>
</ownedAttribute>
<ownedAttribute xmi:id="_loTD4WEMEeCdEc4VzBeWeQ" name="FORMATTER_TAB_CHAR" visibility="public" isLeaf="true" isStatic="true" type="_dSiS02EMEeCdEc4VzBeWeQ" isUnique="false">
<ownedComment xmi:id="_loc04GEMEeCdEc4VzBeWeQ">
<body>
* @since 2.0
* @deprecated Use {@link org.eclipse.jdt.core.formatter.DefaultCodeFormatterConstants#FORMATTER_TAB_CHAR} instead.
* @category DeprecatedOptionID
</body>
</ownedComment>
</ownedAttribute>
<ownedAttribute xmi:id="_lol-0GEMEeCdEc4VzBeWeQ" name="FORMATTER_TAB_SIZE" visibility="public" isLeaf="true" isStatic="true" type="_dSiS02EMEeCdEc4VzBeWeQ" isUnique="false">
<ownedComment xmi:id="_lol-0WEMEeCdEc4VzBeWeQ">
<body>
* @since 2.0
* @deprecated Use {@link org.eclipse.jdt.core.formatter.DefaultCodeFormatterConstants#FORMATTER_TAB_SIZE} instead.
* @category DeprecatedOptionID
</body>
</ownedComment>
</ownedAttribute>
<ownedAttribute xmi:id="_lovv0GEMEeCdEc4VzBeWeQ" name="FORMATTER_SPACE_CASTEXPRESSION" visibility="public" isLeaf="true" isStatic="true" type="_dSiS02EMEeCdEc4VzBeWeQ" isUnique="false">
<ownedComment xmi:id="_lovv0WEMEeCdEc4VzBeWeQ">
<body>
* @since 2.1
* @deprecated Use {@link org.eclipse.jdt.core.formatter.DefaultCodeFormatterConstants#FORMATTER_INSERT_SPACE_AFTER_CLOSING_PAREN_IN_CAST} instead.
* @category DeprecatedOptionID
</body>
</ownedComment>
</ownedAttribute>
<ownedAttribute xmi:id="_lo5g0GEMEeCdEc4VzBeWeQ" name="CODEASSIST_VISIBILITY_CHECK" visibility="public" isLeaf="true" isStatic="true" type="_dSiS02EMEeCdEc4VzBeWeQ" isUnique="false">
<ownedComment xmi:id="_lpCqwGEMEeCdEc4VzBeWeQ">
<body>
* Code assist option ID: Activate Visibility Sensitive Completion.
* &lt;p>When active, completion doesn't show that you can not see
* (for example, you can not see private methods of a super class).
* &lt;dl>
* &lt;dt>Option id:&lt;/dt>&lt;dd>&lt;code>&quot;org.eclipse.jdt.core.codeComplete.visibilityCheck&quot;&lt;/code>&lt;/dd>
* &lt;dt>Possible values:&lt;/dt>&lt;dd>&lt;code>{ &quot;enabled&quot;, &quot;disabled&quot; }&lt;/code>&lt;/dd>
* &lt;dt>Default:&lt;/dt>&lt;dd>&lt;code>&quot;disabled&quot;&lt;/code>&lt;/dd>
* &lt;/dl>
* @since 2.0
* @category CodeAssistOptionID
</body>
</ownedComment>
</ownedAttribute>
<ownedAttribute xmi:id="_lpMbwGEMEeCdEc4VzBeWeQ" name="CODEASSIST_DEPRECATION_CHECK" visibility="public" isLeaf="true" isStatic="true" type="_dSiS02EMEeCdEc4VzBeWeQ" isUnique="false">
<ownedComment xmi:id="_lpMbwWEMEeCdEc4VzBeWeQ">
<body>
* Code assist option ID: Activate Deprecation Sensitive Completion.
* &lt;p>When enabled, completion doesn't propose deprecated members and types.
* &lt;dl>
* &lt;dt>Option id:&lt;/dt>&lt;dd>&lt;code>&quot;org.eclipse.jdt.core.codeComplete.deprecationCheck&quot;&lt;/code>&lt;/dd>
* &lt;dt>Possible values:&lt;/dt>&lt;dd>&lt;code>{ &quot;enabled&quot;, &quot;disabled&quot; }&lt;/code>&lt;/dd>
* &lt;dt>Default:&lt;/dt>&lt;dd>&lt;code>&quot;disabled&quot;&lt;/code>&lt;/dd>
* &lt;/dl>
* @since 3.2
* @category CodeAssistOptionID
</body>
</ownedComment>
</ownedAttribute>
<ownedAttribute xmi:id="_lpWMwGEMEeCdEc4VzBeWeQ" name="CODEASSIST_CAMEL_CASE_MATCH" visibility="public" isLeaf="true" isStatic="true" type="_dSiS02EMEeCdEc4VzBeWeQ" isUnique="false">
<ownedComment xmi:id="_lpfWsGEMEeCdEc4VzBeWeQ">
<body>
* Code assist option ID: Activate Camel Case Sensitive Completion.
* &lt;p>When enabled, completion shows proposals whose name match the CamelCase
* pattern.
* &lt;dl>
* &lt;dt>Option id:&lt;/dt>&lt;dd>&lt;code>&quot;org.eclipse.jdt.core.codeComplete.camelCaseMatch&quot;&lt;/code>&lt;/dd>
* &lt;dt>Possible values:&lt;/dt>&lt;dd>&lt;code>{ &quot;enabled&quot;, &quot;disabled&quot; }&lt;/code>&lt;/dd>
* &lt;dt>Default:&lt;/dt>&lt;dd>&lt;code>&quot;enabled&quot;&lt;/code>&lt;/dd>
* &lt;/dl>
* @since 3.2
* @category CodeAssistOptionID
</body>
</ownedComment>
</ownedAttribute>
<ownedAttribute xmi:id="_lpfWsWEMEeCdEc4VzBeWeQ" name="CODEASSIST_IMPLICIT_QUALIFICATION" visibility="public" isLeaf="true" isStatic="true" type="_dSiS02EMEeCdEc4VzBeWeQ" isUnique="false">
<ownedComment xmi:id="_lppHsGEMEeCdEc4VzBeWeQ">
<body>
* Code assist option ID: Automatic Qualification of Implicit Members.
* &lt;p>When active, completion automatically qualifies completion on implicit
* field references and message expressions.
* &lt;dl>
* &lt;dt>Option id:&lt;/dt>&lt;dd>&lt;code>&quot;org.eclipse.jdt.core.codeComplete.forceImplicitQualification&quot;&lt;/code>&lt;/dd>
* &lt;dt>Possible values:&lt;/dt>&lt;dd>&lt;code>{ &quot;enabled&quot;, &quot;disabled&quot; }&lt;/code>&lt;/dd>
* &lt;dt>Default:&lt;/dt>&lt;dd>&lt;code>&quot;disabled&quot;&lt;/code>&lt;/dd>
* &lt;/dl>
* @since 2.0
* @category CodeAssistOptionID
</body>
</ownedComment>
</ownedAttribute>
<ownedAttribute xmi:id="_lpyRoGEMEeCdEc4VzBeWeQ" name="CODEASSIST_FIELD_PREFIXES" visibility="public" isLeaf="true" isStatic="true" type="_dSiS02EMEeCdEc4VzBeWeQ" isUnique="false">
<ownedComment xmi:id="_lpyRoWEMEeCdEc4VzBeWeQ">
<body>
* Code assist option ID: Define the Prefixes for Field Name.
* &lt;p>When the prefixes is non empty, completion for field name will begin with
* one of the proposed prefixes.
* &lt;dl>
* &lt;dt>Option id:&lt;/dt>&lt;dd>&lt;code>&quot;org.eclipse.jdt.core.codeComplete.fieldPrefixes&quot;&lt;/code>&lt;/dd>
* &lt;dt>Possible values:&lt;/dt>&lt;dd>&lt;code>{ &quot;&amp;lt;prefix&amp;gt;[,&amp;lt;prefix&amp;gt;]*&quot; }&lt;/code> where &lt;code>&amp;lt;prefix&amp;gt;&lt;/code> is a String without any wild-card&lt;/dd>
* &lt;dt>Default:&lt;/dt>&lt;dd>&lt;code>&quot;&quot;&lt;/code>&lt;/dd>
* &lt;/dl>
* @since 2.1
* @category CodeAssistOptionID
</body>
</ownedComment>
</ownedAttribute>
<ownedAttribute xmi:id="_lp8CoGEMEeCdEc4VzBeWeQ" name="CODEASSIST_STATIC_FIELD_PREFIXES" visibility="public" isLeaf="true" isStatic="true" type="_dSiS02EMEeCdEc4VzBeWeQ" isUnique="false">
<ownedComment xmi:id="_lp8CoWEMEeCdEc4VzBeWeQ">
<body>
* Code assist option ID: Define the Prefixes for Static Field Name.
* &lt;p>When the prefixes is non empty, completion for static field name will begin with
* one of the proposed prefixes.
* &lt;dl>
* &lt;dt>Option id:&lt;/dt>&lt;dd>&lt;code>&quot;org.eclipse.jdt.core.codeComplete.staticFieldPrefixes&quot;&lt;/code>&lt;/dd>
* &lt;dt>Possible values:&lt;/dt>&lt;dd>&lt;code>{ &quot;&amp;lt;prefix&amp;gt;[,&amp;lt;prefix&amp;gt;]*&quot; }&lt;/code> where &lt;code>&amp;lt;prefix&amp;gt;&lt;/code> is a String without any wild-card&lt;/dd>
* &lt;dt>Default:&lt;/dt>&lt;dd>&lt;code>&quot;&quot;&lt;/code>&lt;/dd>
* &lt;/dl>
* @since 2.1
* @category CodeAssistOptionID
</body>
</ownedComment>
</ownedAttribute>
<ownedAttribute xmi:id="_lqFzoGEMEeCdEc4VzBeWeQ" name="CODEASSIST_STATIC_FINAL_FIELD_PREFIXES" visibility="public" isLeaf="true" isStatic="true" type="_dSiS02EMEeCdEc4VzBeWeQ" isUnique="false">
<ownedComment xmi:id="_lqO9kGEMEeCdEc4VzBeWeQ">
<body>
* Code assist option ID: Define the Prefixes for Static Final Field Name.
* &lt;p>When the prefixes is non empty, completion for static final field name will begin with
* one of the proposed prefixes.
* &lt;dl>
* &lt;dt>Option id:&lt;/dt>&lt;dd>&lt;code>&quot;org.eclipse.jdt.core.codeComplete.staticFinalFieldPrefixes&quot;&lt;/code>&lt;/dd>
* &lt;dt>Possible values:&lt;/dt>&lt;dd>&lt;code>{ &quot;&amp;lt;prefix&amp;gt;[,&amp;lt;prefix&amp;gt;]*&quot; }&lt;/code> where &lt;code>&amp;lt;prefix&amp;gt;&lt;/code> is a String without any wild-card&lt;/dd>
* &lt;dt>Default:&lt;/dt>&lt;dd>&lt;code>&quot;&quot;&lt;/code>&lt;/dd>
* &lt;/dl>
* @since 3.5
* @category CodeAssistOptionID
</body>
</ownedComment>
</ownedAttribute>
<ownedAttribute xmi:id="_lqO9kWEMEeCdEc4VzBeWeQ" name="CODEASSIST_LOCAL_PREFIXES" visibility="public" isLeaf="true" isStatic="true" type="_dSiS02EMEeCdEc4VzBeWeQ" isUnique="false">
<ownedComment xmi:id="_lqYukGEMEeCdEc4VzBeWeQ">
<body>
* Code assist option ID: Define the Prefixes for Local Variable Name.
* &lt;p>When the prefixes is non empty, completion for local variable name will begin with
* one of the proposed prefixes.
* &lt;dl>
* &lt;dt>Option id:&lt;/dt>&lt;dd>&lt;code>&quot;org.eclipse.jdt.core.codeComplete.localPrefixes&quot;&lt;/code>&lt;/dd>
* &lt;dt>Possible values:&lt;/dt>&lt;dd>&lt;code>{ &quot;&amp;lt;prefix&amp;gt;[,&amp;lt;prefix&amp;gt;]*&quot; }&lt;/code> where &lt;code>&amp;lt;prefix&amp;gt;&lt;/code> is a String without any wild-card&lt;/dd>
* &lt;dt>Default:&lt;/dt>&lt;dd>&lt;code>&quot;&quot;&lt;/code>&lt;/dd>
* &lt;/dl>
* @since 2.1
* @category CodeAssistOptionID
</body>
</ownedComment>
</ownedAttribute>
<ownedAttribute xmi:id="_lqifkGEMEeCdEc4VzBeWeQ" name="CODEASSIST_ARGUMENT_PREFIXES" visibility="public" isLeaf="true" isStatic="true" type="_dSiS02EMEeCdEc4VzBeWeQ" isUnique="false">
<ownedComment xmi:id="_lqifkWEMEeCdEc4VzBeWeQ">
<body>
* Code assist option ID: Define the Prefixes for Argument Name.
* &lt;p>When the prefixes is non empty, completion for argument name will begin with
* one of the proposed prefixes.
* &lt;dl>
* &lt;dt>Option id:&lt;/dt>&lt;dd>&lt;code>&quot;org.eclipse.jdt.core.codeComplete.argumentPrefixes&quot;&lt;/code>&lt;/dd>
* &lt;dt>Possible values:&lt;/dt>&lt;dd>&lt;code>{ &quot;&amp;lt;prefix&amp;gt;[,&amp;lt;prefix&amp;gt;]*&quot; }&lt;/code> where &lt;code>&amp;lt;prefix&amp;gt;&lt;/code> is a String without any wild-card&lt;/dd>
* &lt;dt>Default:&lt;/dt>&lt;dd>&lt;code>&quot;&quot;&lt;/code>&lt;/dd>
* &lt;/dl>
* @since 2.1
* @category CodeAssistOptionID
</body>
</ownedComment>
</ownedAttribute>
<ownedAttribute xmi:id="_lqrpgGEMEeCdEc4VzBeWeQ" name="CODEASSIST_FIELD_SUFFIXES" visibility="public" isLeaf="true" isStatic="true" type="_dSiS02EMEeCdEc4VzBeWeQ" isUnique="false">
<ownedComment xmi:id="_lq1agGEMEeCdEc4VzBeWeQ">
<body>
* Code assist option ID: Define the Suffixes for Field Name.
* &lt;p>When the suffixes is non empty, completion for field name will end with
* one of the proposed suffixes.
* &lt;dl>
* &lt;dt>Option id:&lt;/dt>&lt;dd>&lt;code>&quot;org.eclipse.jdt.core.codeComplete.fieldSuffixes&quot;&lt;/code>&lt;/dd>
* &lt;dt>Possible values:&lt;/dt>&lt;dd>&lt;code>{ &quot;&amp;lt;suffix&amp;gt;[,&amp;lt;suffix&amp;gt;]*&quot; }&lt;/code> where &lt;code>&amp;lt;suffix&amp;gt;&lt;/code> is a String without any wild-card&lt;/dd>
* &lt;dt>Default:&lt;/dt>&lt;dd>&lt;code>&quot;&quot;&lt;/code>&lt;/dd>
* &lt;/dl>
* @since 2.1
* @category CodeAssistOptionID
</body>
</ownedComment>
</ownedAttribute>
<ownedAttribute xmi:id="_lq1agWEMEeCdEc4VzBeWeQ" name="CODEASSIST_STATIC_FIELD_SUFFIXES" visibility="public" isLeaf="true" isStatic="true" type="_dSiS02EMEeCdEc4VzBeWeQ" isUnique="false">
<ownedComment xmi:id="_lq-kcGEMEeCdEc4VzBeWeQ">
<body>
* Code assist option ID: Define the Suffixes for Static Field Name.
* &lt;p>When the suffixes is non empty, completion for static field name will end with
* one of the proposed suffixes.
* &lt;dl>
* &lt;dt>Option id:&lt;/dt>&lt;dd>&lt;code>&quot;org.eclipse.jdt.core.codeComplete.staticFieldSuffixes&quot;&lt;/code>&lt;/dd>
* &lt;dt>Possible values:&lt;/dt>&lt;dd>&lt;code>{ &quot;&amp;lt;suffix&amp;gt;[,&amp;lt;suffix&amp;gt;]*&quot; }&lt;/code>&lt; where &lt;code>&amp;lt;suffix&amp;gt;&lt;/code> is a String without any wild-card&lt;/dd>
* &lt;dt>Default:&lt;/dt>&lt;dd>&lt;code>&quot;&quot;&lt;/code>&lt;/dd>
* &lt;/dl>
* @since 2.1
* @category CodeAssistOptionID
</body>
</ownedComment>
</ownedAttribute>
<ownedAttribute xmi:id="_lrIVcGEMEeCdEc4VzBeWeQ" name="CODEASSIST_STATIC_FINAL_FIELD_SUFFIXES" visibility="public" isLeaf="true" isStatic="true" type="_dSiS02EMEeCdEc4VzBeWeQ" isUnique="false">
<ownedComment xmi:id="_lrIVcWEMEeCdEc4VzBeWeQ">
<body>
* Code assist option ID: Define the Suffixes for Static Final Field Name.
* &lt;p>When the suffixes is non empty, completion for static final field name will end with
* one of the proposed suffixes.
* &lt;dl>
* &lt;dt>Option id:&lt;/dt>&lt;dd>&lt;code>&quot;org.eclipse.jdt.core.codeComplete.staticFinalFieldSuffixes&quot;&lt;/code>&lt;/dd>
* &lt;dt>Possible values:&lt;/dt>&lt;dd>&lt;code>{ &quot;&amp;lt;suffix&amp;gt;[,&amp;lt;suffix&amp;gt;]*&quot; }&lt;/code>&lt; where &lt;code>&amp;lt;suffix&amp;gt;&lt;/code> is a String without any wild-card&lt;/dd>
* &lt;dt>Default:&lt;/dt>&lt;dd>&lt;code>&quot;&quot;&lt;/code>&lt;/dd>
* &lt;/dl>
* @since 3.5
* @category CodeAssistOptionID
</body>
</ownedComment>
</ownedAttribute>
<ownedAttribute xmi:id="_lrSGcGEMEeCdEc4VzBeWeQ" name="CODEASSIST_LOCAL_SUFFIXES" visibility="public" isLeaf="true" isStatic="true" type="_dSiS02EMEeCdEc4VzBeWeQ" isUnique="false">
<ownedComment xmi:id="_lrbQYGEMEeCdEc4VzBeWeQ">
<body>
* Code assist option ID: Define the Suffixes for Local Variable Name.
* &lt;p>When the suffixes is non empty, completion for local variable name will end with
* one of the proposed suffixes.
* &lt;dl>
* &lt;dt>Option id:&lt;/dt>&lt;dd>&lt;code>&quot;org.eclipse.jdt.core.codeComplete.localSuffixes&quot;&lt;/code>&lt;/dd>
* &lt;dt>Possible values:&lt;/dt>&lt;dd>&lt;code>{ &quot;&amp;lt;suffix&amp;gt;[,&amp;lt;suffix&amp;gt;]*&quot; }&lt;/code> where &lt;code>&amp;lt;suffix&amp;gt;&lt;/code> is a String without any wild-card&lt;/dd>
* &lt;dt>Default:&lt;/dt>&lt;dd>&lt;code>&quot;&quot;&lt;/code>&lt;/dd>
* &lt;/dl>
* @since 2.1
* @category CodeAssistOptionID
</body>
</ownedComment>
</ownedAttribute>
<ownedAttribute xmi:id="_lrbQYWEMEeCdEc4VzBeWeQ" name="CODEASSIST_ARGUMENT_SUFFIXES" visibility="public" isLeaf="true" isStatic="true" type="_dSiS02EMEeCdEc4VzBeWeQ" isUnique="false">
<ownedComment xmi:id="_lrlBYGEMEeCdEc4VzBeWeQ">
<body>
* Code assist option ID: Define the Suffixes for Argument Name.
* &lt;p>When the suffixes is non empty, completion for argument name will end with
* one of the proposed suffixes.
* &lt;dl>
* &lt;dt>Option id:&lt;/dt>&lt;dd>&lt;code>&quot;org.eclipse.jdt.core.codeComplete.argumentSuffixes&quot;&lt;/code>&lt;/dd>
* &lt;dt>Possible values:&lt;/dt>&lt;dd>&lt;code>{ &quot;&amp;lt;suffix&amp;gt;[,&amp;lt;suffix&amp;gt;]*&quot; }&lt;/code> where &lt;code>&amp;lt;suffix&amp;gt;&lt;/code> is a String without any wild-card&lt;/dd>
* &lt;dt>Default:&lt;/dt>&lt;dd>&lt;code>&quot;&quot;&lt;/code>&lt;/dd>
* &lt;/dl>
* @since 2.1
* @category CodeAssistOptionID
</body>
</ownedComment>
</ownedAttribute>
<ownedAttribute xmi:id="_lruyYGEMEeCdEc4VzBeWeQ" name="CODEASSIST_FORBIDDEN_REFERENCE_CHECK" visibility="public" isLeaf="true" isStatic="true" type="_dSiS02EMEeCdEc4VzBeWeQ" isUnique="false">
<ownedComment xmi:id="_lruyYWEMEeCdEc4VzBeWeQ">
<body>
* Code assist option ID: Activate Forbidden Reference Sensitive Completion.
* &lt;p>When enabled, completion doesn't propose elements which match a
* forbidden reference rule.
* &lt;dl>
* &lt;dt>Option id:&lt;/dt>&lt;dd>&lt;code>&quot;org.eclipse.jdt.core.codeComplete.forbiddenReferenceCheck&quot;&lt;/code>&lt;/dd>
* &lt;dt>Possible values:&lt;/dt>&lt;dd>&lt;code>{ &quot;enabled&quot;, &quot;disabled&quot; }&lt;/code>&lt;/dd>
* &lt;dt>Default:&lt;/dt>&lt;dd>&lt;code>&quot;enabled&quot;&lt;/code>&lt;/dd>
* &lt;/dl>
* @since 3.1
* @category CodeAssistOptionID
</body>
</ownedComment>
</ownedAttribute>
<ownedAttribute xmi:id="_lr38UGEMEeCdEc4VzBeWeQ" name="CODEASSIST_DISCOURAGED_REFERENCE_CHECK" visibility="public" isLeaf="true" isStatic="true" type="_dSiS02EMEeCdEc4VzBeWeQ" isUnique="false">
<ownedComment xmi:id="_lr38UWEMEeCdEc4VzBeWeQ">
<body>
* Code assist option ID: Activate Discouraged Reference Sensitive Completion.
* &lt;p>When enabled, completion doesn't propose elements which match a
* discouraged reference rule.
* &lt;dl>
* &lt;dt>Option id:&lt;/dt>&lt;dd>&lt;code>&quot;org.eclipse.jdt.core.codeComplete.discouragedReferenceCheck&quot;&lt;/code>&lt;/dd>
* &lt;dt>Possible values:&lt;/dt>&lt;dd>&lt;code>{ &quot;enabled&quot;, &quot;disabled&quot; }&lt;/code>&lt;/dd>
* &lt;dt>Default:&lt;/dt>&lt;dd>&lt;code>&quot;disabled&quot;&lt;/code>&lt;/dd>
* &lt;/dl>
* @since 3.1
* @category CodeAssistOptionID
</body>
</ownedComment>
</ownedAttribute>
<ownedAttribute xmi:id="_lsBtUGEMEeCdEc4VzBeWeQ" name="CODEASSIST_SUGGEST_STATIC_IMPORTS" visibility="public" isLeaf="true" isStatic="true" type="_dSiS02EMEeCdEc4VzBeWeQ" isUnique="false">
<ownedComment xmi:id="_lsK3QGEMEeCdEc4VzBeWeQ">
<body>
* Code assist option ID: Activate Suggestion of Static Import.
* &lt;p>When enabled, completion proposals can contain static import
* pattern.
* &lt;dl>
* &lt;dt>Option id:&lt;/dt>&lt;dd>&lt;code>&quot;org.eclipse.jdt.core.codeComplete.suggestStaticImports&quot;&lt;/code>&lt;/dd>
* &lt;dt>Possible values:&lt;/dt>&lt;dd>&lt;code>{ &quot;enabled&quot;, &quot;disabled&quot; }&lt;/code>&lt;/dd>
* &lt;dt>Default:&lt;/dt>&lt;dd>&lt;code>&quot;enabled&quot;&lt;/code>&lt;/dd>
* &lt;/dl>
* @since 3.3
* @category CodeAssistOptionID
</body>
</ownedComment>
</ownedAttribute>
<ownedAttribute xmi:id="_lsUoQGEMEeCdEc4VzBeWeQ" name="DEFAULT_TASK_TAG" visibility="public" isLeaf="true" isStatic="true" type="_dSiS02EMEeCdEc4VzBeWeQ" isUnique="false">
<ownedComment xmi:id="_lsUoQWEMEeCdEc4VzBeWeQ">
<body>
* @deprecated Use {@link #DEFAULT_TASK_TAGS} instead.
* @since 2.1
* @category DeprecatedOptionValue
</body>
</ownedComment>
</ownedAttribute>
<ownedAttribute xmi:id="_lseZQGEMEeCdEc4VzBeWeQ" name="DEFAULT_TASK_PRIORITY" visibility="public" isLeaf="true" isStatic="true" type="_dSiS02EMEeCdEc4VzBeWeQ" isUnique="false">
<ownedComment xmi:id="_lseZQWEMEeCdEc4VzBeWeQ">
<body>
* @deprecated Use {@link #DEFAULT_TASK_PRIORITIES} instead.
* @since 2.1
* @category DeprecatedOptionValue
</body>
</ownedComment>
</ownedAttribute>
<ownedAttribute xmi:id="_lsnjMGEMEeCdEc4VzBeWeQ" name="DEFAULT_TASK_TAGS" visibility="public" isLeaf="true" isStatic="true" type="_dSiS02EMEeCdEc4VzBeWeQ" isUnique="false">
<ownedComment xmi:id="_lsxUMGEMEeCdEc4VzBeWeQ">
<body>
* Configurable option value: {@value}.
* @since 3.0
* @category OptionValue
</body>
</ownedComment>
</ownedAttribute>
<ownedAttribute xmi:id="_lsxUMWEMEeCdEc4VzBeWeQ" name="DEFAULT_TASK_PRIORITIES" visibility="public" isLeaf="true" isStatic="true" type="_dSiS02EMEeCdEc4VzBeWeQ" isUnique="false">
<ownedComment xmi:id="_ls7FMGEMEeCdEc4VzBeWeQ">
<body>
* Configurable option value: {@value}.
* @since 3.0
* @category OptionValue
</body>
</ownedComment>
</ownedAttribute>
<ownedAttribute xmi:id="_ls7FMWEMEeCdEc4VzBeWeQ" name="GENERATE" visibility="public" isLeaf="true" isStatic="true" type="_dSiS02EMEeCdEc4VzBeWeQ" isUnique="false">
<ownedComment xmi:id="_ltEPIGEMEeCdEc4VzBeWeQ">
<body>
* Configurable option value: {@value}.
* @category OptionValue
</body>
</ownedComment>
</ownedAttribute>
<ownedAttribute xmi:id="_ltOAIGEMEeCdEc4VzBeWeQ" name="DO_NOT_GENERATE" visibility="public" isLeaf="true" isStatic="true" type="_dSiS02EMEeCdEc4VzBeWeQ" isUnique="false">
<ownedComment xmi:id="_ltOAIWEMEeCdEc4VzBeWeQ">
<body>
* Configurable option value: {@value}.
* @category OptionValue
</body>
</ownedComment>
</ownedAttribute>
<ownedAttribute xmi:id="_ltXKEGEMEeCdEc4VzBeWeQ" name="PRESERVE" visibility="public" isLeaf="true" isStatic="true" type="_dSiS02EMEeCdEc4VzBeWeQ" isUnique="false">
<ownedComment xmi:id="_ltXKEWEMEeCdEc4VzBeWeQ">
<body>
* Configurable option value: {@value}.
* @category OptionValue
</body>
</ownedComment>
</ownedAttribute>
<ownedAttribute xmi:id="_ltg7EGEMEeCdEc4VzBeWeQ" name="OPTIMIZE_OUT" visibility="public" isLeaf="true" isStatic="true" type="_dSiS02EMEeCdEc4VzBeWeQ" isUnique="false">
<ownedComment xmi:id="_ltqsEGEMEeCdEc4VzBeWeQ">
<body>
* Configurable option value: {@value}.
* @category OptionValue
</body>
</ownedComment>
</ownedAttribute>
<ownedAttribute xmi:id="_ltz2AGEMEeCdEc4VzBeWeQ" name="COMPILER_TASK_PRIORITY_HIGH" visibility="public" isLeaf="true" isStatic="true" type="_dSiS02EMEeCdEc4VzBeWeQ" isUnique="false">
<ownedComment xmi:id="_ltz2AWEMEeCdEc4VzBeWeQ">
<body>
* Configurable option value for {@link #COMPILER_TASK_PRIORITIES}: {@value}.
* @since 2.1
* @category OptionValue
</body>
</ownedComment>
</ownedAttribute>
<ownedAttribute xmi:id="_lt9nAGEMEeCdEc4VzBeWeQ" name="COMPILER_TASK_PRIORITY_LOW" visibility="public" isLeaf="true" isStatic="true" type="_dSiS02EMEeCdEc4VzBeWeQ" isUnique="false">
<ownedComment xmi:id="_luHYAGEMEeCdEc4VzBeWeQ">
<body>
* Configurable option value for {@link #COMPILER_TASK_PRIORITIES}: {@value}.
* @since 2.1
* @category OptionValue
</body>
</ownedComment>
</ownedAttribute>
<ownedAttribute xmi:id="_luHYAWEMEeCdEc4VzBeWeQ" name="COMPILER_TASK_PRIORITY_NORMAL" visibility="public" isLeaf="true" isStatic="true" type="_dSiS02EMEeCdEc4VzBeWeQ" isUnique="false">
<ownedComment xmi:id="_luQh8GEMEeCdEc4VzBeWeQ">
<body>
* Configurable option value for {@link #COMPILER_TASK_PRIORITIES}: {@value}.
* @since 2.1
* @category OptionValue
</body>
</ownedComment>
</ownedAttribute>
<ownedAttribute xmi:id="_luaS8GEMEeCdEc4VzBeWeQ" name="VERSION_1_1" visibility="public" isLeaf="true" isStatic="true" type="_dSiS02EMEeCdEc4VzBeWeQ" isUnique="false">
<ownedComment xmi:id="_luaS8WEMEeCdEc4VzBeWeQ">
<body>
* Configurable option value: {@value}.
* @category OptionValue
</body>
</ownedComment>
</ownedAttribute>
<ownedAttribute xmi:id="_lujc4GEMEeCdEc4VzBeWeQ" name="VERSION_1_2" visibility="public" isLeaf="true" isStatic="true" type="_dSiS02EMEeCdEc4VzBeWeQ" isUnique="false">
<ownedComment xmi:id="_lujc4WEMEeCdEc4VzBeWeQ">
<body>
* Configurable option value: {@value}.
* @category OptionValue
</body>
</ownedComment>
</ownedAttribute>
<ownedAttribute xmi:id="_lutN4GEMEeCdEc4VzBeWeQ" name="VERSION_1_3" visibility="public" isLeaf="true" isStatic="true" type="_dSiS02EMEeCdEc4VzBeWeQ" isUnique="false">
<ownedComment xmi:id="_lu2-4GEMEeCdEc4VzBeWeQ">
<body>
* Configurable option value: {@value}.
* @since 2.0
* @category OptionValue
</body>
</ownedComment>
</ownedAttribute>
<ownedAttribute xmi:id="_lu2-4WEMEeCdEc4VzBeWeQ" name="VERSION_1_4" visibility="public" isLeaf="true" isStatic="true" type="_dSiS02EMEeCdEc4VzBeWeQ" isUnique="false">
<ownedComment xmi:id="_lvAI0GEMEeCdEc4VzBeWeQ">
<body>
* Configurable option value: {@value}.
* @since 2.0
* @category OptionValue
</body>
</ownedComment>
</ownedAttribute>
<ownedAttribute xmi:id="_lvAI0WEMEeCdEc4VzBeWeQ" name="VERSION_1_5" visibility="public" isLeaf="true" isStatic="true" type="_dSiS02EMEeCdEc4VzBeWeQ" isUnique="false">
<ownedComment xmi:id="_lvJ50GEMEeCdEc4VzBeWeQ">
<body>
* Configurable option value: {@value}.
* @since 3.0
* @category OptionValue
</body>
</ownedComment>
</ownedAttribute>
<ownedAttribute xmi:id="_lvTq0GEMEeCdEc4VzBeWeQ" name="VERSION_1_6" visibility="public" isLeaf="true" isStatic="true" type="_dSiS02EMEeCdEc4VzBeWeQ" isUnique="false">
<ownedComment xmi:id="_lvTq0WEMEeCdEc4VzBeWeQ">
<body>
* Configurable option value: {@value}.
* @since 3.2
* @category OptionValue
</body>
</ownedComment>
</ownedAttribute>
<ownedAttribute xmi:id="_lvc0wGEMEeCdEc4VzBeWeQ" name="VERSION_1_7" visibility="public" isLeaf="true" isStatic="true" type="_dSiS02EMEeCdEc4VzBeWeQ" isUnique="false">
<ownedComment xmi:id="_lvmlwGEMEeCdEc4VzBeWeQ">
<body>
* Configurable option value: {@value}.
* @since 3.3
* @category OptionValue
</body>
</ownedComment>
</ownedAttribute>
<ownedAttribute xmi:id="_lvmlwWEMEeCdEc4VzBeWeQ" name="VERSION_CLDC_1_1" visibility="public" isLeaf="true" isStatic="true" type="_dSiS02EMEeCdEc4VzBeWeQ" isUnique="false">
<ownedComment xmi:id="_lvvvsGEMEeCdEc4VzBeWeQ">
<body>
* Configurable option value: {@value}.
* @since 3.4
* @category OptionValue
</body>
</ownedComment>
</ownedAttribute>
<ownedAttribute xmi:id="_lv5gsGEMEeCdEc4VzBeWeQ" name="ABORT" visibility="public" isLeaf="true" isStatic="true" type="_dSiS02EMEeCdEc4VzBeWeQ" isUnique="false">
<ownedComment xmi:id="_lv5gsWEMEeCdEc4VzBeWeQ">
<body>
* Configurable option value: {@value}.
* @since 2.0
* @category OptionValue
</body>
</ownedComment>
</ownedAttribute>
<ownedAttribute xmi:id="_lwDRsGEMEeCdEc4VzBeWeQ" name="ERROR" visibility="public" isLeaf="true" isStatic="true" type="_dSiS02EMEeCdEc4VzBeWeQ" isUnique="false">
<ownedComment xmi:id="_lwDRsWEMEeCdEc4VzBeWeQ">
<body>
* Configurable option value: {@value}.
* @category OptionValue
</body>
</ownedComment>
</ownedAttribute>
<ownedAttribute xmi:id="_lwMboGEMEeCdEc4VzBeWeQ" name="WARNING" visibility="public" isLeaf="true" isStatic="true" type="_dSiS02EMEeCdEc4VzBeWeQ" isUnique="false">
<ownedComment xmi:id="_lwWMoGEMEeCdEc4VzBeWeQ">
<body>
* Configurable option value: {@value}.
* @category OptionValue
</body>
</ownedComment>
</ownedAttribute>
<ownedAttribute xmi:id="_lwWMoWEMEeCdEc4VzBeWeQ" name="IGNORE" visibility="public" isLeaf="true" isStatic="true" type="_dSiS02EMEeCdEc4VzBeWeQ" isUnique="false">
<ownedComment xmi:id="_lwf9oGEMEeCdEc4VzBeWeQ">
<body>
* Configurable option value: {@value}.
* @category OptionValue
</body>
</ownedComment>
</ownedAttribute>
<ownedAttribute xmi:id="_lwpHkGEMEeCdEc4VzBeWeQ" name="COMPUTE" visibility="public" isLeaf="true" isStatic="true" type="_dSiS02EMEeCdEc4VzBeWeQ" isUnique="false">
<ownedComment xmi:id="_lwy4kGEMEeCdEc4VzBeWeQ">
<body>
* Configurable option value: {@value}.
* @category OptionValue
</body>
</ownedComment>
</ownedAttribute>
<ownedAttribute xmi:id="_lw8CgGEMEeCdEc4VzBeWeQ" name="INSERT" visibility="public" isLeaf="true" isStatic="true" type="_dSiS02EMEeCdEc4VzBeWeQ" isUnique="false">
<ownedComment xmi:id="_lw8CgWEMEeCdEc4VzBeWeQ">
<body>
* Configurable option value: {@value}.
* @since 2.0
* @category OptionValue
</body>
</ownedComment>
</ownedAttribute>
<ownedAttribute xmi:id="_lxFzgGEMEeCdEc4VzBeWeQ" name="DO_NOT_INSERT" visibility="public" isLeaf="true" isStatic="true" type="_dSiS02EMEeCdEc4VzBeWeQ" isUnique="false">
<ownedComment xmi:id="_lxFzgWEMEeCdEc4VzBeWeQ">
<body>
* Configurable option value: {@value}.
* @since 2.0
* @category OptionValue
</body>
</ownedComment>
</ownedAttribute>
<ownedAttribute xmi:id="_lxPkgGEMEeCdEc4VzBeWeQ" name="PRESERVE_ONE" visibility="public" isLeaf="true" isStatic="true" type="_dSiS02EMEeCdEc4VzBeWeQ" isUnique="false">
<ownedComment xmi:id="_lxYucGEMEeCdEc4VzBeWeQ">
<body>
* Configurable option value: {@value}.
* @since 2.0
* @category OptionValue
</body>
</ownedComment>
</ownedAttribute>
<ownedAttribute xmi:id="_lxYucWEMEeCdEc4VzBeWeQ" name="CLEAR_ALL" visibility="public" isLeaf="true" isStatic="true" type="_dSiS02EMEeCdEc4VzBeWeQ" isUnique="false">
<ownedComment xmi:id="_lxifcGEMEeCdEc4VzBeWeQ">
<body>
* Configurable option value: {@value}.
* @since 2.0
* @category OptionValue
</body>
</ownedComment>
</ownedAttribute>
<ownedAttribute xmi:id="_lxifcWEMEeCdEc4VzBeWeQ" name="NORMAL" visibility="public" isLeaf="true" isStatic="true" type="_dSiS02EMEeCdEc4VzBeWeQ" isUnique="false">
<ownedComment xmi:id="_lxsQcGEMEeCdEc4VzBeWeQ">
<body>
* Configurable option value: {@value}.
* @since 2.0
* @category OptionValue
</body>
</ownedComment>
</ownedAttribute>
<ownedAttribute xmi:id="_lx1aYGEMEeCdEc4VzBeWeQ" name="COMPACT" visibility="public" isLeaf="true" isStatic="true" type="_dSiS02EMEeCdEc4VzBeWeQ" isUnique="false">
<ownedComment xmi:id="_lx1aYWEMEeCdEc4VzBeWeQ">
<body>
* Configurable option value: {@value}.
* @since 2.0
* @category OptionValue
</body>
</ownedComment>
</ownedAttribute>
<ownedAttribute xmi:id="_lx_LYGEMEeCdEc4VzBeWeQ" name="TAB" visibility="public" isLeaf="true" isStatic="true" type="_dSiS02EMEeCdEc4VzBeWeQ" isUnique="false">
<ownedComment xmi:id="_lx_LYWEMEeCdEc4VzBeWeQ">
<body>
* Configurable option value: {@value}.
* @since 2.0
* @category OptionValue
</body>
</ownedComment>
</ownedAttribute>
<ownedAttribute xmi:id="_lyIVUGEMEeCdEc4VzBeWeQ" name="SPACE" visibility="public" isLeaf="true" isStatic="true" type="_dSiS02EMEeCdEc4VzBeWeQ" isUnique="false">
<ownedComment xmi:id="_lySGUGEMEeCdEc4VzBeWeQ">
<body>
* Configurable option value: {@value}.
* @since 2.0
* @category OptionValue
</body>
</ownedComment>
</ownedAttribute>
<ownedAttribute xmi:id="_lyb3UGEMEeCdEc4VzBeWeQ" name="ENABLED" visibility="public" isLeaf="true" isStatic="true" type="_dSiS02EMEeCdEc4VzBeWeQ" isUnique="false">
<ownedComment xmi:id="_lylBQGEMEeCdEc4VzBeWeQ">
<body>
* Configurable option value: {@value}.
* @since 2.0
* @category OptionValue
</body>
</ownedComment>
</ownedAttribute>
<ownedAttribute xmi:id="_lylBQWEMEeCdEc4VzBeWeQ" name="DISABLED" visibility="public" isLeaf="true" isStatic="true" type="_dSiS02EMEeCdEc4VzBeWeQ" isUnique="false">
<ownedComment xmi:id="_lyuyQGEMEeCdEc4VzBeWeQ">
<body>
* Configurable option value: {@value}.
* @since 2.0
* @category OptionValue
</body>
</ownedComment>
</ownedAttribute>
<ownedAttribute xmi:id="_lyuyQWEMEeCdEc4VzBeWeQ" name="CLEAN" visibility="public" isLeaf="true" isStatic="true" type="_dSiS02EMEeCdEc4VzBeWeQ" isUnique="false">
<ownedComment xmi:id="_ly4jQGEMEeCdEc4VzBeWeQ">
<body>
* Configurable option value: {@value}.
* @since 2.1
* @category OptionValue
</body>
</ownedComment>
</ownedAttribute>
<ownedAttribute xmi:id="_lzBtMGEMEeCdEc4VzBeWeQ" name="PUBLIC" visibility="public" isLeaf="true" isStatic="true" type="_dSiS02EMEeCdEc4VzBeWeQ" isUnique="false">
<ownedComment xmi:id="_lzBtMWEMEeCdEc4VzBeWeQ">
<body>
* Configurable option value: {@value}.
* @since 3.0
* @category OptionValue
</body>
</ownedComment>
</ownedAttribute>
<ownedAttribute xmi:id="_lzLeMGEMEeCdEc4VzBeWeQ" name="PROTECTED" visibility="public" isLeaf="true" isStatic="true" type="_dSiS02EMEeCdEc4VzBeWeQ" isUnique="false">
<ownedComment xmi:id="_lzUoIGEMEeCdEc4VzBeWeQ">
<body>
* Configurable option value: {@value}.
* @since 3.0
* @category OptionValue
</body>
</ownedComment>
</ownedAttribute>
<ownedAttribute xmi:id="_lzUoIWEMEeCdEc4VzBeWeQ" name="DEFAULT" visibility="public" isLeaf="true" isStatic="true" type="_dSiS02EMEeCdEc4VzBeWeQ" isUnique="false">
<ownedComment xmi:id="_lzeZIGEMEeCdEc4VzBeWeQ">
<body>
* Configurable option value: {@value}.
* @since 3.0
* @category OptionValue
</body>
</ownedComment>
</ownedAttribute>
<ownedAttribute xmi:id="_lzoKIGEMEeCdEc4VzBeWeQ" name="PRIVATE" visibility="public" isLeaf="true" isStatic="true" type="_dSiS02EMEeCdEc4VzBeWeQ" isUnique="false">
<ownedComment xmi:id="_lzxUEGEMEeCdEc4VzBeWeQ">
<body>
* Configurable option value: {@value}.
* @since 3.0
* @category OptionValue
</body>
</ownedComment>
</ownedAttribute>
<ownedAttribute xmi:id="_lzxUEWEMEeCdEc4VzBeWeQ" name="NEVER" visibility="public" isLeaf="true" isStatic="true" type="_dSiS02EMEeCdEc4VzBeWeQ" isUnique="false">
<ownedComment xmi:id="_lz7FEGEMEeCdEc4VzBeWeQ">
<body>
* Configurable option value: {@value}.
* @since 3.1
* @category OptionValue
</body>
</ownedComment>
</ownedAttribute>
<ownedAttribute xmi:id="_l0E2EGEMEeCdEc4VzBeWeQ" name="COMPILER_PB_MISSING_JAVADOC_TAG_DESCRIPTION_NO_TAG" visibility="public" isLeaf="true" isStatic="true" type="_dSiS02EMEeCdEc4VzBeWeQ" isUnique="false">
<ownedComment xmi:id="_l0E2EWEMEeCdEc4VzBeWeQ">
<body>
* Configurable option value: {@value}.
* @since 3.4
* @category OptionValue
</body>
</ownedComment>
</ownedAttribute>
<ownedAttribute xmi:id="_l0OAAGEMEeCdEc4VzBeWeQ" name="COMPILER_PB_MISSING_JAVADOC_TAG_DESCRIPTION_RETURN_TAG" visibility="public" isLeaf="true" isStatic="true" type="_dSiS02EMEeCdEc4VzBeWeQ" isUnique="false">
<ownedComment xmi:id="_l0OAAWEMEeCdEc4VzBeWeQ">
<body>
* Configurable option value: {@value}.
* @since 3.4
* @category OptionValue
</body>
</ownedComment>
</ownedAttribute>
<ownedAttribute xmi:id="_l0XxAGEMEeCdEc4VzBeWeQ" name="COMPILER_PB_MISSING_JAVADOC_TAG_DESCRIPTION_ALL_STANDARD_TAGS" visibility="public" isLeaf="true" isStatic="true" type="_dSiS02EMEeCdEc4VzBeWeQ" isUnique="false">
<ownedComment xmi:id="_l0XxAWEMEeCdEc4VzBeWeQ">
<body>
* Configurable option value: {@value}.
* @since 3.4
* @category OptionValue
</body>
</ownedComment>
</ownedAttribute>
<ownedAttribute xmi:id="_l0g68GEMEeCdEc4VzBeWeQ" name="JAVA_SOURCE_CONTENT_TYPE" visibility="public" isLeaf="true" isStatic="true" type="_dSiS02EMEeCdEc4VzBeWeQ" isUnique="false">
<ownedComment xmi:id="_l0qr8GEMEeCdEc4VzBeWeQ">
<body>
* Value of the content-type for Java source files. Use this value to retrieve the Java content type
* from the content type manager, and to add new Java-like extensions to this content type.
*
* @see org.eclipse.core.runtime.content.IContentTypeManager#getContentType(String)
* @see #getJavaLikeExtensions()
* @since 3.2
</body>
</ownedComment>
</ownedAttribute>
<ownedOperation xmi:id="_l0qr8WEMEeCdEc4VzBeWeQ" name="addElementChangedListener" visibility="public" isStatic="true">
<ownedComment xmi:id="_l0qr8mEMEeCdEc4VzBeWeQ">
<body>
* Adds the given listener for changes to Java elements.
* Has no effect if an identical listener is already registered.
*
* This listener will only be notified during the POST_CHANGE resource change notification
* and any reconcile operation (POST_RECONCILE).
* For finer control of the notification, use &lt;code>addElementChangedListener(IElementChangedListener,int)&lt;/code>,
* which allows to specify a different eventMask.
*
* @param listener the listener
* @see ElementChangedEvent
</body>
</ownedComment>
<ownedParameter xmi:id="_l00c8GEMEeCdEc4VzBeWeQ" name="listener" type="_kM9HQGEMEeCdEc4VzBeWeQ"/>
</ownedOperation>
<ownedOperation xmi:id="_l1RI4GEMEeCdEc4VzBeWeQ" name="addElementChangedListener" visibility="public" isStatic="true">
<ownedComment xmi:id="_l1RI4WEMEeCdEc4VzBeWeQ">
<body>
* Adds the given listener for changes to Java elements.
* Has no effect if an identical listener is already registered.
* After completion of this method, the given listener will be registered for exactly
* the specified events. If they were previously registered for other events, they
* will be deregistered.
* &lt;p>
* Once registered, a listener starts receiving notification of changes to
* java elements in the model. The listener continues to receive
* notifications until it is replaced or removed.
* &lt;/p>
* &lt;p>
* Listeners can listen for several types of event as defined in &lt;code>ElementChangeEvent&lt;/code>.
* Clients are free to register for any number of event types however if they register
* for more than one, it is their responsibility to ensure they correctly handle the
* case where the same java element change shows up in multiple notifications.
* Clients are guaranteed to receive only the events for which they are registered.
* &lt;/p>
*
* @param listener the listener
* @param eventMask the bit-wise OR of all event types of interest to the listener
* @see IElementChangedListener
* @see ElementChangedEvent
* @see #removeElementChangedListener(IElementChangedListener)
* @since 2.0
</body>
</ownedComment>
<ownedParameter xmi:id="_l1RI4mEMEeCdEc4VzBeWeQ" name="listener" type="_kM9HQGEMEeCdEc4VzBeWeQ"/>
<ownedParameter xmi:id="_l1aS0GEMEeCdEc4VzBeWeQ" name="eventMask" type="_dTlbsGEMEeCdEc4VzBeWeQ"/>
</ownedOperation>
<ownedOperation xmi:id="_l1aS0mEMEeCdEc4VzBeWeQ" name="addJavaElementMarkerAttributes" visibility="public" isStatic="true">
<ownedComment xmi:id="_l1aS02EMEeCdEc4VzBeWeQ">
<body>
* Configures the given marker attribute map for the given Java element.
* Used for markers, which denote a Java element rather than a resource.
*
* @param attributes the mutable marker attribute map (key type: &lt;code>String&lt;/code>,
* value type: &lt;code>String&lt;/code>)
* @param element the Java element for which the marker needs to be configured
</body>
</ownedComment>
<ownedParameter xmi:id="_l1kD0GEMEeCdEc4VzBeWeQ" name="attributes" type="_l1aS0WEMEeCdEc4VzBeWeQ"/>
<ownedParameter xmi:id="_l1kD0WEMEeCdEc4VzBeWeQ" name="element" type="_kO5A8GEMEeCdEc4VzBeWeQ"/>
</ownedOperation>
<ownedOperation xmi:id="_l1tNwmEMEeCdEc4VzBeWeQ" name="addNonJavaResources" visibility="private" isStatic="true">
<ownedParameter xmi:id="_l1tNw2EMEeCdEc4VzBeWeQ" name="nonJavaResources" type="_kOcVAmEMEeCdEc4VzBeWeQ">
<upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_l12-wWEMEeCdEc4VzBeWeQ" value="*"/>
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_l12-wGEMEeCdEc4VzBeWeQ"/>
</ownedParameter>
<ownedParameter xmi:id="_l12-wmEMEeCdEc4VzBeWeQ" name="container" type="_l1tNwGEMEeCdEc4VzBeWeQ"/>
<ownedParameter xmi:id="_l2AvwGEMEeCdEc4VzBeWeQ" name="rootPathSegmentCounts" type="_dTlbsGEMEeCdEc4VzBeWeQ"/>
<ownedParameter xmi:id="_l2AvwWEMEeCdEc4VzBeWeQ" name="collector" type="_l1tNwWEMEeCdEc4VzBeWeQ">
<upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_l2J5sWEMEeCdEc4VzBeWeQ" value="*"/>
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_l2J5sGEMEeCdEc4VzBeWeQ"/>
</ownedParameter>
</ownedOperation>
<ownedOperation xmi:id="_l2TqsGEMEeCdEc4VzBeWeQ" name="addPreProcessingResourceChangedListener" visibility="public" isStatic="true">
<ownedComment xmi:id="_l2TqsWEMEeCdEc4VzBeWeQ">
<body>
* Adds the given listener for POST_CHANGE resource change events to the Java core.
* The listener is guaranteed to be notified of the POST_CHANGE resource change event before
* the Java core starts processing the resource change event itself.
* &lt;p>
* Has no effect if an identical listener is already registered.
* &lt;/p>
*
* @param listener the listener
* @see #removePreProcessingResourceChangedListener(IResourceChangeListener)
* @since 3.0
* @deprecated use addPreProcessingResourceChangedListener(listener, IResourceChangeEvent.POST_CHANGE) instead
</body>
</ownedComment>
<ownedParameter xmi:id="_l2TqsmEMEeCdEc4VzBeWeQ" name="listener" type="_l2J5smEMEeCdEc4VzBeWeQ"/>
</ownedOperation>
<ownedOperation xmi:id="_l2wWoGEMEeCdEc4VzBeWeQ" name="addPreProcessingResourceChangedListener" visibility="public" isStatic="true">
<ownedComment xmi:id="_l2wWoWEMEeCdEc4VzBeWeQ">
<body>
* Adds the given listener for resource change events of the given types to the Java core.
* The listener is guaranteed to be notified of the resource change event before
* the Java core starts processing the resource change event itself.
* &lt;p>
* If an identical listener is already registered, the given event types are added to the event types
* of interest to the listener.
* &lt;/p>
* &lt;p>
* Supported event types are:
* &lt;ul>
* &lt;li>{@link IResourceChangeEvent#PRE_BUILD}&lt;/li>
* &lt;li>{@link IResourceChangeEvent#POST_BUILD}&lt;/li>
* &lt;li>{@link IResourceChangeEvent#POST_CHANGE}&lt;/li>
* &lt;li>{@link IResourceChangeEvent#PRE_DELETE}&lt;/li>
* &lt;li>{@link IResourceChangeEvent#PRE_CLOSE}&lt;/li>
* &lt;/ul>
* This list may increase in the future.
* &lt;/p>
*
* @param listener the listener
* @param eventMask the bit-wise OR of all event types of interest to the
* listener
* @see #removePreProcessingResourceChangedListener(IResourceChangeListener)
* @see IResourceChangeEvent
* @since 3.2
</body>
</ownedComment>
<ownedParameter xmi:id="_l25gkGEMEeCdEc4VzBeWeQ" name="listener" type="_l2J5smEMEeCdEc4VzBeWeQ"/>
<ownedParameter xmi:id="_l25gkWEMEeCdEc4VzBeWeQ" name="eventMask" type="_dTlbsGEMEeCdEc4VzBeWeQ"/>
</ownedOperation>
<ownedOperation xmi:id="_l25gkmEMEeCdEc4VzBeWeQ" name="configureJavaElementMarker" visibility="public">
<ownedComment xmi:id="_l25gk2EMEeCdEc4VzBeWeQ">
<body>
* Configures the given marker for the given Java element.
* Used for markers, which denote a Java element rather than a resource.
*
* @param marker the marker to be configured
* @param element the Java element for which the marker needs to be configured
* @exception CoreException if the &lt;code>IMarker.setAttribute&lt;/code> on the marker fails
</body>
</ownedComment>
<ownedParameter xmi:id="_l3DRkGEMEeCdEc4VzBeWeQ" name="marker" type="_j6oBIGEMEeCdEc4VzBeWeQ"/>
<ownedParameter xmi:id="_l3NCkGEMEeCdEc4VzBeWeQ" name="element" type="_kO5A8GEMEeCdEc4VzBeWeQ"/>
</ownedOperation>
<ownedOperation xmi:id="_l3NCkWEMEeCdEc4VzBeWeQ" name="create" visibility="public" isStatic="true">
<ownedComment xmi:id="_l3NCkmEMEeCdEc4VzBeWeQ">
<body>
* Returns the Java model element corresponding to the given handle identifier
* generated by &lt;code>IJavaElement.getHandleIdentifier()&lt;/code>, or
* &lt;code>null&lt;/code> if unable to create the associated element.
*
* @param handleIdentifier the given handle identifier
* @return the Java element corresponding to the handle identifier
</body>
</ownedComment>
<ownedParameter xmi:id="_l3WMgGEMEeCdEc4VzBeWeQ" type="_kO5A8GEMEeCdEc4VzBeWeQ" direction="return"/>
<ownedParameter xmi:id="_l3f9gGEMEeCdEc4VzBeWeQ" name="handleIdentifier" type="_dSiS02EMEeCdEc4VzBeWeQ"/>
</ownedOperation>
</packagedElement>
<packagedElement xmi:type="uml:Class" xmi:id="_l4ifUGEMEeCdEc4VzBeWeQ" name="JavaModelException">
<ownedComment xmi:id="_l4ifUWEMEeCdEc4VzBeWeQ">
<body>
* A checked exception representing a failure in the Java model.
* Java model exceptions contain a Java-specific status object describing the
* cause of the exception.
* &lt;p>
* Instances of this class are automatically created by the Java model
* when problems arise, so there is generally no need for clients to create
* instances.
* &lt;/p>
*
* @see IJavaModelStatus
* @see IJavaModelStatusConstants
*
* @noextend This class is not intended to be subclassed by clients.
</body>
</ownedComment>
<generalization xmi:id="_l4sQUGEMEeCdEc4VzBeWeQ" general="_l4ifUmEMEeCdEc4VzBeWeQ"/>
<ownedAttribute xmi:id="_l4_LQGEMEeCdEc4VzBeWeQ" name="serialVersionUID" visibility="private" isLeaf="true" isStatic="true" type="_dWatRGEMEeCdEc4VzBeWeQ" isUnique="false"/>
<ownedAttribute xmi:id="_l5I8QGEMEeCdEc4VzBeWeQ" name="nestedCoreException" type="_l4ifUmEMEeCdEc4VzBeWeQ" isUnique="false"/>
<ownedOperation xmi:id="_l5SGMGEMEeCdEc4VzBeWeQ" name="getException" visibility="public">
<ownedComment xmi:id="_l5SGMWEMEeCdEc4VzBeWeQ">
<body>
* Returns the underlying &lt;code>Throwable&lt;/code> that caused the failure.
*
* @return the wrappered &lt;code>Throwable&lt;/code>, or &lt;code>null&lt;/code> if the
* direct case of the failure was at the Java model layer
</body>
</ownedComment>
<ownedParameter xmi:id="_l5SGM2EMEeCdEc4VzBeWeQ" type="_l5SGMmEMEeCdEc4VzBeWeQ" direction="return"/>
</ownedOperation>
<ownedOperation xmi:id="_l5b3MGEMEeCdEc4VzBeWeQ" name="getJavaModelStatus" visibility="public">
<ownedComment xmi:id="_l5b3MWEMEeCdEc4VzBeWeQ">
<body>
* Returns the Java model status object for this exception.
* Equivalent to &lt;code>(IJavaModelStatus) getStatus()&lt;/code>.
*
* @return a status object
</body>
</ownedComment>
<ownedParameter xmi:id="_l5b3MmEMEeCdEc4VzBeWeQ" type="_kaEWMGEMEeCdEc4VzBeWeQ" direction="return"/>
</ownedOperation>
<ownedOperation xmi:id="_l5b3M2EMEeCdEc4VzBeWeQ" name="isDoesNotExist" visibility="public">
<ownedComment xmi:id="_l5loMGEMEeCdEc4VzBeWeQ">
<body>
* Returns whether this exception indicates that a Java model element does not
* exist. Such exceptions have a status with a code of
* &lt;code>IJavaModelStatusConstants.ELEMENT_DOES_NOT_EXIST&lt;/code> or
* &lt;code>IJavaModelStatusConstants.ELEMENT_NOT_ON_CLASSPATH&lt;/code>.
* This is a convenience method.
*
* @return &lt;code>true&lt;/code> if this exception indicates that a Java model
* element does not exist
* @see IJavaModelStatus#isDoesNotExist()
* @see IJavaModelStatusConstants#ELEMENT_DOES_NOT_EXIST
* @see IJavaModelStatusConstants#ELEMENT_NOT_ON_CLASSPATH
</body>
</ownedComment>
<ownedParameter xmi:id="_l5uyIGEMEeCdEc4VzBeWeQ" type="_dVOadGEMEeCdEc4VzBeWeQ" direction="return"/>
</ownedOperation>
<ownedOperation xmi:id="_l54jIGEMEeCdEc4VzBeWeQ" name="printStackTrace" visibility="public">
<ownedComment xmi:id="_l54jIWEMEeCdEc4VzBeWeQ">
<body>
* Prints this exception's stack trace to the given print stream.
*
* @param output the print stream
* @since 3.0
</body>
</ownedComment>
<ownedParameter xmi:id="_l54jImEMEeCdEc4VzBeWeQ" name="output" type="_l5uyImEMEeCdEc4VzBeWeQ"/>
</ownedOperation>
<ownedOperation xmi:id="_l6CUIGEMEeCdEc4VzBeWeQ" name="printStackTrace" visibility="public">
<ownedComment xmi:id="_l6CUIWEMEeCdEc4VzBeWeQ">
<body>
* Prints this exception's stack trace to the given print writer.
*
* @param output the print writer
* @since 3.0
</body>
</ownedComment>
<ownedParameter xmi:id="_l6CUImEMEeCdEc4VzBeWeQ" name="output" type="_l54jI2EMEeCdEc4VzBeWeQ"/>
</ownedOperation>
<ownedOperation xmi:id="_l6CUI2EMEeCdEc4VzBeWeQ" name="toString" visibility="public">
<ownedParameter xmi:id="_l6LeEGEMEeCdEc4VzBeWeQ" type="_dSiS02EMEeCdEc4VzBeWeQ" direction="return"/>
</ownedOperation>
</packagedElement>
<packagedElement xmi:type="uml:Class" xmi:id="_l96HgGEMEeCdEc4VzBeWeQ" name="NamingConventions" isLeaf="true">
<ownedComment xmi:id="_l-DRcGEMEeCdEc4VzBeWeQ">
<body>
* Provides methods for computing Java-specific names.
* &lt;p>
* The behavior of the methods is dependent of several JavaCore options.
* &lt;p>
* The possible options are :
* &lt;ul>
* &lt;li> {@link JavaCore#CODEASSIST_FIELD_PREFIXES} : Define the Prefixes for Field Name.&lt;/li>
* &lt;li> {@link JavaCore#CODEASSIST_FIELD_SUFFIXES} : Define the Suffixes for Field Name.&lt;/li>
*
* &lt;li> {@link JavaCore#CODEASSIST_STATIC_FIELD_PREFIXES} : Define the Prefixes for Static Field Name.&lt;/li>
* &lt;li> {@link JavaCore#CODEASSIST_STATIC_FIELD_SUFFIXES} : Define the Suffixes for Static Field Name.&lt;/li>
*
* &lt;li> {@link JavaCore#CODEASSIST_STATIC_FINAL_FIELD_PREFIXES} : Define the Prefixes for Static Final Field Name.&lt;/li>
* &lt;li> {@link JavaCore#CODEASSIST_STATIC_FINAL_FIELD_SUFFIXES} : Define the Suffixes for Static Final Field Name.&lt;/li>
*
* &lt;li> {@link JavaCore#CODEASSIST_LOCAL_PREFIXES} : Define the Prefixes for Local Variable Name.&lt;/li>
* &lt;li> {@link JavaCore#CODEASSIST_LOCAL_SUFFIXES} : Define the Suffixes for Local Variable Name.&lt;/li>
*
* &lt;li> {@link JavaCore#CODEASSIST_ARGUMENT_PREFIXES} : Define the Prefixes for Argument Name.&lt;/li>
* &lt;li> {@link JavaCore#CODEASSIST_ARGUMENT_SUFFIXES} : Define the Suffixes for Argument Name.&lt;/li>
* &lt;/ul>
* &lt;/p>
* &lt;p>
* For a complete description of the configurable options, see {@link JavaCore#getDefaultOptions()}.
* To programmatically change these options, see {@link JavaCore#setOptions(java.util.Hashtable)}.
* &lt;/p>
* &lt;p>
* This class provides static methods and constants only.
* &lt;/p>
*
* @see JavaCore#setOptions(java.util.Hashtable)
* @see JavaCore#getDefaultOptions()
* @since 2.1
* @noinstantiate This class is not intended to be instantiated by clients.
</body>
</ownedComment>
<ownedAttribute xmi:id="_mEKggGEMEeCdEc4VzBeWeQ" name="GETTER_BOOL_NAME" visibility="private" isLeaf="true" isStatic="true" type="_dUn9g2EMEeCdEc4VzBeWeQ" isUnique="false">
<upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_mEURgWEMEeCdEc4VzBeWeQ" value="*"/>
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_mEURgGEMEeCdEc4VzBeWeQ"/>
</ownedAttribute>
<ownedAttribute xmi:id="_mEURgmEMEeCdEc4VzBeWeQ" name="GETTER_NAME" visibility="private" isLeaf="true" isStatic="true" type="_dUn9g2EMEeCdEc4VzBeWeQ" isUnique="false">
<upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_mEnMcWEMEeCdEc4VzBeWeQ" value="*"/>
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_mEnMcGEMEeCdEc4VzBeWeQ"/>
</ownedAttribute>
<ownedAttribute xmi:id="_mEnMcmEMEeCdEc4VzBeWeQ" name="SETTER_NAME" visibility="private" isLeaf="true" isStatic="true" type="_dUn9g2EMEeCdEc4VzBeWeQ" isUnique="false">
<upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_mE6HYWEMEeCdEc4VzBeWeQ" value="*"/>
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_mE6HYGEMEeCdEc4VzBeWeQ"/>
</ownedAttribute>
<ownedAttribute xmi:id="_mFD4YGEMEeCdEc4VzBeWeQ" name="VK_STATIC_FIELD" visibility="public" isLeaf="true" isStatic="true" type="_dTlbsGEMEeCdEc4VzBeWeQ" isUnique="false">
<ownedComment xmi:id="_mFD4YWEMEeCdEc4VzBeWeQ">
<body>
* Variable kind which represents a static field.
*
* @since 3.5
</body>
</ownedComment>
</ownedAttribute>
<ownedAttribute xmi:id="_mFNCUGEMEeCdEc4VzBeWeQ" name="VK_INSTANCE_FIELD" visibility="public" isLeaf="true" isStatic="true" type="_dTlbsGEMEeCdEc4VzBeWeQ" isUnique="false">
<ownedComment xmi:id="_mFWzUGEMEeCdEc4VzBeWeQ">
<body>
* Variable kind which represents an instance field.
*
* @since 3.5
</body>
</ownedComment>
</ownedAttribute>
<ownedAttribute xmi:id="_mFgkUGEMEeCdEc4VzBeWeQ" name="VK_STATIC_FINAL_FIELD" visibility="public" isLeaf="true" isStatic="true" type="_dTlbsGEMEeCdEc4VzBeWeQ" isUnique="false">
<ownedComment xmi:id="_mFgkUWEMEeCdEc4VzBeWeQ">
<body>
* Variable kind which represents a static final field.
*
* @since 3.5
</body>
</ownedComment>
</ownedAttribute>
<ownedAttribute xmi:id="_mFpuQGEMEeCdEc4VzBeWeQ" name="VK_PARAMETER" visibility="public" isLeaf="true" isStatic="true" type="_dTlbsGEMEeCdEc4VzBeWeQ" isUnique="false">
<ownedComment xmi:id="_mFzfQGEMEeCdEc4VzBeWeQ">
<body>
* Variable kind which represents an argument.
*
* @since 3.5
</body>
</ownedComment>
</ownedAttribute>
<ownedAttribute xmi:id="_mFzfQWEMEeCdEc4VzBeWeQ" name="VK_LOCAL" visibility="public" isLeaf="true" isStatic="true" type="_dTlbsGEMEeCdEc4VzBeWeQ" isUnique="false">
<ownedComment xmi:id="_mF9QQGEMEeCdEc4VzBeWeQ">
<body>
* Variable kind which represents a local variable.
*
* @since 3.5
</body>
</ownedComment>
</ownedAttribute>
<ownedAttribute xmi:id="_mGGaMGEMEeCdEc4VzBeWeQ" name="BK_NAME" visibility="public" isLeaf="true" isStatic="true" type="_dTlbsGEMEeCdEc4VzBeWeQ" isUnique="false">
<ownedComment xmi:id="_mGGaMWEMEeCdEc4VzBeWeQ">
<body>
* The base name associated to this base name kind is a simple name.
* When this base name is used the whole name is considered.
*
* @see #suggestVariableNames(int, int, String, IJavaProject, int, String[], boolean)
*
* @since 3.5
</body>
</ownedComment>
</ownedAttribute>
<ownedAttribute xmi:id="_mGQLMGEMEeCdEc4VzBeWeQ" name="BK_TYPE_NAME" visibility="public" isLeaf="true" isStatic="true" type="_dTlbsGEMEeCdEc4VzBeWeQ" isUnique="false">
<ownedComment xmi:id="_mGZVIGEMEeCdEc4VzBeWeQ">
<body>
* The base name associated to this base name kind is a simple type name.
* When this base name is used all the words of the name are considered.
*
* @see #suggestVariableNames(int, int, String, IJavaProject, int, String[], boolean)
*
* @since 3.5
</body>
</ownedComment>
</ownedAttribute>
<nestedClassifier xmi:type="uml:Class" xmi:id="_l-DRcWEMEeCdEc4VzBeWeQ" name="NamingRequestor" clientDependency="_l-8pUGEMEeCdEc4VzBeWeQ">
<ownedAttribute xmi:id="_l_GaUGEMEeCdEc4VzBeWeQ" name="SIZE" visibility="private" isLeaf="true" isStatic="true" type="_dTlbsGEMEeCdEc4VzBeWeQ" isUnique="false"/>
<ownedAttribute xmi:id="_l_PkQGEMEeCdEc4VzBeWeQ" name="firstPrefixAndFirstSuffixResults" visibility="private" type="_dUn9g2EMEeCdEc4VzBeWeQ" isUnique="false">
<upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_l_ZVQWEMEeCdEc4VzBeWeQ" value="*"/>
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_l_ZVQGEMEeCdEc4VzBeWeQ"/>
</ownedAttribute>
<ownedAttribute xmi:id="_l_ZVQmEMEeCdEc4VzBeWeQ" name="firstPrefixAndFirstSuffixResultsCount" visibility="private" type="_dTlbsGEMEeCdEc4VzBeWeQ" isUnique="false"/>
<ownedAttribute xmi:id="_l_jGQGEMEeCdEc4VzBeWeQ" name="firstPrefixAndSuffixResults" visibility="private" type="_dUn9g2EMEeCdEc4VzBeWeQ" isUnique="false">
<upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_l_sQMWEMEeCdEc4VzBeWeQ" value="*"/>
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_l_sQMGEMEeCdEc4VzBeWeQ"/>
</ownedAttribute>
<ownedAttribute xmi:id="_l_2BMGEMEeCdEc4VzBeWeQ" name="firstPrefixAndSuffixResultsCount" visibility="private" type="_dTlbsGEMEeCdEc4VzBeWeQ" isUnique="false"/>
<ownedAttribute xmi:id="_l__yMGEMEeCdEc4VzBeWeQ" name="prefixAndFirstSuffixResults" visibility="private" type="_dUn9g2EMEeCdEc4VzBeWeQ" isUnique="false">
<upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_mAI8IGEMEeCdEc4VzBeWeQ" value="*"/>
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_l__yMWEMEeCdEc4VzBeWeQ"/>
</ownedAttribute>
<ownedAttribute xmi:id="_mAI8IWEMEeCdEc4VzBeWeQ" name="prefixAndFirstSuffixResultsCount" visibility="private" type="_dTlbsGEMEeCdEc4VzBeWeQ" isUnique="false"/>
<ownedAttribute xmi:id="_mAStIGEMEeCdEc4VzBeWeQ" name="prefixAndSuffixResults" visibility="private" type="_dUn9g2EMEeCdEc4VzBeWeQ" isUnique="false">
<upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_mAloEGEMEeCdEc4VzBeWeQ" value="*"/>
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_mAb3EGEMEeCdEc4VzBeWeQ"/>
</ownedAttribute>
<ownedAttribute xmi:id="_mAloEWEMEeCdEc4VzBeWeQ" name="prefixAndSuffixResultsCount" visibility="private" type="_dTlbsGEMEeCdEc4VzBeWeQ" isUnique="false"/>
<ownedAttribute xmi:id="_mAvZEGEMEeCdEc4VzBeWeQ" name="firstPrefixResults" visibility="private" type="_dUn9g2EMEeCdEc4VzBeWeQ" isUnique="false">
<upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_mA4jAWEMEeCdEc4VzBeWeQ" value="*"/>
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_mA4jAGEMEeCdEc4VzBeWeQ"/>
</ownedAttribute>
<ownedAttribute xmi:id="_mA4jAmEMEeCdEc4VzBeWeQ" name="firstPrefixResultsCount" visibility="private" type="_dTlbsGEMEeCdEc4VzBeWeQ" isUnique="false"/>
<ownedAttribute xmi:id="_mBCUAGEMEeCdEc4VzBeWeQ" name="prefixResults" visibility="private" type="_dUn9g2EMEeCdEc4VzBeWeQ" isUnique="false">
<upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_mBMFAWEMEeCdEc4VzBeWeQ" value="*"/>
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_mBMFAGEMEeCdEc4VzBeWeQ"/>
</ownedAttribute>
<ownedAttribute xmi:id="_mBVO8GEMEeCdEc4VzBeWeQ" name="prefixResultsCount" visibility="private" type="_dTlbsGEMEeCdEc4VzBeWeQ" isUnique="false"/>
<ownedAttribute xmi:id="_mBe_8GEMEeCdEc4VzBeWeQ" name="firstSuffixResults" visibility="private" type="_dUn9g2EMEeCdEc4VzBeWeQ" isUnique="false">
<upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_mBoJ4GEMEeCdEc4VzBeWeQ" value="*"/>
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_mBe_8WEMEeCdEc4VzBeWeQ"/>
</ownedAttribute>
<ownedAttribute xmi:id="_mBoJ4WEMEeCdEc4VzBeWeQ" name="firstSuffixResultsCount" visibility="private" type="_dTlbsGEMEeCdEc4VzBeWeQ" isUnique="false"/>
<ownedAttribute xmi:id="_mBx64GEMEeCdEc4VzBeWeQ" name="suffixResults" visibility="private" type="_dUn9g2EMEeCdEc4VzBeWeQ" isUnique="false">
<upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_mCE10GEMEeCdEc4VzBeWeQ" value="*"/>
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_mB7r4GEMEeCdEc4VzBeWeQ"/>
</ownedAttribute>
<ownedAttribute xmi:id="_mCE10WEMEeCdEc4VzBeWeQ" name="suffixResultsCount" visibility="private" type="_dTlbsGEMEeCdEc4VzBeWeQ" isUnique="false"/>
<ownedAttribute xmi:id="_mCOm0GEMEeCdEc4VzBeWeQ" name="otherResults" visibility="private" type="_dUn9g2EMEeCdEc4VzBeWeQ" isUnique="false">
<upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_mCYX0WEMEeCdEc4VzBeWeQ" value="*"/>
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_mCYX0GEMEeCdEc4VzBeWeQ"/>
</ownedAttribute>
<ownedAttribute xmi:id="_mCYX0mEMEeCdEc4VzBeWeQ" name="otherResultsCount" visibility="private" type="_dTlbsGEMEeCdEc4VzBeWeQ" isUnique="false"/>
<interfaceRealization xmi:id="_l-8pUGEMEeCdEc4VzBeWeQ" name="NamingRequestor implements INamingRequestor" supplier="_l-NCcGEMEeCdEc4VzBeWeQ" client="_l-DRcWEMEeCdEc4VzBeWeQ" contract="_l-NCcGEMEeCdEc4VzBeWeQ"/>
<ownedOperation xmi:id="_mChhwGEMEeCdEc4VzBeWeQ" name="acceptNameWithoutPrefixAndSuffix" visibility="public">
<ownedParameter xmi:id="_mChhwWEMEeCdEc4VzBeWeQ" name="name" type="_dUn9g2EMEeCdEc4VzBeWeQ">
<upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_mCrSwWEMEeCdEc4VzBeWeQ" value="*"/>
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_mCrSwGEMEeCdEc4VzBeWeQ"/>
</ownedParameter>
<ownedParameter xmi:id="_mC0csGEMEeCdEc4VzBeWeQ" name="reusedCharacters" type="_dTlbsGEMEeCdEc4VzBeWeQ"/>
</ownedOperation>
<ownedOperation xmi:id="_mC0csWEMEeCdEc4VzBeWeQ" name="acceptNameWithPrefix" visibility="public">
<ownedParameter xmi:id="_mC-NsGEMEeCdEc4VzBeWeQ" name="name" type="_dUn9g2EMEeCdEc4VzBeWeQ">
<upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_mC-NsmEMEeCdEc4VzBeWeQ" value="*"/>
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_mC-NsWEMEeCdEc4VzBeWeQ"/>
</ownedParameter>
<ownedParameter xmi:id="_mDH-sGEMEeCdEc4VzBeWeQ" name="isFirstPrefix" type="_dVOadGEMEeCdEc4VzBeWeQ"/>
<ownedParameter xmi:id="_mDH-sWEMEeCdEc4VzBeWeQ" name="reusedCharacters" type="_dTlbsGEMEeCdEc4VzBeWeQ"/>
</ownedOperation>
<ownedOperation xmi:id="_mDH-smEMEeCdEc4VzBeWeQ" name="acceptNameWithPrefixAndSuffix" visibility="public">
<ownedParameter xmi:id="_mDRIoGEMEeCdEc4VzBeWeQ" name="name" type="_dUn9g2EMEeCdEc4VzBeWeQ">
<upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_mDRIomEMEeCdEc4VzBeWeQ" value="*"/>
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_mDRIoWEMEeCdEc4VzBeWeQ"/>
</ownedParameter>
<ownedParameter xmi:id="_mDa5oGEMEeCdEc4VzBeWeQ" name="isFirstPrefix" type="_dVOadGEMEeCdEc4VzBeWeQ"/>
<ownedParameter xmi:id="_mDa5oWEMEeCdEc4VzBeWeQ" name="isFirstSuffix" type="_dVOadGEMEeCdEc4VzBeWeQ"/>
<ownedParameter xmi:id="_mDkqoGEMEeCdEc4VzBeWeQ" name="reusedCharacters" type="_dTlbsGEMEeCdEc4VzBeWeQ"/>
</ownedOperation>
<ownedOperation xmi:id="_mDkqoWEMEeCdEc4VzBeWeQ" name="acceptNameWithSuffix" visibility="public">
<ownedParameter xmi:id="_mDkqomEMEeCdEc4VzBeWeQ" name="name" type="_dUn9g2EMEeCdEc4VzBeWeQ">
<upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_mDt0kWEMEeCdEc4VzBeWeQ" value="*"/>
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_mDt0kGEMEeCdEc4VzBeWeQ"/>
</ownedParameter>
<ownedParameter xmi:id="_mDt0kmEMEeCdEc4VzBeWeQ" name="isFirstSuffix" type="_dVOadGEMEeCdEc4VzBeWeQ"/>
<ownedParameter xmi:id="_mD3lkGEMEeCdEc4VzBeWeQ" name="reusedCharacters" type="_dTlbsGEMEeCdEc4VzBeWeQ"/>
</ownedOperation>
<ownedOperation xmi:id="_mD3lkWEMEeCdEc4VzBeWeQ" name="getResults" visibility="public">
<ownedParameter xmi:id="_mD3lkmEMEeCdEc4VzBeWeQ" type="_dUn9g2EMEeCdEc4VzBeWeQ" direction="return">
<upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_mEAvgWEMEeCdEc4VzBeWeQ" value="*"/>
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_mEAvgGEMEeCdEc4VzBeWeQ"/>
</ownedParameter>
</ownedOperation>
</nestedClassifier>
<ownedOperation xmi:id="_mGjGIGEMEeCdEc4VzBeWeQ" name="convertCharsToString" visibility="private" isStatic="true">
<ownedParameter xmi:id="_mGjGIWEMEeCdEc4VzBeWeQ" type="_dSiS02EMEeCdEc4VzBeWeQ" direction="return">
<upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_mGs3IWEMEeCdEc4VzBeWeQ" value="*"/>
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_mGs3IGEMEeCdEc4VzBeWeQ"/>
</ownedParameter>
<ownedParameter xmi:id="_mGs3ImEMEeCdEc4VzBeWeQ" name="c" type="_dUn9g2EMEeCdEc4VzBeWeQ">
<upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_mG2BEWEMEeCdEc4VzBeWeQ" value="*"/>
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_mG2BEGEMEeCdEc4VzBeWeQ"/>
</ownedParameter>
</ownedOperation>
<ownedOperation xmi:id="_mG_yEGEMEeCdEc4VzBeWeQ" name="convertStringToChars" visibility="private" isStatic="true">
<ownedParameter xmi:id="_mG_yEWEMEeCdEc4VzBeWeQ" type="_dUn9g2EMEeCdEc4VzBeWeQ" direction="return">
<upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_mHJjEGEMEeCdEc4VzBeWeQ" value="*"/>
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_mG_yEmEMEeCdEc4VzBeWeQ"/>
</ownedParameter>
<ownedParameter xmi:id="_mHln8GEMEeCdEc4VzBeWeQ" name="s" type="_dSiS02EMEeCdEc4VzBeWeQ">
<upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_mHvY8GEMEeCdEc4VzBeWeQ" value="*"/>
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_mHln8WEMEeCdEc4VzBeWeQ"/>
</ownedParameter>
</ownedOperation>
<ownedOperation xmi:id="_mHvY8WEMEeCdEc4VzBeWeQ" name="removePrefixAndSuffixForArgumentName" visibility="public" isStatic="true">
<ownedComment xmi:id="_mHvY8mEMEeCdEc4VzBeWeQ">
<body>
* Remove prefix and suffix from an argument name.
* &lt;p>
* If argument name prefix is &lt;code>pre&lt;/code> and argument name suffix is &lt;code>suf&lt;/code>
* then for an argument named &lt;code>preArgsuf&lt;/code> the result of this method is &lt;code>arg&lt;/code>.
* If there is no prefix or suffix defined in JavaCore options the result is the unchanged
* name &lt;code>preArgsuf&lt;/code>.
* &lt;/p>
* &lt;p>
* This method is affected by the following JavaCore options : {@link JavaCore#CODEASSIST_ARGUMENT_PREFIXES} and
* {@link JavaCore#CODEASSIST_ARGUMENT_SUFFIXES}.
* &lt;/p>
* &lt;p>
* For a complete description of these configurable options, see &lt;code>getDefaultOptions&lt;/code>.
* For programmaticaly change these options, see &lt;code>JavaCore#setOptions()&lt;/code>.
* &lt;/p>
*
* @param javaProject project which contains the argument.
* @param argumentName argument's name.
* @return char[] the name without prefix and suffix.
* @see JavaCore#setOptions(java.util.Hashtable)
* @see JavaCore#getDefaultOptions()
*
* @deprecated Use {@link #getBaseName(int, String, IJavaProject)} instead with {@link #VK_PARAMETER} as variable kind.
</body>
</ownedComment>
<ownedParameter xmi:id="_mH5J8GEMEeCdEc4VzBeWeQ" type="_dUn9g2EMEeCdEc4VzBeWeQ" direction="return">
<upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_mH5J8mEMEeCdEc4VzBeWeQ" value="*"/>
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_mH5J8WEMEeCdEc4VzBeWeQ"/>
</ownedParameter>
<ownedParameter xmi:id="_mIME4GEMEeCdEc4VzBeWeQ" name="javaProject" type="_kjmssGEMEeCdEc4VzBeWeQ"/>
<ownedParameter xmi:id="_mIV14GEMEeCdEc4VzBeWeQ" name="argumentName" type="_dUn9g2EMEeCdEc4VzBeWeQ">
<upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_mIV14mEMEeCdEc4VzBeWeQ" value="*"/>
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_mIV14WEMEeCdEc4VzBeWeQ"/>
</ownedParameter>
</ownedOperation>
<ownedOperation xmi:id="_mIe_0GEMEeCdEc4VzBeWeQ" name="removePrefixAndSuffixForArgumentName" visibility="public" isStatic="true">
<ownedComment xmi:id="_mIe_0WEMEeCdEc4VzBeWeQ">
<body>
* Remove prefix and suffix from an argument name.
* &lt;p>
* If argument name prefix is &lt;code>pre&lt;/code> and argument name suffix is &lt;code>suf&lt;/code>
* then for an argument named &lt;code>preArgsuf&lt;/code> the result of this method is &lt;code>arg&lt;/code>.
* If there is no prefix or suffix defined in JavaCore options the result is the unchanged
* name &lt;code>preArgsuf&lt;/code>.
* &lt;/p>
* &lt;p>
* This method is affected by the following JavaCore options : {@link JavaCore#CODEASSIST_ARGUMENT_PREFIXES} and
* {@link JavaCore#CODEASSIST_ARGUMENT_SUFFIXES}.
* &lt;/p>
* &lt;p>
* For a complete description of these configurable options, see &lt;code>getDefaultOptions&lt;/code>.
* For programmaticaly change these options, see &lt;code>JavaCore#setOptions()&lt;/code>.
* &lt;/p>
*
* @param javaProject project which contains the argument.
* @param argumentName argument's name.
* @return char[] the name without prefix and suffix.
* @see JavaCore#setOptions(java.util.Hashtable)
* @see JavaCore#getDefaultOptions()
*
* @deprecated Use {@link #getBaseName(int, String, IJavaProject)} instead with {@link #VK_PARAMETER} as variable kind.
</body>
</ownedComment>
<ownedParameter xmi:id="_mIow0GEMEeCdEc4VzBeWeQ" type="_dSiS02EMEeCdEc4VzBeWeQ" direction="return"/>
<ownedParameter xmi:id="_mI7rwGEMEeCdEc4VzBeWeQ" name="javaProject" type="_kjmssGEMEeCdEc4VzBeWeQ"/>
<ownedParameter xmi:id="_mI7rwWEMEeCdEc4VzBeWeQ" name="argumentName" type="_dSiS02EMEeCdEc4VzBeWeQ"/>
</ownedOperation>
<ownedOperation xmi:id="_mJFcwGEMEeCdEc4VzBeWeQ" name="removePrefixAndSuffixForFieldName" visibility="public" isStatic="true">
<ownedComment xmi:id="_mJFcwWEMEeCdEc4VzBeWeQ">
<body>
* Remove prefix and suffix from a field name.
* &lt;p>
* If field name prefix is &lt;code>pre&lt;/code> and field name suffix is &lt;code>suf&lt;/code>
* then for a field named &lt;code>preFieldsuf&lt;/code> the result of this method is &lt;code>field&lt;/code>.
* If there is no prefix or suffix defined in JavaCore options the result is the unchanged
* name &lt;code>preFieldsuf&lt;/code>.
* &lt;/p>
* &lt;p>
* This method is affected by the following JavaCore options : {@link JavaCore#CODEASSIST_FIELD_PREFIXES} } ,
* {@link JavaCore#CODEASSIST_FIELD_SUFFIXES} for instance field and {@link JavaCore#CODEASSIST_STATIC_FIELD_PREFIXES},
* {@link JavaCore#CODEASSIST_STATIC_FIELD_SUFFIXES} for static field.
* &lt;/p>
* &lt;p>
* For a complete description of these configurable options, see &lt;code>getDefaultOptions&lt;/code>.
* For programmaticaly change these options, see &lt;code>JavaCore#setOptions()&lt;/code>.
* &lt;/p>
*
* @param javaProject project which contains the field.
* @param fieldName field's name.
* @param modifiers field's modifiers as defined by the class
* &lt;code>Flags&lt;/code>.
* @return char[] the name without prefix and suffix.
* @see Flags
* @see JavaCore#setOptions(java.util.Hashtable)
* @see JavaCore#getDefaultOptions()
*
* @deprecated Use {@link #getBaseName(int, String, IJavaProject)} instead
* with {@link #VK_INSTANCE_FIELD} or {@link #VK_STATIC_FIELD} as variable kind.
</body>
</ownedComment>
<ownedParameter xmi:id="_mJFcwmEMEeCdEc4VzBeWeQ" type="_dUn9g2EMEeCdEc4VzBeWeQ" direction="return">
<upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_mJOmsWEMEeCdEc4VzBeWeQ" value="*"/>
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_mJOmsGEMEeCdEc4VzBeWeQ"/>
</ownedParameter>
<ownedParameter xmi:id="_mJOmsmEMEeCdEc4VzBeWeQ" name="javaProject" type="_kjmssGEMEeCdEc4VzBeWeQ"/>
<ownedParameter xmi:id="_mJYXsGEMEeCdEc4VzBeWeQ" name="fieldName" type="_dUn9g2EMEeCdEc4VzBeWeQ">
<upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_mJiIsGEMEeCdEc4VzBeWeQ" value="*"/>
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_mJYXsWEMEeCdEc4VzBeWeQ"/>
</ownedParameter>
<ownedParameter xmi:id="_mJiIsWEMEeCdEc4VzBeWeQ" name="modifiers" type="_dTlbsGEMEeCdEc4VzBeWeQ"/>
</ownedOperation>
<ownedOperation xmi:id="_mJrSoGEMEeCdEc4VzBeWeQ" name="removePrefixAndSuffixForFieldName" visibility="public" isStatic="true">
<ownedComment xmi:id="_mJrSoWEMEeCdEc4VzBeWeQ">
<body>
* Remove prefix and suffix from a field name.
* &lt;p>
* If field name prefix is &lt;code>pre&lt;/code> and field name suffix is &lt;code>suf&lt;/code>
* then for a field named &lt;code>preFieldsuf&lt;/code> the result of this method is &lt;code>field&lt;/code>.
* If there is no prefix or suffix defined in JavaCore options the result is the unchanged
* name &lt;code>preFieldsuf&lt;/code>.
* &lt;/p>
* &lt;p>
* This method is affected by the following JavaCore options : {@link JavaCore#CODEASSIST_FIELD_PREFIXES},
* {@link JavaCore#CODEASSIST_FIELD_SUFFIXES} for instance field and {@link JavaCore#CODEASSIST_STATIC_FIELD_PREFIXES},
* {@link JavaCore#CODEASSIST_STATIC_FIELD_SUFFIXES} for static field.
* &lt;/p>
* &lt;p>
* For a complete description of these configurable options, see &lt;code>getDefaultOptions&lt;/code>.
* For programmaticaly change these options, see &lt;code>JavaCore#setOptions()&lt;/code>.
* &lt;/p>
*
* @param javaProject project which contains the field.
* @param fieldName field's name.
* @param modifiers field's modifiers as defined by the class
* &lt;code>Flags&lt;/code>.
* @return char[] the name without prefix and suffix.
* @see Flags
* @see JavaCore#setOptions(java.util.Hashtable)
* @see JavaCore#getDefaultOptions()
*
* @deprecated Use {@link #getBaseName(int, String, IJavaProject)} instead
* with {@link #VK_INSTANCE_FIELD} or {@link #VK_STATIC_FIELD} as variable kind.
</body>
</ownedComment>
<ownedParameter xmi:id="_mJrSomEMEeCdEc4VzBeWeQ" type="_dSiS02EMEeCdEc4VzBeWeQ" direction="return"/>
<ownedParameter xmi:id="_mJ1DoGEMEeCdEc4VzBeWeQ" name="javaProject" type="_kjmssGEMEeCdEc4VzBeWeQ"/>
<ownedParameter xmi:id="_mJ1DoWEMEeCdEc4VzBeWeQ" name="fieldName" type="_dSiS02EMEeCdEc4VzBeWeQ"/>
<ownedParameter xmi:id="_mJ1DomEMEeCdEc4VzBeWeQ" name="modifiers" type="_dTlbsGEMEeCdEc4VzBeWeQ"/>
</ownedOperation>
<ownedOperation xmi:id="_mJ-NkGEMEeCdEc4VzBeWeQ" name="removePrefixAndSuffixForLocalVariableName" visibility="public" isStatic="true">
<ownedComment xmi:id="_mJ-NkWEMEeCdEc4VzBeWeQ">
<body>
* Remove prefix and suffix from a local variable name.
* &lt;p>
* If local variable name prefix is &lt;code>pre&lt;/code> and local variable name suffix is &lt;code>suf&lt;/code>
* then for a local variable named &lt;code>preLocalsuf&lt;/code> the result of this method is &lt;code>local&lt;/code>.
* If there is no prefix or suffix defined in JavaCore options the result is the unchanged
* name &lt;code>preLocalsuf&lt;/code>.
* &lt;/p>
* &lt;p>
* This method is affected by the following JavaCore options : {@link JavaCore#CODEASSIST_LOCAL_PREFIXES} and
* {@link JavaCore#CODEASSIST_LOCAL_SUFFIXES}.
* &lt;/p>
* &lt;p>
* For a complete description of these configurable options, see &lt;code>getDefaultOptions&lt;/code>.
* For programmaticaly change these options, see &lt;code>JavaCore#setOptions()&lt;/code>.
* &lt;/p>
*
* @param javaProject project which contains the variable.
* @param localName variable's name.
* @return char[] the name without prefix and suffix.
* @see JavaCore#setOptions(java.util.Hashtable)
* @see JavaCore#getDefaultOptions()
*
* @deprecated Use {@link #getBaseName(int, String, IJavaProject)} instead with {@link #VK_LOCAL} as variable kind.
</body>
</ownedComment>
<ownedParameter xmi:id="_mJ-NkmEMEeCdEc4VzBeWeQ" type="_dUn9g2EMEeCdEc4VzBeWeQ" direction="return">
<upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_mKH-kWEMEeCdEc4VzBeWeQ" value="*"/>
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_mKH-kGEMEeCdEc4VzBeWeQ"/>
</ownedParameter>
<ownedParameter xmi:id="_mKH-kmEMEeCdEc4VzBeWeQ" name="javaProject" type="_kjmssGEMEeCdEc4VzBeWeQ"/>
<ownedParameter xmi:id="_mKRvkGEMEeCdEc4VzBeWeQ" name="localName" type="_dUn9g2EMEeCdEc4VzBeWeQ">
<upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_mKa5gWEMEeCdEc4VzBeWeQ" value="*"/>
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_mKa5gGEMEeCdEc4VzBeWeQ"/>
</ownedParameter>
</ownedOperation>
<ownedOperation xmi:id="_mKa5gmEMEeCdEc4VzBeWeQ" name="removePrefixAndSuffixForLocalVariableName" visibility="public" isStatic="true">
<ownedComment xmi:id="_mKa5g2EMEeCdEc4VzBeWeQ">
<body>
* Remove prefix and suffix from a local variable name.
* &lt;p>
* If local variable name prefix is &lt;code>pre&lt;/code> and local variable name suffix is &lt;code>suf&lt;/code>
* then for a local variable named &lt;code>preLocalsuf&lt;/code> the result of this method is &lt;code>local&lt;/code>.
* If there is no prefix or suffix defined in JavaCore options the result is the unchanged
* name &lt;code>preLocalsuf&lt;/code>.
* &lt;/p>
* &lt;p>
* This method is affected by the following JavaCore options : {@link JavaCore#CODEASSIST_LOCAL_PREFIXES} and
* {@link JavaCore#CODEASSIST_LOCAL_SUFFIXES}.
* &lt;/p>
* &lt;p>
* For a complete description of these configurable options, see &lt;code>getDefaultOptions&lt;/code>.
* For programmaticaly change these options, see &lt;code>JavaCore#setOptions()&lt;/code>.
* &lt;/p>
*
* @param javaProject project which contains the variable.
* @param localName variable's name.
* @return char[] the name without prefix and suffix.
* @see JavaCore#setOptions(java.util.Hashtable)
* @see JavaCore#getDefaultOptions()
*
* @deprecated Use {@link #getBaseName(int, String, IJavaProject)} instead with {@link #VK_LOCAL} as variable kind.
</body>
</ownedComment>
<ownedParameter xmi:id="_mKkqgGEMEeCdEc4VzBeWeQ" type="_dSiS02EMEeCdEc4VzBeWeQ" direction="return"/>
<ownedParameter xmi:id="_mKkqgWEMEeCdEc4VzBeWeQ" name="javaProject" type="_kjmssGEMEeCdEc4VzBeWeQ"/>
<ownedParameter xmi:id="_mKubgGEMEeCdEc4VzBeWeQ" name="localName" type="_dSiS02EMEeCdEc4VzBeWeQ"/>
</ownedOperation>
<ownedOperation xmi:id="_mKubgWEMEeCdEc4VzBeWeQ" name="getBaseName" visibility="public" isStatic="true">
<ownedComment xmi:id="_mKubgmEMEeCdEc4VzBeWeQ">
<body>
* Returns a base name which could be used to generate the given variable name with {@link #suggestVariableNames(int, int, String, IJavaProject, int, String[], boolean)}.
* &lt;p>
* e.g.&lt;br>
* If the variable is a {@link #VK_LOCAL} and the variable name is &lt;code>variableName&lt;/code> then the base name will be &lt;code>variableName&lt;/code>.&lt;br>
* If the variable is a {@link #VK_STATIC_FINAL_FIELD} and the variable name is &lt;code>VARIABLE_NAME&lt;/code> then the base name will be &lt;code>variableName&lt;/code>.&lt;br>
* &lt;/p>
* &lt;p>
* Prefixes and suffixes defined in JavaCore options will be also removed from the variable name.&lt;br>
* Each variable kind is affected by the following JavaCore options:
* &lt;ul>
* &lt;li>{@link #VK_PARAMETER}: {@link JavaCore#CODEASSIST_ARGUMENT_PREFIXES} and {@link JavaCore#CODEASSIST_ARGUMENT_SUFFIXES}&lt;/li>
* &lt;li>{@link #VK_LOCAL}: {@link JavaCore#CODEASSIST_LOCAL_PREFIXES} and {@link JavaCore#CODEASSIST_LOCAL_SUFFIXES}&lt;/li>
* &lt;li>{@link #VK_INSTANCE_FIELD}: {@link JavaCore#CODEASSIST_FIELD_PREFIXES} and {@link JavaCore#CODEASSIST_FIELD_SUFFIXES}&lt;/li>
* &lt;li>{@link #VK_STATIC_FIELD}: {@link JavaCore#CODEASSIST_STATIC_FIELD_PREFIXES} and {@link JavaCore#CODEASSIST_STATIC_FIELD_SUFFIXES}&lt;/li>
* &lt;li>{@link #VK_STATIC_FINAL_FIELD}: {@link JavaCore#CODEASSIST_STATIC_FINAL_FIELD_PREFIXES} and {@link JavaCore#CODEASSIST_STATIC_FINAL_FIELD_SUFFIXES}&lt;/li>
* &lt;/ul>
* &lt;/p>
* &lt;p>
* e.g.&lt;br>
* If the variable is a {@link #VK_LOCAL}, the variable name is &lt;code>preVariableNamesuf&lt;/code>, a possible prefix is &lt;code>pre&lt;/code> and a possible suffix is &lt;code>suf&lt;/code>
* then the base name will be &lt;code>variableName&lt;/code>.&lt;br>
* &lt;/p>
*
* @param variableKind specifies what type the variable is: {@link #VK_LOCAL}, {@link #VK_PARAMETER}, {@link #VK_STATIC_FIELD},
* {@link #VK_INSTANCE_FIELD} or {@link #VK_STATIC_FINAL_FIELD}.
* @param variableName a variable name
* @param javaProject project which contains the variable or &lt;code>null&lt;/code> to take into account only workspace settings.
*
* @see #suggestVariableNames(int, int, String, IJavaProject, int, String[], boolean)
* @since 3.5
</body>
</ownedComment>
<ownedParameter xmi:id="_mK3lcGEMEeCdEc4VzBeWeQ" type="_dSiS02EMEeCdEc4VzBeWeQ" direction="return"/>
<ownedParameter xmi:id="_mK3lcWEMEeCdEc4VzBeWeQ" name="variableKind" type="_dTlbsGEMEeCdEc4VzBeWeQ"/>
<ownedParameter xmi:id="_mLBWcGEMEeCdEc4VzBeWeQ" name="variableName" type="_dSiS02EMEeCdEc4VzBeWeQ"/>
<ownedParameter xmi:id="_mLBWcWEMEeCdEc4VzBeWeQ" name="javaProject" type="_kjmssGEMEeCdEc4VzBeWeQ"/>
</ownedOperation>
<ownedOperation xmi:id="_mLKgYGEMEeCdEc4VzBeWeQ" name="getFieldVariableKind" visibility="private" isStatic="true">
<ownedParameter xmi:id="_mLKgYWEMEeCdEc4VzBeWeQ" type="_dTlbsGEMEeCdEc4VzBeWeQ" direction="return"/>
<ownedParameter xmi:id="_mLURYGEMEeCdEc4VzBeWeQ" name="modifiers" type="_dTlbsGEMEeCdEc4VzBeWeQ"/>
</ownedOperation>
<ownedOperation xmi:id="_mLURYWEMEeCdEc4VzBeWeQ" name="suggestAccessorName" visibility="private" isStatic="true">
<ownedParameter xmi:id="_mLURYmEMEeCdEc4VzBeWeQ" type="_dUn9g2EMEeCdEc4VzBeWeQ" direction="return">
<upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_mLeCYWEMEeCdEc4VzBeWeQ" value="*"/>
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_mLeCYGEMEeCdEc4VzBeWeQ"/>
</ownedParameter>
<ownedParameter xmi:id="_mLnMUGEMEeCdEc4VzBeWeQ" name="project" type="_kjmssGEMEeCdEc4VzBeWeQ"/>
<ownedParameter xmi:id="_mLnMUWEMEeCdEc4VzBeWeQ" name="fieldName" type="_dUn9g2EMEeCdEc4VzBeWeQ">
<upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_mLw9UGEMEeCdEc4VzBeWeQ" value="*"/>
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_mLnMUmEMEeCdEc4VzBeWeQ"/>
</ownedParameter>
<ownedParameter xmi:id="_mL6uUGEMEeCdEc4VzBeWeQ" name="modifiers" type="_dTlbsGEMEeCdEc4VzBeWeQ"/>
</ownedOperation>
<ownedOperation xmi:id="_mL6uUWEMEeCdEc4VzBeWeQ" name="suggestArgumentNames" visibility="public" isStatic="true">
<ownedComment xmi:id="_mL6uUmEMEeCdEc4VzBeWeQ">
<body>
* Suggest names for an argument. The name is computed from argument's type
* and possible prefixes or suffixes are added.
* &lt;p>
* If the type of the argument is &lt;code>TypeName&lt;/code>, the prefix for argument is &lt;code>pre&lt;/code>
* and the suffix for argument is &lt;code>suf&lt;/code> then the proposed names are &lt;code>preTypeNamesuf&lt;/code>
* and &lt;code>preNamesuf&lt;/code>. If there is no prefix or suffix the proposals are &lt;code>typeName&lt;/code>
* and &lt;code>name&lt;/code>.
* &lt;/p>
* &lt;p>
* This method is affected by the following JavaCore options : {@link JavaCore#CODEASSIST_ARGUMENT_PREFIXES} and
* {@link JavaCore#CODEASSIST_ARGUMENT_SUFFIXES}.
* &lt;/p>
* &lt;p>
* For a complete description of these configurable options, see &lt;code>getDefaultOptions&lt;/code>.
* For programmaticaly change these options, see &lt;code>JavaCore#setOptions()&lt;/code>.
* &lt;/p>
*
* @param javaProject project which contains the argument.
* @param packageName package of the argument's type.
* @param qualifiedTypeName argument's type.
* @param dim argument's dimension (0 if the argument is not an array).
* @param excludedNames a list of names which cannot be suggested (already used names).
* Can be &lt;code>null&lt;/code> if there is no excluded names.
* @return char[][] an array of names.
* @see JavaCore#setOptions(java.util.Hashtable)
* @see JavaCore#getDefaultOptions()
*
* @deprecated Use {@link #suggestVariableNames(int, int, String, IJavaProject, int, String[], boolean)} instead with {@link #VK_PARAMETER} as variable kind.
</body>
</ownedComment>
<ownedParameter xmi:id="_mMD4QGEMEeCdEc4VzBeWeQ" type="_dUn9g2EMEeCdEc4VzBeWeQ" direction="return">
<upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_mMD4QmEMEeCdEc4VzBeWeQ" value="*"/>
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_mMD4QWEMEeCdEc4VzBeWeQ"/>
</ownedParameter>
<ownedParameter xmi:id="_mMNpQGEMEeCdEc4VzBeWeQ" name="javaProject" type="_kjmssGEMEeCdEc4VzBeWeQ"/>
<ownedParameter xmi:id="_mMNpQWEMEeCdEc4VzBeWeQ" name="packageName" type="_dUn9g2EMEeCdEc4VzBeWeQ">
<upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_mMWzMWEMEeCdEc4VzBeWeQ" value="*"/>
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_mMWzMGEMEeCdEc4VzBeWeQ"/>
</ownedParameter>
<ownedParameter xmi:id="_mMWzMmEMEeCdEc4VzBeWeQ" name="qualifiedTypeName" type="_dUn9g2EMEeCdEc4VzBeWeQ">
<upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_mMgkMWEMEeCdEc4VzBeWeQ" value="*"/>
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_mMgkMGEMEeCdEc4VzBeWeQ"/>
</ownedParameter>
<ownedParameter xmi:id="_mMqVMGEMEeCdEc4VzBeWeQ" name="dim" type="_dTlbsGEMEeCdEc4VzBeWeQ"/>
<ownedParameter xmi:id="_mMqVMWEMEeCdEc4VzBeWeQ" name="excludedNames" type="_dUn9g2EMEeCdEc4VzBeWeQ">
<upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_mMzfIGEMEeCdEc4VzBeWeQ" value="*"/>
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_mMqVMmEMEeCdEc4VzBeWeQ"/>
</ownedParameter>
</ownedOperation>
<ownedOperation xmi:id="_mMzfIWEMEeCdEc4VzBeWeQ" name="suggestArgumentNames" visibility="public" isStatic="true">
<ownedComment xmi:id="_mMzfImEMEeCdEc4VzBeWeQ">
<body>
* Suggest names for an argument. The name is computed from argument's type
* and possible prefixes or suffixes are added.
* &lt;p>
* If the type of the argument is &lt;code>TypeName&lt;/code>, the prefix for argument is &lt;code>pre&lt;/code>
* and the suffix for argument is &lt;code>suf&lt;/code> then the proposed names are &lt;code>preTypeNamesuf&lt;/code>
* and &lt;code>preNamesuf&lt;/code>. If there is no prefix or suffix the proposals are &lt;code>typeName&lt;/code>
* and &lt;code>name&lt;/code>.
* &lt;/p>
* &lt;p>
* This method is affected by the following JavaCore options : {@link JavaCore#CODEASSIST_ARGUMENT_PREFIXES} and
* {@link JavaCore#CODEASSIST_ARGUMENT_SUFFIXES}.
* &lt;/p>
* &lt;p>
* For a complete description of these configurable options, see &lt;code>getDefaultOptions&lt;/code>.
* For programmaticaly change these options, see &lt;code>JavaCore#setOptions()&lt;/code>.
* &lt;/p>
*
* @param javaProject project which contains the argument.
* @param packageName package of the argument's type.
* @param qualifiedTypeName argument's type.
* @param dim argument's dimension (0 if the argument is not an array).
* @param excludedNames a list of names which cannot be suggested (already used names).
* Can be &lt;code>null&lt;/code> if there is no excluded names.
* @return char[][] an array of names.
* @see JavaCore#setOptions(java.util.Hashtable)
* @see JavaCore#getDefaultOptions()
*
* @deprecated Use {@link #suggestVariableNames(int, int, String, IJavaProject, int, String[], boolean)} instead with {@link #VK_PARAMETER} as variable kind.
</body>
</ownedComment>
<ownedParameter xmi:id="_mM9QIGEMEeCdEc4VzBeWeQ" type="_dSiS02EMEeCdEc4VzBeWeQ" direction="return">
<upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_mNHBIGEMEeCdEc4VzBeWeQ" value="*"/>
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_mM9QIWEMEeCdEc4VzBeWeQ"/>
</ownedParameter>
<ownedParameter xmi:id="_mNHBIWEMEeCdEc4VzBeWeQ" name="javaProject" type="_kjmssGEMEeCdEc4VzBeWeQ"/>
<ownedParameter xmi:id="_mNQLEGEMEeCdEc4VzBeWeQ" name="packageName" type="_dSiS02EMEeCdEc4VzBeWeQ"/>
<ownedParameter xmi:id="_mNZ8EGEMEeCdEc4VzBeWeQ" name="qualifiedTypeName" type="_dSiS02EMEeCdEc4VzBeWeQ"/>
<ownedParameter xmi:id="_mNZ8EWEMEeCdEc4VzBeWeQ" name="dim" type="_dTlbsGEMEeCdEc4VzBeWeQ"/>
<ownedParameter xmi:id="_mNZ8EmEMEeCdEc4VzBeWeQ" name="excludedNames" type="_dSiS02EMEeCdEc4VzBeWeQ">
<upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_mNjGAWEMEeCdEc4VzBeWeQ" value="*"/>
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_mNjGAGEMEeCdEc4VzBeWeQ"/>
</ownedParameter>
</ownedOperation>
<ownedOperation xmi:id="_mN2oAGEMEeCdEc4VzBeWeQ" name="suggestFieldNames" visibility="public" isStatic="true">
<ownedComment xmi:id="_mN2oAWEMEeCdEc4VzBeWeQ">
<body>
* Suggest names for a field. The name is computed from field's type
* and possible prefixes or suffixes are added.
* &lt;p>
* If the type of the field is &lt;code>TypeName&lt;/code>, the prefix for field is &lt;code>pre&lt;/code>
* and the suffix for field is &lt;code>suf&lt;/code> then the proposed names are &lt;code>preTypeNamesuf&lt;/code>
* and &lt;code>preNamesuf&lt;/code>. If there is no prefix or suffix the proposals are &lt;code>typeName&lt;/code>
* and &lt;code>name&lt;/code>.
* &lt;/p>
* &lt;p>
* This method is affected by the following JavaCore options : {@link JavaCore#CODEASSIST_FIELD_PREFIXES},
* {@link JavaCore#CODEASSIST_FIELD_SUFFIXES} and for instance field and {@link JavaCore#CODEASSIST_STATIC_FIELD_PREFIXES},
* {@link JavaCore#CODEASSIST_STATIC_FIELD_SUFFIXES} for static field.
* &lt;/p>
* &lt;p>
* For a complete description of these configurable options, see &lt;code>getDefaultOptions&lt;/code>.
* For programmaticaly change these options, see &lt;code>JavaCore#setOptions()&lt;/code>.
* &lt;/p>
*
* @param javaProject project which contains the field.
* @param packageName package of the field's type.
* @param qualifiedTypeName field's type.
* @param dim field's dimension (0 if the field is not an array).
* @param modifiers field's modifiers as defined by the class
* &lt;code>Flags&lt;/code>.
* @param excludedNames a list of names which cannot be suggested (already used names).
* Can be &lt;code>null&lt;/code> if there is no excluded names.
* @return char[][] an array of names.
* @see Flags
* @see JavaCore#setOptions(java.util.Hashtable)
* @see JavaCore#getDefaultOptions()
*
* @deprecated Use {@link #suggestVariableNames(int, int, String, IJavaProject, int, String[], boolean)} instead
* with {@link #VK_INSTANCE_FIELD} or {@link #VK_STATIC_FIELD} as variable kind.
</body>
</ownedComment>
<ownedParameter xmi:id="_mN2oAmEMEeCdEc4VzBeWeQ" type="_dUn9g2EMEeCdEc4VzBeWeQ" direction="return">
<upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_mN_x8WEMEeCdEc4VzBeWeQ" value="*"/>
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_mN_x8GEMEeCdEc4VzBeWeQ"/>
</ownedParameter>
<ownedParameter xmi:id="_mOJi8GEMEeCdEc4VzBeWeQ" name="javaProject" type="_kjmssGEMEeCdEc4VzBeWeQ"/>
<ownedParameter xmi:id="_mOJi8WEMEeCdEc4VzBeWeQ" name="packageName" type="_dUn9g2EMEeCdEc4VzBeWeQ">
<upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_mOTT8WEMEeCdEc4VzBeWeQ" value="*"/>
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_mOTT8GEMEeCdEc4VzBeWeQ"/>
</ownedParameter>
<ownedParameter xmi:id="_mOTT8mEMEeCdEc4VzBeWeQ" name="qualifiedTypeName" type="_dUn9g2EMEeCdEc4VzBeWeQ">
<upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_mOcd4WEMEeCdEc4VzBeWeQ" value="*"/>
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_mOcd4GEMEeCdEc4VzBeWeQ"/>
</ownedParameter>
<ownedParameter xmi:id="_mOmO4GEMEeCdEc4VzBeWeQ" name="dim" type="_dTlbsGEMEeCdEc4VzBeWeQ"/>
<ownedParameter xmi:id="_mOvY0GEMEeCdEc4VzBeWeQ" name="modifiers" type="_dTlbsGEMEeCdEc4VzBeWeQ"/>
<ownedParameter xmi:id="_mOvY0WEMEeCdEc4VzBeWeQ" name="excludedNames" type="_dUn9g2EMEeCdEc4VzBeWeQ">
<upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_mO5J0WEMEeCdEc4VzBeWeQ" value="*"/>
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_mO5J0GEMEeCdEc4VzBeWeQ"/>
</ownedParameter>
</ownedOperation>
<ownedOperation xmi:id="_mO5J0mEMEeCdEc4VzBeWeQ" name="suggestFieldNames" visibility="public" isStatic="true">
<ownedComment xmi:id="_mO5J02EMEeCdEc4VzBeWeQ">
<body>
* Suggest names for a field. The name is computed from field's type
* and possible prefixes or suffixes are added.
* &lt;p>
* If the type of the field is &lt;code>TypeName&lt;/code>, the prefix for field is &lt;code>pre&lt;/code>
* and the suffix for field is &lt;code>suf&lt;/code> then the proposed names are &lt;code>preTypeNamesuf&lt;/code>
* and &lt;code>preNamesuf&lt;/code>. If there is no prefix or suffix the proposals are &lt;code>typeName&lt;/code>
* and &lt;code>name&lt;/code>.
* &lt;/p>
* &lt;p>
* This method is affected by the following JavaCore options : {@link JavaCore#CODEASSIST_FIELD_PREFIXES},
* {@link JavaCore#CODEASSIST_FIELD_SUFFIXES} and for instance field and {@link JavaCore#CODEASSIST_STATIC_FIELD_PREFIXES},
* {@link JavaCore#CODEASSIST_STATIC_FIELD_SUFFIXES} for static field.
* &lt;/p>
* &lt;p>
* For a complete description of these configurable options, see &lt;code>getDefaultOptions&lt;/code>.
* For programmaticaly change these options, see &lt;code>JavaCore#setOptions()&lt;/code>.
* &lt;/p>
*
* @param javaProject project which contains the field.
* @param packageName package of the field's type.
* @param qualifiedTypeName field's type.
* @param dim field's dimension (0 if the field is not an array).
* @param modifiers field's modifiers as defined by the class
* &lt;code>Flags&lt;/code>.
* @param excludedNames a list of names which cannot be suggested (already used names).
* Can be &lt;code>null&lt;/code> if there is no excluded names.
* @return char[][] an array of names.
* @see Flags
* @see JavaCore#setOptions(java.util.Hashtable)
* @see JavaCore#getDefaultOptions()
*
* @deprecated Use {@link #suggestVariableNames(int, int, String, IJavaProject, int, String[], boolean)} instead
* with {@link #VK_INSTANCE_FIELD} or {@link #VK_STATIC_FIELD} as variable kind.
</body>
</ownedComment>
<ownedParameter xmi:id="_mPMEwGEMEeCdEc4VzBeWeQ" type="_dSiS02EMEeCdEc4VzBeWeQ" direction="return">
<upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_mPV1wGEMEeCdEc4VzBeWeQ" value="*"/>
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_mPMEwWEMEeCdEc4VzBeWeQ"/>
</ownedParameter>
<ownedParameter xmi:id="_mPV1wWEMEeCdEc4VzBeWeQ" name="javaProject" type="_kjmssGEMEeCdEc4VzBeWeQ"/>
<ownedParameter xmi:id="_mPfmwGEMEeCdEc4VzBeWeQ" name="packageName" type="_dSiS02EMEeCdEc4VzBeWeQ"/>
<ownedParameter xmi:id="_mPfmwWEMEeCdEc4VzBeWeQ" name="qualifiedTypeName" type="_dSiS02EMEeCdEc4VzBeWeQ"/>
<ownedParameter xmi:id="_mPowsGEMEeCdEc4VzBeWeQ" name="dim" type="_dTlbsGEMEeCdEc4VzBeWeQ"/>
<ownedParameter xmi:id="_mPyhsGEMEeCdEc4VzBeWeQ" name="modifiers" type="_dTlbsGEMEeCdEc4VzBeWeQ"/>
<ownedParameter xmi:id="_mPyhsWEMEeCdEc4VzBeWeQ" name="excludedNames" type="_dSiS02EMEeCdEc4VzBeWeQ">
<upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_mP7roGEMEeCdEc4VzBeWeQ" value="*"/>
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_mPyhsmEMEeCdEc4VzBeWeQ"/>
</ownedParameter>
</ownedOperation>
<ownedOperation xmi:id="_mP7roWEMEeCdEc4VzBeWeQ" name="suggestGetterName" visibility="public" isStatic="true">
<ownedComment xmi:id="_mP7romEMEeCdEc4VzBeWeQ">
<body>
* Suggest name for a getter method. The name is computed from field's name
* and possible prefixes or suffixes are removed.
* &lt;p>
* If the field name is &lt;code>preFieldNamesuf&lt;/code> and the prefix for field is &lt;code>pre&lt;/code> and
* the suffix for field is &lt;code>suf&lt;/code> then the prosposed name is &lt;code>isFieldName&lt;/code> for boolean field or
* &lt;code>getFieldName&lt;/code> for others. If there is no prefix and suffix the proposal is &lt;code>isPreFieldNamesuf&lt;/code>
* for boolean field or &lt;code>getPreFieldNamesuf&lt;/code> for others.
* &lt;/p>
* &lt;p>
* This method is affected by the following JavaCore options : {@link JavaCore#CODEASSIST_FIELD_PREFIXES},
* {@link JavaCore#CODEASSIST_FIELD_SUFFIXES} for instance field and {@link JavaCore#CODEASSIST_STATIC_FIELD_PREFIXES},
* {@link JavaCore#CODEASSIST_STATIC_FIELD_SUFFIXES} for static field.
* &lt;/p>
* &lt;p>
* For a complete description of these configurable options, see &lt;code>getDefaultOptions&lt;/code>.
* For programmaticaly change these options, see &lt;code>JavaCore#setOptions()&lt;/code>.
* &lt;/p>
*
* @param project project which contains the field.
* @param fieldName field's name's.
* @param modifiers field's modifiers as defined by the class
* &lt;code>Flags&lt;/code>.
* @param isBoolean &lt;code>true&lt;/code> if the field's type is boolean
* @param excludedNames a list of names which cannot be suggested (already used names).
* Can be &lt;code>null&lt;/code> if there is no excluded names.
* @return char[] a name.
* @see Flags
* @see JavaCore#setOptions(java.util.Hashtable)
* @see JavaCore#getDefaultOptions()
</body>
</ownedComment>
<ownedParameter xmi:id="_mQFcoGEMEeCdEc4VzBeWeQ" type="_dUn9g2EMEeCdEc4VzBeWeQ" direction="return">
<upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_mQPNoGEMEeCdEc4VzBeWeQ" value="*"/>
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_mQFcoWEMEeCdEc4VzBeWeQ"/>
</ownedParameter>
<ownedParameter xmi:id="_mQYXkGEMEeCdEc4VzBeWeQ" name="project" type="_kjmssGEMEeCdEc4VzBeWeQ"/>
<ownedParameter xmi:id="_mQYXkWEMEeCdEc4VzBeWeQ" name="fieldName" type="_dUn9g2EMEeCdEc4VzBeWeQ">
<upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_mQiIkGEMEeCdEc4VzBeWeQ" value="*"/>
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_mQYXkmEMEeCdEc4VzBeWeQ"/>
</ownedParameter>
<ownedParameter xmi:id="_mQiIkWEMEeCdEc4VzBeWeQ" name="modifiers" type="_dTlbsGEMEeCdEc4VzBeWeQ"/>
<ownedParameter xmi:id="_mQr5kGEMEeCdEc4VzBeWeQ" name="isBoolean" type="_dVOadGEMEeCdEc4VzBeWeQ"/>
<ownedParameter xmi:id="_mQr5kWEMEeCdEc4VzBeWeQ" name="excludedNames" type="_dUn9g2EMEeCdEc4VzBeWeQ">
<upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_mQ1DgGEMEeCdEc4VzBeWeQ" value="*"/>
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_mQr5kmEMEeCdEc4VzBeWeQ"/>
</ownedParameter>
</ownedOperation>
<ownedOperation xmi:id="_mQ-0gGEMEeCdEc4VzBeWeQ" name="suggestGetterName" visibility="public" isStatic="true">
<ownedComment xmi:id="_mQ-0gWEMEeCdEc4VzBeWeQ">
<body>
* Suggest name for a getter method. The name is computed from field's name
* and possible prefixes or suffixes are removed.
* &lt;p>
* If the field name is &lt;code>preFieldNamesuf&lt;/code> and the prefix for field is &lt;code>pre&lt;/code> and
* the suffix for field is &lt;code>suf&lt;/code> then the prosposed name is &lt;code>isFieldName&lt;/code> for boolean field or
* &lt;code>getFieldName&lt;/code> for others. If there is no prefix and suffix the proposal is &lt;code>isPreFieldNamesuf&lt;/code>
* for boolean field or &lt;code>getPreFieldNamesuf&lt;/code> for others.
* &lt;/p>
* &lt;p>
* This method is affected by the following JavaCore options : {@link JavaCore#CODEASSIST_FIELD_PREFIXES},
* {@link JavaCore#CODEASSIST_FIELD_SUFFIXES} for instance field and {@link JavaCore#CODEASSIST_STATIC_FIELD_PREFIXES},
* {@link JavaCore#CODEASSIST_STATIC_FIELD_SUFFIXES} for static field.
* &lt;/p>
* &lt;p>
* For a complete description of these configurable options, see &lt;code>getDefaultOptions&lt;/code>.
* For programmaticaly change these options, see &lt;code>JavaCore#setOptions()&lt;/code>.
* &lt;/p>
*
* @param project project which contains the field.
* @param fieldName field's name's.
* @param modifiers field's modifiers as defined by the class
* &lt;code>Flags&lt;/code>.
* @param isBoolean &lt;code>true&lt;/code> if the field's type is boolean
* @param excludedNames a list of names which cannot be suggested (already used names).
* Can be &lt;code>null&lt;/code> if there is no excluded names.
* @return char[] a name.
* @see Flags
* @see JavaCore#setOptions(java.util.Hashtable)
* @see JavaCore#getDefaultOptions()
</body>
</ownedComment>
<ownedParameter xmi:id="_mQ-0gmEMEeCdEc4VzBeWeQ" type="_dSiS02EMEeCdEc4VzBeWeQ" direction="return"/>
<ownedParameter xmi:id="_mRH-cGEMEeCdEc4VzBeWeQ" name="project" type="_kjmssGEMEeCdEc4VzBeWeQ"/>
<ownedParameter xmi:id="_mRH-cWEMEeCdEc4VzBeWeQ" name="fieldName" type="_dSiS02EMEeCdEc4VzBeWeQ"/>
<ownedParameter xmi:id="_mRRvcGEMEeCdEc4VzBeWeQ" name="modifiers" type="_dTlbsGEMEeCdEc4VzBeWeQ"/>
<ownedParameter xmi:id="_mRRvcWEMEeCdEc4VzBeWeQ" name="isBoolean" type="_dVOadGEMEeCdEc4VzBeWeQ"/>
<ownedParameter xmi:id="_mRbgcGEMEeCdEc4VzBeWeQ" name="excludedNames" type="_dSiS02EMEeCdEc4VzBeWeQ">
<upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_mRbgcmEMEeCdEc4VzBeWeQ" value="*"/>
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_mRbgcWEMEeCdEc4VzBeWeQ"/>
</ownedParameter>
</ownedOperation>
<ownedOperation xmi:id="_mRkqYGEMEeCdEc4VzBeWeQ" name="suggestLocalVariableNames" visibility="public" isStatic="true">
<ownedComment xmi:id="_mRkqYWEMEeCdEc4VzBeWeQ">
<body>
* Suggest names for a local variable. The name is computed from variable's type
* and possible prefixes or suffixes are added.
* &lt;p>
* If the type of the local variable is &lt;code>TypeName&lt;/code>, the prefix for local variable is &lt;code>pre&lt;/code>
* and the suffix for local variable is &lt;code>suf&lt;/code> then the proposed names are &lt;code>preTypeNamesuf&lt;/code>
* and &lt;code>preNamesuf&lt;/code>. If there is no prefix or suffix the proposals are &lt;code>typeName&lt;/code>
* and &lt;code>name&lt;/code>.
* &lt;/p>
* &lt;p>
* This method is affected by the following JavaCore options : {@link JavaCore#CODEASSIST_LOCAL_PREFIXES} and
* {@link JavaCore#CODEASSIST_LOCAL_SUFFIXES}.
* &lt;/p>
* &lt;p>
* For a complete description of these configurable options, see &lt;code>getDefaultOptions&lt;/code>.
* For programmaticaly change these options, see &lt;code>JavaCore#setOptions()&lt;/code>.
* &lt;/p>
*
* @param javaProject project which contains the variable.
* @param packageName package of the variable's type.
* @param qualifiedTypeName variable's type.
* @param dim variable's dimension (0 if the variable is not an array).
* @param excludedNames a list of names which cannot be suggested (already used names).
* Can be &lt;code>null&lt;/code> if there is no excluded names.
* @return char[][] an array of names.
* @see JavaCore#setOptions(java.util.Hashtable)
* @see JavaCore#getDefaultOptions()
*
* @deprecated Use {@link #suggestVariableNames(int, int, String, IJavaProject, int, String[], boolean)} instead with {@link #VK_LOCAL} as variable kind.
</body>
</ownedComment>
<ownedParameter xmi:id="_mRkqYmEMEeCdEc4VzBeWeQ" type="_dUn9g2EMEeCdEc4VzBeWeQ" direction="return">
<upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_mR4MYGEMEeCdEc4VzBeWeQ" value="*"/>
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_mRubYGEMEeCdEc4VzBeWeQ"/>
</ownedParameter>
<ownedParameter xmi:id="_mR4MYWEMEeCdEc4VzBeWeQ" name="javaProject" type="_kjmssGEMEeCdEc4VzBeWeQ"/>
<ownedParameter xmi:id="_mSBWUGEMEeCdEc4VzBeWeQ" name="packageName" type="_dUn9g2EMEeCdEc4VzBeWeQ">
<upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_mSBWUmEMEeCdEc4VzBeWeQ" value="*"/>
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_mSBWUWEMEeCdEc4VzBeWeQ"/>
</ownedParameter>
<ownedParameter xmi:id="_mSLHUGEMEeCdEc4VzBeWeQ" name="qualifiedTypeName" type="_dUn9g2EMEeCdEc4VzBeWeQ">
<upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_mSURQGEMEeCdEc4VzBeWeQ" value="*"/>
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_mSLHUWEMEeCdEc4VzBeWeQ"/>
</ownedParameter>
<ownedParameter xmi:id="_mSURQWEMEeCdEc4VzBeWeQ" name="dim" type="_dTlbsGEMEeCdEc4VzBeWeQ"/>
<ownedParameter xmi:id="_mSeCQGEMEeCdEc4VzBeWeQ" name="excludedNames" type="_dUn9g2EMEeCdEc4VzBeWeQ">
<upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_mSnzQGEMEeCdEc4VzBeWeQ" value="*"/>
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_mSeCQWEMEeCdEc4VzBeWeQ"/>
</ownedParameter>
</ownedOperation>
<ownedOperation xmi:id="_mSnzQWEMEeCdEc4VzBeWeQ" name="suggestLocalVariableNames" visibility="public" isStatic="true">
<ownedComment xmi:id="_mSnzQmEMEeCdEc4VzBeWeQ">
<body>
* Suggest names for a local variable. The name is computed from variable's type
* and possible prefixes or suffixes are added.
* &lt;p>
* If the type of the local variable is &lt;code>TypeName&lt;/code>, the prefix for local variable is &lt;code>pre&lt;/code>
* and the suffix for local variable is &lt;code>suf&lt;/code> then the proposed names are &lt;code>preTypeNamesuf&lt;/code>
* and &lt;code>preNamesuf&lt;/code>. If there is no prefix or suffix the proposals are &lt;code>typeName&lt;/code>
* and &lt;code>name&lt;/code>.
* &lt;/p>
* &lt;p>
* This method is affected by the following JavaCore options : {@link JavaCore#CODEASSIST_LOCAL_PREFIXES} and
* {@link JavaCore#CODEASSIST_LOCAL_SUFFIXES}.
* &lt;/p>
* &lt;p>
* For a complete description of these configurable options, see &lt;code>getDefaultOptions&lt;/code>.
* For programmaticaly change these options, see &lt;code>JavaCore#setOptions()&lt;/code>.
* &lt;/p>
*
* @param javaProject project which contains the variable.
* @param packageName package of the variable's type.
* @param qualifiedTypeName variable's type.
* @param dim variable's dimension (0 if the variable is not an array).
* @param excludedNames a list of names which cannot be suggested (already used names).
* Can be &lt;code>null&lt;/code> if there is no excluded names.
* @return char[][] an array of names.
* @see JavaCore#setOptions(java.util.Hashtable)
* @see JavaCore#getDefaultOptions()
*
* @deprecated Use {@link #suggestVariableNames(int, int, String, IJavaProject, int, String[], boolean)} instead with {@link #VK_LOCAL} as variable kind.
</body>
</ownedComment>
<ownedParameter xmi:id="_mSw9MGEMEeCdEc4VzBeWeQ" type="_dSiS02EMEeCdEc4VzBeWeQ" direction="return">
<upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_mS6uMGEMEeCdEc4VzBeWeQ" value="*"/>
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_mSw9MWEMEeCdEc4VzBeWeQ"/>
</ownedParameter>
<ownedParameter xmi:id="_mTEfMGEMEeCdEc4VzBeWeQ" name="javaProject" type="_kjmssGEMEeCdEc4VzBeWeQ"/>
<ownedParameter xmi:id="_mTEfMWEMEeCdEc4VzBeWeQ" name="packageName" type="_dSiS02EMEeCdEc4VzBeWeQ"/>
<ownedParameter xmi:id="_mTNpIGEMEeCdEc4VzBeWeQ" name="qualifiedTypeName" type="_dSiS02EMEeCdEc4VzBeWeQ"/>
<ownedParameter xmi:id="_mTNpIWEMEeCdEc4VzBeWeQ" name="dim" type="_dTlbsGEMEeCdEc4VzBeWeQ"/>
<ownedParameter xmi:id="_mTNpImEMEeCdEc4VzBeWeQ" name="excludedNames" type="_dSiS02EMEeCdEc4VzBeWeQ">
<upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_mTXaIWEMEeCdEc4VzBeWeQ" value="*"/>
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_mTXaIGEMEeCdEc4VzBeWeQ"/>
</ownedParameter>
</ownedOperation>
<ownedOperation xmi:id="_mTgkEGEMEeCdEc4VzBeWeQ" name="suggestNewName" visibility="private" isStatic="true">
<ownedParameter xmi:id="_mTgkEWEMEeCdEc4VzBeWeQ" type="_dUn9g2EMEeCdEc4VzBeWeQ" direction="return">
<upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_mTqVEGEMEeCdEc4VzBeWeQ" value="*"/>
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_mTgkEmEMEeCdEc4VzBeWeQ"/>
</ownedParameter>
<ownedParameter xmi:id="_mTqVEWEMEeCdEc4VzBeWeQ" name="name" type="_dUn9g2EMEeCdEc4VzBeWeQ">
<upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_mT0GEWEMEeCdEc4VzBeWeQ" value="*"/>
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_mT0GEGEMEeCdEc4VzBeWeQ"/>
</ownedParameter>
<ownedParameter xmi:id="_mT9QAGEMEeCdEc4VzBeWeQ" name="excludedNames" type="_dUn9g2EMEeCdEc4VzBeWeQ">
<upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_mUHBAGEMEeCdEc4VzBeWeQ" value="*"/>
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_mT9QAWEMEeCdEc4VzBeWeQ"/>
</ownedParameter>
</ownedOperation>
<ownedOperation xmi:id="_mUHBAWEMEeCdEc4VzBeWeQ" name="suggestSetterName" visibility="public" isStatic="true">
<ownedComment xmi:id="_mUHBAmEMEeCdEc4VzBeWeQ">
<body>
* Suggest name for a setter method. The name is computed from field's name
* and possible prefixes or suffixes are removed.
* &lt;p>
* If the field name is &lt;code>preFieldNamesuf&lt;/code> and the prefix for field is &lt;code>pre&lt;/code> and
* the suffix for field is &lt;code>suf&lt;/code> then the proposed name is &lt;code>setFieldName&lt;/code>.
* If there is no prefix and suffix the proposal is &lt;code>setPreFieldNamesuf&lt;/code>.
* &lt;/p>
* &lt;p>
* This method is affected by the following JavaCore options : {@link JavaCore#CODEASSIST_FIELD_PREFIXES},
* {@link JavaCore#CODEASSIST_FIELD_SUFFIXES} for instance field and {@link JavaCore#CODEASSIST_STATIC_FIELD_PREFIXES},
* {@link JavaCore#CODEASSIST_STATIC_FIELD_SUFFIXES} for static field.
* &lt;/p>
* &lt;p>
* For a complete description of these configurable options, see &lt;code>getDefaultOptions&lt;/code>.
* For programmaticaly change these options, see &lt;code>JavaCore#setOptions()&lt;/code>.
* &lt;/p>
*
* @param project project which contains the field.
* @param fieldName field's name's.
* @param modifiers field's modifiers as defined by the class
* &lt;code>Flags&lt;/code>.
* @param isBoolean &lt;code>true&lt;/code> if the field's type is boolean
* @param excludedNames a list of names which cannot be suggested (already used names).
* Can be &lt;code>null&lt;/code> if there is no excluded names.
* @return char[] a name.
* @see Flags
* @see JavaCore#setOptions(java.util.Hashtable)
* @see JavaCore#getDefaultOptions()
</body>
</ownedComment>
<ownedParameter xmi:id="_mUQyAGEMEeCdEc4VzBeWeQ" type="_dUn9g2EMEeCdEc4VzBeWeQ" direction="return">
<upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_mUjs8GEMEeCdEc4VzBeWeQ" value="*"/>
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_mUZ78GEMEeCdEc4VzBeWeQ"/>
</ownedParameter>
<ownedParameter xmi:id="_mUjs8WEMEeCdEc4VzBeWeQ" name="project" type="_kjmssGEMEeCdEc4VzBeWeQ"/>
<ownedParameter xmi:id="_mUjs8mEMEeCdEc4VzBeWeQ" name="fieldName" type="_dUn9g2EMEeCdEc4VzBeWeQ">
<upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_mUs24WEMEeCdEc4VzBeWeQ" value="*"/>
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_mUs24GEMEeCdEc4VzBeWeQ"/>
</ownedParameter>
<ownedParameter xmi:id="_mU2n4GEMEeCdEc4VzBeWeQ" name="modifiers" type="_dTlbsGEMEeCdEc4VzBeWeQ"/>
<ownedParameter xmi:id="_mU2n4WEMEeCdEc4VzBeWeQ" name="isBoolean" type="_dVOadGEMEeCdEc4VzBeWeQ"/>
<ownedParameter xmi:id="_mU2n4mEMEeCdEc4VzBeWeQ" name="excludedNames" type="_dUn9g2EMEeCdEc4VzBeWeQ">
<upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_mVAY4WEMEeCdEc4VzBeWeQ" value="*"/>
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_mVAY4GEMEeCdEc4VzBeWeQ"/>
</ownedParameter>
</ownedOperation>
<ownedOperation xmi:id="_mVJi0GEMEeCdEc4VzBeWeQ" name="suggestSetterName" visibility="public" isStatic="true">
<ownedComment xmi:id="_mVJi0WEMEeCdEc4VzBeWeQ">
<body>
* Suggest name for a setter method. The name is computed from field's name
* and possible prefixes or suffixes are removed.
* &lt;p>
* If the field name is &lt;code>preFieldNamesuf&lt;/code> and the prefix for field is &lt;code>pre&lt;/code> and
* the suffix for field is &lt;code>suf&lt;/code> then the proposed name is &lt;code>setFieldName&lt;/code>.
* If there is no prefix and suffix the proposal is &lt;code>setPreFieldNamesuf&lt;/code>.
* &lt;/p>
* &lt;p>
* This method is affected by the following JavaCore options : {@link JavaCore#CODEASSIST_FIELD_PREFIXES},
* {@link JavaCore#CODEASSIST_FIELD_SUFFIXES} for instance field and {@link JavaCore#CODEASSIST_STATIC_FIELD_PREFIXES},
* {@link JavaCore#CODEASSIST_STATIC_FIELD_SUFFIXES} for static field.
* &lt;/p>
* &lt;p>
* For a complete description of these configurable options, see &lt;code>getDefaultOptions&lt;/code>.
* For programmaticaly change these options, see &lt;code>JavaCore#setOptions()&lt;/code>.
* &lt;/p>
*
* @param project project which contains the field.
* @param fieldName field's name's.
* @param modifiers field's modifiers as defined by the class
* &lt;code>Flags&lt;/code>.
* @param isBoolean &lt;code>true&lt;/code> if the field's type is boolean
* @param excludedNames a list of names which cannot be suggested (already used names).
* Can be &lt;code>null&lt;/code> if there is no excluded names.
* @return char[] a name.
* @see Flags
* @see JavaCore#setOptions(java.util.Hashtable)
* @see JavaCore#getDefaultOptions()
</body>
</ownedComment>
<ownedParameter xmi:id="_mVJi0mEMEeCdEc4VzBeWeQ" type="_dSiS02EMEeCdEc4VzBeWeQ" direction="return"/>
<ownedParameter xmi:id="_mVTT0GEMEeCdEc4VzBeWeQ" name="project" type="_kjmssGEMEeCdEc4VzBeWeQ"/>
<ownedParameter xmi:id="_mVTT0WEMEeCdEc4VzBeWeQ" name="fieldName" type="_dSiS02EMEeCdEc4VzBeWeQ"/>
<ownedParameter xmi:id="_mVdE0GEMEeCdEc4VzBeWeQ" name="modifiers" type="_dTlbsGEMEeCdEc4VzBeWeQ"/>
<ownedParameter xmi:id="_mVdE0WEMEeCdEc4VzBeWeQ" name="isBoolean" type="_dVOadGEMEeCdEc4VzBeWeQ"/>
<ownedParameter xmi:id="_mVdE0mEMEeCdEc4VzBeWeQ" name="excludedNames" type="_dSiS02EMEeCdEc4VzBeWeQ">
<upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_mVmOwWEMEeCdEc4VzBeWeQ" value="*"/>
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_mVmOwGEMEeCdEc4VzBeWeQ"/>
</ownedParameter>
</ownedOperation>
<ownedOperation xmi:id="_mVv_wGEMEeCdEc4VzBeWeQ" name="suggestVariableNames" visibility="public" isStatic="true">
<ownedComment xmi:id="_mVv_wWEMEeCdEc4VzBeWeQ">
<body>
* Suggests names for a variable. The name is computed from a base name and possible prefixes or suffixes are added.
*
* &lt;p>
* The base name is used to compute the variable name.
* Some different kinds of base names are possible and each kind is associated to a different heuristic to compute variable names.&lt;br>
* The heuristic depends also on the kind of the variable. Each kind of variable is identified by a constant starting with &lt;code>VK_&lt;/code>.&lt;br>
* When a prefix and a suffix can be added then all combinations of prefix and suffix are suggested.
* If the name is &lt;code>name&lt;/code>, the prefix is &lt;code>pre&lt;/code> and the suffix is &lt;code>suf&lt;/code> then the suggested names will be
* &lt;code>prenamesuf&lt;/code>, &lt;code>prename&lt;/code>, &lt;code>namesuf&lt;/code> and &lt;code>name&lt;/code>.&lt;br>
* &lt;br>
* The different kinds of base names are:
* &lt;ul>
* &lt;li>{@link #BK_NAME}: the base name is a Java name and the whole base name is considered to compute the variable names. A prefix and a suffix can be added.&lt;br>
* There is a heuristic by variable kind.
* &lt;ul>
* &lt;li>{@link #VK_PARAMETER}, {@link #VK_LOCAL}, {@link #VK_INSTANCE_FIELD} and {@link #VK_STATIC_FIELD}:&lt;br>
* In this case the first word will be converted to lower case and the other characters won't be changed.&lt;br>
* If the base name is &lt;code>SimpleName&lt;/code> then the suggested name will be &lt;code>simpleName&lt;/code>.&lt;br>&lt;/li>
* &lt;li>{@link #VK_STATIC_FINAL_FIELD} :&lt;br>
* In this case all letters of the name will be converted to upper case and words will be separated by an underscore (&lt;code>&quot;_&quot;&lt;/code>).&lt;br>
* If the base name is &lt;code>SimpleName&lt;/code> then the suggested name will be &lt;code>SIMPLE_NAME&lt;/code>.&lt;/li>
* &lt;/ul>&lt;/li>
* &lt;li>{@link #BK_TYPE_NAME}: the base name is a Java simple type name (e.g. &lt;code>HashMap&lt;/code>) and all the words of the base name are considered to compute the variable names. A prefix and a suffix can be added to these names.&lt;br>
* There is a heuristic by variable kind.
* &lt;ul>
* &lt;li>{@link #VK_PARAMETER}, {@link #VK_LOCAL}, {@link #VK_INSTANCE_FIELD} and {@link #VK_STATIC_FIELD}:&lt;br>
* In this case a variable name will contain some words of the base name and the first word will be converted to lower case.&lt;br>
* If the type is &lt;code>TypeName&lt;/code> then the suggested names will be &lt;code>typeName&lt;/code> and &lt;code>name&lt;/code>.&lt;/li>
* &lt;li>{@link #VK_STATIC_FINAL_FIELD} :&lt;br>
* In this case a variable name will contain some words of the base name, all letters of the name will be converted to upper case and segments will be separated by a underscore (&lt;code>&quot;_&quot;&lt;/code>).&lt;br>
* If the base name is &lt;code>TypeName&lt;/code> then the suggested name will be &lt;code>TYPE_NAME&lt;/code> and &lt;code>NAME&lt;/code>.&lt;/li>
* &lt;/ul>&lt;/li>
* &lt;/ul>
* Some other kinds could be added in the future.
* &lt;/p>
* &lt;p>
* Each variable kind is affected by the following JavaCore options:
* &lt;ul>
* &lt;li>{@link #VK_PARAMETER}: {@link JavaCore#CODEASSIST_ARGUMENT_PREFIXES} and {@link JavaCore#CODEASSIST_ARGUMENT_SUFFIXES}&lt;/li>
* &lt;li>{@link #VK_LOCAL}: {@link JavaCore#CODEASSIST_LOCAL_PREFIXES} and {@link JavaCore#CODEASSIST_LOCAL_SUFFIXES}&lt;/li>
* &lt;li>{@link #VK_INSTANCE_FIELD}: {@link JavaCore#CODEASSIST_FIELD_PREFIXES} and {@link JavaCore#CODEASSIST_FIELD_SUFFIXES}&lt;/li>
* &lt;li>{@link #VK_STATIC_FIELD}: {@link JavaCore#CODEASSIST_STATIC_FIELD_PREFIXES} and {@link JavaCore#CODEASSIST_STATIC_FIELD_SUFFIXES}&lt;/li>
* &lt;li>{@link #VK_STATIC_FINAL_FIELD}: {@link JavaCore#CODEASSIST_STATIC_FINAL_FIELD_PREFIXES} and {@link JavaCore#CODEASSIST_STATIC_FINAL_FIELD_SUFFIXES}&lt;/li>
* &lt;/ul>
* &lt;/p>
* &lt;p>
* For a complete description of these configurable options, see {@link JavaCore#getDefaultOptions()}.
* To programmatically change these options, see {@link JavaCore#setOptions(java.util.Hashtable)} and {@link IJavaProject#setOptions(java.util.Map)}
* &lt;/p>
* &lt;p>
* Proposed names are sorted by relevance (best proposal first).&lt;br>
* The names are proposed in the following order:
* &lt;ol>
* &lt;li>Names with prefix and suffix. Longer names are proposed first&lt;/li>
* &lt;li>Names with prefix. Longer names are proposed first&lt;/li>
* &lt;li>Names with suffix. Longer names are proposed first&lt;/li>
* &lt;li>Names without prefix and suffix. Longer names are proposed first&lt;/li>
* &lt;/ol>
* &lt;/p>
*
* @param variableKind specifies what type the variable is: {@link #VK_LOCAL}, {@link #VK_PARAMETER}, {@link #VK_STATIC_FIELD},
* {@link #VK_INSTANCE_FIELD} or {@link #VK_STATIC_FINAL_FIELD}.
* @param baseNameKind specifies what type the base name is: {@link #BK_NAME} or {@link #BK_TYPE_NAME}
* @param baseName name used to compute the suggested names.
* @param javaProject project which contains the variable or &lt;code>null&lt;/code> to take into account only workspace settings.
* @param dim variable dimension (0 if the field is not an array).
* @param excluded a list of names which cannot be suggested (already used names).
* Can be &lt;code>null&lt;/code> if there are no excluded names.
* @param evaluateDefault if &lt;code>true&lt;/code>, the result is guaranteed to contain at least one result. If &lt;code>false&lt;/code>, the result can be an empty array.
* @return String[] an array of names.
* @see JavaCore#setOptions(java.util.Hashtable)
* @see JavaCore#getDefaultOptions()
*
* @since 3.5
</body>
</ownedComment>
<ownedParameter xmi:id="_mV5JsGEMEeCdEc4VzBeWeQ" type="_dSiS02EMEeCdEc4VzBeWeQ" direction="return">
<upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_mV5JsmEMEeCdEc4VzBeWeQ" value="*"/>
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_mV5JsWEMEeCdEc4VzBeWeQ"/>
</ownedParameter>
<ownedParameter xmi:id="_mWC6sGEMEeCdEc4VzBeWeQ" name="variableKind" type="_dTlbsGEMEeCdEc4VzBeWeQ"/>
<ownedParameter xmi:id="_mWC6sWEMEeCdEc4VzBeWeQ" name="baseNameKind" type="_dTlbsGEMEeCdEc4VzBeWeQ"/>
<ownedParameter xmi:id="_mWMrsGEMEeCdEc4VzBeWeQ" name="baseName" type="_dSiS02EMEeCdEc4VzBeWeQ"/>
<ownedParameter xmi:id="_mWMrsWEMEeCdEc4VzBeWeQ" name="javaProject" type="_kjmssGEMEeCdEc4VzBeWeQ"/>
<ownedParameter xmi:id="_mWMrsmEMEeCdEc4VzBeWeQ" name="dim" type="_dTlbsGEMEeCdEc4VzBeWeQ"/>
<ownedParameter xmi:id="_mWV1oGEMEeCdEc4VzBeWeQ" name="excluded" type="_dSiS02EMEeCdEc4VzBeWeQ">
<upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_mWfmoGEMEeCdEc4VzBeWeQ" value="*"/>
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_mWV1oWEMEeCdEc4VzBeWeQ"/>
</ownedParameter>
<ownedParameter xmi:id="_mWfmoWEMEeCdEc4VzBeWeQ" name="evaluateDefault" type="_dVOadGEMEeCdEc4VzBeWeQ"/>
</ownedOperation>
</packagedElement>
<packagedElement xmi:type="uml:Class" xmi:id="_mc5woGEMEeCdEc4VzBeWeQ" name="Signature" isLeaf="true">
<ownedComment xmi:id="_mc5woWEMEeCdEc4VzBeWeQ">
<body>
* Provides methods for encoding and decoding type and method signature strings.
* &lt;p>
* Signatures obtained from parsing source files (i.e. files with one of the
* {@link JavaCore#getJavaLikeExtensions() Java-like extensions}) differ subtly
* from ones obtained from pre-compiled binary (&quot;.class&quot;) files in class names are
* usually left unresolved in the former. For example, the normal resolved form
* of the type &quot;String&quot; embeds the class's package name (&quot;Ljava.lang.String;&quot;
* or &quot;Ljava/lang/String;&quot;), whereas the unresolved form contains only what is
* written &quot;QString;&quot;.
* &lt;/p>
* &lt;p>
* Generic types introduce to the Java language in J2SE 1.5 add three new
* facets to signatures: type variables, parameterized types with type arguments,
* and formal type parameters. &lt;i>Rich&lt;/i> signatures containing these facets
* only occur when dealing with code that makes overt use of the new language
* features. All other code, and certainly all Java code written or compiled
* with J2SE 1.4 or earlier, involved only &lt;i>simple&lt;/i> signatures.
* &lt;/p>
* &lt;p>
* Note that the &quot;Q&quot; and &quot;!&quot; formats are specific to Eclipse; the remainder
* are specified in the JVM spec.
* &lt;/p>
* &lt;p>
* The syntax for a type signature is:
* &lt;pre>
* TypeSignature ::=
* &quot;B&quot; // byte
* | &quot;C&quot; // char
* | &quot;D&quot; // double
* | &quot;F&quot; // float
* | &quot;I&quot; // int
* | &quot;J&quot; // long
* | &quot;S&quot; // short
* | &quot;V&quot; // void
* | &quot;Z&quot; // boolean
* | &quot;T&quot; + Identifier + &quot;;&quot; // type variable
* | &quot;[&quot; + TypeSignature // array X[]
* | &quot;!&quot; + TypeSignature // capture-of ?
* | ResolvedClassTypeSignature
* | UnresolvedClassTypeSignature
*
* ResolvedClassTypeSignature ::= // resolved named type (in compiled code)
* &quot;L&quot; + Identifier + OptionalTypeArguments
* ( ( &quot;.&quot; | &quot;/&quot; ) + Identifier + OptionalTypeArguments )* + &quot;;&quot;
* | OptionalTypeParameters + &quot;L&quot; + Identifier +
* ( ( &quot;.&quot; | &quot;/&quot; ) + Identifier )* + &quot;;&quot;
*
* UnresolvedClassTypeSignature ::= // unresolved named type (in source code)
* &quot;Q&quot; + Identifier + OptionalTypeArguments
* ( ( &quot;.&quot; | &quot;/&quot; ) + Identifier + OptionalTypeArguments )* + &quot;;&quot;
* | OptionalTypeParameters &quot;Q&quot; + Identifier +
* ( ( &quot;.&quot; | &quot;/&quot; ) + Identifier )* + &quot;;&quot;
*
* OptionalTypeArguments ::=
* &quot;&amp;lt;&quot; + TypeArgument+ + &quot;&amp;gt;&quot;
* |
*
* TypeArgument ::=
* | TypeSignature
* | &quot;*&quot; // wildcard ?
* | &quot;+&quot; TypeSignature // wildcard ? extends X
* | &quot;-&quot; TypeSignature // wildcard ? super X
*
* OptionalTypeParameters ::=
* &quot;&amp;lt;&quot; + FormalTypeParameterSignature+ + &quot;&amp;gt;&quot;
* |
* &lt;/pre>
* &lt;/p>
* &lt;p>
* Examples:
* &lt;ul>
* &lt;li>&lt;code>&quot;[[I&quot;&lt;/code> denotes &lt;code>int[][]&lt;/code>&lt;/li>
* &lt;li>&lt;code>&quot;Ljava.lang.String;&quot;&lt;/code> denotes &lt;code>java.lang.String&lt;/code> in compiled code&lt;/li>
* &lt;li>&lt;code>&quot;QString;&quot;&lt;/code> denotes &lt;code>String&lt;/code> in source code&lt;/li>
* &lt;li>&lt;code>&quot;Qjava.lang.String;&quot;&lt;/code> denotes &lt;code>java.lang.String&lt;/code> in source code&lt;/li>
* &lt;li>&lt;code>&quot;[QString;&quot;&lt;/code> denotes &lt;code>String[]&lt;/code> in source code&lt;/li>
* &lt;li>&lt;code>&quot;QMap&amp;lt;QString;*&amp;gt;;&quot;&lt;/code> denotes &lt;code>Map&amp;lt;String,?&amp;gt;&lt;/code> in source code&lt;/li>
* &lt;li>&lt;code>&quot;Qjava.util.List&amp;ltTV;&amp;gt;;&quot;&lt;/code> denotes &lt;code>java.util.List&amp;lt;V&amp;gt;&lt;/code> in source code&lt;/li>
* &lt;li>&lt;code>&quot;&amp;ltE;&amp;gt;Ljava.util.List;&quot;&lt;/code> denotes &lt;code>&amp;lt;E&amp;gt;java.util.List&lt;/code> in source code&lt;/li>
* &lt;/ul>
* &lt;/p>
* &lt;p>
* The syntax for a method signature is:
* &lt;pre>
* MethodSignature ::= OptionalTypeParameters + &quot;(&quot; + ParamTypeSignature* + &quot;)&quot; + ReturnTypeSignature
* ParamTypeSignature ::= TypeSignature
* ReturnTypeSignature ::= TypeSignature
* &lt;/pre>
* &lt;p>
* Examples:
* &lt;ul>
* &lt;li>&lt;code>&quot;()I&quot;&lt;/code> denotes &lt;code>int foo()&lt;/code>&lt;/li>
* &lt;li>&lt;code>&quot;([Ljava.lang.String;)V&quot;&lt;/code> denotes &lt;code>void foo(java.lang.String[])&lt;/code> in compiled code&lt;/li>
* &lt;li>&lt;code>&quot;(QString;)QObject;&quot;&lt;/code> denotes &lt;code>Object foo(String)&lt;/code> in source code&lt;/li>
* &lt;/ul>
* &lt;/p>
* &lt;p>
* The syntax for a formal type parameter signature is:
* &lt;pre>
* FormalTypeParameterSignature ::=
* TypeVariableName + OptionalClassBound + InterfaceBound*
* TypeVariableName ::= Identifier
* OptionalClassBound ::=
* &quot;:&quot;
* | &quot;:&quot; + TypeSignature
* InterfaceBound ::=
* &quot;:&quot; + TypeSignature
* &lt;/pre>
* &lt;p>
* Examples:
* &lt;ul>
* &lt;li>&lt;code>&quot;X:&quot;&lt;/code> denotes &lt;code>X&lt;/code>&lt;/li>
* &lt;li>&lt;code>&quot;X:QReader;&quot;&lt;/code> denotes &lt;code>X extends Reader&lt;/code> in source code&lt;/li>
* &lt;li>&lt;code>&quot;X:QReader;:QSerializable;&quot;&lt;/code> denotes &lt;code>X extends Reader &amp; Serializable&lt;/code> in source code&lt;/li>
* &lt;/ul>
* &lt;/p>
* &lt;p>
* This class provides static methods and constants only.
* &lt;/p>
* &lt;p>Note: An empty signature is considered to be syntactically incorrect. So most methods will throw
* an IllegalArgumentException if an empty signature is provided.&lt;/p>
*
* @noinstantiate This class is not intended to be instantiated by clients.
</body>
</ownedComment>
<ownedAttribute xmi:id="_mc5womEMEeCdEc4VzBeWeQ" name="C_BOOLEAN" visibility="public" isLeaf="true" isStatic="true" type="_dUn9g2EMEeCdEc4VzBeWeQ" isUnique="false">
<ownedComment xmi:id="_mdMrkGEMEeCdEc4VzBeWeQ">
<body>
* Character constant indicating the primitive type boolean in a signature.
* Value is &lt;code>'Z'&lt;/code>.
</body>
</ownedComment>
</ownedAttribute>
<ownedAttribute xmi:id="_mdWckGEMEeCdEc4VzBeWeQ" name="C_BYTE" visibility="public" isLeaf="true" isStatic="true" type="_dUn9g2EMEeCdEc4VzBeWeQ" isUnique="false">
<ownedComment xmi:id="_mdfmgGEMEeCdEc4VzBeWeQ">
<body>
* Character constant indicating the primitive type byte in a signature.
* Value is &lt;code>'B'&lt;/code>.
</body>
</ownedComment>
</ownedAttribute>
<ownedAttribute xmi:id="_mdpXgGEMEeCdEc4VzBeWeQ" name="C_CHAR" visibility="public" isLeaf="true" isStatic="true" type="_dUn9g2EMEeCdEc4VzBeWeQ" isUnique="false">
<ownedComment xmi:id="_mdzIgGEMEeCdEc4VzBeWeQ">
<body>
* Character constant indicating the primitive type char in a signature.
* Value is &lt;code>'C'&lt;/code>.
</body>
</ownedComment>
</ownedAttribute>
<ownedAttribute xmi:id="_mdzIgWEMEeCdEc4VzBeWeQ" name="C_DOUBLE" visibility="public" isLeaf="true" isStatic="true" type="_dUn9g2EMEeCdEc4VzBeWeQ" isUnique="false">
<ownedComment xmi:id="_md8ScGEMEeCdEc4VzBeWeQ">
<body>
* Character constant indicating the primitive type double in a signature.
* Value is &lt;code>'D'&lt;/code>.
</body>
</ownedComment>
</ownedAttribute>
<ownedAttribute xmi:id="_meGDcGEMEeCdEc4VzBeWeQ" name="C_FLOAT" visibility="public" isLeaf="true" isStatic="true" type="_dUn9g2EMEeCdEc4VzBeWeQ" isUnique="false">
<ownedComment xmi:id="_mePNYGEMEeCdEc4VzBeWeQ">
<body>
* Character constant indicating the primitive type float in a signature.
* Value is &lt;code>'F'&lt;/code>.
</body>
</ownedComment>
</ownedAttribute>
<ownedAttribute xmi:id="_meY-YGEMEeCdEc4VzBeWeQ" name="C_INT" visibility="public" isLeaf="true" isStatic="true" type="_dUn9g2EMEeCdEc4VzBeWeQ" isUnique="false">
<ownedComment xmi:id="_meY-YWEMEeCdEc4VzBeWeQ">
<body>
* Character constant indicating the primitive type int in a signature.
* Value is &lt;code>'I'&lt;/code>.
</body>
</ownedComment>
</ownedAttribute>
<ownedAttribute xmi:id="_meivYGEMEeCdEc4VzBeWeQ" name="C_SEMICOLON" visibility="public" isLeaf="true" isStatic="true" type="_dUn9g2EMEeCdEc4VzBeWeQ" isUnique="false">
<ownedComment xmi:id="_mer5UGEMEeCdEc4VzBeWeQ">
<body>
* Character constant indicating the semicolon in a signature.
* Value is &lt;code>';'&lt;/code>.
</body>
</ownedComment>
</ownedAttribute>
<ownedAttribute xmi:id="_me1qUGEMEeCdEc4VzBeWeQ" name="C_COLON" visibility="public" isLeaf="true" isStatic="true" type="_dUn9g2EMEeCdEc4VzBeWeQ" isUnique="false">
<ownedComment xmi:id="_me_bUGEMEeCdEc4VzBeWeQ">
<body>
* Character constant indicating the colon in a signature.
* Value is &lt;code>':'&lt;/code>.
* @since 3.0
</body>
</ownedComment>
</ownedAttribute>
<ownedAttribute xmi:id="_mfIlQGEMEeCdEc4VzBeWeQ" name="C_LONG" visibility="public" isLeaf="true" isStatic="true" type="_dUn9g2EMEeCdEc4VzBeWeQ" isUnique="false">
<ownedComment xmi:id="_mfIlQWEMEeCdEc4VzBeWeQ">
<body>
* Character constant indicating the primitive type long in a signature.
* Value is &lt;code>'J'&lt;/code>.
</body>
</ownedComment>
</ownedAttribute>
<ownedAttribute xmi:id="_mfSWQGEMEeCdEc4VzBeWeQ" name="C_SHORT" visibility="public" isLeaf="true" isStatic="true" type="_dUn9g2EMEeCdEc4VzBeWeQ" isUnique="false">
<ownedComment xmi:id="_mfbgMGEMEeCdEc4VzBeWeQ">
<body>
* Character constant indicating the primitive type short in a signature.
* Value is &lt;code>'S'&lt;/code>.
</body>
</ownedComment>
</ownedAttribute>
<ownedAttribute xmi:id="_mflRMGEMEeCdEc4VzBeWeQ" name="C_VOID" visibility="public" isLeaf="true" isStatic="true" type="_dUn9g2EMEeCdEc4VzBeWeQ" isUnique="false">
<ownedComment xmi:id="_mflRMWEMEeCdEc4VzBeWeQ">
<body>
* Character constant indicating result type void in a signature.
* Value is &lt;code>'V'&lt;/code>.
</body>
</ownedComment>
</ownedAttribute>
<ownedAttribute xmi:id="_mfvCMGEMEeCdEc4VzBeWeQ" name="C_TYPE_VARIABLE" visibility="public" isLeaf="true" isStatic="true" type="_dUn9g2EMEeCdEc4VzBeWeQ" isUnique="false">
<ownedComment xmi:id="_mf4MIGEMEeCdEc4VzBeWeQ">
<body>
* Character constant indicating the start of a resolved type variable in a
* signature. Value is &lt;code>'T'&lt;/code>.
* @since 3.0
</body>
</ownedComment>
</ownedAttribute>
<ownedAttribute xmi:id="_mgB9IGEMEeCdEc4VzBeWeQ" name="C_STAR" visibility="public" isLeaf="true" isStatic="true" type="_dUn9g2EMEeCdEc4VzBeWeQ" isUnique="false">
<ownedComment xmi:id="_mgLuIGEMEeCdEc4VzBeWeQ">
<body>
* Character constant indicating an unbound wildcard type argument
* in a signature.
* Value is &lt;code>'*'&lt;/code>.
* @since 3.0
</body>
</ownedComment>
</ownedAttribute>
<ownedAttribute xmi:id="_mgU4EGEMEeCdEc4VzBeWeQ" name="C_EXCEPTION_START" visibility="public" isLeaf="true" isStatic="true" type="_dUn9g2EMEeCdEc4VzBeWeQ" isUnique="false">
<ownedComment xmi:id="_mgepEGEMEeCdEc4VzBeWeQ">
<body>
* Character constant indicating an exception in a signature.
* Value is &lt;code>'^'&lt;/code>.
* @since 3.1
</body>
</ownedComment>
</ownedAttribute>
<ownedAttribute xmi:id="_mgnzAGEMEeCdEc4VzBeWeQ" name="C_EXTENDS" visibility="public" isLeaf="true" isStatic="true" type="_dUn9g2EMEeCdEc4VzBeWeQ" isUnique="false">
<ownedComment xmi:id="_mgnzAWEMEeCdEc4VzBeWeQ">
<body>
* Character constant indicating a bound wildcard type argument
* in a signature with extends clause.
* Value is &lt;code>'+'&lt;/code>.
* @since 3.1
</body>
</ownedComment>
</ownedAttribute>
<ownedAttribute xmi:id="_mgxkAGEMEeCdEc4VzBeWeQ" name="C_SUPER" visibility="public" isLeaf="true" isStatic="true" type="_dUn9g2EMEeCdEc4VzBeWeQ" isUnique="false">
<ownedComment xmi:id="_mg7VAGEMEeCdEc4VzBeWeQ">
<body>
* Character constant indicating a bound wildcard type argument
* in a signature with super clause.
* Value is &lt;code>'-'&lt;/code>.
* @since 3.1
</body>
</ownedComment>
</ownedAttribute>
<ownedAttribute xmi:id="_mhEe8GEMEeCdEc4VzBeWeQ" name="C_DOT" visibility="public" isLeaf="true" isStatic="true" type="_dUn9g2EMEeCdEc4VzBeWeQ" isUnique="false">
<ownedComment xmi:id="_mhOP8GEMEeCdEc4VzBeWeQ">
<body>
* Character constant indicating the dot in a signature.
* Value is &lt;code>'.'&lt;/code>.
</body>
</ownedComment>
</ownedAttribute>
<ownedAttribute xmi:id="_mhOP8WEMEeCdEc4VzBeWeQ" name="C_DOLLAR" visibility="public" isLeaf="true" isStatic="true" type="_dUn9g2EMEeCdEc4VzBeWeQ" isUnique="false">
<ownedComment xmi:id="_mhYA8GEMEeCdEc4VzBeWeQ">
<body>
* Character constant indicating the dollar in a signature.
* Value is &lt;code>'$'&lt;/code>.
</body>
</ownedComment>
</ownedAttribute>
<ownedAttribute xmi:id="_mhhK4GEMEeCdEc4VzBeWeQ" name="C_ARRAY" visibility="public" isLeaf="true" isStatic="true" type="_dUn9g2EMEeCdEc4VzBeWeQ" isUnique="false">
<ownedComment xmi:id="_mhq74GEMEeCdEc4VzBeWeQ">
<body>
* Character constant indicating an array type in a signature.
* Value is &lt;code>'['&lt;/code>.
</body>
</ownedComment>
</ownedAttribute>
<ownedAttribute xmi:id="_mh0F0GEMEeCdEc4VzBeWeQ" name="C_RESOLVED" visibility="public" isLeaf="true" isStatic="true" type="_dUn9g2EMEeCdEc4VzBeWeQ" isUnique="false">
<ownedComment xmi:id="_mh0F0WEMEeCdEc4VzBeWeQ">
<body>
* Character constant indicating the start of a resolved, named type in a
* signature. Value is &lt;code>'L'&lt;/code>.
</body>
</ownedComment>
</ownedAttribute>
<ownedAttribute xmi:id="_mh920GEMEeCdEc4VzBeWeQ" name="C_UNRESOLVED" visibility="public" isLeaf="true" isStatic="true" type="_dUn9g2EMEeCdEc4VzBeWeQ" isUnique="false">
<ownedComment xmi:id="_miHn0GEMEeCdEc4VzBeWeQ">
<body>
* Character constant indicating the start of an unresolved, named type in a
* signature. Value is &lt;code>'Q'&lt;/code>.
</body>
</ownedComment>
</ownedAttribute>
<ownedAttribute xmi:id="_miQxwGEMEeCdEc4VzBeWeQ" name="C_NAME_END" visibility="public" isLeaf="true" isStatic="true" type="_dUn9g2EMEeCdEc4VzBeWeQ" isUnique="false">
<ownedComment xmi:id="_miaiwGEMEeCdEc4VzBeWeQ">
<body>
* Character constant indicating the end of a named type in a signature.
* Value is &lt;code>';'&lt;/code>.
</body>
</ownedComment>
</ownedAttribute>
<ownedAttribute xmi:id="_mikTwGEMEeCdEc4VzBeWeQ" name="C_PARAM_START" visibility="public" isLeaf="true" isStatic="true" type="_dUn9g2EMEeCdEc4VzBeWeQ" isUnique="false">
<ownedComment xmi:id="_mitdsGEMEeCdEc4VzBeWeQ">
<body>
* Character constant indicating the start of a parameter type list in a
* signature. Value is &lt;code>'('&lt;/code>.
</body>
</ownedComment>
</ownedAttribute>
<ownedAttribute xmi:id="_mi3OsGEMEeCdEc4VzBeWeQ" name="C_PARAM_END" visibility="public" isLeaf="true" isStatic="true" type="_dUn9g2EMEeCdEc4VzBeWeQ" isUnique="false">
<ownedComment xmi:id="_mi3OsWEMEeCdEc4VzBeWeQ">
<body>
* Character constant indicating the end of a parameter type list in a
* signature. Value is &lt;code>')'&lt;/code>.
</body>
</ownedComment>
</ownedAttribute>
<ownedAttribute xmi:id="_mjAYoGEMEeCdEc4VzBeWeQ" name="C_GENERIC_START" visibility="public" isLeaf="true" isStatic="true" type="_dUn9g2EMEeCdEc4VzBeWeQ" isUnique="false">
<ownedComment xmi:id="_mjKJoGEMEeCdEc4VzBeWeQ">
<body>
* Character constant indicating the start of a formal type parameter
* (or type argument) list in a signature. Value is &lt;code>'&amp;lt;'&lt;/code>.
* @since 3.0
</body>
</ownedComment>
</ownedAttribute>
<ownedAttribute xmi:id="_mjT6oGEMEeCdEc4VzBeWeQ" name="C_GENERIC_END" visibility="public" isLeaf="true" isStatic="true" type="_dUn9g2EMEeCdEc4VzBeWeQ" isUnique="false">
<ownedComment xmi:id="_mjdEkGEMEeCdEc4VzBeWeQ">
<body>
* Character constant indicating the end of a generic type list in a
* signature. Value is &lt;code>'&amp;gt;'&lt;/code>.
* @since 3.0
</body>
</ownedComment>
</ownedAttribute>
<ownedAttribute xmi:id="_mjm1kGEMEeCdEc4VzBeWeQ" name="C_CAPTURE" visibility="public" isLeaf="true" isStatic="true" type="_dUn9g2EMEeCdEc4VzBeWeQ" isUnique="false">
<ownedComment xmi:id="_mjm1kWEMEeCdEc4VzBeWeQ">
<body>
* Character constant indicating a capture of a wildcard type in a
* signature. Value is &lt;code>'!'&lt;/code>.
* @since 3.1
</body>
</ownedComment>
</ownedAttribute>
<ownedAttribute xmi:id="_mjwmkGEMEeCdEc4VzBeWeQ" name="SIG_BOOLEAN" visibility="public" isLeaf="true" isStatic="true" type="_dSiS02EMEeCdEc4VzBeWeQ" isUnique="false">
<ownedComment xmi:id="_mj5wgGEMEeCdEc4VzBeWeQ">
<body>
* String constant for the signature of the primitive type boolean.
* Value is &lt;code>&quot;Z&quot;&lt;/code>.
</body>
</ownedComment>
</ownedAttribute>
<ownedAttribute xmi:id="_mkDhgGEMEeCdEc4VzBeWeQ" name="SIG_BYTE" visibility="public" isLeaf="true" isStatic="true" type="_dSiS02EMEeCdEc4VzBeWeQ" isUnique="false">
<ownedComment xmi:id="_mkDhgWEMEeCdEc4VzBeWeQ">
<body>
* String constant for the signature of the primitive type byte.
* Value is &lt;code>&quot;B&quot;&lt;/code>.
</body>
</ownedComment>
</ownedAttribute>
<ownedAttribute xmi:id="_mkMrcGEMEeCdEc4VzBeWeQ" name="SIG_CHAR" visibility="public" isLeaf="true" isStatic="true" type="_dSiS02EMEeCdEc4VzBeWeQ" isUnique="false">
<ownedComment xmi:id="_mkWccGEMEeCdEc4VzBeWeQ">
<body>
* String constant for the signature of the primitive type char.
* Value is &lt;code>&quot;C&quot;&lt;/code>.
</body>
</ownedComment>
</ownedAttribute>
<ownedAttribute xmi:id="_mkgNcGEMEeCdEc4VzBeWeQ" name="SIG_DOUBLE" visibility="public" isLeaf="true" isStatic="true" type="_dSiS02EMEeCdEc4VzBeWeQ" isUnique="false">
<ownedComment xmi:id="_mkgNcWEMEeCdEc4VzBeWeQ">
<body>
* String constant for the signature of the primitive type double.
* Value is &lt;code>&quot;D&quot;&lt;/code>.
</body>
</ownedComment>
</ownedAttribute>
<ownedAttribute xmi:id="_mkpXYGEMEeCdEc4VzBeWeQ" name="SIG_FLOAT" visibility="public" isLeaf="true" isStatic="true" type="_dSiS02EMEeCdEc4VzBeWeQ" isUnique="false">
<ownedComment xmi:id="_mkzIYGEMEeCdEc4VzBeWeQ">
<body>
* String constant for the signature of the primitive type float.
* Value is &lt;code>&quot;F&quot;&lt;/code>.
</body>
</ownedComment>
</ownedAttribute>
<ownedAttribute xmi:id="_mk85YGEMEeCdEc4VzBeWeQ" name="SIG_INT" visibility="public" isLeaf="true" isStatic="true" type="_dSiS02EMEeCdEc4VzBeWeQ" isUnique="false">
<ownedComment xmi:id="_mlGDUGEMEeCdEc4VzBeWeQ">
<body>
* String constant for the signature of the primitive type int.
* Value is &lt;code>&quot;I&quot;&lt;/code>.
</body>
</ownedComment>
</ownedAttribute>
<ownedAttribute xmi:id="_mlGDUWEMEeCdEc4VzBeWeQ" name="SIG_LONG" visibility="public" isLeaf="true" isStatic="true" type="_dSiS02EMEeCdEc4VzBeWeQ" isUnique="false">
<ownedComment xmi:id="_mlP0UGEMEeCdEc4VzBeWeQ">
<body>
* String constant for the signature of the primitive type long.
* Value is &lt;code>&quot;J&quot;&lt;/code>.
</body>
</ownedComment>
</ownedAttribute>
<ownedAttribute xmi:id="_mlY-QGEMEeCdEc4VzBeWeQ" name="SIG_SHORT" visibility="public" isLeaf="true" isStatic="true" type="_dSiS02EMEeCdEc4VzBeWeQ" isUnique="false">
<ownedComment xmi:id="_mlY-QWEMEeCdEc4VzBeWeQ">
<body>
* String constant for the signature of the primitive type short.
* Value is &lt;code>&quot;S&quot;&lt;/code>.
</body>
</ownedComment>
</ownedAttribute>
<ownedAttribute xmi:id="_mlivQGEMEeCdEc4VzBeWeQ" name="SIG_VOID" visibility="public" isLeaf="true" isStatic="true" type="_dSiS02EMEeCdEc4VzBeWeQ" isUnique="false">
<ownedComment xmi:id="_mlsgQGEMEeCdEc4VzBeWeQ">
<body> String constant for the signature of result type void.
* Value is &lt;code>&quot;V&quot;&lt;/code>.
</body>
</ownedComment>
</ownedAttribute>
<ownedAttribute xmi:id="_ml1qMGEMEeCdEc4VzBeWeQ" name="CLASS_TYPE_SIGNATURE" visibility="public" isLeaf="true" isStatic="true" type="_dTlbsGEMEeCdEc4VzBeWeQ" isUnique="false">
<ownedComment xmi:id="_ml1qMWEMEeCdEc4VzBeWeQ">
<body>
* Kind constant for a class type signature.
* @see #getTypeSignatureKind(String)
* @since 3.0
</body>
</ownedComment>
</ownedAttribute>
<ownedAttribute xmi:id="_ml_bMGEMEeCdEc4VzBeWeQ" name="BASE_TYPE_SIGNATURE" visibility="public" isLeaf="true" isStatic="true" type="_dTlbsGEMEeCdEc4VzBeWeQ" isUnique="false">
<ownedComment xmi:id="_mmJMMGEMEeCdEc4VzBeWeQ">
<body>
* Kind constant for a base (primitive or void) type signature.
* @see #getTypeSignatureKind(String)
* @since 3.0
</body>
</ownedComment>
</ownedAttribute>
<ownedAttribute xmi:id="_mmSWIGEMEeCdEc4VzBeWeQ" name="TYPE_VARIABLE_SIGNATURE" visibility="public" isLeaf="true" isStatic="true" type="_dTlbsGEMEeCdEc4VzBeWeQ" isUnique="false">
<ownedComment xmi:id="_mmcHIGEMEeCdEc4VzBeWeQ">
<body>
* Kind constant for a type variable signature.
* @see #getTypeSignatureKind(String)
* @since 3.0
</body>
</ownedComment>
</ownedAttribute>
<ownedAttribute xmi:id="_mmlREGEMEeCdEc4VzBeWeQ" name="ARRAY_TYPE_SIGNATURE" visibility="public" isLeaf="true" isStatic="true" type="_dTlbsGEMEeCdEc4VzBeWeQ" isUnique="false">
<ownedComment xmi:id="_mmlREWEMEeCdEc4VzBeWeQ">
<body>
* Kind constant for an array type signature.
* @see #getTypeSignatureKind(String)
* @since 3.0
</body>
</ownedComment>
</ownedAttribute>
<ownedAttribute xmi:id="_mmvCEGEMEeCdEc4VzBeWeQ" name="WILDCARD_TYPE_SIGNATURE" visibility="public" isLeaf="true" isStatic="true" type="_dTlbsGEMEeCdEc4VzBeWeQ" isUnique="false">
<ownedComment xmi:id="_mm4zEGEMEeCdEc4VzBeWeQ">
<body>
* Kind constant for a wildcard type signature.
* @see #getTypeSignatureKind(String)
* @since 3.1
</body>
</ownedComment>
</ownedAttribute>
<ownedAttribute xmi:id="_mnB9AGEMEeCdEc4VzBeWeQ" name="CAPTURE_TYPE_SIGNATURE" visibility="public" isLeaf="true" isStatic="true" type="_dTlbsGEMEeCdEc4VzBeWeQ" isUnique="false">
<ownedComment xmi:id="_mnB9AWEMEeCdEc4VzBeWeQ">
<body>
* Kind constant for the capture of a wildcard type signature.
* @see #getTypeSignatureKind(String)
* @since 3.1
</body>
</ownedComment>
</ownedAttribute>
<ownedAttribute xmi:id="_mnLuAGEMEeCdEc4VzBeWeQ" name="BOOLEAN" visibility="private" isLeaf="true" isStatic="true" type="_dUn9g2EMEeCdEc4VzBeWeQ" isUnique="false">
<upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_mneo8GEMEeCdEc4VzBeWeQ" value="*"/>
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_mnVfAGEMEeCdEc4VzBeWeQ"/>
</ownedAttribute>
<ownedAttribute xmi:id="_mneo8WEMEeCdEc4VzBeWeQ" name="BYTE" visibility="private" isLeaf="true" isStatic="true" type="_dUn9g2EMEeCdEc4VzBeWeQ" isUnique="false">
<upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_mnxj4GEMEeCdEc4VzBeWeQ" value="*"/>
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_mnoZ8GEMEeCdEc4VzBeWeQ"/>
</ownedAttribute>
<ownedAttribute xmi:id="_mn7U4GEMEeCdEc4VzBeWeQ" name="CHAR" visibility="private" isLeaf="true" isStatic="true" type="_dUn9g2EMEeCdEc4VzBeWeQ" isUnique="false">
<upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_moFF4WEMEeCdEc4VzBeWeQ" value="*"/>
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_moFF4GEMEeCdEc4VzBeWeQ"/>
</ownedAttribute>
<ownedAttribute xmi:id="_moOP0GEMEeCdEc4VzBeWeQ" name="DOUBLE" visibility="private" isLeaf="true" isStatic="true" type="_dUn9g2EMEeCdEc4VzBeWeQ" isUnique="false">
<upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_moYA0WEMEeCdEc4VzBeWeQ" value="*"/>
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_moYA0GEMEeCdEc4VzBeWeQ"/>
</ownedAttribute>
<ownedAttribute xmi:id="_mu7UwGEMEeCdEc4VzBeWeQ" name="FLOAT" visibility="private" isLeaf="true" isStatic="true" type="_dUn9g2EMEeCdEc4VzBeWeQ" isUnique="false">
<upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_mvO2wGEMEeCdEc4VzBeWeQ" value="*"/>
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_mvFFwGEMEeCdEc4VzBeWeQ"/>
</ownedAttribute>
<ownedAttribute xmi:id="_mvO2wWEMEeCdEc4VzBeWeQ" name="INT" visibility="private" isLeaf="true" isStatic="true" type="_dUn9g2EMEeCdEc4VzBeWeQ" isUnique="false">
<upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_mvhxsGEMEeCdEc4VzBeWeQ" value="*"/>
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_mvYAsGEMEeCdEc4VzBeWeQ"/>
</ownedAttribute>
<ownedAttribute xmi:id="_mvrisGEMEeCdEc4VzBeWeQ" name="LONG" visibility="private" isLeaf="true" isStatic="true" type="_dUn9g2EMEeCdEc4VzBeWeQ" isUnique="false">
<upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_mv-doGEMEeCdEc4VzBeWeQ" value="*"/>
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_mv0soGEMEeCdEc4VzBeWeQ"/>
</ownedAttribute>
<ownedAttribute xmi:id="_mv-doWEMEeCdEc4VzBeWeQ" name="SHORT" visibility="private" isLeaf="true" isStatic="true" type="_dUn9g2EMEeCdEc4VzBeWeQ" isUnique="false">
<upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_mwRYkGEMEeCdEc4VzBeWeQ" value="*"/>
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_mwHnkGEMEeCdEc4VzBeWeQ"/>
</ownedAttribute>
<ownedAttribute xmi:id="_mwRYkWEMEeCdEc4VzBeWeQ" name="VOID" visibility="private" isLeaf="true" isStatic="true" type="_dUn9g2EMEeCdEc4VzBeWeQ" isUnique="false">
<upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_mwkTgWEMEeCdEc4VzBeWeQ" value="*"/>
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_mwkTgGEMEeCdEc4VzBeWeQ"/>
</ownedAttribute>
<ownedAttribute xmi:id="_mwkTgmEMEeCdEc4VzBeWeQ" name="EXTENDS" visibility="private" isLeaf="true" isStatic="true" type="_dUn9g2EMEeCdEc4VzBeWeQ" isUnique="false">
<upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_mw31gWEMEeCdEc4VzBeWeQ" value="*"/>
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_mw31gGEMEeCdEc4VzBeWeQ"/>
</ownedAttribute>
<ownedAttribute xmi:id="_mw31gmEMEeCdEc4VzBeWeQ" name="SUPER" visibility="private" isLeaf="true" isStatic="true" type="_dUn9g2EMEeCdEc4VzBeWeQ" isUnique="false">
<upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_mxT6YGEMEeCdEc4VzBeWeQ" value="*"/>
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_mxKwcGEMEeCdEc4VzBeWeQ"/>
</ownedAttribute>
<ownedAttribute xmi:id="_mxT6YWEMEeCdEc4VzBeWeQ" name="CAPTURE" visibility="private" isLeaf="true" isStatic="true" type="_dUn9g2EMEeCdEc4VzBeWeQ" isUnique="false">
<upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_mxncYGEMEeCdEc4VzBeWeQ" value="*"/>
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_mxdrYGEMEeCdEc4VzBeWeQ"/>
</ownedAttribute>
<ownedOperation xmi:id="_mxncYWEMEeCdEc4VzBeWeQ" name="checkName" visibility="private" isStatic="true">
<ownedParameter xmi:id="_mxncYmEMEeCdEc4VzBeWeQ" type="_dTlbsGEMEeCdEc4VzBeWeQ" direction="return"/>
<ownedParameter xmi:id="_mxwmUGEMEeCdEc4VzBeWeQ" name="name" type="_dUn9g2EMEeCdEc4VzBeWeQ">
<upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_mx6XUGEMEeCdEc4VzBeWeQ" value="*"/>
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_mxwmUWEMEeCdEc4VzBeWeQ"/>
</ownedParameter>
<ownedParameter xmi:id="_mx6XUWEMEeCdEc4VzBeWeQ" name="typeName" type="_dUn9g2EMEeCdEc4VzBeWeQ">
<upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_myEIUWEMEeCdEc4VzBeWeQ" value="*"/>
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_myEIUGEMEeCdEc4VzBeWeQ"/>
</ownedParameter>
<ownedParameter xmi:id="_myNSQGEMEeCdEc4VzBeWeQ" name="pos" type="_dTlbsGEMEeCdEc4VzBeWeQ"/>
<ownedParameter xmi:id="_myNSQWEMEeCdEc4VzBeWeQ" name="length" type="_dTlbsGEMEeCdEc4VzBeWeQ"/>
</ownedOperation>
<ownedOperation xmi:id="_myXDQGEMEeCdEc4VzBeWeQ" name="createArraySignature" visibility="public" isStatic="true">
<ownedComment xmi:id="_myXDQWEMEeCdEc4VzBeWeQ">
<body>
* Creates a new type signature with the given amount of array nesting added
* to the given type signature.
*
* @param typeSignature the type signature
* @param arrayCount the desired number of levels of array nesting
* @return the encoded array type signature
*
* @since 2.0
</body>
</ownedComment>
<ownedParameter xmi:id="_myXDQmEMEeCdEc4VzBeWeQ" type="_dUn9g2EMEeCdEc4VzBeWeQ" direction="return">
<upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_mygNMWEMEeCdEc4VzBeWeQ" value="*"/>
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_mygNMGEMEeCdEc4VzBeWeQ"/>
</ownedParameter>
<ownedParameter xmi:id="_myp-MGEMEeCdEc4VzBeWeQ" name="typeSignature" type="_dUn9g2EMEeCdEc4VzBeWeQ">
<upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_myzvMGEMEeCdEc4VzBeWeQ" value="*"/>
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_myp-MWEMEeCdEc4VzBeWeQ"/>
</ownedParameter>
<ownedParameter xmi:id="_myzvMWEMEeCdEc4VzBeWeQ" name="arrayCount" type="_dTlbsGEMEeCdEc4VzBeWeQ"/>
</ownedOperation>
<ownedOperation xmi:id="_my85IGEMEeCdEc4VzBeWeQ" name="createArraySignature" visibility="public" isStatic="true">
<ownedComment xmi:id="_my85IWEMEeCdEc4VzBeWeQ">
<body>
* Creates a new type signature with the given amount of array nesting added
* to the given type signature.
*
* @param typeSignature the type signature
* @param arrayCount the desired number of levels of array nesting
* @return the encoded array type signature
</body>
</ownedComment>
<ownedParameter xmi:id="_my85ImEMEeCdEc4VzBeWeQ" type="_dSiS02EMEeCdEc4VzBeWeQ" direction="return"/>
<ownedParameter xmi:id="_mzGqIGEMEeCdEc4VzBeWeQ" name="typeSignature" type="_dSiS02EMEeCdEc4VzBeWeQ"/>
<ownedParameter xmi:id="_mzGqIWEMEeCdEc4VzBeWeQ" name="arrayCount" type="_dTlbsGEMEeCdEc4VzBeWeQ"/>
</ownedOperation>
<ownedOperation xmi:id="_mzGqImEMEeCdEc4VzBeWeQ" name="createMethodSignature" visibility="public" isStatic="true">
<ownedComment xmi:id="_mzGqI2EMEeCdEc4VzBeWeQ">
<body>
* Creates a method signature from the given parameter and return type
* signatures. The encoded method signature is dot-based.
*
* @param parameterTypes the list of parameter type signatures
* @param returnType the return type signature
* @return the encoded method signature
*
* @since 2.0
</body>
</ownedComment>
<ownedParameter xmi:id="_mzQbIGEMEeCdEc4VzBeWeQ" type="_dUn9g2EMEeCdEc4VzBeWeQ" direction="return">
<upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_mzZlEWEMEeCdEc4VzBeWeQ" value="*"/>
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_mzZlEGEMEeCdEc4VzBeWeQ"/>
</ownedParameter>
<ownedParameter xmi:id="_mzZlEmEMEeCdEc4VzBeWeQ" name="parameterTypes" type="_dUn9g2EMEeCdEc4VzBeWeQ">
<upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_mzjWEWEMEeCdEc4VzBeWeQ" value="*"/>
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_mzjWEGEMEeCdEc4VzBeWeQ"/>
</ownedParameter>
<ownedParameter xmi:id="_mzsgAGEMEeCdEc4VzBeWeQ" name="returnType" type="_dUn9g2EMEeCdEc4VzBeWeQ">
<upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_mz2RAGEMEeCdEc4VzBeWeQ" value="*"/>
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_mzsgAWEMEeCdEc4VzBeWeQ"/>
</ownedParameter>
</ownedOperation>
<ownedOperation xmi:id="_mz2RAWEMEeCdEc4VzBeWeQ" name="createMethodSignature" visibility="public" isStatic="true">
<ownedComment xmi:id="_mz2RAmEMEeCdEc4VzBeWeQ">
<body>
* Creates a method signature from the given parameter and return type
* signatures. The encoded method signature is dot-based. This method
* is equivalent to
* &lt;code>createMethodSignature(parameterTypes, returnType)&lt;/code>.
*
* @param parameterTypes the list of parameter type signatures
* @param returnType the return type signature
* @return the encoded method signature
* @see Signature#createMethodSignature(char[][], char[])
</body>
</ownedComment>
<ownedParameter xmi:id="_m0ACAGEMEeCdEc4VzBeWeQ" type="_dSiS02EMEeCdEc4VzBeWeQ" direction="return"/>
<ownedParameter xmi:id="_m0ACAWEMEeCdEc4VzBeWeQ" name="parameterTypes" type="_dSiS02EMEeCdEc4VzBeWeQ">
<upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_m0JL8WEMEeCdEc4VzBeWeQ" value="*"/>
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_m0JL8GEMEeCdEc4VzBeWeQ"/>
</ownedParameter>
<ownedParameter xmi:id="_m0S88GEMEeCdEc4VzBeWeQ" name="returnType" type="_dSiS02EMEeCdEc4VzBeWeQ"/>
</ownedOperation>
<ownedOperation xmi:id="_m0S88WEMEeCdEc4VzBeWeQ" name="createTypeParameterSignature" visibility="public" isStatic="true">
<ownedComment xmi:id="_m0S88mEMEeCdEc4VzBeWeQ">
<body>
* Creates a new type parameter signature with the given name and bounds.
*
* @param typeParameterName the type parameter name
* @param boundSignatures the signatures of associated bounds or empty array if none
* @return the encoded type parameter signature
*
* @since 3.1
</body>
</ownedComment>
<ownedParameter xmi:id="_m0ct8GEMEeCdEc4VzBeWeQ" type="_dUn9g2EMEeCdEc4VzBeWeQ" direction="return">
<upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_m0l34GEMEeCdEc4VzBeWeQ" value="*"/>
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_m0ct8WEMEeCdEc4VzBeWeQ"/>
</ownedParameter>
<ownedParameter xmi:id="_m0l34WEMEeCdEc4VzBeWeQ" name="typeParameterName" type="_dUn9g2EMEeCdEc4VzBeWeQ">
<upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_m0vo4WEMEeCdEc4VzBeWeQ" value="*"/>
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_m0vo4GEMEeCdEc4VzBeWeQ"/>
</ownedParameter>
<ownedParameter xmi:id="_m0vo4mEMEeCdEc4VzBeWeQ" name="boundSignatures" type="_dUn9g2EMEeCdEc4VzBeWeQ">
<upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_m04y0WEMEeCdEc4VzBeWeQ" value="*"/>
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_m04y0GEMEeCdEc4VzBeWeQ"/>
</ownedParameter>
</ownedOperation>
<ownedOperation xmi:id="_m1Cj0GEMEeCdEc4VzBeWeQ" name="createTypeParameterSignature" visibility="public" isStatic="true">
<ownedComment xmi:id="_m1Cj0WEMEeCdEc4VzBeWeQ">
<body>
* Creates a new type parameter signature with the given name and bounds.
*
* @param typeParameterName the type parameter name
* @param boundSignatures the signatures of associated bounds or empty array if none
* @return the encoded type parameter signature
*
* @since 3.1
</body>
</ownedComment>
<ownedParameter xmi:id="_m1Cj0mEMEeCdEc4VzBeWeQ" type="_dSiS02EMEeCdEc4VzBeWeQ" direction="return"/>
<ownedParameter xmi:id="_m1MU0GEMEeCdEc4VzBeWeQ" name="typeParameterName" type="_dSiS02EMEeCdEc4VzBeWeQ"/>
<ownedParameter xmi:id="_m1MU0WEMEeCdEc4VzBeWeQ" name="boundSignatures" type="_dSiS02EMEeCdEc4VzBeWeQ">
<upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_m1fPwGEMEeCdEc4VzBeWeQ" value="*"/>
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_m1VewGEMEeCdEc4VzBeWeQ"/>
</ownedParameter>
</ownedOperation>
<ownedOperation xmi:id="_m1fPwWEMEeCdEc4VzBeWeQ" name="createTypeSignature" visibility="public" isStatic="true">
<ownedComment xmi:id="_m1fPwmEMEeCdEc4VzBeWeQ">
<body>
* Creates a new type signature from the given type name encoded as a character
* array. The type name may contain primitive types, array types or parameterized types.
* This method is equivalent to
* &lt;code>createTypeSignature(new String(typeName),isResolved)&lt;/code>, although
* more efficient for callers with character arrays rather than strings. If the
* type name is qualified, then it is expected to be dot-based.
*
* @param typeName the possibly qualified type name
* @param isResolved &lt;code>true&lt;/code> if the type name is to be considered
* resolved (for example, a type name from a binary class file), and
* &lt;code>false&lt;/code> if the type name is to be considered unresolved
* (for example, a type name found in source code)
* @return the encoded type signature
* @see #createTypeSignature(java.lang.String,boolean)
</body>
</ownedComment>
<ownedParameter xmi:id="_m1pAwGEMEeCdEc4VzBeWeQ" type="_dSiS02EMEeCdEc4VzBeWeQ" direction="return"/>
<ownedParameter xmi:id="_m1yKsGEMEeCdEc4VzBeWeQ" name="typeName" type="_dUn9g2EMEeCdEc4VzBeWeQ">
<upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_m177sGEMEeCdEc4VzBeWeQ" value="*"/>
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_m1yKsWEMEeCdEc4VzBeWeQ"/>
</ownedParameter>
<ownedParameter xmi:id="_m177sWEMEeCdEc4VzBeWeQ" name="isResolved" type="_dVOadGEMEeCdEc4VzBeWeQ"/>
</ownedOperation>
<ownedOperation xmi:id="_m177smEMEeCdEc4VzBeWeQ" name="createCharArrayTypeSignature" visibility="public" isStatic="true">
<ownedComment xmi:id="_m177s2EMEeCdEc4VzBeWeQ">
<body>
* Creates a new type signature from the given type name encoded as a character
* array. The type name may contain primitive types or array types or parameterized types.
* This method is equivalent to
* &lt;code>createTypeSignature(new String(typeName),isResolved).toCharArray()&lt;/code>,
* although more efficient for callers with character arrays rather than strings.
* If the type name is qualified, then it is expected to be dot-based.
*
* @param typeName the possibly qualified type name
* @param isResolved &lt;code>true&lt;/code> if the type name is to be considered
* resolved (for example, a type name from a binary class file), and
* &lt;code>false&lt;/code> if the type name is to be considered unresolved
* (for example, a type name found in source code)
* @return the encoded type signature
* @see #createTypeSignature(java.lang.String,boolean)
*
* @since 2.0
</body>
</ownedComment>
<ownedParameter xmi:id="_m2FFoGEMEeCdEc4VzBeWeQ" type="_dUn9g2EMEeCdEc4VzBeWeQ" direction="return">
<upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_m2O2oGEMEeCdEc4VzBeWeQ" value="*"/>
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_m2FFoWEMEeCdEc4VzBeWeQ"/>
</ownedParameter>
<ownedParameter xmi:id="_m2O2oWEMEeCdEc4VzBeWeQ" name="typeName" type="_dUn9g2EMEeCdEc4VzBeWeQ">
<upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_m2YnoWEMEeCdEc4VzBeWeQ" value="*"/>
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_m2YnoGEMEeCdEc4VzBeWeQ"/>
</ownedParameter>
<ownedParameter xmi:id="_m2hxkGEMEeCdEc4VzBeWeQ" name="isResolved" type="_dVOadGEMEeCdEc4VzBeWeQ"/>
</ownedOperation>
<ownedOperation xmi:id="_m2hxkWEMEeCdEc4VzBeWeQ" name="consumeWhitespace" visibility="private" isStatic="true">
<ownedParameter xmi:id="_m2rikGEMEeCdEc4VzBeWeQ" type="_dTlbsGEMEeCdEc4VzBeWeQ" direction="return"/>
<ownedParameter xmi:id="_m2rikWEMEeCdEc4VzBeWeQ" name="typeName" type="_dUn9g2EMEeCdEc4VzBeWeQ">
<upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_m21TkGEMEeCdEc4VzBeWeQ" value="*"/>
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_m2rikmEMEeCdEc4VzBeWeQ"/>
</ownedParameter>
<ownedParameter xmi:id="_m21TkWEMEeCdEc4VzBeWeQ" name="pos" type="_dTlbsGEMEeCdEc4VzBeWeQ"/>
<ownedParameter xmi:id="_m2-dgGEMEeCdEc4VzBeWeQ" name="length" type="_dTlbsGEMEeCdEc4VzBeWeQ"/>
</ownedOperation>
</packagedElement>
<packagedElement xmi:type="uml:Class" xmi:id="_m3uEYGEMEeCdEc4VzBeWeQ" name="SourceRange" clientDependency="_m3uEYmEMEeCdEc4VzBeWeQ" isLeaf="true">
<ownedComment xmi:id="_m3uEYWEMEeCdEc4VzBeWeQ">
<body>
* A source range defines an element's source coordinates relative to
* its source buffer.
*
* @see ISourceRange
* @since 3.6
</body>
</ownedComment>
<ownedAttribute xmi:id="_m4drQGEMEeCdEc4VzBeWeQ" name="offset" visibility="private" type="_dTlbsGEMEeCdEc4VzBeWeQ" isUnique="false"/>
<ownedAttribute xmi:id="_m4drQWEMEeCdEc4VzBeWeQ" name="length" visibility="private" type="_dTlbsGEMEeCdEc4VzBeWeQ" isUnique="false"/>
<interfaceRealization xmi:id="_m3uEYmEMEeCdEc4VzBeWeQ" name="SourceRange implements ISourceRange" supplier="_ktlvIGEMEeCdEc4VzBeWeQ" client="_m3uEYGEMEeCdEc4VzBeWeQ" contract="_ktlvIGEMEeCdEc4VzBeWeQ"/>
<ownedOperation xmi:id="_m4KwUGEMEeCdEc4VzBeWeQ" name="isAvailable" visibility="public" isStatic="true">
<ownedComment xmi:id="_m4KwUWEMEeCdEc4VzBeWeQ">
<body>
* Helper method that answers whether a valid source range is available
* in the given ISourceRange. When an element has no associated source
* code, Java Model APIs may return either &lt;code>null&lt;/code> or a range of
* [-1, 0] to indicate an invalid range. This utility method can be used
* to detect that case.
*
* @param range a source range, can be &lt;code>null&lt;/code>
* @return &lt;code>true&lt;/code> iff range is not null and range.getOffset() is not -1
</body>
</ownedComment>
<ownedParameter xmi:id="_m4UhUGEMEeCdEc4VzBeWeQ" type="_dVOadGEMEeCdEc4VzBeWeQ" direction="return"/>
<ownedParameter xmi:id="_m4UhUWEMEeCdEc4VzBeWeQ" name="range" type="_ktlvIGEMEeCdEc4VzBeWeQ"/>
</ownedOperation>
<ownedOperation xmi:id="_m46XMGEMEeCdEc4VzBeWeQ" name="equals" visibility="public">
<ownedParameter xmi:id="_m46XMWEMEeCdEc4VzBeWeQ" type="_dVOadGEMEeCdEc4VzBeWeQ" direction="return"/>
<ownedParameter xmi:id="_m5EIMGEMEeCdEc4VzBeWeQ" name="obj" type="_kOcVAmEMEeCdEc4VzBeWeQ"/>
</ownedOperation>
<ownedOperation xmi:id="_m5EIMWEMEeCdEc4VzBeWeQ" name="getLength" visibility="public">
<ownedComment xmi:id="_m5EIMmEMEeCdEc4VzBeWeQ">
<body>
* @see ISourceRange
</body>
</ownedComment>
<ownedParameter xmi:id="_m5N5MGEMEeCdEc4VzBeWeQ" type="_dTlbsGEMEeCdEc4VzBeWeQ" direction="return"/>
</ownedOperation>
<ownedOperation xmi:id="_m5N5MWEMEeCdEc4VzBeWeQ" name="getOffset" visibility="public">
<ownedComment xmi:id="_m5N5MmEMEeCdEc4VzBeWeQ">
<body>
* @see ISourceRange
</body>
</ownedComment>
<ownedParameter xmi:id="_m5g0IGEMEeCdEc4VzBeWeQ" type="_dTlbsGEMEeCdEc4VzBeWeQ" direction="return"/>
</ownedOperation>
<ownedOperation xmi:id="_m5g0IWEMEeCdEc4VzBeWeQ" name="hashCode" visibility="public">
<ownedParameter xmi:id="_m5g0ImEMEeCdEc4VzBeWeQ" type="_dTlbsGEMEeCdEc4VzBeWeQ" direction="return"/>
</ownedOperation>
<ownedOperation xmi:id="_m5p-EGEMEeCdEc4VzBeWeQ" name="toString" visibility="public">
<ownedParameter xmi:id="_m5p-EWEMEeCdEc4VzBeWeQ" type="_dSiS02EMEeCdEc4VzBeWeQ" direction="return"/>
</ownedOperation>
</packagedElement>
<packagedElement xmi:type="uml:Class" xmi:id="_m8yxoGEMEeCdEc4VzBeWeQ" name="ToolFactory">
<ownedComment xmi:id="_m877kGEMEeCdEc4VzBeWeQ">
<body>
* Factory for creating various compiler tools, such as scanners, parsers and compilers.
* &lt;p>
* This class provides static methods only.
* &lt;/p>
*
* @since 2.0
* @noinstantiate This class is not intended to be instantiated by clients.
* @noextend This class is not intended to be subclassed by clients.
</body>
</ownedComment>
<ownedAttribute xmi:id="_m877kWEMEeCdEc4VzBeWeQ" name="M_FORMAT_NEW" visibility="public" isLeaf="true" isStatic="true" type="_dTlbsGEMEeCdEc4VzBeWeQ" isUnique="false">
<ownedComment xmi:id="_m9FskGEMEeCdEc4VzBeWeQ">
<body>
* This mode is used for formatting new code when some formatter options should not be used.
* In particular, options that preserve the indentation of comments are not used.
* In the future, newly added options may be ignored as well.
* &lt;p>Clients that are formatting new code are recommended to use this mode.
* &lt;/p>
*
* @see DefaultCodeFormatterConstants#FORMATTER_NEVER_INDENT_BLOCK_COMMENTS_ON_FIRST_COLUMN
* @see DefaultCodeFormatterConstants#FORMATTER_NEVER_INDENT_LINE_COMMENTS_ON_FIRST_COLUMN
* @see #createCodeFormatter(Map, int)
* @since 3.3
</body>
</ownedComment>
</ownedAttribute>
<ownedAttribute xmi:id="_m9FskWEMEeCdEc4VzBeWeQ" name="M_FORMAT_EXISTING" visibility="public" isLeaf="true" isStatic="true" type="_dTlbsGEMEeCdEc4VzBeWeQ" isUnique="false">
<ownedComment xmi:id="_m9O2gGEMEeCdEc4VzBeWeQ">
<body>
* This mode is used for formatting existing code when all formatter options should be used.
* In particular, options that preserve the indentation of comments are used.
* &lt;p>Clients that are formatting existing code are recommended to use this mode.
* &lt;/p>
*
* @see DefaultCodeFormatterConstants#FORMATTER_NEVER_INDENT_BLOCK_COMMENTS_ON_FIRST_COLUMN
* @see DefaultCodeFormatterConstants#FORMATTER_NEVER_INDENT_LINE_COMMENTS_ON_FIRST_COLUMN
* @see #createCodeFormatter(Map, int)
* @since 3.3
</body>
</ownedComment>
</ownedAttribute>
<ownedOperation xmi:id="_m9YngGEMEeCdEc4VzBeWeQ" name="createCodeFormatter" visibility="public" isStatic="true">
<ownedComment xmi:id="_m9YngWEMEeCdEc4VzBeWeQ">
<body>
* Create an instance of a code formatter. A code formatter implementation can be contributed via the
* extension point &quot;org.eclipse.jdt.core.codeFormatter&quot;. If unable to find a registered extension, the factory
* will default to using the default code formatter.
*
* @return an instance of a code formatter
* @see ICodeFormatter
* @see ToolFactory#createDefaultCodeFormatter(Map)
* @deprecated The extension point has been deprecated, use {@link #createCodeFormatter(Map)} instead.
</body>
</ownedComment>
<ownedParameter xmi:id="_m9iYgGEMEeCdEc4VzBeWeQ" type="_j-M5kGEMEeCdEc4VzBeWeQ" direction="return"/>
</ownedOperation>
<ownedOperation xmi:id="_m9ricGEMEeCdEc4VzBeWeQ" name="createCodeFormatter" visibility="public" isStatic="true">
<ownedComment xmi:id="_m9ricWEMEeCdEc4VzBeWeQ">
<body>
* Create an instance of the built-in code formatter.
* &lt;p>The given options should at least provide the source level ({@link JavaCore#COMPILER_SOURCE}),
* the compiler compliance level ({@link JavaCore#COMPILER_COMPLIANCE}) and the target platform
* ({@link JavaCore#COMPILER_CODEGEN_TARGET_PLATFORM}).
* Without these options, it is not possible for the code formatter to know what kind of source it needs to format.
* &lt;/p>&lt;p>
* Note this is equivalent to &lt;code>createCodeFormatter(options, M_FORMAT_NEW)&lt;/code>. Thus some code formatter options
* may be ignored. See @{link {@link #M_FORMAT_NEW} for more details.
* &lt;/p>
* @param options - the options map to use for formatting with the default code formatter. Recognized options
* are documented on &lt;code>JavaCore#getDefaultOptions()&lt;/code>. If set to &lt;code>null&lt;/code>, then use
* the current settings from &lt;code>JavaCore#getOptions&lt;/code>.
* @return an instance of the built-in code formatter
* @see CodeFormatter
* @see JavaCore#getOptions()
* @since 3.0
</body>
</ownedComment>
<ownedParameter xmi:id="_nAEIEGEMEeCdEc4VzBeWeQ" type="_m_UhMWEMEeCdEc4VzBeWeQ" direction="return"/>
<ownedParameter xmi:id="_nAXqEGEMEeCdEc4VzBeWeQ" name="options" type="_l1aS0WEMEeCdEc4VzBeWeQ"/>
</ownedOperation>
<ownedOperation xmi:id="_nAqlAGEMEeCdEc4VzBeWeQ" name="createCodeFormatter" visibility="public" isStatic="true">
<ownedComment xmi:id="_nAzu8GEMEeCdEc4VzBeWeQ">
<body>
* Create an instance of the built-in code formatter.
* &lt;p>The given options should at least provide the source level ({@link JavaCore#COMPILER_SOURCE}),
* the compiler compliance level ({@link JavaCore#COMPILER_COMPLIANCE}) and the target platform
* ({@link JavaCore#COMPILER_CODEGEN_TARGET_PLATFORM}).
* Without these options, it is not possible for the code formatter to know what kind of source it needs to format.
* &lt;/p>
* &lt;p>The given mode determines what options should be enabled when formatting the code. It can have the following
* values: {@link #M_FORMAT_NEW}, {@link #M_FORMAT_EXISTING}, but other values may be added in the future.
* &lt;/p>
*
* @param options the options map to use for formatting with the default code formatter. Recognized options
* are documented on &lt;code>JavaCore#getDefaultOptions()&lt;/code>. If set to &lt;code>null&lt;/code>, then use
* the current settings from &lt;code>JavaCore#getOptions&lt;/code>.
* @param mode the given mode to modify the given options.
*
* @return an instance of the built-in code formatter
* @see CodeFormatter
* @see JavaCore#getOptions()
* @since 3.3
</body>
</ownedComment>
<ownedParameter xmi:id="_nBHQ8GEMEeCdEc4VzBeWeQ" type="_m_UhMWEMEeCdEc4VzBeWeQ" direction="return"/>
<ownedParameter xmi:id="_nBHQ8WEMEeCdEc4VzBeWeQ" name="options" type="_l1aS0WEMEeCdEc4VzBeWeQ"/>
<ownedParameter xmi:id="_nBaL4GEMEeCdEc4VzBeWeQ" name="mode" type="_dTlbsGEMEeCdEc4VzBeWeQ"/>
</ownedOperation>
<ownedOperation xmi:id="_nBaL4WEMEeCdEc4VzBeWeQ" name="createDefaultClassFileBytesDisassembler" visibility="public" isStatic="true">
<ownedComment xmi:id="_nBaL4mEMEeCdEc4VzBeWeQ">
<body>
* Create a classfile bytecode disassembler, able to produce a String representation of a given classfile.
*
* @return a classfile bytecode disassembler
* @see ClassFileBytesDisassembler
* @since 2.1
</body>
</ownedComment>
<ownedParameter xmi:id="_nBtG0GEMEeCdEc4VzBeWeQ" type="_nBj84WEMEeCdEc4VzBeWeQ" direction="return"/>
</ownedOperation>
<ownedOperation xmi:id="_nBtG0WEMEeCdEc4VzBeWeQ" name="createDefaultClassFileDisassembler" visibility="public" isStatic="true">
<ownedComment xmi:id="_nBtG0mEMEeCdEc4VzBeWeQ">
<body>
* Create a classfile bytecode disassembler, able to produce a String representation of a given classfile.
*
* @return a classfile bytecode disassembler
* @see org.eclipse.jdt.core.util.IClassFileDisassembler
* @deprecated Use {@link #createDefaultClassFileBytesDisassembler()} instead
</body>
</ownedComment>
<ownedParameter xmi:id="_nC5ZoGEMEeCdEc4VzBeWeQ" type="_nCwPsWEMEeCdEc4VzBeWeQ" direction="return"/>
</ownedOperation>
<ownedOperation xmi:id="_nC5ZoWEMEeCdEc4VzBeWeQ" name="createDefaultClassFileReader" visibility="public" isStatic="true">
<ownedComment xmi:id="_nC5ZomEMEeCdEc4VzBeWeQ">
<body>
* Create a classfile reader onto a classfile Java element.
* Create a default classfile reader, able to expose the internal representation of a given classfile
* according to the decoding flag used to initialize the reader.
* Answer null if the file named fileName doesn't represent a valid .class file.
*
* The decoding flags are described in IClassFileReader.
*
* @param classfile the classfile element to introspect
* @param decodingFlag the flag used to decode the class file reader.
* @return a default classfile reader
*
* @see IClassFileReader
</body>
</ownedComment>
<ownedParameter xmi:id="_nDDKoWEMEeCdEc4VzBeWeQ" type="_nDDKoGEMEeCdEc4VzBeWeQ" direction="return"/>
<ownedParameter xmi:id="_nDMUkGEMEeCdEc4VzBeWeQ" name="classfile" type="_j2Jw0GEMEeCdEc4VzBeWeQ"/>
<ownedParameter xmi:id="_nDpAgGEMEeCdEc4VzBeWeQ" name="decodingFlag" type="_dTlbsGEMEeCdEc4VzBeWeQ"/>
</ownedOperation>
<ownedOperation xmi:id="_nDyxgWEMEeCdEc4VzBeWeQ" name="createDefaultClassFileReader" visibility="public" isStatic="true">
<ownedComment xmi:id="_nDyxgmEMEeCdEc4VzBeWeQ">
<body>
* Create a default classfile reader, able to expose the internal representation of a given classfile
* according to the decoding flag used to initialize the reader.
* Answer null if the input stream contents cannot be retrieved
*
* The decoding flags are described in IClassFileReader.
*
* @param stream the given input stream to read
* @param decodingFlag the flag used to decode the class file reader.
* @return a default classfile reader
*
* @see IClassFileReader
* @since 3.2
</body>
</ownedComment>
<ownedParameter xmi:id="_nD8igGEMEeCdEc4VzBeWeQ" type="_nDDKoGEMEeCdEc4VzBeWeQ" direction="return"/>
<ownedParameter xmi:id="_nEFscGEMEeCdEc4VzBeWeQ" name="stream" type="_nDyxgGEMEeCdEc4VzBeWeQ"/>
<ownedParameter xmi:id="_nEYnYGEMEeCdEc4VzBeWeQ" name="decodingFlag" type="_dTlbsGEMEeCdEc4VzBeWeQ"/>
</ownedOperation>
<ownedOperation xmi:id="_nEYnYWEMEeCdEc4VzBeWeQ" name="createDefaultClassFileReader" visibility="public" isStatic="true">
<ownedComment xmi:id="_nE_EUGEMEeCdEc4VzBeWeQ">
<body>
* Create a default classfile reader, able to expose the internal representation of a given classfile
* according to the decoding flag used to initialize the reader.
* Answer null if the file named fileName doesn't represent a valid .class file.
* The fileName has to be an absolute OS path to the given .class file.
*
* The decoding flags are described in IClassFileReader.
*
* @param fileName the name of the file to be read
* @param decodingFlag the flag used to decode the class file reader.
* @return a default classfile reader
*
* @see IClassFileReader
</body>
</ownedComment>
<ownedParameter xmi:id="_nFI1UGEMEeCdEc4VzBeWeQ" type="_nDDKoGEMEeCdEc4VzBeWeQ" direction="return"/>
<ownedParameter xmi:id="_nFR_QGEMEeCdEc4VzBeWeQ" name="fileName" type="_dSiS02EMEeCdEc4VzBeWeQ"/>
<ownedParameter xmi:id="_nFR_QWEMEeCdEc4VzBeWeQ" name="decodingFlag" type="_dTlbsGEMEeCdEc4VzBeWeQ"/>
</ownedOperation>
<ownedOperation xmi:id="_nFbwQGEMEeCdEc4VzBeWeQ" name="createDefaultClassFileReader" visibility="public" isStatic="true">
<ownedComment xmi:id="_nFbwQWEMEeCdEc4VzBeWeQ">
<body>
* Create a default classfile reader, able to expose the internal representation of a given classfile
* according to the decoding flag used to initialize the reader.
* Answer null if the file named zipFileName doesn't represent a valid zip file or if the zipEntryName
* is not a valid entry name for the specified zip file or if the bytes don't represent a valid
* .class file according to the JVM specifications.
*
* The decoding flags are described in IClassFileReader.
*
* @param zipFileName the name of the zip file
* @param zipEntryName the name of the entry in the zip file to be read
* @param decodingFlag the flag used to decode the class file reader.
* @return a default classfile reader
* @see IClassFileReader
</body>
</ownedComment>
<ownedParameter xmi:id="_nFbwQmEMEeCdEc4VzBeWeQ" type="_nDDKoGEMEeCdEc4VzBeWeQ" direction="return"/>
<ownedParameter xmi:id="_nFurMGEMEeCdEc4VzBeWeQ" name="zipFileName" type="_dSiS02EMEeCdEc4VzBeWeQ"/>
<ownedParameter xmi:id="_nFurMWEMEeCdEc4VzBeWeQ" name="zipEntryName" type="_dSiS02EMEeCdEc4VzBeWeQ"/>
<ownedParameter xmi:id="_nF4cMGEMEeCdEc4VzBeWeQ" name="decodingFlag" type="_dTlbsGEMEeCdEc4VzBeWeQ"/>
</ownedOperation>
<ownedOperation xmi:id="_nF4cMWEMEeCdEc4VzBeWeQ" name="createDefaultCodeFormatter" visibility="public" isStatic="true">
<ownedComment xmi:id="_nF4cMmEMEeCdEc4VzBeWeQ">
<body>
* Create an instance of the default code formatter.
*
* @param options - the options map to use for formatting with the default code formatter. Recognized options
* are documented on &lt;code>JavaCore#getDefaultOptions()&lt;/code>. If set to &lt;code>null&lt;/code>, then use
* the current settings from &lt;code>JavaCore#getOptions&lt;/code>.
* @return an instance of the built-in code formatter
* @see ICodeFormatter
* @see ToolFactory#createCodeFormatter()
* @see JavaCore#getOptions()
* @deprecated Use {@link #createCodeFormatter(Map)} instead but note the different options
</body>
</ownedComment>
<ownedParameter xmi:id="_nGBmIGEMEeCdEc4VzBeWeQ" type="_j-M5kGEMEeCdEc4VzBeWeQ" direction="return"/>
<ownedParameter xmi:id="_nGLXIGEMEeCdEc4VzBeWeQ" name="options" type="_l1aS0WEMEeCdEc4VzBeWeQ"/>
</ownedOperation>
<ownedOperation xmi:id="_nGLXIWEMEeCdEc4VzBeWeQ" name="createScanner" visibility="public" isStatic="true">
<ownedComment xmi:id="_nGLXImEMEeCdEc4VzBeWeQ">
<body>
* Create a scanner, indicating the level of detail requested for tokenizing. The scanner can then be
* used to tokenize some source in a Java aware way.
* Here is a typical scanning loop:
*
* &lt;code>
* &lt;pre>
* IScanner scanner = ToolFactory.createScanner(false, false, false, false);
* scanner.setSource(&quot;int i = 0;&quot;.toCharArray());
* while (true) {
* int token = scanner.getNextToken();
* if (token == ITerminalSymbols.TokenNameEOF) break;
* System.out.println(token + &quot; : &quot; + new String(scanner.getCurrentTokenSource()));
* }
* &lt;/pre>
* &lt;/code>
*
* &lt;p>By default the compliance used to create the scanner is the workspace's compliance when running inside the IDE
* or 1.4 if running from outside of a headless eclipse.
* &lt;/p>
*
* @param tokenizeComments if set to &lt;code>false&lt;/code>, comments will be silently consumed
* @param tokenizeWhiteSpace if set to &lt;code>false&lt;/code>, white spaces will be silently consumed,
* @param assertMode if set to &lt;code>false&lt;/code>, occurrences of 'assert' will be reported as identifiers
* ({@link ITerminalSymbols#TokenNameIdentifier}), whereas if set to &lt;code>true&lt;/code>, it
* would report assert keywords ({@link ITerminalSymbols#TokenNameassert}). Java 1.4 has introduced
* a new 'assert' keyword.
* @param recordLineSeparator if set to &lt;code>true&lt;/code>, the scanner will record positions of encountered line
* separator ends. In case of multi-character line separators, the last character position is considered. These positions
* can then be extracted using {@link IScanner#getLineEnds()}. Only non-unicode escape sequences are
* considered as valid line separators.
* @return a scanner
* @see org.eclipse.jdt.core.compiler.IScanner
* @see #createScanner(boolean, boolean, boolean, String, String)
</body>
</ownedComment>
<ownedParameter xmi:id="_nGVIIWEMEeCdEc4VzBeWeQ" type="_nGVIIGEMEeCdEc4VzBeWeQ" direction="return"/>
<ownedParameter xmi:id="_nGeSEGEMEeCdEc4VzBeWeQ" name="tokenizeComments" type="_dVOadGEMEeCdEc4VzBeWeQ"/>
<ownedParameter xmi:id="_nGeSEWEMEeCdEc4VzBeWeQ" name="tokenizeWhiteSpace" type="_dVOadGEMEeCdEc4VzBeWeQ"/>
<ownedParameter xmi:id="_nGoDEGEMEeCdEc4VzBeWeQ" name="assertMode" type="_dVOadGEMEeCdEc4VzBeWeQ"/>
<ownedParameter xmi:id="_nGoDEWEMEeCdEc4VzBeWeQ" name="recordLineSeparator" type="_dVOadGEMEeCdEc4VzBeWeQ"/>
</ownedOperation>
<ownedOperation xmi:id="_nGxNAGEMEeCdEc4VzBeWeQ" name="createScanner" visibility="public" isStatic="true">
<ownedComment xmi:id="_nGxNAWEMEeCdEc4VzBeWeQ">
<body>
* Create a scanner, indicating the level of detail requested for tokenizing. The scanner can then be
* used to tokenize some source in a Java aware way.
* Here is a typical scanning loop:
*
* &lt;code>
* &lt;pre>
* IScanner scanner = ToolFactory.createScanner(false, false, false, false);
* scanner.setSource(&quot;int i = 0;&quot;.toCharArray());
* while (true) {
* int token = scanner.getNextToken();
* if (token == ITerminalSymbols.TokenNameEOF) break;
* System.out.println(token + &quot; : &quot; + new String(scanner.getCurrentTokenSource()));
* }
* &lt;/pre>
* &lt;/code>
*
* &lt;p>By default the compliance used to create the scanner is the workspace's compliance when running inside the IDE
* or 1.4 if running from outside of a headless eclipse.
* &lt;/p>
*
* @param tokenizeComments if set to &lt;code>false&lt;/code>, comments will be silently consumed
* @param tokenizeWhiteSpace if set to &lt;code>false&lt;/code>, white spaces will be silently consumed,
* @param recordLineSeparator if set to &lt;code>true&lt;/code>, the scanner will record positions of encountered line
* separator ends. In case of multi-character line separators, the last character position is considered. These positions
* can then be extracted using {@link IScanner#getLineEnds()}. Only non-unicode escape sequences are
* considered as valid line separators.
* @param sourceLevel if set to &lt;code>&amp;quot;1.3&amp;quot;&lt;/code> or &lt;code>null&lt;/code>, occurrences of 'assert' will be reported as identifiers
* ({@link ITerminalSymbols#TokenNameIdentifier}), whereas if set to &lt;code>&amp;quot;1.4&amp;quot;&lt;/code>, it
* would report assert keywords ({@link ITerminalSymbols#TokenNameassert}). Java 1.4 has introduced
* a new 'assert' keyword.
* @return a scanner
* @see org.eclipse.jdt.core.compiler.IScanner
* @see #createScanner(boolean, boolean, boolean, String, String)
* @since 3.0
</body>
</ownedComment>
<ownedParameter xmi:id="_nG6-AGEMEeCdEc4VzBeWeQ" type="_nGVIIGEMEeCdEc4VzBeWeQ" direction="return"/>
<ownedParameter xmi:id="_nHEvAGEMEeCdEc4VzBeWeQ" name="tokenizeComments" type="_dVOadGEMEeCdEc4VzBeWeQ"/>
<ownedParameter xmi:id="_nHEvAWEMEeCdEc4VzBeWeQ" name="tokenizeWhiteSpace" type="_dVOadGEMEeCdEc4VzBeWeQ"/>
<ownedParameter xmi:id="_nHN48GEMEeCdEc4VzBeWeQ" name="recordLineSeparator" type="_dVOadGEMEeCdEc4VzBeWeQ"/>
<ownedParameter xmi:id="_nHXp8GEMEeCdEc4VzBeWeQ" name="sourceLevel" type="_dSiS02EMEeCdEc4VzBeWeQ"/>
</ownedOperation>
<ownedOperation xmi:id="_nH0V4GEMEeCdEc4VzBeWeQ" name="createScanner" visibility="public" isStatic="true">
<ownedComment xmi:id="_nH0V4WEMEeCdEc4VzBeWeQ">
<body>
* Create a scanner, indicating the level of detail requested for tokenizing. The scanner can then be
* used to tokenize some source in a Java aware way.
* Here is a typical scanning loop:
*
* &lt;code>
* &lt;pre>
* IScanner scanner = ToolFactory.createScanner(false, false, false, false);
* scanner.setSource(&quot;int i = 0;&quot;.toCharArray());
* while (true) {
* int token = scanner.getNextToken();
* if (token == ITerminalSymbols.TokenNameEOF) break;
* System.out.println(token + &quot; : &quot; + new String(scanner.getCurrentTokenSource()));
* }
* &lt;/pre>
* &lt;/code>
*
* @param tokenizeComments if set to &lt;code>false&lt;/code>, comments will be silently consumed
* @param tokenizeWhiteSpace if set to &lt;code>false&lt;/code>, white spaces will be silently consumed,
* @param recordLineSeparator if set to &lt;code>true&lt;/code>, the scanner will record positions of encountered line
* separator ends. In case of multi-character line separators, the last character position is considered. These positions
* can then be extracted using {@link IScanner#getLineEnds()}. Only non-unicode escape sequences are
* considered as valid line separators.
* @param sourceLevel if set to &lt;code>&amp;quot;1.3&amp;quot;&lt;/code> or &lt;code>null&lt;/code>, occurrences of 'assert' will be reported as identifiers
* ({@link ITerminalSymbols#TokenNameIdentifier}), whereas if set to &lt;code>&amp;quot;1.4&amp;quot;&lt;/code>, it
* would report assert keywords ({@link ITerminalSymbols#TokenNameassert}). Java 1.4 has introduced
* a new 'assert' keyword.
* @param complianceLevel This is used to support the Unicode 4.0 character sets. if set to 1.5 or above,
* the Unicode 4.0 is supporte, otherwise Unicode 3.0 is supported.
* @return a scanner
* @see org.eclipse.jdt.core.compiler.IScanner
*
* @since 3.1
</body>
</ownedComment>
<ownedParameter xmi:id="_nH9f0GEMEeCdEc4VzBeWeQ" type="_nGVIIGEMEeCdEc4VzBeWeQ" direction="return"/>
<ownedParameter xmi:id="_nH9f0WEMEeCdEc4VzBeWeQ" name="tokenizeComments" type="_dVOadGEMEeCdEc4VzBeWeQ"/>
<ownedParameter xmi:id="_nIHQ0GEMEeCdEc4VzBeWeQ" name="tokenizeWhiteSpace" type="_dVOadGEMEeCdEc4VzBeWeQ"/>
<ownedParameter xmi:id="_nIHQ0WEMEeCdEc4VzBeWeQ" name="recordLineSeparator" type="_dVOadGEMEeCdEc4VzBeWeQ"/>
<ownedParameter xmi:id="_nIHQ0mEMEeCdEc4VzBeWeQ" name="sourceLevel" type="_dSiS02EMEeCdEc4VzBeWeQ"/>
<ownedParameter xmi:id="_nIRB0GEMEeCdEc4VzBeWeQ" name="complianceLevel" type="_dSiS02EMEeCdEc4VzBeWeQ"/>
</ownedOperation>
</packagedElement>
<packagedElement xmi:type="uml:Package" xmi:id="_m_UhMGEMEeCdEc4VzBeWeQ" name="formatter">
<packagedElement xmi:type="uml:Class" xmi:id="_m_UhMWEMEeCdEc4VzBeWeQ" name="CodeFormatter"/>
</packagedElement>
<packagedElement xmi:type="uml:Package" xmi:id="_nBj84GEMEeCdEc4VzBeWeQ" name="util">
<packagedElement xmi:type="uml:Class" xmi:id="_nBj84WEMEeCdEc4VzBeWeQ" name="ClassFileBytesDisassembler"/>
<packagedElement xmi:type="uml:Interface" xmi:id="_nDDKoGEMEeCdEc4VzBeWeQ" name="IClassFileReader"/>
</packagedElement>
<packagedElement xmi:type="uml:Package" xmi:id="_nB230GEMEeCdEc4VzBeWeQ" name="org">
<packagedElement xmi:type="uml:Package" xmi:id="_nCABwGEMEeCdEc4VzBeWeQ" name="eclipse">
<packagedElement xmi:type="uml:Package" xmi:id="_nCABwWEMEeCdEc4VzBeWeQ" name="jdt">
<packagedElement xmi:type="uml:Package" xmi:id="_nCABwmEMEeCdEc4VzBeWeQ" name="core">
<packagedElement xmi:type="uml:Package" xmi:id="_nCwPsGEMEeCdEc4VzBeWeQ" name="util">
<packagedElement xmi:type="uml:Interface" xmi:id="_nCwPsWEMEeCdEc4VzBeWeQ" name="IClassFileDisassembler"/>
</packagedElement>
</packagedElement>
</packagedElement>
</packagedElement>
</packagedElement>
<packagedElement xmi:type="uml:Class" xmi:id="_nI23sGEMEeCdEc4VzBeWeQ" name="WorkingCopyOwner" isAbstract="true">
<ownedComment xmi:id="_nI23sWEMEeCdEc4VzBeWeQ">
<body>
* The owner of an {@link ICompilationUnit} handle in working copy mode.
* An owner is used to identify a working copy and to create its buffer.
* &lt;p>
* Clients should subclass this class to instantiate a working copy owner that is specific to their need and that
* they can pass in to various APIs (e.g. {@link IType#resolveType(String, WorkingCopyOwner)}.
* Clients can also override the default implementation of {@link #createBuffer(ICompilationUnit)}.
* &lt;/p>&lt;p>
* Note: even though this class has no abstract method, which means that it provides functional default behavior,
* it is still an abstract class, as clients are intended to own their owner implementation.
* &lt;/p>
* @see ICompilationUnit#becomeWorkingCopy(org.eclipse.core.runtime.IProgressMonitor)
* @see ICompilationUnit#discardWorkingCopy()
* @see ICompilationUnit#getWorkingCopy(org.eclipse.core.runtime.IProgressMonitor)
* @since 3.0
</body>
</ownedComment>
<ownedOperation xmi:id="_nJAosGEMEeCdEc4VzBeWeQ" name="setPrimaryBufferProvider" visibility="public" isStatic="true">
<ownedComment xmi:id="_nJAosWEMEeCdEc4VzBeWeQ">
<body>
* Sets the buffer provider of the primary working copy owner. Note that even if the
* buffer provider is a working copy owner, only its &lt;code>createBuffer(ICompilationUnit)&lt;/code>
* method is used by the primary working copy owner. It doesn't replace the internal primary
* working owner.
* &lt;p>
* This method is for internal use by the jdt-related plug-ins.
* Clients outside of the jdt should not reference this method.
* &lt;/p>
*
* @param primaryBufferProvider the primary buffer provider
</body>
</ownedComment>
<ownedParameter xmi:id="_nJAosmEMEeCdEc4VzBeWeQ" name="primaryBufferProvider" type="_nI23sGEMEeCdEc4VzBeWeQ"/>
</ownedOperation>
<ownedOperation xmi:id="_nJJyoGEMEeCdEc4VzBeWeQ" name="createBuffer" visibility="public">
<ownedComment xmi:id="_nJJyoWEMEeCdEc4VzBeWeQ">
<body>
* Creates a buffer for the given working copy.
* The new buffer will be initialized with the contents of the underlying file
* if and only if it was not already initialized by the compilation owner (a buffer is
* uninitialized if its content is &lt;code>null&lt;/code>).
* &lt;p>
* Note: This buffer will be associated to the working copy for its entire life-cycle. Another
* working copy on same unit but owned by a different owner would not share the same buffer
* unless its owner decided to implement such a sharing behaviour.
* &lt;/p>
*
* @param workingCopy the working copy of the buffer
* @return IBuffer the created buffer for the given working copy
* @see IBuffer
</body>
</ownedComment>
<ownedParameter xmi:id="_nJJyomEMEeCdEc4VzBeWeQ" type="_j1aJ8GEMEeCdEc4VzBeWeQ" direction="return"/>
<ownedParameter xmi:id="_nJTjoGEMEeCdEc4VzBeWeQ" name="workingCopy" type="_j-plgGEMEeCdEc4VzBeWeQ"/>
</ownedOperation>
<ownedOperation xmi:id="_nJdUoGEMEeCdEc4VzBeWeQ" name="getProblemRequestor" visibility="public">
<ownedComment xmi:id="_nJdUoWEMEeCdEc4VzBeWeQ">
<body>
* Returns the problem requestor used by a working copy of this working copy owner.
* &lt;p>
* By default, no problem requestor is configured. Clients can override this
* method to provide a requestor.
* &lt;/p>
*
* @param workingCopy The problem requestor used for the given working copy.
* @return the problem requestor to be used by working copies of this working
* copy owner or &lt;code>null&lt;/code> if no problem requestor is configured.
*
* @since 3.3
</body>
</ownedComment>
<ownedParameter xmi:id="_nJdUomEMEeCdEc4VzBeWeQ" type="_krNJgGEMEeCdEc4VzBeWeQ" direction="return"/>
<ownedParameter xmi:id="_nJmekGEMEeCdEc4VzBeWeQ" name="workingCopy" type="_j-plgGEMEeCdEc4VzBeWeQ"/>
</ownedOperation>
<ownedOperation xmi:id="_nJwPkGEMEeCdEc4VzBeWeQ" name="findSource" visibility="public">
<ownedComment xmi:id="_nJwPkWEMEeCdEc4VzBeWeQ">
<body>
* Returns the source of the compilation unit that defines the given type in
* the given package, or &lt;code>null&lt;/code> if the type is unknown to this
* owner.
* &lt;p>This method is called before the normal lookup (i.e. before looking
* at the project's classpath and before looking at the working copies of this
* owner.)&lt;/p>
* &lt;p>This allows to provide types that are not normally available, or to hide
* types that would normally be available by returning an empty source for
* the given type and package.&lt;/p>
* &lt;p>Example of use:
* &lt;pre>
* WorkingCopyOwner owner = new WorkingCopyOwner() {
* public String findSource(String typeName, String packageName) {
* if (&quot;to.be&quot;.equals(packageName) &amp;&amp; &quot;Generated&quot;.equals(typeName)) {
* return
* &quot;package to.be;\n&quot; +
* &quot;public class Generated {\n&quot; +
* &quot;}&quot;;
* }
* return super.findSource(typeName, packageName);
* }
* public boolean isPackage(String[] pkg) {
* switch (pkg.length) {
* case 1:
* return &quot;to&quot;.equals(pkg[0]);
* case 2:
* return &quot;to&quot;.equals(pkg[0]) &amp;&amp; &quot;be&quot;.equals(pkg[1]);
* }
* return false;
* }
* };
* // Working copy on X.java with the following contents:
* // public class X extends to.be.Generated {
* // }
* ICompilationUnit workingCopy = ...
* ASTParser parser = ASTParser.newParser(AST.JLS3);
* parser.setSource(workingCopy);
* parser.setResolveBindings(true);
* parser.setWorkingCopyOwner(owner);
* CompilationUnit cu = (CompilationUnit) parser.createAST(null);
* assert cu.getProblems().length == 0;
* &lt;/pre>
* &lt;/p>
*
* @param typeName the simple name of the type to lookup
* @param packageName the dot-separated name of the package of type
* @return the source of the compilation unit that defines the given type in
* the given package, or &lt;code>null&lt;/code> if the type is unknown
* @see #isPackage(String[])
* @since 3.5
</body>
</ownedComment>
<ownedParameter xmi:id="_nJ6AkGEMEeCdEc4VzBeWeQ" type="_dSiS02EMEeCdEc4VzBeWeQ" direction="return"/>
<ownedParameter xmi:id="_nJ6AkWEMEeCdEc4VzBeWeQ" name="typeName" type="_dSiS02EMEeCdEc4VzBeWeQ"/>
<ownedParameter xmi:id="_nKDKgGEMEeCdEc4VzBeWeQ" name="packageName" type="_dSiS02EMEeCdEc4VzBeWeQ"/>
</ownedOperation>
<ownedOperation xmi:id="_nKDKgWEMEeCdEc4VzBeWeQ" name="isPackage" visibility="public">
<ownedComment xmi:id="_nKDKgmEMEeCdEc4VzBeWeQ">
<body>
* Returns whether the given package segments represent a package.
* &lt;p>This method is called before the normal lookup (i.e. before looking
* at the project's classpath and before looking at the working copies of this
* owner.)&lt;/p>
* &lt;p>This allows to provide packages that are not normally available.&lt;/p>
* &lt;p>If &lt;code>false&lt;/code> is returned, then normal lookup is used on
* this package.&lt;/p>
*
* @param pkg the segments of a package to lookup
* @return whether the given package segments represent a package.
* @see #findSource(String, String)
* @since 3.5
</body>
</ownedComment>
<ownedParameter xmi:id="_nKM7gGEMEeCdEc4VzBeWeQ" type="_dVOadGEMEeCdEc4VzBeWeQ" direction="return"/>
<ownedParameter xmi:id="_nKM7gWEMEeCdEc4VzBeWeQ" name="pkg" type="_dSiS02EMEeCdEc4VzBeWeQ">
<upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_nKWFcWEMEeCdEc4VzBeWeQ" value="*"/>
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_nKWFcGEMEeCdEc4VzBeWeQ"/>
</ownedParameter>
</ownedOperation>
<ownedOperation xmi:id="_nKWFcmEMEeCdEc4VzBeWeQ" name="newWorkingCopy" visibility="public" isLeaf="true">
<ownedComment xmi:id="_nKf2cGEMEeCdEc4VzBeWeQ">
<body>
* Returns a new working copy with the given name using this working copy owner to
* create its buffer.
* &lt;p>
* This working copy always belongs to the default package in a package
* fragment root that corresponds to its Java project, and this Java project never exists.
* However this Java project has the given classpath that is used when resolving names
* in this working copy.
* &lt;/p>&lt;p>
* A DOM AST created using this working copy will have bindings resolved using the given
* classpath, and problem are reported to the given problem requestor.
* &lt;p>&lt;/p>
* &lt;code>JavaCore#getOptions()&lt;/code> is used to create the DOM AST as it is not
* possible to set the options on the non-existing Java project.
* &lt;/p>&lt;p>
* When the working copy instance is created, an {@link IJavaElementDelta#ADDED added delta} is
* reported on this working copy.
* &lt;/p>&lt;p>
* Once done with the working copy, users of this method must discard it using
* {@link ICompilationUnit#discardWorkingCopy()}.
* &lt;/p>&lt;p>
* Note that when such working copy is committed, only its buffer is saved (see
* {@link IBuffer#save(IProgressMonitor, boolean)}) but no resource is created.
* &lt;/p>&lt;p>
* This method is not intended to be overriden by clients.
* &lt;/p>
*
* @param name the name of the working copy (e.g. &quot;X.java&quot;)
* @param classpath the classpath used to resolve names in this working copy
* @param problemRequestor a requestor which will get notified of problems detected during
* reconciling as they are discovered. The requestor can be set to &lt;code>null&lt;/code> indicating
* that the client is not interested in problems.
* @param monitor a progress monitor used to report progress while opening the working copy
* or &lt;code>null&lt;/code> if no progress should be reported
* @throws JavaModelException if the contents of this working copy can
* not be determined.
* @return a new working copy
* @see ICompilationUnit#becomeWorkingCopy(IProblemRequestor, IProgressMonitor)
* @since 3.2
*
* @deprecated Use {@link #newWorkingCopy(String, IClasspathEntry[], IProgressMonitor)} instead.
* Note that if this deprecated method is used, problems may be reported twice
* if the given requestor is not the same as the current working copy owner one.
</body>
</ownedComment>
<ownedParameter xmi:id="_nKf2cWEMEeCdEc4VzBeWeQ" type="_j-plgGEMEeCdEc4VzBeWeQ" direction="return"/>
<ownedParameter xmi:id="_nKpncGEMEeCdEc4VzBeWeQ" name="name" type="_dSiS02EMEeCdEc4VzBeWeQ"/>
<ownedParameter xmi:id="_nKpncWEMEeCdEc4VzBeWeQ" name="classpath" type="_j4GRkGEMEeCdEc4VzBeWeQ">
<upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_nKyxYWEMEeCdEc4VzBeWeQ" value="*"/>
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_nKyxYGEMEeCdEc4VzBeWeQ"/>
</ownedParameter>
<ownedParameter xmi:id="_nK8iYGEMEeCdEc4VzBeWeQ" name="problemRequestor" type="_krNJgGEMEeCdEc4VzBeWeQ"/>
<ownedParameter xmi:id="_nK8iYWEMEeCdEc4VzBeWeQ" name="monitor" type="_jqFqwGEMEeCdEc4VzBeWeQ"/>
</ownedOperation>
<ownedOperation xmi:id="_nLGTYGEMEeCdEc4VzBeWeQ" name="newWorkingCopy" visibility="public" isLeaf="true">
<ownedComment xmi:id="_nLGTYWEMEeCdEc4VzBeWeQ">
<body>
* Returns a new working copy with the given name using this working copy owner to
* create its buffer.
* &lt;p>
* This working copy always belongs to the default package in a package
* fragment root that corresponds to its Java project, and this Java project never exists.
* However this Java project has the given classpath that is used when resolving names
* in this working copy.
* &lt;/p>&lt;p>
* If a DOM AST is created using this working copy, then given classpath will be used
* if bindings need to be resolved. Problems will be reported to the problem requestor
* of the current working copy owner problem if it is not &lt;code>null&lt;/code>.
* &lt;p>&lt;/p>
* Options used to create the DOM AST are got from {@link JavaCore#getOptions()}
* as it is not possible to set the options on a non-existing Java project.
* &lt;/p>&lt;p>
* When the working copy instance is created, an {@link IJavaElementDelta#ADDED added delta} is
* reported on this working copy.
* &lt;/p>&lt;p>
* Once done with the working copy, users of this method must discard it using
* {@link ICompilationUnit#discardWorkingCopy()}.
* &lt;/p>&lt;p>
* Note that when such working copy is committed, only its buffer is saved (see
* {@link IBuffer#save(IProgressMonitor, boolean)}) but no resource is created.
* &lt;/p>&lt;p>
* This method is not intended to be overriden by clients.
* &lt;/p>
*
* @param name the name of the working copy (e.g. &quot;X.java&quot;)
* @param classpath the classpath used to resolve names in this working copy
* @param monitor a progress monitor used to report progress while opening the working copy
* or &lt;code>null&lt;/code> if no progress should be reported
* @throws JavaModelException if the contents of this working copy can
* not be determined.
* @return a new working copy
* @see ICompilationUnit#becomeWorkingCopy(IProgressMonitor)
*
* @since 3.3
</body>
</ownedComment>
<ownedParameter xmi:id="_nLGTYmEMEeCdEc4VzBeWeQ" type="_j-plgGEMEeCdEc4VzBeWeQ" direction="return"/>
<ownedParameter xmi:id="_nLPdUGEMEeCdEc4VzBeWeQ" name="name" type="_dSiS02EMEeCdEc4VzBeWeQ"/>
<ownedParameter xmi:id="_nLZOUGEMEeCdEc4VzBeWeQ" name="classpath" type="_j4GRkGEMEeCdEc4VzBeWeQ">
<upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_nLZOUmEMEeCdEc4VzBeWeQ" value="*"/>
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_nLZOUWEMEeCdEc4VzBeWeQ"/>
</ownedParameter>
<ownedParameter xmi:id="_nLiYQGEMEeCdEc4VzBeWeQ" name="monitor" type="_jqFqwGEMEeCdEc4VzBeWeQ"/>
</ownedOperation>
</packagedElement>
<packagedElement xmi:type="uml:Package" xmi:id="_TKSr4mHaEeCIr_fxSkYSJA" name="eval">
<packagedElement xmi:type="uml:Interface" xmi:id="_TKSr42HaEeCIr_fxSkYSJA" name="IEvaluationContext"/>
</packagedElement>
</packagedElement>
<packagedElement xmi:type="uml:Package" xmi:id="_k33sgGEMEeCdEc4VzBeWeQ" name="internal">
<packagedElement xmi:type="uml:Package" xmi:id="_k33sgWEMEeCdEc4VzBeWeQ" name="compiler">
<packagedElement xmi:type="uml:Package" xmi:id="_k33sgmEMEeCdEc4VzBeWeQ" name="parser">
<packagedElement xmi:type="uml:Class" xmi:id="_k33sg2EMEeCdEc4VzBeWeQ" name="Scanner"/>
</packagedElement>
</packagedElement>
<packagedElement xmi:type="uml:Package" xmi:id="_l-DRcmEMEeCdEc4VzBeWeQ" name="core">
<packagedElement xmi:type="uml:Interface" xmi:id="_l-NCcGEMEeCdEc4VzBeWeQ" name="INamingRequestor"/>
</packagedElement>
</packagedElement>
</packagedElement>
</packagedElement>
</packagedElement>
</packagedElement>
<packagedElement xmi:type="uml:Model" xmi:id="_dSiS0GEMEeCdEc4VzBeWeQ" name="java">
<packagedElement xmi:type="uml:Package" xmi:id="_dSiS0WEMEeCdEc4VzBeWeQ" name="java">
<packagedElement xmi:type="uml:Package" xmi:id="_dSiS0mEMEeCdEc4VzBeWeQ" name="lang">
<packagedElement xmi:type="uml:Class" xmi:id="_dSiS02EMEeCdEc4VzBeWeQ" name="String"/>
<packagedElement xmi:type="uml:Class" xmi:id="_kOcVAmEMEeCdEc4VzBeWeQ" name="Object"/>
<packagedElement xmi:type="uml:Class" xmi:id="_l5SGMmEMEeCdEc4VzBeWeQ" name="Throwable"/>
</packagedElement>
<packagedElement xmi:type="uml:Package" xmi:id="_dV-BUmEMEeCdEc4VzBeWeQ" name="util">
<packagedElement xmi:type="uml:Class" xmi:id="_dV-BU2EMEeCdEc4VzBeWeQ" name="EventObject"/>
<packagedElement xmi:type="uml:Class" xmi:id="_l1aS0WEMEeCdEc4VzBeWeQ" name="Map"/>
<packagedElement xmi:type="uml:Class" xmi:id="_l1tNwWEMEeCdEc4VzBeWeQ" name="ArrayList"/>
</packagedElement>
<packagedElement xmi:type="uml:Package" xmi:id="_l5uyIWEMEeCdEc4VzBeWeQ" name="io">
<packagedElement xmi:type="uml:Class" xmi:id="_l5uyImEMEeCdEc4VzBeWeQ" name="PrintStream"/>
<packagedElement xmi:type="uml:Class" xmi:id="_l54jI2EMEeCdEc4VzBeWeQ" name="PrintWriter"/>
<packagedElement xmi:type="uml:Class" xmi:id="_nDyxgGEMEeCdEc4VzBeWeQ" name="InputStream"/>
</packagedElement>
</packagedElement>
</packagedElement>
<packagedElement xmi:type="uml:Model" xmi:id="_dTbqsGEMEeCdEc4VzBeWeQ" name="datatype">
<packagedElement xmi:type="uml:Package" xmi:id="_dTbqsWEMEeCdEc4VzBeWeQ" name="datatype">
<packagedElement xmi:type="uml:PrimitiveType" xmi:id="_dTlbsGEMEeCdEc4VzBeWeQ" name="Integer"/>
<packagedElement xmi:type="uml:PrimitiveType" xmi:id="_dUn9g2EMEeCdEc4VzBeWeQ" name="Char"/>
<packagedElement xmi:type="uml:PrimitiveType" xmi:id="_dVOadGEMEeCdEc4VzBeWeQ" name="Boolean"/>
<packagedElement xmi:type="uml:PrimitiveType" xmi:id="_dWatRGEMEeCdEc4VzBeWeQ" name="Long"/>
<packagedElement xmi:type="uml:PrimitiveType" xmi:id="_poIZsmEQEeCdEc4VzBeWeQ" name="Byte"/>
</packagedElement>
</packagedElement>
<packagedElement xmi:type="uml:Model" xmi:id="_jpWD6GEMEeCdEc4VzBeWeQ" name="core">
<packagedElement xmi:type="uml:Package" xmi:id="_jpWD6WEMEeCdEc4VzBeWeQ" name="org">
<packagedElement xmi:type="uml:Package" xmi:id="_jpWD6mEMEeCdEc4VzBeWeQ" name="eclipse">
<packagedElement xmi:type="uml:Package" xmi:id="_jpWD62EMEeCdEc4VzBeWeQ" name="core">
<packagedElement xmi:type="uml:Package" xmi:id="_jpWD7GEMEeCdEc4VzBeWeQ" name="runtime">
<packagedElement xmi:type="uml:Interface" xmi:id="_jqFqwGEMEeCdEc4VzBeWeQ" name="IProgressMonitor"/>
<packagedElement xmi:type="uml:Interface" xmi:id="_j00UEmEMEeCdEc4VzBeWeQ" name="IPath"/>
<packagedElement xmi:type="uml:Interface" xmi:id="_kO5A8mEMEeCdEc4VzBeWeQ" name="IAdaptable"/>
<packagedElement xmi:type="uml:Interface" xmi:id="_kaOHMWEMEeCdEc4VzBeWeQ" name="IStatus"/>
<packagedElement xmi:type="uml:Class" xmi:id="_lIjz4mEMEeCdEc4VzBeWeQ" name="Plugin"/>
<packagedElement xmi:type="uml:Class" xmi:id="_l4ifUmEMEeCdEc4VzBeWeQ" name="CoreException"/>
<packagedElement xmi:type="uml:Package" xmi:id="_s0HMcmHfEeCIr_fxSkYSJA" name="jobs">
<packagedElement xmi:type="uml:Interface" xmi:id="_s0HMc2HfEeCIr_fxSkYSJA" name="ISchedulingRule"/>
</packagedElement>
</packagedElement>
<packagedElement xmi:type="uml:Package" xmi:id="_j6e3NWEMEeCdEc4VzBeWeQ" name="resources">
<packagedElement xmi:type="uml:Interface" xmi:id="_j6oBIGEMEeCdEc4VzBeWeQ" name="IMarker"/>
<packagedElement xmi:type="uml:Interface" xmi:id="_kOJaEmEMEeCdEc4VzBeWeQ" name="IStorage"/>
<packagedElement xmi:type="uml:Interface" xmi:id="_kQh_smEMEeCdEc4VzBeWeQ" name="IResource"/>
<packagedElement xmi:type="uml:Interface" xmi:id="_kWMi0GEMEeCdEc4VzBeWeQ" name="IResourceDelta"/>
<packagedElement xmi:type="uml:Interface" xmi:id="_l1tNwGEMEeCdEc4VzBeWeQ" name="IContainer"/>
<packagedElement xmi:type="uml:Interface" xmi:id="_l2J5smEMEeCdEc4VzBeWeQ" name="IResourceChangeListener"/>
<packagedElement xmi:type="uml:Interface" xmi:id="_QEZ5AGHaEeCIr_fxSkYSJA" name="IWorkspace"/>
<packagedElement xmi:type="uml:Interface" xmi:id="_TINoQGHaEeCIr_fxSkYSJA" name="IProject"/>
</packagedElement>
</packagedElement>
</packagedElement>
</packagedElement>
</packagedElement>
<packagedElement xmi:type="uml:Model" xmi:id="_j1aJ9GEMEeCdEc4VzBeWeQ" name="text">
<packagedElement xmi:type="uml:Package" xmi:id="_j1aJ9WEMEeCdEc4VzBeWeQ" name="org">
<packagedElement xmi:type="uml:Package" xmi:id="_j1aJ9mEMEeCdEc4VzBeWeQ" name="eclipse">
<packagedElement xmi:type="uml:Package" xmi:id="_j1aJ92EMEeCdEc4VzBeWeQ" name="text">
<packagedElement xmi:type="uml:Package" xmi:id="_j1aJ-GEMEeCdEc4VzBeWeQ" name="edits">
<packagedElement xmi:type="uml:Class" xmi:id="_j1aJ-WEMEeCdEc4VzBeWeQ" name="TextEdit"/>
<packagedElement xmi:type="uml:Class" xmi:id="_j1j68mEMEeCdEc4VzBeWeQ" name="UndoEdit"/>
</packagedElement>
</packagedElement>
</packagedElement>
</packagedElement>
</packagedElement>
</uml:Model>