EclipseLink 2.5.0, build 'v20120919-fd7dc27' 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.

Provisional API: This interface is part of an interim API that is still under development and expected to change significantly before reaching stability. It is available at this early stage to solicit feedback from pioneering adopters on the understanding that any code that uses this API will almost certainly be broken (repeatedly) as the API evolves.

Version:
2.5
Author:
Pascal Filion
Since:
2.3

Constructor Summary
DefaultContentAssistProposals(JPQLGrammar jpqlGrammar, ContentAssistProposalsHelper helper)
          Creates a new DefaultContentAssistProposals.
 
Method Summary
 java.lang.Iterable<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 addClassNames(java.lang.String prefix)
          Adds the given prefix that will be used to filter the list of TODO.
 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.
 void addTableNames(java.lang.String prefix)
          Adds
 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.
 java.lang.Iterable<java.lang.String> classNames()
          Returns the filtered list of possible class names.
 java.lang.Iterable<java.lang.String> columnNames()
          Returns the filtered list of possible column names.
 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.
 java.lang.Iterable<java.lang.String> identificationVariables()
          Returns the collection of possible identification variables.
 java.lang.Iterable<java.lang.String> identifiers()
          Returns the collection of possible JPQL identifiers.
 java.lang.Iterable<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.
 java.lang.Iterable<java.lang.String> tableNames()
          Returns the filtered list of possible table names.
 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,
                                     ContentAssistProposalsHelper helper)
Creates a new DefaultContentAssistProposals.

Parameters:
jpqlGrammar - The JPQLGrammar that defines how the JPQL query was parsed
helper - The helper can be used to provide additional information that is outside the scope of simply providing JPA metadata information, such as table names, column names, class names or ContentAssistProposalsHelper.NULL_HELPER if none can be provided
Method Detail

abstractSchemaTypes

public java.lang.Iterable<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

addClassNames

public void addClassNames(java.lang.String prefix)
Adds the given prefix that will be used to filter the list of TODO.

Parameters:
prefix - The prefix that is used to filter the list of TODO

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

addTableNames

public void addTableNames(java.lang.String prefix)
Adds

Parameters:
prefix -

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 resulted JPQL query and position will be adjusted by converting the escaped characters escaped to string values, which means '\r' will have been converted to '\\r.

TODO: TO REWORD: If the proposal is has more than one identifier, for instance, IS NOT NULL, then the replacement will go further than just replacing the current word. If the cursor is in "IS NOT N|" and the proposal is "IS NOT NULL", then "IS NOT" will not be added twice. If the identifier 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 insert 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 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.

TODO: TO REWORD: If the proposal is has more than one identifier, for instance, IS NOT NULL, then the replacement will go further than just replacing the current word. If the cursor is in "IS NOT N|" and the proposal is "IS NOT NULL", then "IS NOT" will not be added twice. If the identifier 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 insert 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 replaced by the proposal
Returns:
The result of inserting the proposal into the query, including the adjust position, if it was required

classNames

public java.lang.Iterable<java.lang.String> classNames()
Returns the filtered list of possible class names. This is usually available when the cursor is within the constructor name of the constructor expression.

Specified by:
classNames in interface ContentAssistProposals
Returns:
The filtered list of possible class names
See Also:
ConstructorExpression

columnNames

public java.lang.Iterable<java.lang.String> columnNames()
Returns the filtered list of possible column names.

Specified by:
columnNames in interface ContentAssistProposals
Returns:
The filtered list of possible column names

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 java.lang.Iterable<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 java.lang.Iterable<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 java.lang.Iterable<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

tableNames

public java.lang.Iterable<java.lang.String> tableNames()
Returns the filtered list of possible table names.

Specified by:
tableNames in interface ContentAssistProposals
Returns:
The filtered list of possible table names

toString

public java.lang.String toString()

Overrides:
toString in class java.lang.Object

EclipseLink 2.5.0, build 'v20120919-fd7dc27' API Reference