Class BaseTypeVisitor
- java.lang.Object
-
- net.ssehub.easy.varModel.model.datatypes.BaseTypeVisitor
-
- All Implemented Interfaces:
IDatatypeVisitor
public class BaseTypeVisitor extends java.lang.Object implements IDatatypeVisitor
A visitor which determines the (recursive) base type of a given type. In particular, the topmost base type of a derived type is determined.- Author:
- Holger Eichelberger
-
-
Field Summary
Fields Modifier and Type Field Description private static java.util.List<BaseTypeVisitor>POOLprivate IDatatypetype
-
Constructor Summary
Constructors Modifier Constructor Description privateBaseTypeVisitor()Prevents initialization from outside.
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description static IDatatypegetBaseType(IDatatype type)Returns the base type oftype.private static BaseTypeVisitorgetInstance(IDatatype type)Obtains an instance from the pool.private IDatatypegetType()Returns the inferred base type.private static voidreleaseInstance(BaseTypeVisitor visitor)Releases an instance to the pool.private voidsetType(IDatatype type)Defines the initial value of the base type (also used for resetting and reuse).voidvisitAnyType(AnyType datatype)Is called by an AnyType.voidvisitBooleanType(BooleanType type)Visiting method for visiting aBooleanType.voidvisitCompoundType(Compound compound)Visiting method for visiting aCompound.voidvisitConstraintType(ConstraintType type)Visiting method for visiting aConstraintType.voidvisitDatatype(IDatatype datatype)Is called by an arbitrary data type.voidvisitDerivedType(DerivedDatatype datatype)Is called by anDerivedDatatypedata type.voidvisitEnumType(Enum enumType)Visiting method for visiting aEnum.voidvisitIntegerType(IntegerType type)Visiting method for visiting aIntegerType.voidvisitMetaType(MetaType datatype)Is called by a MetaType.voidvisitOrderedEnumType(OrderedEnum enumType)Visiting method for visiting aOrderredEnum.voidvisitRealType(RealType type)Visiting method for visiting aRealType.voidvisitReference(Reference reference)Is called by a reference data type.voidvisitSequence(Sequence sequence)Is called by a sequence datatype.voidvisitSet(Set set)Is called by a set data type.voidvisitStringType(StringType type)Visiting method for visiting aStringType.voidvisitVersionType(VersionType type)Visiting method for visiting aVersionType.
-
-
-
Field Detail
-
POOL
private static final java.util.List<BaseTypeVisitor> POOL
-
type
private IDatatype type
-
-
Method Detail
-
setType
private void setType(IDatatype type)
Defines the initial value of the base type (also used for resetting and reuse).- Parameters:
type- the initial base type
-
getType
private IDatatype getType()
Returns the inferred base type.- Returns:
- the base type
-
getInstance
private static final BaseTypeVisitor getInstance(IDatatype type)
Obtains an instance from the pool.- Parameters:
type- the type to be analyzed- Returns:
- the instance, to be released by
releaseInstance(BaseTypeVisitor)
-
releaseInstance
private static final void releaseInstance(BaseTypeVisitor visitor)
Releases an instance to the pool.- Parameters:
visitor- the instance to be released
-
getBaseType
public static final IDatatype getBaseType(IDatatype type)
Returns the base type oftype.- Parameters:
type- the type the base type shall be determined- Returns:
typeor the base type
-
visitDatatype
public void visitDatatype(IDatatype datatype)
Description copied from interface:IDatatypeVisitorIs called by an arbitrary data type.- Specified by:
visitDatatypein interfaceIDatatypeVisitor- Parameters:
datatype- the data type.
-
visitAnyType
public void visitAnyType(AnyType datatype)
Description copied from interface:IDatatypeVisitorIs called by an AnyType.- Specified by:
visitAnyTypein interfaceIDatatypeVisitor- Parameters:
datatype- the data type.
-
visitMetaType
public void visitMetaType(MetaType datatype)
Description copied from interface:IDatatypeVisitorIs called by a MetaType.- Specified by:
visitMetaTypein interfaceIDatatypeVisitor- Parameters:
datatype- the data type.
-
visitDerivedType
public void visitDerivedType(DerivedDatatype datatype)
Description copied from interface:IDatatypeVisitorIs called by anDerivedDatatypedata type.- Specified by:
visitDerivedTypein interfaceIDatatypeVisitor- Parameters:
datatype- the data type.
-
visitSet
public void visitSet(Set set)
Description copied from interface:IDatatypeVisitorIs called by a set data type.- Specified by:
visitSetin interfaceIDatatypeVisitor- Parameters:
set- the set instance
-
visitSequence
public void visitSequence(Sequence sequence)
Description copied from interface:IDatatypeVisitorIs called by a sequence datatype.- Specified by:
visitSequencein interfaceIDatatypeVisitor- Parameters:
sequence- the sequence instance
-
visitReference
public void visitReference(Reference reference)
Description copied from interface:IDatatypeVisitorIs called by a reference data type.- Specified by:
visitReferencein interfaceIDatatypeVisitor- Parameters:
reference- the references instance
-
visitBooleanType
public void visitBooleanType(BooleanType type)
Description copied from interface:IDatatypeVisitorVisiting method for visiting aBooleanType.- Specified by:
visitBooleanTypein interfaceIDatatypeVisitor- Parameters:
type- TheIDatatypewhich should be visited.
-
visitStringType
public void visitStringType(StringType type)
Description copied from interface:IDatatypeVisitorVisiting method for visiting aStringType.- Specified by:
visitStringTypein interfaceIDatatypeVisitor- Parameters:
type- TheIDatatypewhich should be visited.
-
visitConstraintType
public void visitConstraintType(ConstraintType type)
Description copied from interface:IDatatypeVisitorVisiting method for visiting aConstraintType.- Specified by:
visitConstraintTypein interfaceIDatatypeVisitor- Parameters:
type- TheIDatatypewhich should be visited.
-
visitIntegerType
public void visitIntegerType(IntegerType type)
Description copied from interface:IDatatypeVisitorVisiting method for visiting aIntegerType.- Specified by:
visitIntegerTypein interfaceIDatatypeVisitor- Parameters:
type- TheIDatatypewhich should be visited.
-
visitRealType
public void visitRealType(RealType type)
Description copied from interface:IDatatypeVisitorVisiting method for visiting aRealType.- Specified by:
visitRealTypein interfaceIDatatypeVisitor- Parameters:
type- TheIDatatypewhich should be visited.
-
visitCompoundType
public void visitCompoundType(Compound compound)
Description copied from interface:IDatatypeVisitorVisiting method for visiting aCompound.- Specified by:
visitCompoundTypein interfaceIDatatypeVisitor- Parameters:
compound- TheCompoundwhich should be visited.
-
visitEnumType
public void visitEnumType(Enum enumType)
Description copied from interface:IDatatypeVisitorVisiting method for visiting aEnum.- Specified by:
visitEnumTypein interfaceIDatatypeVisitor- Parameters:
enumType- TheEnumwhich should be visited.
-
visitOrderedEnumType
public void visitOrderedEnumType(OrderedEnum enumType)
Description copied from interface:IDatatypeVisitorVisiting method for visiting aOrderredEnum.- Specified by:
visitOrderedEnumTypein interfaceIDatatypeVisitor- Parameters:
enumType- TheEnumwhich should be visited.
-
visitVersionType
public void visitVersionType(VersionType type)
Description copied from interface:IDatatypeVisitorVisiting method for visiting aVersionType.- Specified by:
visitVersionTypein interfaceIDatatypeVisitor- Parameters:
type- TheIDatatypewhich should be visited.
-
-