Package lu.kbra.pclib.db.utils
Class DatabaseScanner
java.lang.Object
lu.kbra.pclib.db.utils.DatabaseScanner
-
Field Summary
FieldsModifier and TypeFieldDescriptionprotected final Databaseprotected final DatabaseEntryUtilsprotected DependencyTree<? extends SQLQueryable<?>,SQLQueryableDependencyOwner.SQLQueryableDependency> protected final List<ReadOnlyTriplet<SQLQueryable<?>,Optional<Map<String, Object>>, Optional<Map<String, Object>>>> protected final SQLFunctionResolverprotected final HintScannerprotected final Map<Class<? extends SQLQueryable<?>>,List<SQLQueryableStructure>> protected final SQLStructureVisitor -
Constructor Summary
ConstructorsConstructorDescriptionDatabaseScanner(Database database) DatabaseScanner(Database database, Map<String, Object> hints) -
Method Summary
Modifier and TypeMethodDescriptionprotected ColumnData[]computeColumnsFor(SQLQueryable<?> table, SQLQueryableStructure tableStructure, Class<? extends DatabaseEntry> entryClazz) computeDefaultValue(SQLQueryable<?> table, ColumnData columnData) computeExpression(SQLQueryable<?> table, Optional<ColumnData> columnData, String input) voiddoScan()protected Fieldprotected Field[]getAllFields(Class<?> type) <T extends DatabaseEntry>
Class<T>getEntryType(Class<? extends SQLQueryable<?>> tableClass) <T extends DatabaseEntry>
FieldgetFieldFor(Class<T> entryClazz, String sqlName) getReferencedColumnName(SQLQueryable<?> table, ColumnData columnData, SQLQueryableStructure foreignStructure) <B extends SQLQueryable<T>,T extends DatabaseEntry>
DatabaseScannerregister(B instance) <B extends SQLQueryable<T>,T extends DatabaseEntry>
DatabaseScannerprotected voidregisterSimpleNames(Class<? extends SQLQueryable<?>> tableClazz, Map<String, Object> queryableHints, SQLQueryableStructure tableStructure) protected voidprotected voidprotected TableStructurescanSelfTableStructure(AbstractDBTable<?> instance, Map<String, Object> customHints, Class<? extends AbstractDBTable<?>> tableClazz, Map<String, Object> customEntryHints) protected ViewStructurescanSelfViewStructure(AbstractDBView<? extends DatabaseEntry> instance, Map<String, Object> customHints, Class<? extends AbstractDBView<? extends DatabaseEntry>> viewClazz, Map<String, Object> customEntryHints) protected voidscanViewLinks(AbstractDBView<? extends DatabaseEntry> instance) sortFields(Field[] fields)
-
Field Details
-
database
-
databaseEntryUtils
-
structureVisitor
-
forScan
-
functionResolver
-
scanned
-
baseHints
-
hintScanner
-
dependencyTree
protected DependencyTree<? extends SQLQueryable<?>,SQLQueryableDependencyOwner.SQLQueryableDependency> dependencyTree
-
-
Constructor Details
-
DatabaseScanner
-
DatabaseScanner
-
-
Method Details
-
register
-
register
public <B extends SQLQueryable<T>,T extends DatabaseEntry> DatabaseScanner register(B instance, Map<String, Object> queryableHints, Map<String, Object> entryHints) -
doScan
public void doScan() -
scanSelfStructure
protected void scanSelfStructure() -
scanLinks
protected void scanLinks() -
getReferencedColumnName
public String getReferencedColumnName(SQLQueryable<?> table, ColumnData columnData, SQLQueryableStructure foreignStructure) -
scanSelfTableStructure
protected TableStructure scanSelfTableStructure(AbstractDBTable<?> instance, Map<String, Object> customHints, Class<? extends AbstractDBTable<?>> tableClazz, Map<String, Object> customEntryHints) -
registerSimpleNames
protected void registerSimpleNames(Class<? extends SQLQueryable<?>> tableClazz, Map<String, Object> queryableHints, SQLQueryableStructure tableStructure) -
scanSelfViewStructure
protected ViewStructure scanSelfViewStructure(AbstractDBView<? extends DatabaseEntry> instance, Map<String, Object> customHints, Class<? extends AbstractDBView<? extends DatabaseEntry>> viewClazz, Map<String, Object> customEntryHints) -
scanViewLinks
-
computeColumnsFor
protected ColumnData[] computeColumnsFor(SQLQueryable<?> table, SQLQueryableStructure tableStructure, Class<? extends DatabaseEntry> entryClazz) -
computeDefaultValue
-
computeExpression
public String computeExpression(SQLQueryable<?> table, Optional<ColumnData> columnData, String input) -
getFieldFor
-
findField
- Throws:
NoSuchFieldException
-
getAllFields
-
sortFields
-
getEntryType
-