|
|||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | ||||||||
java.lang.Objectptolemy.data.type.StructuredType
ptolemy.data.type.UnionType
public class UnionType
A class representing the type of a UnionToken. To set the type of a typeable object (such as a port or parameter) to a union with particular fields, create an instance of this class and call setTypeEquals() with that instance as an argument.
Note that an union type with more fields is a supertype of a union type with a subset of the fields. For example, {|x = double, y = int} is a supertype of {|x = double}. When an union of type {|x = double} is converted to one of type {|x = double, y = int}, an extra field is added, but a value with the lower type will not have the type of this extra field.
| Red (cxh) |
| Red (yuhongx) |
| Nested Class Summary | |
|---|---|
private class |
UnionType.FieldType
|
| Field Summary | |
|---|---|
private java.util.Map |
_fields
|
private static UnionType |
_representative
|
| Fields inherited from class ptolemy.data.type.StructuredType |
|---|
MAXDEPTHBOUND |
| Fields inherited from interface ptolemy.data.type.Type |
|---|
HASH_INVALID, HASH_MAX |
| Constructor Summary | |
|---|---|
UnionType(java.lang.String[] labels,
Type[] types)
Construct a new UnionType with the specified labels and types. |
|
| Method Summary | |
|---|---|
protected int |
_compare(StructuredType type)
Compare this type with the specified type. |
protected StructuredType |
_getRepresentative()
Return a static instance of RecordType. |
protected StructuredType |
_greatestLowerBound(StructuredType type)
Return the greatest lower bound of this type with the specified type. |
private boolean |
_isLessThanOrEqualTo(UnionType t1,
UnionType t2)
|
protected StructuredType |
_leastUpperBound(StructuredType type)
Return the least Upper bound of this type with the specified type. |
java.lang.Object |
clone()
Return a deep copy of this UnionType if it is a variable, or itself if it is a constant. |
Token |
convert(Token token)
Convert the argument token into a UnionToken having this type, if lossless conversion can be done. |
int |
depth()
Return the depth of a union type. |
boolean |
equals(java.lang.Object object)
Determine if the argument represents the same UnionType as this object. |
Type |
get(java.lang.String label)
Return the type of the specified label. |
java.lang.Class |
getTokenClass()
Return the class for tokens that this type represents. |
InequalityTerm |
getTypeTerm(java.lang.String label)
Return the InequalityTerm representing the type of the specified label. |
int |
hashCode()
Return a hash code value for this object. |
void |
initialize(Type type)
Set the elements that have declared type BaseType.UNKNOWN (the leaf type variable) to the specified type. |
boolean |
isAbstract()
Test if this type corresponds to an abstract token class. |
boolean |
isCompatible(Type type)
Test if the argument type is compatible with this type. |
boolean |
isConstant()
Test if this UnionType is a constant. |
boolean |
isInstantiable()
Test if this type corresponds to an instantiable token class. |
boolean |
isSubstitutionInstance(Type type)
Test if the specified type is a substitution instance of this type. |
java.util.Set |
labelSet()
Return the labels of this record type as a Set. |
java.lang.String |
toString()
Return the string representation of this type. |
void |
updateType(StructuredType newType)
Update this Type to the specified UnionType. |
| Methods inherited from class ptolemy.data.type.StructuredType |
|---|
add, divide, getTypeHash, modulo, multiply, one, subtract, zero |
| Methods inherited from class java.lang.Object |
|---|
finalize, getClass, notify, notifyAll, wait, wait, wait |
| Field Detail |
|---|
private java.util.Map _fields
private static UnionType _representative
| Constructor Detail |
|---|
public UnionType(java.lang.String[] labels,
Type[] types)
labels - An array of String.types - An array of Type.
java.lang.IllegalArgumentException - If the two arrays do not have
the same size.
java.lang.NullPointerException - If one of the arguments is null.| Method Detail |
|---|
public java.lang.Object clone()
clone in interface Typeclone in class StructuredType
public Token convert(Token token)
throws IllegalActionException
convert in interface Typetoken - A token.
IllegalActionException - If lossless conversion
cannot be done.public int depth()
depth in class StructuredTypepublic boolean equals(java.lang.Object object)
equals in interface Typeequals in class java.lang.Objectobject - Another object.
public Type get(java.lang.String label)
label - The specified label.
public java.lang.Class getTokenClass()
getTokenClass in interface Typepublic InequalityTerm getTypeTerm(java.lang.String label)
label - The specified label.
InequalityTermpublic int hashCode()
hashCode in class java.lang.Objectpublic void initialize(Type type)
initialize in class StructuredTypetype - the type to set the leaf type variable to.public boolean isAbstract()
isAbstract in interface TypeisAbstract in class StructuredTypepublic boolean isCompatible(Type type)
isCompatible in interface Typetype - An instance of Type.
public boolean isConstant()
isConstant in interface Typepublic boolean isInstantiable()
isInstantiable in interface Typepublic boolean isSubstitutionInstance(Type type)
isSubstitutionInstance in interface Typetype - A Type.
isSubstitutionInstance(ptolemy.data.type.Type)public java.util.Set labelSet()
public java.lang.String toString()
toString in interface TypetoString in class java.lang.Object
public void updateType(StructuredType newType)
throws IllegalActionException
updateType in class StructuredTypenewType - A StructuredType.
IllegalActionException - If the specified type is not a
UnionType or it does not have the same structure as this one.protected int _compare(StructuredType type)
_compare in class StructuredTypetype - a UnionType.
java.lang.IllegalArgumentException - If the specified type is
not a UnionType.protected StructuredType _getRepresentative()
_getRepresentative in class StructuredTypeprotected StructuredType _greatestLowerBound(StructuredType type)
_greatestLowerBound in class StructuredTypetype - a UnionType.
java.lang.IllegalArgumentException - If the specified type is
not a UnionType.protected StructuredType _leastUpperBound(StructuredType type)
_leastUpperBound in class StructuredTypetype - a UnionType.
java.lang.IllegalArgumentException - If the specified type is
not a UnionType.
private boolean _isLessThanOrEqualTo(UnionType t1,
UnionType t2)
|
|||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | ||||||||