package org.overture.codegen.vdm2jml.predgen.info;
import java.util.List;
import org.overture.codegen.vdm2jml.util.NameGen;
public abstract class AbstractTypeInfo
{
private boolean optional;
public AbstractTypeInfo(boolean optional)
{
this.optional = optional;
}
public final boolean isOptional()
{
return optional;
}
public void setOptional(boolean optional)
{
this.optional = optional;
}
abstract public List<LeafTypeInfo> getLeafTypesRecursively();
abstract public String consCheckExp(String enclosingClass,
String javaRootPackage, String arg, NameGen nameGen);
public String consIsNullCheck(String arg)
{
return "(" + arg + " == null)";
}
public static String consSubjectCheck(String className, String methodName,
String subject)
{
return consSubjectCheckExtraArg(className, methodName, subject, null);
}
public static String consSubjectCheckExtraArg(String className,
String methodName, String subject, String arg)
{
String call = className + "." + methodName + "(" + subject;
if (arg != null)
{
call += "," + arg;
}
call += ")";
return call;
}
}