Class BaseTypeVisitor

java.lang.Object
net.ssehub.easy.varModel.model.datatypes.BaseTypeVisitor
All Implemented Interfaces:
IDatatypeVisitor

public class BaseTypeVisitor extends 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 Details

  • Constructor Details

    • BaseTypeVisitor

      private BaseTypeVisitor()
      Prevents initialization from outside.
  • Method Details

    • 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 of type.
      Parameters:
      type - the type the base type shall be determined
      Returns:
      type or the base type
    • visitDatatype

      public void visitDatatype(IDatatype datatype)
      Description copied from interface: IDatatypeVisitor
      Is called by an arbitrary data type.
      Specified by:
      visitDatatype in interface IDatatypeVisitor
      Parameters:
      datatype - the data type.
    • visitAnyType

      public void visitAnyType(AnyType datatype)
      Description copied from interface: IDatatypeVisitor
      Is called by an AnyType.
      Specified by:
      visitAnyType in interface IDatatypeVisitor
      Parameters:
      datatype - the data type.
    • visitMetaType

      public void visitMetaType(MetaType datatype)
      Description copied from interface: IDatatypeVisitor
      Is called by a MetaType.
      Specified by:
      visitMetaType in interface IDatatypeVisitor
      Parameters:
      datatype - the data type.
    • visitDerivedType

      public void visitDerivedType(DerivedDatatype datatype)
      Description copied from interface: IDatatypeVisitor
      Is called by an DerivedDatatype data type.
      Specified by:
      visitDerivedType in interface IDatatypeVisitor
      Parameters:
      datatype - the data type.
    • visitSet

      public void visitSet(Set set)
      Description copied from interface: IDatatypeVisitor
      Is called by a set data type.
      Specified by:
      visitSet in interface IDatatypeVisitor
      Parameters:
      set - the set instance
    • visitSequence

      public void visitSequence(Sequence sequence)
      Description copied from interface: IDatatypeVisitor
      Is called by a sequence datatype.
      Specified by:
      visitSequence in interface IDatatypeVisitor
      Parameters:
      sequence - the sequence instance
    • visitReference

      public void visitReference(Reference reference)
      Description copied from interface: IDatatypeVisitor
      Is called by a reference data type.
      Specified by:
      visitReference in interface IDatatypeVisitor
      Parameters:
      reference - the references instance
    • visitBooleanType

      public void visitBooleanType(BooleanType type)
      Description copied from interface: IDatatypeVisitor
      Visiting method for visiting a BooleanType.
      Specified by:
      visitBooleanType in interface IDatatypeVisitor
      Parameters:
      type - The IDatatype which should be visited.
    • visitStringType

      public void visitStringType(StringType type)
      Description copied from interface: IDatatypeVisitor
      Visiting method for visiting a StringType.
      Specified by:
      visitStringType in interface IDatatypeVisitor
      Parameters:
      type - The IDatatype which should be visited.
    • visitConstraintType

      public void visitConstraintType(ConstraintType type)
      Description copied from interface: IDatatypeVisitor
      Visiting method for visiting a ConstraintType.
      Specified by:
      visitConstraintType in interface IDatatypeVisitor
      Parameters:
      type - The IDatatype which should be visited.
    • visitIntegerType

      public void visitIntegerType(IntegerType type)
      Description copied from interface: IDatatypeVisitor
      Visiting method for visiting a IntegerType.
      Specified by:
      visitIntegerType in interface IDatatypeVisitor
      Parameters:
      type - The IDatatype which should be visited.
    • visitRealType

      public void visitRealType(RealType type)
      Description copied from interface: IDatatypeVisitor
      Visiting method for visiting a RealType.
      Specified by:
      visitRealType in interface IDatatypeVisitor
      Parameters:
      type - The IDatatype which should be visited.
    • visitCompoundType

      public void visitCompoundType(Compound compound)
      Description copied from interface: IDatatypeVisitor
      Visiting method for visiting a Compound.
      Specified by:
      visitCompoundType in interface IDatatypeVisitor
      Parameters:
      compound - The Compound which should be visited.
    • visitEnumType

      public void visitEnumType(Enum enumType)
      Description copied from interface: IDatatypeVisitor
      Visiting method for visiting a Enum.
      Specified by:
      visitEnumType in interface IDatatypeVisitor
      Parameters:
      enumType - The Enum which should be visited.
    • visitOrderedEnumType

      public void visitOrderedEnumType(OrderedEnum enumType)
      Description copied from interface: IDatatypeVisitor
      Visiting method for visiting a OrderredEnum.
      Specified by:
      visitOrderedEnumType in interface IDatatypeVisitor
      Parameters:
      enumType - The Enum which should be visited.
    • visitVersionType

      public void visitVersionType(VersionType type)
      Description copied from interface: IDatatypeVisitor
      Visiting method for visiting a VersionType.
      Specified by:
      visitVersionType in interface IDatatypeVisitor
      Parameters:
      type - The IDatatype which should be visited.