/** * Copyright 2004-2016 Riccardo Solmi. All rights reserved. * This file is part of the Whole Platform. * * The Whole Platform is free software: you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * The Whole Platform is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public License * along with the Whole Platform. If not, see <http://www.gnu.org/licenses/>. */ package org.whole.lang.types.factories; import org.whole.lang.factories.GenericEntityFactory; import org.whole.lang.types.model.*; import org.whole.lang.factories.RegistryConfigurations; import org.whole.lang.factories.IEntityRegistryProvider; import org.whole.lang.types.reflect.TypesEntityDescriptorEnum; import org.whole.lang.factories.IEntityBuilder; import org.whole.lang.factories.EntityBuilder; import org.whole.lang.model.IEntity; /** * @generator Whole */ public class TypesEntityFactory extends GenericEntityFactory { public static final TypesEntityFactory instance = instance(RegistryConfigurations.DEFAULT); public static TypesEntityFactory instance(IEntityRegistryProvider provider) { return new TypesEntityFactory(provider); } protected TypesEntityFactory(IEntityRegistryProvider provider) { super(provider); } public TypeSystem createTypeSystem() { return create(TypesEntityDescriptorEnum.TypeSystem); } public TypeSystem createTypeSystem(Operations checkBefore, TypeRules rules) { return create(TypesEntityDescriptorEnum.TypeSystem, checkBefore, rules); } public IEntityBuilder<TypeSystem> buildTypeSystem() { return new EntityBuilder<TypeSystem>(create(TypesEntityDescriptorEnum.TypeSystem)); } public TypeRules createTypeRules() { return create(TypesEntityDescriptorEnum.TypeRules); } public TypeRules createTypeRules(TypeRule... entities) { return create(TypesEntityDescriptorEnum.TypeRules, (IEntity[]) entities); } public TypeRules createTypeRules(int initialSize) { return clone(TypesEntityDescriptorEnum.TypeRules, initialSize); } public TypeRule createTypeRule() { return create(TypesEntityDescriptorEnum.TypeRule); } public TypeRule createTypeRule(DomainType domain, Type type) { return create(TypesEntityDescriptorEnum.TypeRule, domain, type); } public IEntityBuilder<TypeRule> buildTypeRule() { return new EntityBuilder<TypeRule>(create(TypesEntityDescriptorEnum.TypeRule)); } public AnyType createAnyType() { return create(TypesEntityDescriptorEnum.AnyType); } public LegacyType createLegacyType() { return create(TypesEntityDescriptorEnum.LegacyType); } public LegacyType createLegacyType(LegacyTypeEnum.Value value) { return create(TypesEntityDescriptorEnum.LegacyType, value); } public VariableType createVariableType() { return create(TypesEntityDescriptorEnum.VariableType); } public VariableType createVariableType(int value) { return create(TypesEntityDescriptorEnum.VariableType, value); } public EntityType createEntityType() { return create(TypesEntityDescriptorEnum.EntityType); } public EntityType createEntityType(String value) { return create(TypesEntityDescriptorEnum.EntityType, value); } public UnionType createUnionType() { return create(TypesEntityDescriptorEnum.UnionType); } public UnionType createUnionType(EntityType... entities) { return create(TypesEntityDescriptorEnum.UnionType, (IEntity[]) entities); } public UnionType createUnionType(int initialSize) { return clone(TypesEntityDescriptorEnum.UnionType, initialSize); } public FeatureType createFeatureType() { return create(TypesEntityDescriptorEnum.FeatureType); } public FeatureType createFeatureType(String value) { return create(TypesEntityDescriptorEnum.FeatureType, value); } public FeatureTableType createFeatureTableType() { return create(TypesEntityDescriptorEnum.FeatureTableType); } public FeatureTableType createFeatureTableType(Arguments arguments, Cases cases) { return create(TypesEntityDescriptorEnum.FeatureTableType, arguments, cases); } public IEntityBuilder<FeatureTableType> buildFeatureTableType() { return new EntityBuilder<FeatureTableType>(create(TypesEntityDescriptorEnum.FeatureTableType)); } public Arguments createArguments() { return create(TypesEntityDescriptorEnum.Arguments); } public Arguments createArguments(ArgumentType... entities) { return create(TypesEntityDescriptorEnum.Arguments, (IEntity[]) entities); } public Arguments createArguments(int initialSize) { return clone(TypesEntityDescriptorEnum.Arguments, initialSize); } public Cases createCases() { return create(TypesEntityDescriptorEnum.Cases); } public Cases createCases(Case... entities) { return create(TypesEntityDescriptorEnum.Cases, (IEntity[]) entities); } public Cases createCases(int initialSize) { return clone(TypesEntityDescriptorEnum.Cases, initialSize); } public Case createCase() { return create(TypesEntityDescriptorEnum.Case); } public Case createCase(BasicType type, Expressions expressions) { return create(TypesEntityDescriptorEnum.Case, type, expressions); } public IEntityBuilder<Case> buildCase() { return new EntityBuilder<Case>(create(TypesEntityDescriptorEnum.Case)); } public OrExpressions createOrExpressions() { return create(TypesEntityDescriptorEnum.OrExpressions); } public OrExpressions createOrExpressions(TypeExpressions... entities) { return create(TypesEntityDescriptorEnum.OrExpressions, (IEntity[]) entities); } public OrExpressions createOrExpressions(int initialSize) { return clone(TypesEntityDescriptorEnum.OrExpressions, initialSize); } public TypeExpressions createTypeExpressions() { return create(TypesEntityDescriptorEnum.TypeExpressions); } public TypeExpressions createTypeExpressions(TypeExpression... entities) { return create(TypesEntityDescriptorEnum.TypeExpressions, (IEntity[]) entities); } public TypeExpressions createTypeExpressions(int initialSize) { return clone(TypesEntityDescriptorEnum.TypeExpressions, initialSize); } public Subtype createSubtype() { return create(TypesEntityDescriptorEnum.Subtype); } public Subtype createSubtype(VariableType name, VariableType type) { return create(TypesEntityDescriptorEnum.Subtype, name, type); } public IEntityBuilder<Subtype> buildSubtype() { return new EntityBuilder<Subtype>(create(TypesEntityDescriptorEnum.Subtype)); } public Supertype createSupertype() { return create(TypesEntityDescriptorEnum.Supertype); } public Supertype createSupertype(VariableType name, VariableType type) { return create(TypesEntityDescriptorEnum.Supertype, name, type); } public IEntityBuilder<Supertype> buildSupertype() { return new EntityBuilder<Supertype>(create(TypesEntityDescriptorEnum.Supertype)); } }