Package de.fraunhofer.aisec.cpg.passes
Class TypeResolver
- java.lang.Object
-
- de.fraunhofer.aisec.cpg.passes.Pass
-
- de.fraunhofer.aisec.cpg.passes.TypeResolver
-
- All Implemented Interfaces:
java.util.function.Consumer<TranslationResult>
public class TypeResolver extends Pass
-
-
Constructor Summary
Constructors Constructor Description TypeResolver()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description voidaccept(TranslationResult translationResult)Pass on the TypeSystem: Sets RecordDeclaration Relationship from ObjectType to RecordDeclarationvoidcleanup()java.util.Set<Type>ensureUniqueSubTypes(java.util.Set<Type> subTypes)voidensureUniqueType(Node node)voidhandle(Node node)Creates the recordDeclaration relationship between ObjectTypes and RecordDeclaration (from the Type to the Class)TypeobtainType(Type type)Ensures that two different Types that are created at different Points are still the same object in order to only store one node into the database-
Methods inherited from class de.fraunhofer.aisec.cpg.passes.Pass
getLang, setLang, supportsLanguageFrontend
-
-
-
-
Method Detail
-
obtainType
public Type obtainType(Type type)
Ensures that two different Types that are created at different Points are still the same object in order to only store one node into the database- Parameters:
type- newly created Type- Returns:
- If the same type was already stored in the typeState Map the stored one is returned. In the other case the parameter type is stored into the map and the parameter type is returned
-
accept
public void accept(TranslationResult translationResult)
Pass on the TypeSystem: Sets RecordDeclaration Relationship from ObjectType to RecordDeclaration- Parameters:
translationResult-
-
ensureUniqueType
public void ensureUniqueType(Node node)
-
handle
public void handle(Node node)
Creates the recordDeclaration relationship between ObjectTypes and RecordDeclaration (from the Type to the Class)- Parameters:
node-
-
-