Top Description Inners Fields Constructors Methods
com.jogamp.gluegen.cgram.types

public Class EnumType

extends IntType
implements Cloneable
Class Inheritance
All Implemented Interfaces
java.lang.Cloneable
Imports
java.util.ArrayList, .NoSuchElementException, com.jogamp.gluegen.ASTLocusTag, .ConstantDefinition, .ConstantDefinition.CNumber, .GlueGenException, com.jogamp.gluegen.cgram.types.TypeComparator.SemanticEqualityOp

Describes enumerated types. Enumerations are like ints except that they have a set of named values.

Nested and Inner Type Summary

Modifier and TypeClass and Description
public static class

Field Summary

Modifier and TypeField and Description
private ArrayList<EnumType.Enumerator>
private final IntType

Constructor Summary

AccessConstructor and Description
public
EnumType(final String name)

public
EnumType(final String name, final SizeThunk enumSizeInBytes, final ASTLocusTag astLocus)

private
EnumType(final EnumType o, final int cvAttributes, final ASTLocusTag astLocus)

Method Summary

Modifier and TypeMethod and Description
public void
addEnum(final String name, final EnumType.Enumerator newEnum)

public StringBuilder
appendEnums(final StringBuilder sb, final boolean cr)

public EnumType
asEnum()

Overrides com.jogamp.gluegen.cgram.types.Type.asEnum.

Casts this to an EnumType or returns null if not an EnumType.
public boolean
containsEnumerate(final String name)

Does this enum type contain an enumerate with the given name?

protected boolean
protected boolean
public EnumType.Enumerator
getEnum(final int i)

Fetch ith (0..getNumEnumerates() - 1) Enumerator

public EnumType.Enumerator
getEnum(final String name)

Fetch the enumerate with the given name.

public int
getNumEnumerates()

Number of enumerates defined in this enum.

public Type
protected int
protected int
pack-priv Type
newVariantImpl(final boolean
true if new variant is intended to have new cvAttributes
newCVVariant
,
final int
the cvAttributes to be used
cvAttributes
,
final ASTLocusTag
the ASTLocusTag to be used
astLocus
)

Overrides com.jogamp.gluegen.cgram.types.IntType.newVariantImpl.

Create a new variant of this type matching the given parameter

Implementation must use Type's copy-ctor: Type(Type, int, ASTLocusTag)!

public boolean
removeEnumerate(final String name)

Remove the enumerate with the given name.

public void
visit(final TypeVisitor arg)

Overrides com.jogamp.gluegen.cgram.types.Type.visit.

Traverse this Type and all of its component types; for example, the return type and argument types of a FunctionType.
Inherited from com.jogamp.gluegen.cgram.types.IntType:
asIntgetCNameisUnsignedsetTypedefNametoString

Field Detail

enumsback to summary
private ArrayList<EnumType.Enumerator> enums
underlyingTypeback to summary
private final IntType underlyingType

Constructor Detail

EnumTypeback to summary
public EnumType(final String name)
EnumTypeback to summary
public EnumType(final String name, final SizeThunk enumSizeInBytes, final ASTLocusTag astLocus)
EnumTypeback to summary
private EnumType(final EnumType o, final int cvAttributes, final ASTLocusTag astLocus)

Method Detail

addEnumback to summary
public void addEnum(final String name, final EnumType.Enumerator newEnum)
appendEnumsback to summary
public StringBuilder appendEnums(final StringBuilder sb, final boolean cr)
asEnumback to summary
public EnumType asEnum()

Overrides com.jogamp.gluegen.cgram.types.Type.asEnum.

Doc from com.jogamp.gluegen.cgram.types.Type.asEnum.

Casts this to an EnumType or returns null if not an EnumType.

Annotations
@Override
containsEnumerateback to summary
public boolean containsEnumerate(final String name)

Does this enum type contain an enumerate with the given name?

equalSemanticsImplback to summary
protected boolean equalSemanticsImpl(final Type arg)

Overrides com.jogamp.gluegen.cgram.types.IntType.equalSemanticsImpl.

Annotations
@Override
equalsImplback to summary
protected boolean equalsImpl(final Type arg)

Overrides com.jogamp.gluegen.cgram.types.IntType.equalsImpl.

Annotations
@Override
getEnumback to summary
public EnumType.Enumerator getEnum(final int i)

Fetch ith (0..getNumEnumerates() - 1) Enumerator

getEnumback to summary
public EnumType.Enumerator getEnum(final String name)

Fetch the enumerate with the given name.

getNumEnumeratesback to summary
public int getNumEnumerates()

Number of enumerates defined in this enum.

getUnderlyingTypeback to summary
public Type getUnderlyingType()
hashCodeImplback to summary
protected int hashCodeImpl()

Overrides com.jogamp.gluegen.cgram.types.IntType.hashCodeImpl.

Annotations
@Override
hashCodeSemanticsImplback to summary
protected int hashCodeSemanticsImpl()

Overrides com.jogamp.gluegen.cgram.types.IntType.hashCodeSemanticsImpl.

Annotations
@Override
newVariantImplback to summary
pack-priv Type newVariantImpl(final boolean newCVVariant, final int cvAttributes, final ASTLocusTag astLocus)

Overrides com.jogamp.gluegen.cgram.types.IntType.newVariantImpl.

Doc from com.jogamp.gluegen.cgram.types.Type.newVariantImpl.

Create a new variant of this type matching the given parameter

Implementation must use Type's copy-ctor: Type(Type, int, ASTLocusTag)!

