xtc.type
Class StructT

java.lang.Object
  extended by xtc.tree.Node
      extended by xtc.type.Type
          extended by xtc.type.DerivedT
              extended by xtc.type.StructOrUnionT
                  extended by xtc.type.StructT
All Implemented Interfaces:
java.lang.Iterable<java.lang.Object>, Locatable, Tagged

public class StructT
extends StructOrUnionT

A struct type.

Version:
$Revision: 1.25 $
Author:
Robert Grimm

Nested Class Summary
 
Nested classes/interfaces inherited from class xtc.type.Type
Type.Tag
 
Field Summary
 
Fields inherited from class xtc.type.StructOrUnionT
members, name, nonce
 
Constructor Summary
StructT(java.lang.String tag)
          Create a new, incomplete struct.
StructT(java.lang.String tag, java.util.List<VariableT> members)
          Create a new struct type.
StructT(Type template, Nonce nonce, java.lang.String tag, java.util.List<VariableT> members)
          Create a new struct type.
 
Method Summary
 StructT copy()
          Create a deep copy of this type.
 boolean isStruct()
          Determine whether this type is a struct.
 Type.Tag tag()
          Get this type's tag.
 StructT toStruct()
          Get this type as a struct.
 void write(java.lang.Appendable out)
          Write a human readable representation to the specified appendable.
 
Methods inherited from class xtc.type.StructOrUnionT
equals, getMember, getMemberCount, getMembers, getName, getNonce, hashCode, hasName, hasTagged, isUnnamed, lookup, seal, setMembers, toStructOrUnion, toTagged
 
Methods inherited from class xtc.type.DerivedT
isDerived
 
Methods inherited from class xtc.type.Type
addAttribute, annotate, attribute, attribute, attribute, attributes, cast, checkNotSealed, constant, constant, copy, deannotate, getAttribute, getAttribute, getConstant, getConstant, getLanguage, getLanguage, getLocation, getLocation, getScope, getScope, getShape, getShape, hasAlias, hasAnnotated, hasAttribute, hasAttribute, hasAttribute, hasAttribute, hasAttributes, hasConstant, hasConstant, hasEnum, hasEnumerator, hasError, hasInstantiated, hasLanguage, hasLanguage, hasLocation, hasLocation, hasParameterized, hasScope, hasScope, hasShape, hasShape, hasStructOrUnion, hasTag, hasVariable, hasWTag, isAlias, isAnnotated, isArray, isBoolean, isClass, isConcrete, isEnum, isEnumerator, isError, isFloat, isFunction, isInstantiated, isInteger, isInterface, isInternal, isInternalParameter, isLabel, isMethod, isNamedParameter, isNumber, isPackage, isParameter, isParameterized, isPointer, isSealed, isTuple, isUnion, isUnit, isVariable, isVariant, isVoid, isWildcard, isWrapped, language, locate, locate, mark, properties, removeAttribute, removeProperty, resolve, resolve, scope, seal, setLocation, setLocation, setProperty, shape, shape, toAlias, toAnnotated, toArray, toBoolean, toClass, toEnum, toEnumerator, toFloat, toFunction, toInstantiated, toInteger, toInterface, toInternal, toInternalParameter, toLabel, toMethod, toNamedParameter, toNumber, toPackage, toParameter, toParameterized, toPointer, toTuple, toUnion, toUnit, toVariable, toVariant, toVoid, toWildcard, toWrapped, trace, wtag
 
Methods inherited from class xtc.tree.Node
add, add, addAll, addAll, addAll, addAll, addAllTo, addNode, contains, get, getBoolean, getBooleanProperty, getGeneric, getList, getNode, getProperty, getString, getStringProperty, getTokenText, 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
 
Methods inherited from interface xtc.type.Tagged
isEnum, isUnion
 

Constructor Detail

StructT

public StructT(java.lang.String tag)
Create a new, incomplete struct. The newly created struct type has a fresh nonce.

Parameters:
tag - The tag.
Throws:
java.lang.NullPointerException - Signals a null tag.

StructT

public StructT(java.lang.String tag,
               java.util.List<VariableT> members)
Create a new struct type. The newly created struct type has a fresh nonce.

Parameters:
tag - The tag.
members - The members.
Throws:
java.lang.NullPointerException - Signals a null tag.

StructT

public StructT(Type template,
               Nonce nonce,
               java.lang.String tag,
               java.util.List<VariableT> members)
Create a new struct type.

Parameters:
template - The type whose annotations to copy.
nonce - The nonce.
tag - The tag.
members - The members.
Throws:
java.lang.NullPointerException - Signals a null tag.
Method Detail

copy

public StructT 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.

tag

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

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

isStruct

public boolean isStruct()
Description copied from class: Type
Determine whether this type is a struct.

Specified by:
isStruct in interface Tagged
Overrides:
isStruct in class Type
Returns:
true if this type is a struct.

toStruct

public StructT toStruct()
Description copied from class: Type
Get this type as a struct.

Overrides:
toStruct in class Type
Returns:
This type as a struct.

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.