package com.laytonsmith.testing; import com.laytonsmith.core.Static; import com.laytonsmith.core.constructs.CArray; import com.laytonsmith.core.constructs.CBoolean; import com.laytonsmith.core.constructs.CClassType; import com.laytonsmith.core.constructs.CDouble; import com.laytonsmith.core.constructs.CInt; import com.laytonsmith.core.constructs.CNull; import com.laytonsmith.core.constructs.CString; import com.laytonsmith.core.constructs.CVoid; import com.laytonsmith.core.constructs.Construct; import com.laytonsmith.core.constructs.IVariable; import com.laytonsmith.core.constructs.Target; import com.laytonsmith.core.constructs.Variable; /** * This class provides methods for more easily creating different Constructs for testing purposes. * */ public class C { //Shortcut to Construct.class public static Class Array = CArray.class; public static Class Boolean = CBoolean.class; public static Class Double = CDouble.class; public static Class Int = CInt.class; public static Class Null = CNull.class; public static Class String = CString.class; public static Class Void = CVoid.class; public static Class IVariable = IVariable.class; public static Class Variable = Variable.class; public static CArray Array(Construct ... elems){ return new CArray(Target.UNKNOWN, elems); } public static CBoolean Boolean(boolean b){ return CBoolean.get(b); } public static CDouble Double(double d){ return new CDouble(d, Target.UNKNOWN); } public static CInt Int(long val){ return new CInt(val, Target.UNKNOWN); } public static CNull Null(){ return CNull.NULL; } public static CString String(String s){ return new CString(s, Target.UNKNOWN); } public static CVoid Void(){ return CVoid.VOID; } public static IVariable IVariable(String name, Construct val){ return new IVariable(CClassType.AUTO, name, val, Target.UNKNOWN); } public static Variable Variable(String name, String val){ return new Variable(name, val, false, false, Target.UNKNOWN); } /** * Returns a construct in the same way that constructs are resolved in scripts. * @param val * @return */ public static Construct onstruct(String val){ return Static.resolveConstruct(val, Target.UNKNOWN); } public static Construct onstruct(long val){ return Static.resolveConstruct(Long.toString(val), Target.UNKNOWN); } public static Construct onstruct(boolean val){ return Static.resolveConstruct((val?"true":"false"), Target.UNKNOWN); } public static Construct onstruct(double val){ return Static.resolveConstruct(java.lang.Double.toString(val), Target.UNKNOWN); } }