/************************************************************************************** * Copyright (C) 2008 EsperTech, Inc. All rights reserved. * * http://esper.codehaus.org * * http://www.espertech.com * * ---------------------------------------------------------------------------------- * * The software in this package is published under the terms of the GPL license * * a copy of which has been included with this distribution in the license.txt file. * **************************************************************************************/ package com.espertech.esper.client.soda; import java.io.StringWriter; /** * Cast expression casts the return value of an expression to a specified type. */ public class CastExpression extends ExpressionBase { private String typeName; private static final long serialVersionUID = -8931072217889088459L; /** * Ctor. */ public CastExpression() { } /** * Ctor - for use to create an expression tree, without child expression. * @param typeName is the type to cast to: a fully-qualified class name or Java primitive type name or "string" */ public CastExpression(String typeName) { this.typeName = typeName; } /** * Ctor. * @param expressionToCheck provides values to cast * @param typeName is the type to cast to: a fully-qualified class names or Java primitive type names or "string" */ public CastExpression(Expression expressionToCheck, String typeName) { this.getChildren().add(expressionToCheck); this.typeName = typeName; } public ExpressionPrecedenceEnum getPrecedence() { return ExpressionPrecedenceEnum.UNARY; } public void toPrecedenceFreeEPL(StringWriter writer) { writer.write("cast("); this.getChildren().get(0).toEPL(writer, ExpressionPrecedenceEnum.MINIMUM); writer.write(", "); writer.write(typeName); writer.write(")"); } /** * Returns the name of the type to cast to. * @return type name */ public String getTypeName() { return typeName; } /** * Sets the name of the type to cast to. * @param typeName is the name of type to cast to */ public void setTypeName(String typeName) { this.typeName = typeName; } }