EclipseLink 2.4.2, build 'v20130514-5956486' API Reference

org.eclipse.persistence.jpa.jpql
Class DefaultContentAssistProposals

java.lang.Object
  extended by org.eclipse.persistence.jpa.jpql.DefaultContentAssistProposals
All Implemented Interfaces:
ContentAssistProposals

public final class DefaultContentAssistProposals
extends java.lang.Object
implements ContentAssistProposals

The default implementation of ContentAssistProposals which stores the valid proposals.

Version:
2.4.2
Author:
Pascal Filion
Since:
2.3

Constructor Summary
DefaultContentAssistProposals(JPQLGrammar jpqlGrammar)
          Creates a new DefaultContentAssistProposals.
 
Method Summary
 IterableIterator<IEntity> abstractSchemaTypes()
          Returns the collection of possible abstract schema types.
 void addAbstractSchemaType(IEntity abstractSchemaType)
          Adds the given IEntity as a possible abstract schema type.
 void addIdentificationVariable(java.lang.String identificationVariable)
          Adds the given identification variable as a proposal.
 void addIdentifier(java.lang.String identifier)
          Adds the given JPQL identifier as a proposal.
 void addMapping(IMapping mapping)
          Adds the given mapping (state field, association field or collection field) as a valid proposal.
 void addMappings(java.util.Collection<IMapping> mappings)
          Adds the given mappings (state fields, association fields or collection fields) as valid proposals.
 void addRangeIdentificationVariable(java.lang.String identificationVariable, IEntity abstractSchemaType)
          Adds the given range identification variable that is mapping the given abstract schema type.
 org.eclipse.persistence.jpa.jpql.DefaultContentAssistProposals.Result buildEscapedQuery(java.lang.String jpqlQuery, java.lang.String proposal, int position, boolean insert)
          Creates a new JPQL query by inserting the given proposal at the given position.
 org.eclipse.persistence.jpa.jpql.DefaultContentAssistProposals.Result buildQuery(java.lang.String jpqlQuery, java.lang.String proposal, int position, boolean insert)
          Creates a new JPQL query by inserting the given proposal at the given position.
 IEntity getAbstractSchemaType(java.lang.String identificationVariable)
          Retrieves the abstract schema type that is mapped with the given identification variable.
 JPQLGrammar getGrammar()
          Returns the JPQLGrammar that defines how the JPQL query was parsed.
 IdentifierRole getIdentifierRole(java.lang.String identifier)
          Returns the role of the given JPQL identifier.
 boolean hasProposals()
          Determines whether there is at least one proposals.
 IterableIterator<java.lang.String> identificationVariables()
          Returns the collection of possible identification variables.
 IterableIterator<java.lang.String> identifiers()
          Returns the collection of possible JPQL identifiers.
 IterableIterator<IMapping> mappings()
          Returns the collection of possible mappings, which can be state fields, association fields and/or collection fields depending on the location used to retrieve the possible proposals.
 boolean remove(java.lang.String proposal)
          This is only used by the unit-tests, it removes the given proposal from one of the collection of possible proposals.
protected  void removeIdentifier(java.lang.String identifier)
          Removes the given JPQL identifier.
 java.lang.String toString()
          
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Constructor Detail

DefaultContentAssistProposals

public DefaultContentAssistProposals(JPQLGrammar jpqlGrammar)
Creates a new DefaultContentAssistProposals.

Parameters:
jpqlGrammar - The JPQLGrammar that defines how the JPQL query was parsed
Method Detail

abstractSchemaTypes

public IterableIterator<IEntity> abstractSchemaTypes()
Returns the collection of possible abstract schema types.

Specified by:
abstractSchemaTypes in interface ContentAssistProposals
Returns:
The entities defined in the persistence context

addAbstractSchemaType

public void addAbstractSchemaType(IEntity abstractSchemaType)
Adds the given IEntity as a possible abstract schema type.

Parameters:
abstractSchemaType - The abstract schema type that is a valid proposal

addIdentificationVariable

public void addIdentificationVariable(java.lang.String identificationVariable)
Adds the given identification variable as a proposal.

Parameters:
identificationVariable - The identification variable that is a valid proposal

addIdentifier

public void addIdentifier(java.lang.String identifier)
Adds the given JPQL identifier as a proposal.

Parameters:
identifier - The JPQL identifier that is a valid proposal

addMapping

public void addMapping(IMapping mapping)
Adds the given mapping (state field, association field or collection field) as a valid proposal.

Parameters:
mapping - The IMapping of the state field, association field or collection field

addMappings

public void addMappings(java.util.Collection<IMapping> mappings)
Adds the given mappings (state fields, association fields or collection fields) as valid proposals.

Parameters:
mappings - The mappings of the state fields, association fields or collection fields

addRangeIdentificationVariable

public void addRangeIdentificationVariable(java.lang.String identificationVariable,
                                           IEntity abstractSchemaType)
Adds the given range identification variable that is mapping the given abstract schema type.

