| 
 | ||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||
java.lang.Objectorg.apache.openjpa.kernel.exps.AbstractExpressionBuilder
public abstract class AbstractExpressionBuilder
Abstract base class to help build expressions. Provides generic language-independent support for variable resolution, path traversal, and error messages.
| Field Summary | |
|---|---|
| static int | CONTAINS_TYPE_ELEMENT | 
| static int | CONTAINS_TYPE_KEY | 
| static int | CONTAINS_TYPE_VALUE | 
| protected static int | EX_FATAL | 
| protected static int | EX_UNSUPPORTED | 
| protected static int | EX_USER | 
| protected  ExpressionFactory | factory | 
| protected  Resolver | resolver | 
| static Class<Character> | TYPE_CHAR_OBJ | 
| static Class<Collection> | TYPE_COLLECTION | 
| static Class<Map> | TYPE_MAP | 
| static Class<Number> | TYPE_NUMBER | 
| static Class<Object> | TYPE_OBJECT | 
| static Class<String> | TYPE_STRING | 
| Constructor Summary | |
|---|---|
| AbstractExpressionBuilder(ExpressionFactory factory,
                          Resolver resolver)Constructor. | |
| Method Summary | |
|---|---|
| protected  ClassMetaData | addAccessPath(ClassMetaData meta)Register the specified metadata as being in the query's access path. | 
| protected abstract  void | addSchemaToContext(String alias,
                   ClassMetaData meta)Register the schema alias to the current JPQL query context. | 
| protected abstract  void | addVariableToContext(String id,
                     Value var)Register the variable associated with the schema alias (id) to the current JPQL query context. | 
| protected  void | assertUnboundVariablesValid()Validate that all unbound variables are of a PC type. | 
| protected  void | bind(Value var)Record that the given variable is bound. | 
| static void | convertTypes(Value val1,
             Value val2)Perform conversions to make values compatible. | 
| static void | convertTypesQuotedNumbers(Value val1,
                          Value val2)Perform conversions to make values compatible. | 
| protected  Value | createVariable(String id,
               boolean bind) | 
| protected abstract  String | currentQuery()Returns the current string being parsed; used for error messages. | 
| protected  ClassMetaData[] | getAccessPath()Return the recorded query access path. | 
| protected abstract  ClassLoader | getClassLoader()Returns the class loader that should be used for resolving class names (in addition to the resolver in the query). | 
| protected abstract  Class<?> | getDeclaredVariableType(String name)Returns the type of the named variable if it has been declared. | 
| protected abstract  Localizer | getLocalizer()Used for obtaining the Localizerto use for translating
 error messages. | 
| protected  ClassMetaData | getMetaData(Class<?> c,
            boolean required)Convenience method to get metadata for the given type. | 
| protected  ClassMetaData | getMetaData(Class<?> c,
            boolean required,
            ClassLoader loader)Convenience method to get metadata for the given type. | 
| protected abstract  Value | getVariable(String id)Returns the variable associated with the schema alias (id). | 
| protected  Value | getVariable(String id,
            boolean bind)Returns a value for the given id. | 
| protected  boolean | isBound(Value var)Return true if the given variable has been bound. | 
| protected abstract  boolean | isDeclaredVariable(String id)Returns whether the specified variable name has been explicitly declared. | 
| static boolean | isNumeric(Class<?> type)Return true if given class can be used as a number. | 
| protected  boolean | isSeenVariable(String id)Return whether the given id has been used as a variable. | 
| protected  OpenJPAException | parseException(int e,
               String token,
               Object[] args,
               Exception nest)Create a proper parse exception for the given reason. | 
| protected  void | setImplicitContainsTypes(Value val1,
                         Value val2,
                         int op)Set the implicit types of the given values based on the fact that the first is supposed to contain the second. | 
| protected static void | setImplicitType(Value val,
                Class<?> expected)Set the implicit type of the given value to the given class. | 
| protected  void | setImplicitTypes(Value val1,
                 Value val2,
                 Class<?> expected)Set the implicit types of the given values based on the fact that they're used together, and based on the operator type. | 
| protected static void | setImplicitTypes(Value val1,
                 Value val2,
                 Class<?> expected,
                 Resolver resolver) | 
| protected  Value | traversePath(Path path,
             String field)Traverse the given field in the given path. | 
| protected  Value | traversePath(Path path,
             String field,
             boolean pcOnly,
             boolean allowNull)Traverse the given field in the given path. | 
| protected  Object | traverseStaticField(Class<?> cls,
                    String field)Return a constant containing the value of the given static field. | 
| protected  Value | traverseXPath(Path path,
              String field) | 
| Methods inherited from class java.lang.Object | 
|---|
| clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait | 
| Field Detail | 
|---|
protected static final int EX_USER
protected static final int EX_FATAL
protected static final int EX_UNSUPPORTED
public static final Class<Object> TYPE_OBJECT
public static final Class<String> TYPE_STRING
public static final Class<Character> TYPE_CHAR_OBJ
public static final Class<Number> TYPE_NUMBER
public static final Class<Collection> TYPE_COLLECTION
public static final Class<Map> TYPE_MAP
public static final int CONTAINS_TYPE_ELEMENT
public static final int CONTAINS_TYPE_KEY
public static final int CONTAINS_TYPE_VALUE
protected final Resolver resolver
protected ExpressionFactory factory
| Constructor Detail | 
|---|
public AbstractExpressionBuilder(ExpressionFactory factory,
                                 Resolver resolver)
factory - the expression factory to useresolver - used to resolve variables, parameters, and class
 names used in the query| Method Detail | 
|---|
protected abstract ClassLoader getClassLoader()
protected OpenJPAException parseException(int e,
                                          String token,
                                          Object[] args,
                                          Exception nest)
protected ClassMetaData addAccessPath(ClassMetaData meta)
protected ClassMetaData[] getAccessPath()
protected boolean isBound(Value var)
protected void bind(Value var)
protected Value getVariable(String id,
                            boolean bind)
protected Value createVariable(String id,
                               boolean bind)
protected void assertUnboundVariablesValid()
protected abstract boolean isDeclaredVariable(String id)
id - the variable to check
protected boolean isSeenVariable(String id)
protected ClassMetaData getMetaData(Class<?> c,
                                    boolean required)
protected ClassMetaData getMetaData(Class<?> c,
                                    boolean required,
                                    ClassLoader loader)
protected Value traversePath(Path path,
                             String field)
protected Value traverseXPath(Path path,
                              String field)
protected Value traversePath(Path path,
                             String field,
                             boolean pcOnly,
                             boolean allowNull)
protected Object traverseStaticField(Class<?> cls,
                                     String field)
protected abstract Class<?> getDeclaredVariableType(String name)
protected void setImplicitTypes(Value val1,
                                Value val2,
                                Class<?> expected)
protected static void setImplicitTypes(Value val1,
                                       Value val2,
                                       Class<?> expected,
                                       Resolver resolver)
public static void convertTypes(Value val1,
                                Value val2)
public static void convertTypesQuotedNumbers(Value val1,
                                             Value val2)
public static boolean isNumeric(Class<?> type)
protected void setImplicitContainsTypes(Value val1,
                                        Value val2,
                                        int op)
protected static void setImplicitType(Value val,
                                      Class<?> expected)
protected abstract Localizer getLocalizer()
Localizer to use for translating
 error messages.
protected abstract String currentQuery()
protected abstract void addSchemaToContext(String alias,
                                           ClassMetaData meta)
alias - meta - 
protected abstract void addVariableToContext(String id,
                                             Value var)
id - var - protected abstract Value getVariable(String id)
id - 
| 
 | ||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||