xtc.type
Class ParameterizedT

java.lang.Object
  extended by xtc.tree.Node
      extended by xtc.type.Type
          extended by xtc.type.WrappedT
              extended by xtc.type.ParameterizedT
All Implemented Interfaces:
java.lang.Iterable<java.lang.Object>, Locatable

public class ParameterizedT
extends WrappedT

A parameterized type.

Version:
$Revision: 1.2 $
Author:
Robert Grimm

Nested Class Summary
 
Nested classes/interfaces inherited from class xtc.type.Type
Type.Tag
 
Constructor Summary
ParameterizedT(java.util.List<Parameter> parameters, Type type)
          Create a new parameterized type.
ParameterizedT(Parameter parameter, Type type)
          Create a new parameterized type.
ParameterizedT(Type template, java.util.List<Parameter> parameters, Type type)
          Create a new parameterized type.
 
Method Summary
 ParameterizedT copy()
          Create a deep copy of this type.
 java.util.List<Parameter> getParameters()
          Get this parameterized type's parameters.
 boolean hasParameterized()
          Determine whether this type has a parameterized type.
 boolean isParameterized()
          Determine whether this type is parameterized.
 Type seal()
          Seal this type.
 ParameterizedT toParameterized()
          Get this type as a parameterized type.
 void write(java.lang.Appendable out)
          Write a human readable representation to the specified appendable.
 Type.Tag wtag()
          Get this wrapped type's tag.
 
Methods inherited from class xtc.type.WrappedT
equals, getAttribute, getConstant, getLanguage, getLocation, getScope, getShape, getType, hasAlias, hasAnnotated, hasAttribute, hasConstant, hasEnum, hasEnumerator, hashCode, hasInstantiated, hasLanguage, hasLocation, hasScope, hasShape, hasTagged, hasVariable, isWrapped, resolve, setType, tag, toAlias, toAnnotated, toEnum, toEnumerator, toInstantiated, toStructOrUnion, toTagged, toVariable, toWrapped
 
Methods inherited from class xtc.type.Type
addAttribute, annotate, attribute, attribute, attribute, attributes, cast, checkNotSealed, constant, constant, copy, deannotate, getAttribute, getConstant, getLanguage, getLocation, getScope, getShape, hasAttribute, hasAttribute, hasAttribute, hasAttributes, hasConstant, hasError, hasLanguage, hasLocation, hasScope, hasShape, hasStructOrUnion, hasTag, hasWTag, isAlias, isAnnotated, isArray, isBoolean, isClass, isConcrete, isDerived, isEnum, isEnumerator, isError, isFloat, isFunction, isInstantiated, isInteger, isInterface, isInternal, isInternalParameter, isLabel, isMethod, isNamedParameter, isNumber, isPackage, isParameter, isPointer, isSealed, isStruct, isTuple, isUnion, isUnit, isVariable, isVariant, isVoid, isWildcard, language, locate, locate, mark, properties, removeAttribute, removeProperty, resolve, scope, seal, setLocation, setLocation, setProperty, shape, shape, toArray, toBoolean, toClass, toFloat, toFunction, toInteger, toInterface, toInternal, toInternalParameter, toLabel, toMethod, toNamedParameter, toNumber, toPackage, toParameter, toPointer, toStruct, toTuple, toUnion, toUnit, toVariant, toVoid, toWildcard, trace
 
Methods inherited from class xtc.tree.Node
add, add, addAll, addAll, addAll, addAll, addAllTo, addNode, contains, get, getBoolean, getBooleanProperty, getGeneric, getList, getName, getNode, getProperty, getString, getStringProperty, getTokenText, hasName, hasProperty, hasTraversal, indexOf, isAnnotation, isEmpty, isGeneric, isList, isToken, iterator, lastIndexOf, remove, set, size, strip, toAnnotation, toList, toString, toToken
 
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
 

Constructor Detail

ParameterizedT

public ParameterizedT(Parameter parameter,
                      Type type)
Create a new parameterized type.

Parameters:
parameter - The single parameter.
type - The type.

ParameterizedT

public ParameterizedT(java.util.List<Parameter> parameters,
                      Type type)
Create a new parameterized type.

Parameters:
parameters - The parameters.
type - The type.

ParameterizedT

public ParameterizedT(Type template,
                      java.util.List<Parameter> parameters,
                      Type type)
Create a new parameterized type.

Parameters:
template - The type whose annotations to copy.
parameters - The parameters.
type - The type.
Method Detail

copy

public ParameterizedT copy()
Description copied from class: Type
Create a deep copy of this type. The resulting type is not sealed.

Specified by:
copy in class Type
Returns:
A deep copy of this type.

seal

public Type seal()
Description copied from class: Type
Seal this type. Subclasses that reference other types must override this method and, if the instance is not sealed, first invoke the superclass' version and then seal all referenced types. For example, if a subclass references a single type type, the corresponding overridden method reads:
 public Type seal() {
   if (! isSealed()) {
     super.seal();
     type.seal();
   }
   return this;
 }
 
First testing whether a type is sealed and then invoking the superclass' seal() method avoids infinite recursions for mutually recursive types.

Overrides:
seal in class WrappedT
Returns:
This type.
See Also:
Type.seal(List)

wtag

public Type.Tag wtag()
Description copied from class: Type
Get this wrapped type's tag. Invocations to this method are not forwarded across wrapped types.

Overrides:
wtag in class Type
Returns:
This wrapped type's tag.
See Also:
Type.tag()

isParameterized

public boolean isParameterized()
Description copied from class: Type
Determine whether this type is parameterized.

Overrides:
isParameterized in class Type
Returns:
true if this type is parameterized.

hasParameterized

public boolean hasParameterized()
Description copied from class: Type
Determine whether this type has a parameterized type.

Overrides:
hasParameterized in class WrappedT
Returns:
true if this type has a parameterized type.

toParameterized

public ParameterizedT toParameterized()
Description copied from class: Type
Get this type as a parameterized type.

Overrides:
toParameterized in class WrappedT
Returns:
This type as a parameterized type.

getParameters

public java.util.List<Parameter> getParameters()
Get this parameterized type's parameters.

Returns:
The parameters.

write

public void write(java.lang.Appendable out)
           throws java.io.IOException
Description copied from class: Node
Write a human readable representation to the specified appendable. If this node supports generic traversal, the default implementation writes this node in algebraic term-format; otherwise, it writes the string returned by Object.toString().

Overrides:
write in class Node
Parameters:
out - The appendable.
Throws:
java.io.IOException - Signals an I/O error.


Copyright © 2012. All Rights Reserved.