Parameters
newCVVariant:boolean

true if new variant is intended to have new cvAttributes

cvAttributes:int

the cvAttributes to be used

astLocus:ASTLocusTag

the ASTLocusTag to be used

Annotations
@Override
removeEnumerateback to summary
public boolean removeEnumerate(final String name)

Remove the enumerate with the given name. Returns true if it was found and removed; false if it was not found.

visitback to summary
public void visit(final TypeVisitor arg)

Overrides com.jogamp.gluegen.cgram.types.Type.visit.

Doc from com.jogamp.gluegen.cgram.types.Type.visit.

Traverse this Type and all of its component types; for example, the return type and argument types of a FunctionType.

Annotations
@Override
com.jogamp.gluegen.cgram.types back to summary

public Class EnumType.Enumerator

extends Object
implements SemanticEqualityOp
Class Inheritance
All Implemented Interfaces
com.jogamp.gluegen.cgram.types.TypeComparator.SemanticEqualityOp

Field Summary

Modifier and TypeField and Description
private final String
private final String
private final ConstantDefinition.CNumber

Constructor Summary

AccessConstructor and Description
public
Enumerator(final String name, final long value)

public
Enumerator(final String name, final ConstantDefinition.CNumber number)

public
Enumerator(final String name, final String value)

Method Summary

Modifier and TypeMethod and Description
public boolean
equals(final Object
the reference object with which to compare.
arg
)

Overrides java.lang.Object.equals.

Indicates whether some other object is "equal to" this one.
public boolean
public String
public String
public ConstantDefinition.CNumber
public int
hashCode()

Overrides java.lang.Object.hashCode.

Returns a hash code value for this object.
public int
public boolean
public String
toString()

Overrides java.lang.Object.toString.

Returns a string representation of the object.
Inherited from java.lang.Object:
clonefinalizegetClassnotifynotifyAllwaitwaitwait

Field Detail

exprback to summary
private final String expr
nameback to summary
private final String name
numberback to summary
private final ConstantDefinition.CNumber number

Constructor Detail

Enumeratorback to summary
public Enumerator(final String name, final long value)
Enumeratorback to summary
public Enumerator(final String name, final ConstantDefinition.CNumber number)
Enumeratorback to summary
public Enumerator(final String name, final String value)

Method Detail

equalsback to summary
public boolean equals(final Object arg)

Overrides java.lang.Object.equals.

Doc from java.lang.Object.equals.

Indicates whether some other object is "equal to" this one.

The equals method implements an equivalence relation on non-null object references:

  • It is reflexive: for any non-null reference value x, x.equals(x) should return true.
  • It is symmetric: for any non-null reference values x and y, x.equals(y) should return true if and only if y.equals(x) returns true.
  • It is transitive: for any non-null reference values x, y, and z, if x.equals(y) returns true and y.equals(z) returns true, then x.equals(z) should return true.
  • It is consistent: for any non-null reference values x and y, multiple invocations of x.equals(y) consistently return true or consistently return false, provided no information used in equals comparisons on the objects is modified.
  • For any non-null reference value x, x.equals(null) should return false.

An equivalence relation partitions the elements it operates on into equivalence classes; all the members of an equivalence class are equal to each other. Members of an equivalence class are substitutable for each other, at least for some purposes.

Parameters
arg:Object

the reference object with which to compare.

Returns:boolean

true if this object is the same as the obj argument; false otherwise.

Annotations
@Override
equalSemanticsback to summary
public boolean equalSemantics(final TypeComparator.SemanticEqualityOp arg)

Implements com.jogamp.gluegen.cgram.types.TypeComparator.SemanticEqualityOp.equalSemantics.

Doc from com.jogamp.gluegen.cgram.types.TypeComparator.SemanticEqualityOp.equalSemantics.

Semantic equality test for Types exclusive its given name.

Annotations
@Override
getExprback to summary
public String getExpr()
getNameback to summary
public String getName()
getNumberback to summary
public ConstantDefinition.CNumber getNumber()
hashCodeback to summary
public int hashCode()

Overrides java.lang.Object.hashCode.

Doc from java.lang.Object.hashCode.

Returns a hash code value for this object. This method is supported for the benefit of hash tables such as those provided by java.util.HashMap.

The general contract of hashCode is:

  • Whenever it is invoked on the same object more than once during an execution of a Java application, the hashCode method must consistently return the same integer, provided no information used in equals comparisons on the object is modified. This integer need not remain consistent from one execution of an application to another execution of the same application.
  • If two objects are equal according to the equals method, then calling the hashCode method on each of the two objects must produce the same integer result.
  • It is not required that if two objects are unequal according to the equals method, then calling the hashCode method on each of the two objects must produce distinct integer results. However, the programmer should be aware that producing distinct integer results for unequal objects may improve the performance of hash tables.
Returns:int

a hash code value for this object

Annotations
@Override
hashCodeSemanticsback to summary
public int hashCodeSemantics()

Implements com.jogamp.gluegen.cgram.types.TypeComparator.SemanticEqualityOp.hashCodeSemantics.

Doc from com.jogamp.gluegen.cgram.types.TypeComparator.SemanticEqualityOp.hashCodeSemantics.

Semantic hashcode for Types exclusive its given name.

Annotations
@Override
hasNumberback to summary
public boolean hasNumber()
toStringback to summary
public String toString()

Overrides java.lang.Object.toString.

Doc from java.lang.Object.toString.

Returns a string representation of the object.

Returns:String

a string representation of the object

Annotations
@Override