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 pro