package org.whole.lang.scheme.factories;
import org.whole.lang.factories.GenericEntityFactory;
import org.whole.lang.scheme.model.*;
import org.whole.lang.factories.RegistryConfigurations;
import org.whole.lang.factories.IEntityRegistryProvider;
import org.whole.lang.scheme.reflect.SchemeEntityDescriptorEnum;
import org.whole.lang.model.IEntity;
import org.whole.lang.factories.IEntityBuilder;
import org.whole.lang.factories.EntityBuilder;
/**
* @generator Whole
*/
public class SchemeEntityFactory extends GenericEntityFactory {
public static final SchemeEntityFactory instance = instance(RegistryConfigurations.DEFAULT);
public static SchemeEntityFactory instance(IEntityRegistryProvider provider) {
return new SchemeEntityFactory(provider);
}
protected SchemeEntityFactory(IEntityRegistryProvider provider) {
super(provider);
}
public Definitions createDefinitions() {
return create(SchemeEntityDescriptorEnum.Definitions);
}
public Definitions createDefinitions(Definition... entities) {
return create(SchemeEntityDescriptorEnum.Definitions,
(IEntity[]) entities);
}
public Definitions createDefinitions(int initialSize) {
return clone(SchemeEntityDescriptorEnum.Definitions, initialSize);
}
public Definition createDefinition() {
return create(SchemeEntityDescriptorEnum.Definition);
}
public Definition createDefinition(Name name, SchemeExpression expression) {
return create(SchemeEntityDescriptorEnum.Definition, name, expression);
}
public IEntityBuilder<Definition> buildDefinition() {
return new EntityBuilder<Definition>(
create(SchemeEntityDescriptorEnum.Definition));
}
public Branches createBranches() {
return create(SchemeEntityDescriptorEnum.Branches);
}
public Branches createBranches(Branch... entities) {
return create(SchemeEntityDescriptorEnum.Branches, (IEntity[]) entities);
}
public Branches createBranches(int initialSize) {
return clone(SchemeEntityDescriptorEnum.Branches, initialSize);
}
public Branch createBranch() {
return create(SchemeEntityDescriptorEnum.Branch);
}
public Branch createBranch(SchemeExpression test, SchemeExpression body) {
return create(SchemeEntityDescriptorEnum.Branch, test, body);
}
public IEntityBuilder<Branch> buildBranch() {
return new EntityBuilder<Branch>(
create(SchemeEntityDescriptorEnum.Branch));
}
public SchemeExpressions createSchemeExpressions() {
return create(SchemeEntityDescriptorEnum.SchemeExpressions);
}
public SchemeExpressions createSchemeExpressions(
SchemeExpression... entities) {
return create(SchemeEntityDescriptorEnum.SchemeExpressions,
(IEntity[]) entities);
}
public SchemeExpressions createSchemeExpressions(int initialSize) {
return clone(SchemeEntityDescriptorEnum.SchemeExpressions, initialSize);
}
public ApplyExpression createApplyExpression() {
return create(SchemeEntityDescriptorEnum.ApplyExpression);
}
public ApplyExpression createApplyExpression(SchemeExpressions expressions) {
return create(SchemeEntityDescriptorEnum.ApplyExpression, expressions);
}
public LambdaExpression createLambdaExpression() {
return create(SchemeEntityDescriptorEnum.LambdaExpression);
}
public LambdaExpression createLambdaExpression(Names args,
SchemeExpression body) {
return create(SchemeEntityDescriptorEnum.LambdaExpression, args, body);
}
public IEntityBuilder<LambdaExpression> buildLambdaExpression() {
return new EntityBuilder<LambdaExpression>(
create(SchemeEntityDescriptorEnum.LambdaExpression));
}
public AndExpression createAndExpression() {
return create(SchemeEntityDescriptorEnum.AndExpression);
}
public AndExpression createAndExpression(SchemeExpressions expressions) {
return create(SchemeEntityDescriptorEnum.AndExpression, expressions);
}
public OrExpression createOrExpression() {
return create(SchemeEntityDescriptorEnum.OrExpression);
}
public OrExpression createOrExpression(SchemeExpressions expressions) {
return create(SchemeEntityDescriptorEnum.OrExpression, expressions);
}
public CondExpression createCondExpression() {
return create(SchemeEntityDescriptorEnum.CondExpression);
}
public CondExpression createCondExpression(Branches branches,
SchemeExpression elseBody) {
return create(SchemeEntityDescriptorEnum.CondExpression, branches,
elseBody);
}
public IEntityBuilder<CondExpression> buildCondExpression() {
return new EntityBuilder<CondExpression>(
create(SchemeEntityDescriptorEnum.CondExpression));
}
public LocalExpression createLocalExpression() {
return create(SchemeEntityDescriptorEnum.LocalExpression);
}
public LocalExpression createLocalExpression(Definitions definitions,
SchemeExpression body) {
return create(SchemeEntityDescriptorEnum.LocalExpression, definitions,
body);
}
public IEntityBuilder<LocalExpression> buildLocalExpression() {
return new EntityBuilder<LocalExpression>(
create(SchemeEntityDescriptorEnum.LocalExpression));
}
public IdExpression createIdExpression() {
return create(SchemeEntityDescriptorEnum.IdExpression);
}
public IdExpression createIdExpression(String value) {
return create(SchemeEntityDescriptorEnum.IdExpression, value);
}
public ClosureValue createClosureValue() {
return create(SchemeEntityDescriptorEnum.ClosureValue);
}
public ClosureValue createClosureValue(Names args, SchemeExpression body,
SchemeEnvironment env) {
return create(SchemeEntityDescriptorEnum.ClosureValue, args, body, env);
}
public IEntityBuilder<ClosureValue> buildClosureValue() {
return new EntityBuilder<ClosureValue>(
create(SchemeEntityDescriptorEnum.ClosureValue));
}
public BuiltinValue createBuiltinValue() {
return create(SchemeEntityDescriptorEnum.BuiltinValue);
}
public BuiltinValue createBuiltinValue(BuiltinValueEnum.Value value) {
return create(SchemeEntityDescriptorEnum.BuiltinValue, value);
}
public BooleanValue createBooleanValue() {
return create(SchemeEntityDescriptorEnum.BooleanValue);
}
public BooleanValue createBooleanValue(boolean value) {
return create(SchemeEntityDescriptorEnum.BooleanValue, value);
}
public IntValue createIntValue() {
return create(SchemeEntityDescriptorEnum.IntValue);
}
public IntValue createIntValue(int value) {
return create(SchemeEntityDescriptorEnum.IntValue, value);
}
public StringValue createStringValue() {
return create(SchemeEntityDescriptorEnum.StringValue);
}
public StringValue createStringValue(String value) {
return create(SchemeEntityDescriptorEnum.StringValue, value);
}
public PairValue createPairValue() {
return create(SchemeEntityDescriptorEnum.PairValue);
}
public PairValue createPairValue(ConstExpression car, ConstExpression cdr) {
return create(SchemeEntityDescriptorEnum.PairValue, car, cdr);
}
public IEntityBuilder<PairValue> buildPairValue() {
return new EntityBuilder<PairValue>(
create(SchemeEntityDescriptorEnum.PairValue));
}
public Names createNames() {
return create(SchemeEntityDescriptorEnum.Names);
}
public Names createNames(Name... entities) {
return create(SchemeEntityDescriptorEnum.Names, (IEntity[]) entities);
}
public Names createNames(int initialSize) {
return clone(SchemeEntityDescriptorEnum.Names, initialSize);
}
public Name createName() {
return create(SchemeEntityDescriptorEnum.Name);
}
public Name createName(String value) {
return create(SchemeEntityDescriptorEnum.Name, value);
}
public SchemeEnvironment createSchemeEnvironment() {
return create(SchemeEntityDescriptorEnum.SchemeEnvironment);
}
public SchemeEnvironment createSchemeEnvironment(
org.whole.lang.bindings.IBindingManager value) {
return create(SchemeEntityDescriptorEnum.SchemeEnvironment, value);
}
}