/** * INTERNAL: * This expression is built on a different base than the one we want. Rebuild it and * return the root of the new tree */ public Expression rebuildOn(Expression newBase) { Expression newLocalBase = getBaseExpression().rebuildOn(newBase); Vector newChildren = org.eclipse.persistence.internal.helper.NonSynchronizedVector.newInstance(this.children.size()); for (int i = 1; i < this.children.size(); i++) {// Skip the first one, since it's also the base newChildren.addElement(((Expression)children.elementAt(i)).rebuildOn(newBase)); } newLocalBase.setSelectIfOrderedBy(getBaseExpression().selectIfOrderedBy()); FunctionExpression rebuilt = (FunctionExpression) newLocalBase.performOperator(this.operator, newChildren); rebuilt.setResultType(this.getResultType()); //copy over result type. return rebuilt; }
/** * INTERNAL: * This expression is built on a different base than the one we want. Rebuild it and * return the root of the new tree */ @Override public Expression rebuildOn(Expression newBase) { Expression newLocalBase = getBaseExpression().rebuildOn(newBase); Vector newChildren = org.eclipse.persistence.internal.helper.NonSynchronizedVector.newInstance(this.children.size()); for (int i = 1; i < this.children.size(); i++) {// Skip the first one, since it's also the base newChildren.addElement(this.children.elementAt(i).rebuildOn(newBase)); } newLocalBase.setSelectIfOrderedBy(getBaseExpression().selectIfOrderedBy()); FunctionExpression rebuilt = (FunctionExpression) newLocalBase.performOperator(this.operator, newChildren); rebuilt.setResultType(this.getResultType()); //copy over result type. return rebuilt; }
/** * INTERNAL: * This expression is built on a different base than the one we want. Rebuild it and * return the root of the new tree */ public Expression rebuildOn(Expression newBase) { Expression newLocalBase = getBaseExpression().rebuildOn(newBase); Vector newChildren = org.eclipse.persistence.internal.helper.NonSynchronizedVector.newInstance(this.children.size()); for (int i = 1; i < this.children.size(); i++) {// Skip the first one, since it's also the base newChildren.addElement(((Expression)children.elementAt(i)).rebuildOn(newBase)); } newLocalBase.setSelectIfOrderedBy(getBaseExpression().selectIfOrderedBy()); FunctionExpression rebuilt = (FunctionExpression) newLocalBase.performOperator(getOperator(), newChildren); rebuilt.setResultType(this.getResultType()); //copy over result type. return rebuilt; }
field.setType(getResultType()); } else { field.setType(getResultType()); newFields.addElement(field);
private Class<?> getExpressionType(Expression expression) { if (expression instanceof SubSelectExpression) { return getReturnTypeFromSubSelectExpression((SubSelectExpression) expression); } else if (expression instanceof ParameterExpression) { return (Class<?>) ((ParameterExpression) expression).getType(); } else if (expression instanceof FunctionExpression) { return ((FunctionExpression) expression).getResultType(); } else if (expression instanceof FieldExpression) { return ((FieldExpression) expression).getField().getType(); } else if (expression instanceof FromSubSelectExpression) { return getExpressionType(((FromSubSelectExpression) expression).getSubSelect()); } else if (expression instanceof QueryKeyExpression) { final DatabaseMapping mapping = ((QueryKeyExpression) expression).getMapping(); return mapping == null ? null : mapping.getAttributeClassification(); } else if (expression instanceof ClassTypeExpression) { return ((ClassTypeExpression) expression).getField().getType(); } else if (expression instanceof ConstantExpression) { return ((ConstantExpression) expression).getValue().getClass(); } else if (expression instanceof CompoundExpression) { return Boolean.class; } else { return null; } }
private Class<?> getExpressionType(Expression expression) { if (expression instanceof SubSelectExpression) { return getReturnTypeFromSubSelectExpression((SubSelectExpression) expression); } else if (expression instanceof ParameterExpression) { return (Class<?>) ((ParameterExpression) expression).getType(); } else if (expression instanceof FunctionExpression) { return ((FunctionExpression) expression).getResultType(); } else if (expression instanceof FieldExpression) { return ((FieldExpression) expression).getField().getType(); } else if (expression instanceof FromSubSelectExpression) { return getExpressionType(((FromSubSelectExpression) expression).getSubSelect()); } else if (expression instanceof QueryKeyExpression) { final DatabaseMapping mapping = ((QueryKeyExpression) expression).getMapping(); return mapping == null ? null : mapping.getAttributeClassification(); } else if (expression instanceof ClassTypeExpression) { return ((ClassTypeExpression) expression).getField().getType(); } else if (expression instanceof ConstantExpression) { return ((ConstantExpression) expression).getValue().getClass(); } else if (expression instanceof CompoundExpression) { return Boolean.class; } else { return null; } }
field.setType(getResultType()); } else { field.setType(getResultType()); newFields.addElement(field);
field.setType(getResultType()); } else { field.setType(getResultType()); newFields.addElement(field);