/**
* Copyright (c) 2004-2011 Wang Jinbao(Julian Wong), http://www.ralasafe.com
* Licensed under the MIT license: http://www.opensource.org/licenses/mit-license.php
*/
package org.ralasafe.script;
import java.util.ArrayList;
public class Formula extends DefineVariable {
private String type;
private String operator;
private ArrayList variables=new ArrayList();
public String getType() {
return type;
}
public void setType( String type ) {
this.type=type;
}
/**
* Script likes: Integer v = (Integer)v1 + (Integer)v2 + ....; Integer v =
* (Integer)v1 - (Integer)v2 - ....; Integer v = (Integer)v1 * (Integer)v2 *
* ....; Integer v = (Integer)v1 / (Integer)v2 / ....;
*/
public String toScript() {
String clazz=null;
if( type.equalsIgnoreCase( "integer" ) ) {
clazz="Integer";
} else if( type.equalsIgnoreCase( "float" ) ) {
clazz="Double";
}
String v=getVariableName();
StringBuffer buff=new StringBuffer();
buff.append( clazz ).append( " " ).append( v ).append( " = " );
int size=variables.size();
for( int i=0; i<size; i++ ) {
Variable variable=(Variable) variables.get( i );
if( i>0 ) {
buff.append( " " ).append( operator ).append( " " );
}
buff.append( "(" ).append( variable.getName() ).append(
" == null ? 0 : new " ).append( clazz ).append( "(" )
.append( variable.getName() ).append( "))" );
}
buff.append( ";\n" );
return buff.toString();
}
public ArrayList getVariables() {
return variables;
}
public void setVariables( ArrayList variables ) {
this.variables=variables;
}
public String getOperator() {
return operator;
}
public void setOperator( String operator ) {
this.operator=operator;
}
}