Package com.jogamp.gluegen.cgram.types
Class ArrayType
- java.lang.Object
-
- com.jogamp.gluegen.cgram.types.Type
-
- com.jogamp.gluegen.cgram.types.MemoryLayoutType
-
- com.jogamp.gluegen.cgram.types.ArrayType
-
- All Implemented Interfaces:
ASTLocusTag.ASTLocusTagProvider
,TypeComparator.SemanticEqualityOp
,Cloneable
public class ArrayType extends MemoryLayoutType implements Cloneable
Represents an array type. This differs from a pointer type in C syntax by the use of "[]" rather than "*". The length may or may not be known; if the length is unknown then a negative number should be passed in to the constructor.
-
-
Field Summary
-
Fields inherited from class com.jogamp.gluegen.cgram.types.Type
relaxedEqSem
-
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description int
arrayDimension()
Helper method for determining how many array dimentions this type represents (i.e., "char[][]" returns 2).ArrayType
asArray()
Casts this to an ArrayType or returns null if not an ArrayType.protected boolean
equalSemanticsImpl(Type arg)
protected boolean
equalsImpl(Type arg)
Type
getArrayBaseOrPointerTargetType()
Type
getBaseType()
Helper method to returns the bottom-most element type of this type, i.e.int
getLength()
String
getName(boolean includeCVAttrs)
Returns the name of this type, optionally including const/volatile attributes.Type
getTargetType()
Helper method to returns the target type of this type, in case another type is being referenced, i.e.protected int
hashCodeImpl()
protected int
hashCodeSemanticsImpl()
boolean
hasLength()
boolean
isAnon()
String
toString()
Returns a string representation of this type.String
toString(String variableName)
void
visit(TypeVisitor arg)
Traverse thisType
and all of its component types; for example, the return type and argument types of a FunctionType.-
Methods inherited from class com.jogamp.gluegen.cgram.types.MemoryLayoutType
isLayouted, setLayouted
-
Methods inherited from class com.jogamp.gluegen.cgram.types.Type
asBit, asCompound, asDouble, asEnum, asFloat, asFunction, asInt, asPointer, asVoid, clearCache, clone, equals, equalSemantics, getASTLocusTag, getCName, getCName, getCVAttributes, getCVAttributesString, getDebugString, getName, getSignature, getSize, getSize, getTargetFunction, hashCode, hashCodeSemantics, hasSize, isArray, isBaseTypeConst, isBit, isCompound, isConst, isDouble, isEnum, isFloat, isFunction, isFunctionPointer, isInt, isPointer, isPrimitive, isTypedef, isVoid, isVolatile, newCVVariant, pointerDepth, setTypedefName
-
-
-
-
Constructor Detail
-
ArrayType
public ArrayType(Type elementType, SizeThunk sizeInBytes, int length, int cvAttributes, ASTLocusTag astLocus)
-
-
Method Detail
-
hashCodeImpl
protected int hashCodeImpl()
- Specified by:
hashCodeImpl
in classType
-
equalsImpl
protected boolean equalsImpl(Type arg)
- Specified by:
equalsImpl
in classType
-
hashCodeSemanticsImpl
protected int hashCodeSemanticsImpl()
- Specified by:
hashCodeSemanticsImpl
in classType
-
equalSemanticsImpl
protected boolean equalSemanticsImpl(Type arg)
- Specified by:
equalSemanticsImpl
in classType
-
getName
public String getName(boolean includeCVAttrs)
Description copied from class:Type
Returns the name of this type, optionally including const/volatile attributes. The returned string is suitable for use as a type specifier for Java.
-
asArray
public final ArrayType asArray()
Description copied from class:Type
Casts this to an ArrayType or returns null if not an ArrayType.
-
getTargetType
public final Type getTargetType()
Description copied from class:Type
Helper method to returns the target type of this type, in case another type is being referenced, i.e. returns `type
` if this-type is `type
*` or `type
[]` and returns `type
*` if this-type is `type
**` or `type
[][]`.If this is an array or pointer method returns the next target element type, otherwise `this`.
In this is a
Type.isFunctionPointer()
type, `this` functionPointerType
is returned.- Overrides:
getTargetType
in classType
- See Also:
Type.getBaseType()
,Type.getTargetFunction()
-
getLength
public int getLength()
-
hasLength
public boolean hasLength()
-
getBaseType
public final Type getBaseType()
Description copied from class:Type
Helper method to returns the bottom-most element type of this type, i.e. returns `type
` if this-type is `type
*`, `type
**`, `type
[]` or `type
[][]`.If this is a multidimensional array or pointer method returns the bottom-most element type, otherwise this.
In case a
Type.isFunctionPointer()
type is reached, traversing ends and the functionPointerType
is returned.- Overrides:
getBaseType
in classType
- See Also:
Type.getTargetType()
,Type.getTargetFunction()
-
getArrayBaseOrPointerTargetType
public Type getArrayBaseOrPointerTargetType()
Description copied from class:Type
- Overrides:
getArrayBaseOrPointerTargetType
in classType
-
arrayDimension
public final int arrayDimension()
Description copied from class:Type
Helper method for determining how many array dimentions this type represents (i.e., "char[][]" returns 2). Returns 0 if this type is not an array type.- Overrides:
arrayDimension
in classType
-
toString
public String toString()
Description copied from class:Type
Returns a string representation of this type. The returned string is suitable for use as a type specifier for native C. It does contain an expanded description of structs/unions, hence may not be suitable for type declarations.
-
visit
public void visit(TypeVisitor arg)
Description copied from class:Type
Traverse thisType
and all of its component types; for example, the return type and argument types of a FunctionType.
-
-