package org.whole.examples.lang.imp.factories;
import org.whole.lang.factories.GenericEntityFactory;
import org.whole.examples.lang.imp.model.*;
import org.whole.lang.factories.RegistryConfigurations;
import org.whole.lang.factories.IEntityRegistryProvider;
import org.whole.examples.lang.imp.reflect.ImpEntityDescriptorEnum;
import org.whole.lang.factories.IEntityBuilder;
import org.whole.lang.factories.EntityBuilder;
import org.whole.lang.model.IEntity;
/**
* @generator Whole
*/
public class ImpEntityFactory extends GenericEntityFactory {
public static final ImpEntityFactory instance = instance(RegistryConfigurations.DEFAULT);
public static ImpEntityFactory instance(IEntityRegistryProvider provider) {
return new ImpEntityFactory(provider);
}
protected ImpEntityFactory(IEntityRegistryProvider provider) {
super(provider);
}
public FunctionDeclaration createFunctionDeclaration() {
return create(ImpEntityDescriptorEnum.FunctionDeclaration);
}
public FunctionDeclaration createFunctionDeclaration(Type type, Name name,
Parameters parameters, Statement body) {
return create(ImpEntityDescriptorEnum.FunctionDeclaration, type, name,
parameters, body);
}
public IEntityBuilder<FunctionDeclaration> buildFunctionDeclaration() {
return new EntityBuilder<FunctionDeclaration>(
create(ImpEntityDescriptorEnum.FunctionDeclaration));
}
public Parameters createParameters() {
return create(ImpEntityDescriptorEnum.Parameters);
}
public Parameters createParameters(Parameter... entities) {
return create(ImpEntityDescriptorEnum.Parameters, (IEntity[]) entities);
}
public Parameters createParameters(int initialSize) {
return clone(ImpEntityDescriptorEnum.Parameters, initialSize);
}
public Parameter createParameter() {
return create(ImpEntityDescriptorEnum.Parameter);
}
public Parameter createParameter(Type type, Name name) {
return create(ImpEntityDescriptorEnum.Parameter, type, name);
}
public IEntityBuilder<Parameter> buildParameter() {
return new EntityBuilder<Parameter>(
create(ImpEntityDescriptorEnum.Parameter));
}
public VariableDeclaration createVariableDeclaration() {
return create(ImpEntityDescriptorEnum.VariableDeclaration);
}
public VariableDeclaration createVariableDeclaration(Type type, Name name,
Expression initializer) {
return create(ImpEntityDescriptorEnum.VariableDeclaration, type, name,
initializer);
}
public IEntityBuilder<VariableDeclaration> buildVariableDeclaration() {
return new EntityBuilder<VariableDeclaration>(
create(ImpEntityDescriptorEnum.VariableDeclaration));
}
public EmptyStatement createEmptyStatement() {
return create(ImpEntityDescriptorEnum.EmptyStatement);
}
public ReturnStatement createReturnStatement() {
return create(ImpEntityDescriptorEnum.ReturnStatement);
}
public ReturnStatement createReturnStatement(Expression exp) {
return create(ImpEntityDescriptorEnum.ReturnStatement, exp);
}
public IfStatement createIfStatement() {
return create(ImpEntityDescriptorEnum.IfStatement);
}
public IfStatement createIfStatement(Expression condition,
Statement trueBody) {
return create(ImpEntityDescriptorEnum.IfStatement, condition, trueBody);
}
public IEntityBuilder<IfStatement> buildIfStatement() {
return new EntityBuilder<IfStatement>(
create(ImpEntityDescriptorEnum.IfStatement));
}
public IfElseStatement createIfElseStatement() {
return create(ImpEntityDescriptorEnum.IfElseStatement);
}
public IfElseStatement createIfElseStatement(Expression condition,
Statement trueBody, Statement falseBody) {
return create(ImpEntityDescriptorEnum.IfElseStatement, condition,
trueBody, falseBody);
}
public IEntityBuilder<IfElseStatement> buildIfElseStatement() {
return new EntityBuilder<IfElseStatement>(
create(ImpEntityDescriptorEnum.IfElseStatement));
}
public WhileStatement createWhileStatement() {
return create(ImpEntityDescriptorEnum.WhileStatement);
}
public WhileStatement createWhileStatement(Expression condition,
Statement trueBody) {
return create(ImpEntityDescriptorEnum.WhileStatement, condition,
trueBody);
}
public IEntityBuilder<WhileStatement> buildWhileStatement() {
return new EntityBuilder<WhileStatement>(
create(ImpEntityDescriptorEnum.WhileStatement));
}
public DoWhileStatement createDoWhileStatement() {
return create(ImpEntityDescriptorEnum.DoWhileStatement);
}
public DoWhileStatement createDoWhileStatement(Statement trueBody,
Expression condition) {
return create(ImpEntityDescriptorEnum.DoWhileStatement, trueBody,
condition);
}
public IEntityBuilder<DoWhileStatement> buildDoWhileStatement() {
return new EntityBuilder<DoWhileStatement>(
create(ImpEntityDescriptorEnum.DoWhileStatement));
}
public ForStatement createForStatement() {
return create(ImpEntityDescriptorEnum.ForStatement);
}
public ForStatement createForStatement(VariableDeclaration initializer,
Expression condition, Expression updater, Statement trueBody) {
return create(ImpEntityDescriptorEnum.ForStatement, initializer,
condition, updater, trueBody);
}
public IEntityBuilder<ForStatement> buildForStatement() {
return new EntityBuilder<ForStatement>(
create(ImpEntityDescriptorEnum.ForStatement));
}
public ForeachStatement createForeachStatement() {
return create(ImpEntityDescriptorEnum.ForeachStatement);
}
public ForeachStatement createForeachStatement(Name name,
Expression arrayExp, Statement trueBody) {
return create(ImpEntityDescriptorEnum.ForeachStatement, name, arrayExp,
trueBody);
}
public IEntityBuilder<ForeachStatement> buildForeachStatement() {
return new EntityBuilder<ForeachStatement>(
create(ImpEntityDescriptorEnum.ForeachStatement));
}
public BlockStatement createBlockStatement() {
return create(ImpEntityDescriptorEnum.BlockStatement);
}
public BlockStatement createBlockStatement(Statement... entities) {
return create(ImpEntityDescriptorEnum.BlockStatement,
(IEntity[]) entities);
}
public BlockStatement createBlockStatement(int initialSize) {
return clone(ImpEntityDescriptorEnum.BlockStatement, initialSize);
}
public PrintStatement createPrintStatement() {
return create(ImpEntityDescriptorEnum.PrintStatement);
}
public PrintStatement createPrintStatement(Expression exp) {
return create(ImpEntityDescriptorEnum.PrintStatement, exp);
}
public PrintlnStatement createPrintlnStatement() {
return create(ImpEntityDescriptorEnum.PrintlnStatement);
}
public PrintlnStatement createPrintlnStatement(Expression exp) {
return create(ImpEntityDescriptorEnum.PrintlnStatement, exp);
}
public SaveStatement createSaveStatement() {
return create(ImpEntityDescriptorEnum.SaveStatement);
}
public SaveStatement createSaveStatement(Expression exp, Expression fileName) {
return create(ImpEntityDescriptorEnum.SaveStatement, exp, fileName);
}
public IEntityBuilder<SaveStatement> buildSaveStatement() {
return new EntityBuilder<SaveStatement>(
create(ImpEntityDescriptorEnum.SaveStatement));
}
public ExpressionStatement createExpressionStatement() {
return create(ImpEntityDescriptorEnum.ExpressionStatement);
}
public ExpressionStatement createExpressionStatement(Expression exp) {
return create(ImpEntityDescriptorEnum.ExpressionStatement, exp);
}
public LoadExpression createLoadExpression() {
return create(ImpEntityDescriptorEnum.LoadExpression);
}
public LoadExpression createLoadExpression(Expression fileName,
Expression language) {
return create(ImpEntityDescriptorEnum.LoadExpression, fileName,
language);
}
public IEntityBuilder<LoadExpression> buildLoadExpression() {
return new EntityBuilder<LoadExpression>(
create(ImpEntityDescriptorEnum.LoadExpression));
}
public FunctionInvocationExpression createFunctionInvocationExpression() {
return create(ImpEntityDescriptorEnum.FunctionInvocationExpression);
}
public FunctionInvocationExpression createFunctionInvocationExpression(
NameExpression name, Arguments arguments) {
return create(ImpEntityDescriptorEnum.FunctionInvocationExpression,
name, arguments);
}
public IEntityBuilder<FunctionInvocationExpression> buildFunctionInvocationExpression() {
return new EntityBuilder<FunctionInvocationExpression>(
create(ImpEntityDescriptorEnum.FunctionInvocationExpression));
}
public Arguments createArguments() {
return create(ImpEntityDescriptorEnum.Arguments);
}
public Arguments createArguments(Expression... entities) {
return create(ImpEntityDescriptorEnum.Arguments, (IEntity[]) entities);
}
public Arguments createArguments(int initialSize) {
return clone(ImpEntityDescriptorEnum.Arguments, initialSize);
}
public AssignmentExpression createAssignmentExpression() {
return create(ImpEntityDescriptorEnum.AssignmentExpression);
}
public AssignmentExpression createAssignmentExpression(Name name,
Expression exp) {
return create(ImpEntityDescriptorEnum.AssignmentExpression, name, exp);
}
public IEntityBuilder<AssignmentExpression> buildAssignmentExpression() {
return new EntityBuilder<AssignmentExpression>(
create(ImpEntityDescriptorEnum.AssignmentExpression));
}
public RunExpression createRunExpression() {
return create(ImpEntityDescriptorEnum.RunExpression);
}
public RunExpression createRunExpression(Expression exp) {
return create(ImpEntityDescriptorEnum.RunExpression, exp);
}
public SizeExpression createSizeExpression() {
return create(ImpEntityDescriptorEnum.SizeExpression);
}
public SizeExpression createSizeExpression(Expression exp) {
return create(ImpEntityDescriptorEnum.SizeExpression, exp);
}
public BooleanLiteral createBooleanLiteral() {
return create(ImpEntityDescriptorEnum.BooleanLiteral);
}
public BooleanLiteral createBooleanLiteral(boolean value) {
return create(ImpEntityDescriptorEnum.BooleanLiteral, value);
}
public IntLiteral createIntLiteral() {
return create(ImpEntityDescriptorEnum.IntLiteral);
}
public IntLiteral createIntLiteral(int value) {
return create(ImpEntityDescriptorEnum.IntLiteral, value);
}
public StringLiteral createStringLiteral() {
return create(ImpEntityDescriptorEnum.StringLiteral);
}
public StringLiteral createStringLiteral(String value) {
return create(ImpEntityDescriptorEnum.StringLiteral, value);
}
public RangeLiteral createRangeLiteral() {
return create(ImpEntityDescriptorEnum.RangeLiteral);
}
public RangeLiteral createRangeLiteral(IntLiteral lowerBound,
IntLiteral upperBound) {
return create(ImpEntityDescriptorEnum.RangeLiteral, lowerBound,
upperBound);
}
public IEntityBuilder<RangeLiteral> buildRangeLiteral() {
return new EntityBuilder<RangeLiteral>(
create(ImpEntityDescriptorEnum.RangeLiteral));
}
public ArrayLiteral createArrayLiteral() {
return create(ImpEntityDescriptorEnum.ArrayLiteral);
}
public ArrayLiteral createArrayLiteral(Literal... entities) {
return create(ImpEntityDescriptorEnum.ArrayLiteral,
(IEntity[]) entities);
}
public ArrayLiteral createArrayLiteral(int initialSize) {
return clone(ImpEntityDescriptorEnum.ArrayLiteral, initialSize);
}
public Name createName() {
return create(ImpEntityDescriptorEnum.Name);
}
public Name createName(String value) {
return create(ImpEntityDescriptorEnum.Name, value);
}
public NameExpression createNameExpression() {
return create(ImpEntityDescriptorEnum.NameExpression);
}
public NameExpression createNameExpression(String value) {
return create(ImpEntityDescriptorEnum.NameExpression, value);
}
public PrimitiveType createPrimitiveType() {
return create(ImpEntityDescriptorEnum.PrimitiveType);
}
public PrimitiveType createPrimitiveType(PrimitiveTypeEnum.Value value) {
return create(ImpEntityDescriptorEnum.PrimitiveType, value);
}
public ArrayType createArrayType() {
return create(ImpEntityDescriptorEnum.ArrayType);
}
public ArrayType createArrayType(Type contentType, PrimitiveType indexType) {
return create(ImpEntityDescriptorEnum.ArrayType, contentType, indexType);
}
public IEntityBuilder<ArrayType> buildArrayType() {
return new EntityBuilder<ArrayType>(
create(ImpEntityDescriptorEnum.ArrayType));
}
public ArrayAccess createArrayAccess() {
return create(ImpEntityDescriptorEnum.ArrayAccess);
}
public ArrayAccess createArrayAccess(Expression array, Expression index) {
return create(ImpEntityDescriptorEnum.ArrayAccess, array, index);
}
public IEntityBuilder<ArrayAccess> buildArrayAccess() {
return new EntityBuilder<ArrayAccess>(
create(ImpEntityDescriptorEnum.ArrayAccess));
}
public Addition createAddition() {
return create(ImpEntityDescriptorEnum.Addition);
}
public Addition createAddition(Expression exp1, Expression exp2) {
return create(ImpEntityDescriptorEnum.Addition, exp1, exp2);
}
public IEntityBuilder<Addition> buildAddition() {
return new EntityBuilder<Addition>(
create(ImpEntityDescriptorEnum.Addition));
}
public Subtraction createSubtraction() {
return create(ImpEntityDescriptorEnum.Subtraction);
}
public Subtraction createSubtraction(Expression exp1, Expression exp2) {
return create(ImpEntityDescriptorEnum.Subtraction, exp1, exp2);
}
public IEntityBuilder<Subtraction> buildSubtraction() {
return new EntityBuilder<Subtraction>(
create(ImpEntityDescriptorEnum.Subtraction));
}
public Multiplication createMultiplication() {
return create(ImpEntityDescriptorEnum.Multiplication);
}
public Multiplication createMultiplication(Expression exp1, Expression exp2) {
return create(ImpEntityDescriptorEnum.Multiplication, exp1, exp2);
}
public IEntityBuilder<Multiplication> buildMultiplication() {
return new EntityBuilder<Multiplication>(
create(ImpEntityDescriptorEnum.Multiplication));
}
public Division createDivision() {
return create(ImpEntityDescriptorEnum.Division);
}
public Division createDivision(Expression exp1, Expression exp2) {
return create(ImpEntityDescriptorEnum.Division, exp1, exp2);
}
public IEntityBuilder<Division> buildDivision() {
return new EntityBuilder<Division>(
create(ImpEntityDescriptorEnum.Division));
}
public Remainder createRemainder() {
return create(ImpEntityDescriptorEnum.Remainder);
}
public Remainder createRemainder(Expression exp1, Expression exp2) {
return create(ImpEntityDescriptorEnum.Remainder, exp1, exp2);
}
public IEntityBuilder<Remainder> buildRemainder() {
return new EntityBuilder<Remainder>(
create(ImpEntityDescriptorEnum.Remainder));
}
public And createAnd() {
return create(ImpEntityDescriptorEnum.And);
}
public And createAnd(Expression exp1, Expression exp2) {
return create(ImpEntityDescriptorEnum.And, exp1, exp2);
}
public IEntityBuilder<And> buildAnd() {
return new EntityBuilder<And>(create(ImpEntityDescriptorEnum.And));
}
public Or createOr() {
return create(ImpEntityDescriptorEnum.Or);
}
public Or createOr(Expression exp1, Expression exp2) {
return create(ImpEntityDescriptorEnum.Or, exp1, exp2);
}
public IEntityBuilder<Or> buildOr() {
return new EntityBuilder<Or>(create(ImpEntityDescriptorEnum.Or));
}
public Not createNot() {
return create(ImpEntityDescriptorEnum.Not);
}
public Not createNot(Expression exp) {
return create(ImpEntityDescriptorEnum.Not, exp);
}
public Equals createEquals() {
return create(ImpEntityDescriptorEnum.Equals);
}
public Equals createEquals(Expression exp1, Expression exp2) {
return create(ImpEntityDescriptorEnum.Equals, exp1, exp2);
}
public IEntityBuilder<Equals> buildEquals() {
return new EntityBuilder<Equals>(create(ImpEntityDescriptorEnum.Equals));
}
public NotEquals createNotEquals() {
return create(ImpEntityDescriptorEnum.NotEquals);
}
public NotEquals createNotEquals(Expression exp1, Expression exp2) {
return create(ImpEntityDescriptorEnum.NotEquals, exp1, exp2);
}
public IEntityBuilder<NotEquals> buildNotEquals() {
return new EntityBuilder<NotEquals>(
create(ImpEntityDescriptorEnum.NotEquals));
}
public LessThan createLessThan() {
return create(ImpEntityDescriptorEnum.LessThan);
}
public LessThan createLessThan(Expression exp1, Expression exp2) {
return create(ImpEntityDescriptorEnum.LessThan, exp1, exp2);
}
public IEntityBuilder<LessThan> buildLessThan() {
return new EntityBuilder<LessThan>(
create(ImpEntityDescriptorEnum.LessThan));
}
public LessOrEquals createLessOrEquals() {
return create(ImpEntityDescriptorEnum.LessOrEquals);
}
public LessOrEquals createLessOrEquals(Expression exp1, Expression exp2) {
return create(ImpEntityDescriptorEnum.LessOrEquals, exp1, exp2);
}
public IEntityBuilder<LessOrEquals> buildLessOrEquals() {
return new EntityBuilder<LessOrEquals>(
create(ImpEntityDescriptorEnum.LessOrEquals));
}
public GreaterThan createGreaterThan() {
return create(ImpEntityDescriptorEnum.GreaterThan);
}
public GreaterThan createGreaterThan(Expression exp1, Expression exp2) {
return create(ImpEntityDescriptorEnum.GreaterThan, exp1, exp2);
}
public IEntityBuilder<GreaterThan> buildGreaterThan() {
return new EntityBuilder<GreaterThan>(
create(ImpEntityDescriptorEnum.GreaterThan));
}
public GreaterOrEquals createGreaterOrEquals() {
return create(ImpEntityDescriptorEnum.GreaterOrEquals);
}
public GreaterOrEquals createGreaterOrEquals(Expression exp1,
Expression exp2) {
return create(ImpEntityDescriptorEnum.GreaterOrEquals, exp1, exp2);
}
public IEntityBuilder<GreaterOrEquals> buildGreaterOrEquals() {
return new EntityBuilder<GreaterOrEquals>(
create(ImpEntityDescriptorEnum.GreaterOrEquals));
}
}