Class PointerType
- java.lang.Object
-
- de.fraunhofer.aisec.cpg.graph.Node
-
- de.fraunhofer.aisec.cpg.graph.types.Type
-
- de.fraunhofer.aisec.cpg.graph.types.PointerType
-
- All Implemented Interfaces:
Persistable,SecondOrderType,IVisitable<Node>
public class PointerType extends Type implements SecondOrderType
PointerTypes represent all references to other Types. For C/CPP this includes pointers, as well as arrays, since technically arrays are pointers. For JAVA the only use case are arrays as there is no such pointer concept.
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static classPointerType.PointerOrigin-
Nested classes/interfaces inherited from class de.fraunhofer.aisec.cpg.graph.types.Type
Type.Origin, Type.Qualifier, Type.Storage
-
-
Field Summary
-
Fields inherited from class de.fraunhofer.aisec.cpg.graph.types.Type
origin, primitive, qualifier, storage, superTypes, UNKNOWN_TYPE_STRING
-
-
Constructor Summary
Constructors Constructor Description PointerType(Type elementType, PointerType.PointerOrigin pointerOrigin)PointerType(Type type, Type elementType, PointerType.PointerOrigin pointerOrigin)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description Typedereference()Typeduplicate()booleanequals(java.lang.Object o)TypegetElementType()PointerType.PointerOrigingetPointerOrigin()intgetReferenceDepth()inthashCode()booleanisArray()booleanisSimilar(Type t)Required for possibleSubTypes to check if the new Type should be considered a subtype or notPointerTypereference(PointerType.PointerOrigin origin)voidrefreshNames()voidsetElementType(Type elementType)java.lang.StringtoString()-
Methods inherited from class de.fraunhofer.aisec.cpg.graph.types.Type
getQualifier, getRoot, getStorage, getSuperTypes, getTypeName, getTypeOrigin, isFirstOrderType, isPrimitive, setAdditionalTypeKeywords, setQualifier, setRoot, setStorage, setTypeOrigin
-
Methods inherited from class de.fraunhofer.aisec.cpg.graph.Node
addAnnotations, addNextCFG, addNextCFG, addNextDFG, addNextEOG, addPrevDFG, addPrevEOG, addTypedef, clearNextEOG, disconnectFromGraph, getAnnotations, getArgumentIndex, getCode, getFile, getId, getLocation, getName, getNextCFG, getNextDFG, getNextEOG, getNextEOGProperties, getNextEOGPropertyEdge, getPrevDFG, getPrevEOG, getPrevEOGProperties, getTypedefs, isDummy, isImplicit, removeNextDFG, removePrevDFG, removePrevEOGEntries, removePrevEOGEntry, setArgumentIndex, setCode, setComment, setDummy, setFile, setImplicit, setLocation, setName, setNextDFG, setNextEOG, setPrevDFG, setPrevEOG, setPrevEOGProperties, setTypedefs
-
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
-
Methods inherited from interface de.fraunhofer.aisec.cpg.processing.IVisitable
accept
-
-
-
-
Constructor Detail
-
PointerType
public PointerType(Type elementType, PointerType.PointerOrigin pointerOrigin)
-
PointerType
public PointerType(Type type, Type elementType, PointerType.PointerOrigin pointerOrigin)
-
-
Method Detail
-
reference
public PointerType reference(PointerType.PointerOrigin origin)
-
dereference
public Type dereference()
- Specified by:
dereferencein classType- Returns:
- dereferencing a PointerType yields the type the pointer was pointing towards
-
refreshNames
public void refreshNames()
- Overrides:
refreshNamesin classType
-
duplicate
public Type duplicate()
-
isArray
public boolean isArray()
-
isSimilar
public boolean isSimilar(Type t)
Description copied from class:TypeRequired for possibleSubTypes to check if the new Type should be considered a subtype or not
-
getPointerOrigin
public PointerType.PointerOrigin getPointerOrigin()
-
getElementType
public Type getElementType()
- Specified by:
getElementTypein interfaceSecondOrderType
-
getReferenceDepth
public int getReferenceDepth()
- Overrides:
getReferenceDepthin classType- Returns:
- number of steps that are required in order to traverse the type chain until the root is reached
-
setElementType
public void setElementType(Type elementType)
- Specified by:
setElementTypein interfaceSecondOrderType
-
-