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 intarrayDimension()Helper method for determining how many array dimentions this type represents (i.e., "char[][]" returns 2).ArrayTypeasArray()Casts this to an ArrayType or returns null if not an ArrayType.protected booleanequalSemanticsImpl(Type arg)protected booleanequalsImpl(Type arg)TypegetArrayBaseOrPointerTargetType()TypegetBaseType()Helper method to returns the bottom-most element type of this type, i.e.intgetLength()StringgetName(boolean includeCVAttrs)Returns the name of this type, optionally including const/volatile attributes.TypegetTargetType()Helper method to returns the target type of this type, in case another type is being referenced, i.e.protected inthashCodeImpl()protected inthashCodeSemanticsImpl()booleanhasLength()booleanisAnon()StringtoString()Returns a string representation of this type.StringtoString(String variableName)voidvisit(TypeVisitor arg)Traverse thisTypeand 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:
hashCodeImplin classType
-
equalsImpl
protected boolean equalsImpl(Type arg)
- Specified by:
equalsImplin classType
-
hashCodeSemanticsImpl
protected int hashCodeSemanticsImpl()
- Specified by:
hashCodeSemanticsImplin classType
-
equalSemanticsImpl
protected boolean equalSemanticsImpl(Type arg)
- Specified by:
equalSemanticsImplin classType
-
getName
public String getName(boolean includeCVAttrs)
Description copied from class:TypeReturns 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:TypeCasts this to an ArrayType or returns null if not an ArrayType.
-
getTargetType
public final Type getTargetType()
Description copied from class:TypeHelper 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` functionPointerTypeis returned.- Overrides:
getTargetTypein classType- See Also:
Type.getBaseType(),Type.getTargetFunction()
-
getLength
public int getLength()
-
hasLength
public boolean hasLength()
-
getBaseType
public final Type getBaseType()
Description copied from class:TypeHelper 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 functionPointerTypeis returned.- Overrides:
getBaseTypein classType- See Also:
Type.getTargetType(),Type.getTargetFunction()
-
getArrayBaseOrPointerTargetType
public Type getArrayBaseOrPointerTargetType()
Description copied from class:Type- Overrides:
getArrayBaseOrPointerTargetTypein classType
-
arrayDimension
public final int arrayDimension()
Description copied from class:TypeHelper 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:
arrayDimensionin classType
-
toString
public String toString()
Description copied from class:TypeReturns 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:TypeTraverse thisTypeand all of its component types; for example, the return type and argument types of a FunctionType.
-
-