Package lu.kbra.pclib.db.utils
Class DatabaseScanner
java.lang.Object
lu.kbra.pclib.db.utils.DatabaseScanner
- All Implemented Interfaces:
TreeStringConvertible,MapConvertible
-
Constructor Summary
ConstructorsConstructorDescriptionDatabaseScanner(Database database) DatabaseScanner(Database database, Map<String, Object> hints) -
Method Summary
Modifier and TypeMethodDescriptionbuildColumn(SQLQueryable<?> parent, SQLQueryable<?> table, Map<String, Object> columnMap) buildOrderBy(SQLQueryable<?> self, Map<String, Object> orderBy) buildTable(SQLQueryable<?> parent, Map<String, Object> tableMap) buildWith(SQLQueryable<?> parent, Map<String, Object> viewWithTable) 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) getForeignKeys(SQLQueryableStructure structure) SQLQueryable<?>getInstanceFor(Class<? extends SQLQueryable<?>> foreignQueryable, String refTableName) SQLQueryable<?>getInstanceFor(Class<? extends SQLQueryable<?>> foreignQueryable, String refTableName, boolean includeSyn) getReferencedColumnName(SQLQueryable<?> table, ColumnData columnData, SQLQueryableStructure foreignStructure) getStructureFor(Class<? extends SQLQueryable<?>> foreignQueryable, String refTableName) getStructureFor(Class<? extends SQLQueryable<?>> foreignQueryable, String refTableName, boolean includeSyn) <B extends SQLQueryable<T>,T extends DatabaseEntry>
DatabaseScannerregister(B instance) <B extends SQLQueryable<T>,T extends DatabaseEntry>
DatabaseScannervoidregisterSimpleNames(Class<? extends SQLQueryable<?>> tableClazz, Map<String, Object> queryableHints, SQLQueryableStructure tableStructure) voidscanSelfTableStructure(AbstractDBTable<?> instance, Map<String, Object> customHints, Class<? extends AbstractDBTable<?>> tableClazz, Map<String, Object> customEntryHints) scanSelfViewStructure(AbstractDBView<? extends DatabaseEntry> instance, Map<String, Object> customHints, Class<? extends AbstractDBView<? extends DatabaseEntry>> viewClazz, Map<String, Object> customEntryHints) <T extends DatabaseEntry>
voidscanTableLinks(SQLQueryable<T> instance) voidscanViewLinks(AbstractDBView<? extends DatabaseEntry> instance) sortFields(Field[] fields) toMap()toString()Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, waitMethods inherited from interface lu.kbra.pclib.db.domain.table.TreeStringConvertible
toTreeString
-
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() -
resolveMissingJoinConditions
-
getForeignKeys
-
scanTableLinks
-
getStructureFor
public SQLQueryableStructure getStructureFor(Class<? extends SQLQueryable<?>> foreignQueryable, String refTableName) -
getStructureFor
public SQLQueryableStructure getStructureFor(Class<? extends SQLQueryable<?>> foreignQueryable, String refTableName, boolean includeSyn) -
getInstanceFor
public SQLQueryable<?> getInstanceFor(Class<? extends SQLQueryable<?>> foreignQueryable, String refTableName) -
getInstanceFor
public SQLQueryable<?> getInstanceFor(Class<? extends SQLQueryable<?>> foreignQueryable, String refTableName, boolean includeSyn) -
getReferencedColumnName
public String getReferencedColumnName(SQLQueryable<?> table, ColumnData columnData, SQLQueryableStructure foreignStructure) -
scanSelfTableStructure
public TableStructure scanSelfTableStructure(AbstractDBTable<?> instance, Map<String, Object> customHints, Class<? extends AbstractDBTable<?>> tableClazz, Map<String, Object> customEntryHints) -
registerSimpleNames
public void registerSimpleNames(Class<? extends SQLQueryable<?>> tableClazz, Map<String, Object> queryableHints, SQLQueryableStructure tableStructure) -
scanSelfViewStructure
public ViewStructure scanSelfViewStructure(AbstractDBView<? extends DatabaseEntry> instance, Map<String, Object> customHints, Class<? extends AbstractDBView<? extends DatabaseEntry>> viewClazz, Map<String, Object> customEntryHints) -
scanViewLinks
-
buildWith
public ViewCommonTableExpressionStructure buildWith(SQLQueryable<?> parent, Map<String, Object> viewWithTable) -
buildOrderBy
-
buildColumn
public ViewColumnStructure buildColumn(SQLQueryable<?> parent, SQLQueryable<?> table, Map<String, Object> columnMap) -
buildTable
-
computeColumnsFor
public 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
-
toString
-
toMap
- Specified by:
toMapin interfaceMapConvertible
-