/** * INTERNAL * getVariableNameForClass(): * Answer the name mapped to the specified class. Answer null if none found. * SELECT OBJECT (emp) FROM Employee emp * getVariableNameForClass(Employee.class) => "emp" */ public String getVariableNameForClass(Class theClass, GenerationContext context) { for (Iterator i = variableDecls.entrySet().iterator(); i.hasNext(); ) { Map.Entry entry = (Map.Entry)i.next(); String nextVariable = (String)entry.getKey(); VariableDecl decl = (VariableDecl)entry.getValue(); if ((decl.schema != null) && (theClass == this.classForSchemaName(decl.schema, context))) { return nextVariable; } } return null; }
/** * INTERNAL * getVariableNameForClass(): * Answer the name mapped to the specified class. Answer null if none found. * SELECT OBJECT (emp) FROM Employee emp * getVariableNameForClass(Employee.class) => "emp" */ public String getVariableNameForClass(Class theClass, GenerationContext context) { for (Iterator i = variableDecls.entrySet().iterator(); i.hasNext(); ) { Map.Entry entry = (Map.Entry)i.next(); String nextVariable = (String)entry.getKey(); VariableDecl decl = (VariableDecl)entry.getValue(); if ((decl.schema != null) && (theClass == this.classForSchemaName(decl.schema, context))) { return nextVariable; } } return null; }
/** * INTERNAL * getVariableNameForClass(): * Answer the name mapped to the specified class. Answer null if none found. * SELECT OBJECT (emp) FROM Employee emp * getVariableNameForClass(Employee.class) => "emp" */ public String getVariableNameForClass(Class theClass, GenerationContext context) { for (Iterator i = variableDecls.entrySet().iterator(); i.hasNext(); ) { Map.Entry entry = (Map.Entry)i.next(); String nextVariable = (String)entry.getKey(); VariableDecl decl = (VariableDecl)entry.getValue(); if ((decl.schema != null) && (theClass == this.classForSchemaName(decl.schema, context))) { return nextVariable; } } return null; }
private Class getClassOfFirstVariable(GenerationContext context) { Class clazz = null; String variable = getParseTree().getFromNode().getFirstVariable(); ParseTreeContext parseTreeContext = context.getParseTreeContext(); if (parseTreeContext.isRangeVariable(variable)) { String schema = parseTreeContext.schemaForVariable(variable); // variables is defines in a range variable declaration, so there // is a schema name for this variable clazz = parseTreeContext.classForSchemaName(schema, context); } else { // variable is defined in a JOIN clause, so there is a a defining // node for the variable Node path = parseTreeContext.pathForVariable(variable); clazz = path.resolveClass(context); } return clazz; }
private Class getClassOfFirstVariable(GenerationContext context) { Class clazz = null; String variable = getParseTree().getFromNode().getFirstVariable(); ParseTreeContext parseTreeContext = context.getParseTreeContext(); if (parseTreeContext.isRangeVariable(variable)) { String schema = parseTreeContext.schemaForVariable(variable); // variables is defines in a range variable declaration, so there // is a schema name for this variable clazz = parseTreeContext.classForSchemaName(schema, context); } else { // variable is defined in a JOIN clause, so there is a a defining // node for the variable Node path = parseTreeContext.pathForVariable(variable); clazz = path.resolveClass(context); } return clazz; }
private Class getClassOfFirstVariable(GenerationContext context) { Class clazz = null; String variable = getParseTree().getFromNode().getFirstVariable(); ParseTreeContext parseTreeContext = context.getParseTreeContext(); if (parseTreeContext.isRangeVariable(variable)) { String schema = parseTreeContext.schemaForVariable(variable); // variables is defines in a range variable declaration, so there // is a schema name for this variable clazz = parseTreeContext.classForSchemaName(schema, context); } else { // variable is defined in a JOIN clause, so there is a a defining // node for the variable Node path = parseTreeContext.pathForVariable(variable); clazz = path.resolveClass(context); } return clazz; }
/** * resolveClass: Answer the class which corresponds to my variableName. This is the class for * an alias, where the variableName is registered to an alias. */ public Class resolveClass(GenerationContext generationContext) { Class clazz = null; String name = getCanonicalVariableName(); ParseTreeContext context = generationContext.getParseTreeContext(); if (context.isRangeVariable(name)) { String schema = context.schemaForVariable(name); clazz = context.classForSchemaName(schema, generationContext); } else { DotNode path = (DotNode)context.pathForVariable(name); if (path == null) { throw JPQLException.aliasResolutionException( context.getQueryInfo(), getLine(), getColumn(), name); } else { clazz = path.resolveClass(generationContext); } } return clazz; }
/** * resolveClass: Answer the class which corresponds to my variableName. This is the class for * an alias, where the variableName is registered to an alias. */ public Class resolveClass(GenerationContext generationContext) { Class clazz = null; String name = getCanonicalVariableName(); ParseTreeContext context = generationContext.getParseTreeContext(); if (context.isRangeVariable(name)) { String schema = context.schemaForVariable(name); clazz = context.classForSchemaName(schema, generationContext); } else { DotNode path = (DotNode)context.pathForVariable(name); if (path == null) { throw JPQLException.aliasResolutionException( context.getQueryInfo(), getLine(), getColumn(), name); } else { clazz = path.resolveClass(generationContext); } } return clazz; }
/** * resolveClass: Answer the class which corresponds to my variableName. This is the class for * an alias, where the variableName is registered to an alias. */ public Class resolveClass(GenerationContext generationContext) { Class clazz = null; String name = getCanonicalVariableName(); ParseTreeContext context = generationContext.getParseTreeContext(); if (context.isRangeVariable(name)) { String schema = context.schemaForVariable(name); clazz = context.classForSchemaName(schema, generationContext); } else { DotNode path = (DotNode)context.pathForVariable(name); if (path == null) { throw JPQLException.aliasResolutionException( context.getQueryInfo(), getLine(), getColumn(), name); } else { clazz = path.resolveClass(generationContext); } } return clazz; }
/** */ private Class getBaseExpressionClass(Node node, GenerationContext generationContext) { ParseTreeContext context = generationContext.getParseTreeContext(); Class clazz = null; if (node == null) { clazz = null; } else if (node.isDotNode()) { // DotNode: delegate to left clazz = getBaseExpressionClass(node.getLeft(), generationContext); } else if (node.isVariableNode()) { // VariableNode String variable = ((VariableNode)node).getCanonicalVariableName(); if (!context.isRangeVariable(variable)) { Node path = context.pathForVariable(variable); // Variable is defined in JOIN/IN clause => // return the Class from its definition clazz = getBaseExpressionClass(path, generationContext); } else { // Variable is defined in range variable decl => // return its class String schema = context.schemaForVariable(variable); if (schema != null) { clazz = context.classForSchemaName(schema, generationContext); } } } return clazz; }
/** */ private Class getBaseExpressionClass(Node node, GenerationContext generationContext) { ParseTreeContext context = generationContext.getParseTreeContext(); Class clazz = null; if (node == null) { clazz = null; } else if (node.isDotNode()) { // DotNode: delegate to left clazz = getBaseExpressionClass(node.getLeft(), generationContext); } else if (node.isVariableNode()) { // VariableNode String variable = ((VariableNode)node).getCanonicalVariableName(); if (!context.isRangeVariable(variable)) { Node path = context.pathForVariable(variable); // Variable is defined in JOIN/IN clause => // return the Class from its definition clazz = getBaseExpressionClass(path, generationContext); } else { // Variable is defined in range variable decl => // return its class String schema = context.schemaForVariable(variable); if (schema != null) { clazz = context.classForSchemaName(schema, generationContext); } } } return clazz; }
/** */ private Class getBaseExpressionClass(Node node, GenerationContext generationContext) { ParseTreeContext context = generationContext.getParseTreeContext(); Class clazz = null; if (node == null) { clazz = null; } else if (node.isDotNode()) { // DotNode: delegate to left clazz = getBaseExpressionClass(node.getLeft(), generationContext); } else if (node.isVariableNode()) { // VariableNode String variable = ((VariableNode)node).getVariableName(); if (!context.isRangeVariable(variable)) { Node path = context.pathForVariable(variable); // Variable is defined in JOIN/IN clause => // return the Class from its definition clazz = getBaseExpressionClass(path, generationContext); } else { // Variable is defined in range variable decl => // return its class String schema = context.schemaForVariable(variable); if (schema != null) { clazz = context.classForSchemaName(schema, generationContext); } } } return clazz; }