Package no.sikt.graphitron.generators.db
Class FetchDBMethodGenerator
java.lang.Object
no.sikt.graphitron.generators.abstractions.AbstractSchemaMethodGenerator<T,ObjectDefinition>
no.sikt.graphitron.generators.abstractions.DBMethodGenerator<ObjectField>
no.sikt.graphitron.generators.db.FetchDBMethodGenerator
- All Implemented Interfaces:
MethodGenerator
- Direct Known Subclasses:
EntityDBFetcherMethodGenerator,FetchCountDBMethodGenerator,FetchMappedObjectDBMethodGenerator,FetchMultiTableDBMethodGenerator,FetchNodeImplementationDBMethodGenerator,FetchSingleTableInterfaceDBMethodGenerator
Abstract generator for various database fetching methods.
-
Field Summary
FieldsModifier and TypeFieldDescriptionprotected final booleanprotected final booleanprotected final StringFields inherited from class no.sikt.graphitron.generators.abstractions.AbstractSchemaMethodGenerator
dependencyMap, localObject, processedSchema -
Constructor Summary
ConstructorsConstructorDescriptionFetchDBMethodGenerator(ObjectDefinition localObject, ProcessedSchema processedSchema) -
Method Summary
Modifier and TypeMethodDescriptionprotected static no.sikt.graphitron.javapoet.CodeBlockcreateAliasDeclarations(Set<Alias> aliasSet) protected static no.sikt.graphitron.javapoet.CodeBlockcreateAliasDeclarations(Alias alias) protected no.sikt.graphitron.javapoet.CodeBlockcreateMapping(FetchContext context, List<? extends GenerationField> fieldsWithoutSplitting, HashMap<String, String> referenceFieldSources, List<no.sikt.graphitron.javapoet.CodeBlock> rowElements, LinkedHashSet<KeyWrapper> keySet) protected no.sikt.graphitron.javapoet.CodeBlockcreateOrderFieldsBlock(ObjectField referenceField, String actualRefTable, String tableName) protected no.sikt.graphitron.javapoet.CodeBlockcreateOrderFieldsDeclarationBlock(ObjectField referenceField, String actualRefTable, String tableName) protected no.sikt.graphitron.javapoet.CodeBlockprotected no.sikt.graphitron.javapoet.CodeBlockcreateSelectConditions(List<no.sikt.graphitron.javapoet.CodeBlock> conditionList, boolean hasWhere) protected no.sikt.graphitron.javapoet.CodeBlockcreateSelectJoins(Set<SQLJoinStatement> joinList) protected no.sikt.graphitron.javapoet.CodeBlockformatWhereContents(FetchContext context, String resolverKeyParamName, boolean isRoot, boolean isResolverRoot) protected no.sikt.graphitron.javapoet.CodeBlockgenerateCorrelatedSubquery(GenerationField field, FetchContext context) protected no.sikt.graphitron.javapoet.CodeBlockgenerateForField(GenerationField field, FetchContext context) Generate a single argument in the row method call.protected no.sikt.graphitron.javapoet.CodeBlockgenerateForField(GenerationField field, FetchContext context, boolean overrideEnum) Generate a single argument in the row method call.protected no.sikt.graphitron.javapoet.CodeBlockgenerateForUnionField(GenerationField field, FetchContext context) Generate select row for each object within the union fieldprotected no.sikt.graphitron.javapoet.CodeBlockgenerateSelectRow(FetchContext context) This method recursively generates one single row method call.protected no.sikt.graphitron.javapoet.CodeBlockgetInitialKey(FetchContext context) protected @NotNull InputConditionsgetInputConditions(ObjectField referenceField) protected org.apache.commons.lang3.tuple.Pair<no.sikt.graphitron.javapoet.CodeBlock,String> getSelectCodeAndFieldSource(GenerationField field, FetchContext context) protected no.sikt.graphitron.javapoet.MethodSpec.BuildergetSpecBuilder(ObjectField referenceField, no.sikt.graphitron.javapoet.TypeName refTypeName, InputParser parser) protected Stringprotected no.sikt.graphitron.javapoet.CodeBlockwrapInField(no.sikt.graphitron.javapoet.CodeBlock contents) protected no.sikt.graphitron.javapoet.CodeBlockwrapInMultiset(no.sikt.graphitron.javapoet.CodeBlock contents) Methods inherited from class no.sikt.graphitron.generators.abstractions.DBMethodGenerator
getContextParameters, getDefaultSpecBuilder, getMethodParameters, getMethodParametersWithOrderField, iterableWrapTypeMethods inherited from class no.sikt.graphitron.generators.abstractions.AbstractSchemaMethodGenerator
generate, getDataFetcherWiring, getDependencyMap, getLocalObject, getLocalTable, getTypeResolverWiring, inferFieldTypeNameMethods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface no.sikt.graphitron.generators.abstractions.MethodGenerator
generateAll
-
Field Details
-
resolverKeyParamName
-
isRoot
protected final boolean isRoot -
isQueryAfterMutation
protected final boolean isQueryAfterMutation
-
-
Constructor Details
-
FetchDBMethodGenerator
-
-
Method Details
-
getInitialKey
-
createSelectJoins
- Parameters:
joinList- List of join statements that should be applied to a select query.- Returns:
- Code block containing all the join statements and their conditions.
-
createSelectConditions
protected no.sikt.graphitron.javapoet.CodeBlock createSelectConditions(List<no.sikt.graphitron.javapoet.CodeBlock> conditionList, boolean hasWhere) - Parameters:
conditionList- List of conditional statements that should be appended after the where-statement.- Returns:
- Code block which declares all the extra conditions that will be used in a select query.
-
createAliasDeclarations
- Parameters:
aliasSet- Set of aliases to be defined.- Returns:
- Code block which declares all the aliases that will be used in a select query.
-
createAliasDeclarations
-
wrapInMultiset
protected no.sikt.graphitron.javapoet.CodeBlock wrapInMultiset(no.sikt.graphitron.javapoet.CodeBlock contents) -
wrapInField
protected no.sikt.graphitron.javapoet.CodeBlock wrapInField(no.sikt.graphitron.javapoet.CodeBlock contents) -
generateSelectRow
This method recursively generates one single row method call. It deduces how each layer of row call should be structured by keeping track of joins and following field references.- Returns:
- Code block which contains the entire recursive structure of the row statement.
-
getSelectCodeAndFieldSource
protected org.apache.commons.lang3.tuple.Pair<no.sikt.graphitron.javapoet.CodeBlock,String> getSelectCodeAndFieldSource(GenerationField field, FetchContext context) -
createMapping
protected no.sikt.graphitron.javapoet.CodeBlock createMapping(FetchContext context, List<? extends GenerationField> fieldsWithoutSplitting, HashMap<String, String> referenceFieldSources, List<no.sikt.graphitron.javapoet.CodeBlock> rowElements, LinkedHashSet<KeyWrapper> keySet) -
generateForField
protected no.sikt.graphitron.javapoet.CodeBlock generateForField(GenerationField field, FetchContext context) Generate a single argument in the row method call. -
generateForField
protected no.sikt.graphitron.javapoet.CodeBlock generateForField(GenerationField field, FetchContext context, boolean overrideEnum) Generate a single argument in the row method call. -
generateForUnionField
protected no.sikt.graphitron.javapoet.CodeBlock generateForUnionField(GenerationField field, FetchContext context) Generate select row for each object within the union field -
formatWhereContents
protected no.sikt.graphitron.javapoet.CodeBlock formatWhereContents(FetchContext context, String resolverKeyParamName, boolean isRoot, boolean isResolverRoot) - Returns:
- Formatted CodeBlock for the where-statement and surrounding code. Applies conditions and joins.
-
getInputConditions
-
inferFieldNamingConvention
-
createSeekAndLimitBlock
protected no.sikt.graphitron.javapoet.CodeBlock createSeekAndLimitBlock() -
createOrderFieldsDeclarationBlock
protected no.sikt.graphitron.javapoet.CodeBlock createOrderFieldsDeclarationBlock(ObjectField referenceField, String actualRefTable, String tableName) -
createOrderFieldsBlock
protected no.sikt.graphitron.javapoet.CodeBlock createOrderFieldsBlock(ObjectField referenceField, String actualRefTable, String tableName) -
getSpecBuilder
@NotNull protected no.sikt.graphitron.javapoet.MethodSpec.Builder getSpecBuilder(ObjectField referenceField, no.sikt.graphitron.javapoet.TypeName refTypeName, InputParser parser)
-