Parameters:
identificationVariable - The range identification variable mapping the abstract schema name
abstractSchemaType - The abstract type name that identifies the type of the variable

buildEscapedQuery

public org.eclipse.persistence.jpa.jpql.DefaultContentAssistProposals.Result buildEscapedQuery(java.lang.String jpqlQuery,
                                                                                               java.lang.String proposal,
                                                                                               int position,
                                                                                               boolean insert)
Creates a new JPQL query by inserting the given proposal at the given position. The updated JPQL query and position will be adjusted by converting some characters into their corresponding escaped characters, for instance '\r' will be converted to '\\r.

The replacement will also handle compound JPQL identifiers when updating the JPQL query.

Example: If the cursor is within "IS NOT N|" and the proposal is "IS NOT NULL", then "IS NOT" will not be added twice. If the word to replace is "IS NULL" and the proposal is "IS NOT NULL", then "NOT" will be inserted between "IS" and "NULL".

Specified by:
buildEscapedQuery in interface ContentAssistProposals
Parameters:
jpqlQuery - The JPQL query to modify with the given proposal
proposal - The proposal to insert into the query
position - The position of insertion
insert - Flag that determines if the partial word following the cursor should be left intact or should be replaced by the proposal
Returns:
The result of inserting the proposal into the query, including the adjust position, if it was required

buildQuery

public org.eclipse.persistence.jpa.jpql.DefaultContentAssistProposals.Result buildQuery(java.lang.String jpqlQuery,
                                                                                        java.lang.String proposal,
                                                                                        int position,
                                                                                        boolean insert)
Creates a new JPQL query by inserting the given proposal at the given position.

The replacement will also handle compound JPQL identifiers when updating the JPQL query.

Example: If the cursor is within "IS NOT N|" and the proposal is "IS NOT NULL", then "IS NOT" will not be added twice. If the word to replace is "IS NULL" and the proposal is "IS NOT NULL", then "NOT" will be inserted between "IS" and "NULL".

Specified by:
buildQuery in interface ContentAssistProposals
Parameters:
jpqlQuery - The JPQL query to modify with the given proposal
proposal - The proposal to insert into the query
position - The position of insertion
insert - Flag that determines if the partial word following the cursor should be left intact or should be replaced by the proposal
Returns:
The result of inserting the proposal into the query, including the adjust position, if it was required

getAbstractSchemaType

public IEntity getAbstractSchemaType(java.lang.String identificationVariable)
Retrieves the abstract schema type that is mapped with the given identification variable.

Specified by:
getAbstractSchemaType in interface ContentAssistProposals
Parameters:
identificationVariable - The identification variable that, if defined as a range variable, will be mapped to a managed type
Returns:
The abstract schema type mapped with the given identification variable or null if the given variable is mapped to something else or not mapped to anything

getGrammar

public JPQLGrammar getGrammar()
Returns the JPQLGrammar that defines how the JPQL query was parsed.

Returns:
The JPQLGrammar that was used to parse this jpa.jpql.parser.Expression Expression

getIdentifierRole

public IdentifierRole getIdentifierRole(java.lang.String identifier)
Returns the role of the given JPQL identifier.

Specified by:
getIdentifierRole in interface ContentAssistProposals
Parameters:
identifier - The JPQL identifier to retrieve its role
Returns:
The IdentifierRole for the given JPQL identifier or null if no role was defined or if the given string is not a valid JPQL identifier

hasProposals

public boolean hasProposals()
Determines whether there is at least one proposals.

Specified by:
hasProposals in interface ContentAssistProposals
Returns:
true if there is at least one proposal; otherwise false

identificationVariables

public IterableIterator<java.lang.String> identificationVariables()
Returns the collection of possible identification variables.

Specified by:
identificationVariables in interface ContentAssistProposals
Returns:
The list of possible identification variables

identifiers

public IterableIterator<java.lang.String> identifiers()
Returns the collection of possible JPQL identifiers.

Specified by:
identifiers in interface ContentAssistProposals
Returns:
The list of possible JPQL identifiers

mappings

public IterableIterator<IMapping> mappings()
Returns the collection of possible mappings, which can be state fields, association fields and/or collection fields depending on the location used to retrieve the possible proposals.

Specified by:
mappings in interface ContentAssistProposals
Returns:
The list of possible proposals mappings

remove

public boolean remove(java.lang.String proposal)
This is only used by the unit-tests, it removes the given proposal from one of the collection of possible proposals.

Parameters:
proposal - The proposal to remove
Returns:
true the given proposal was removed from one of the collections; false if it could not be found, thus not removed

removeIdentifier

protected void removeIdentifier(java.lang.String identifier)
Removes the given JPQL identifier.

Parameters:
identifier - The identifier that was added but actually needs to be removed

toString

public java.lang.String toString()

Overrides:
toString in class java.lang.Object

EclipseLink 2.4.2, build 'v20130514-5956486' API Reference