ImmutableTable(ImmutableSchema parent, Map<String, Object> table) { super(parent, table); final Table prototype = new TableImpl(parent, table); this.enabled = prototype.isEnabled(); this.id = prototype.getId(); this.name = prototype.getName(); this.alias = prototype.getAlias(); this.packageName = prototype.getPackageName(); this.view = prototype.isView(); this.columns = unmodifiableList(super.children(COLUMNS, ImmutableColumn::new).collect(toList())); this.indexes = unmodifiableList(super.children(INDEXES, ImmutableIndex::new).collect(toList())); this.foreignKeys = unmodifiableList(super.children(FOREIGN_KEYS, ImmutableForeignKey::new).collect(toList())); this.primaryKeyColumns = unmodifiableList(super.children(PRIMARY_KEY_COLUMNS, ImmutablePrimaryKeyColumn::new).collect(toList())); }
icon = ((Table) node).isView() ? TABLE_LINK : TABLE; } else {
private void primaryKeyColumns(Connection conn, Table table, ProgressMeasure progress) { requireNonNulls(conn, table, progress); final SqlSupplier<ResultSet> supplier = () -> conn.getMetaData().getPrimaryKeys(null, null, table.getId()); final TableChildMutator<PrimaryKeyColumn> mutator = (pkc, rs) -> { final String columnName = rs.getString("COLUMN_NAME"); pkc.mutator().setId(columnName); pkc.mutator().setName(columnName); pkc.mutator().setOrdinalPosition(rs.getInt("KEY_SEQ")); }; tableChilds( table, PrimaryKeyColumn.class, table.mutator()::addNewPrimaryKeyColumn, supplier, rsChild -> rsChild.getString("COLUMN_NAME"), mutator ); if (!table.isView() && table.primaryKeyColumns().noneMatch(pk -> true)) { LOGGER.warn(format("Table '%s' does not have any primary key.", table.getId())); } }
protected void primaryKeyColumns(Connection connection, Table table, ProgressMeasure progressListener) { requireNonNulls(connection, table); final Schema schema = table.getParentOrThrow(); final SqlSupplier<ResultSet> supplier = () -> connection.getMetaData().getPrimaryKeys(jdbcCatalogLookupName(schema), jdbcSchemaLookupName(schema), metaDataTableNameForPrimaryKeys(table) ); final AbstractDbmsOperationHandler.TableChildMutator<PrimaryKeyColumn, ResultSet> mutator = (primaryKeyColumn, rs) -> { final String columnName = rs.getString("COLUMN_NAME"); primaryKeyColumn.mutator().setId(columnName); primaryKeyColumn.mutator().setName(columnName); primaryKeyColumn.mutator().setOrdinalPosition(rs.getInt("KEY_SEQ")); }; tableChilds(PrimaryKeyColumn.class, table.mutator()::addNewPrimaryKeyColumn, supplier, mutator, progressListener); if (!table.isView() && table.primaryKeyColumns().noneMatch(pk -> true)) { LOGGER.warn("Table '" + table.getId() + "' does not have any primary key."); } }
private void indexes(Connection conn, Table table, ProgressMeasure progress) { requireNonNulls(conn, table, progress); if (table.isView() && IGNORE_VIEW_INDEXES) return; final SqlSupplier<ResultSet> supplier = () -> conn.getMetaData().getIndexInfo(null, null, table.getId(), false, APPROXIMATE_INDEX); final TableChildMutator<Index> mutator = (index, rs) -> { final String indexName = rs.getString("INDEX_NAME"); index.mutator().setId(indexName); index.mutator().setName(indexName); index.mutator().setUnique(!rs.getBoolean("NON_UNIQUE")); final IndexColumn indexColumn = index.mutator().addNewIndexColumn(); final String columnName = rs.getString("COLUMN_NAME"); indexColumn.mutator().setId(columnName); indexColumn.mutator().setName(columnName); indexColumn.mutator().setOrdinalPosition(rs.getInt("ORDINAL_POSITION")); indexColumn.mutator().setOrderType(getOrderType(rs)); }; final SqlPredicate<ResultSet> filter = rs -> rs.getString("INDEX_NAME") != null; tableChilds( table, Index.class, table.mutator()::addNewIndex, supplier, rsChild -> rsChild.getString("INDEX_NAME"), mutator, filter ); }
if (table.isView()) { return;
"Speedment settings for %s '%s' %s", withName instanceof Table ? ((Table) withName).isView() ? "view" : "table" : withName.mainInterface().getSimpleName().toLowerCase(),
primaryKeyColumns(conn, table, progress); if (!table.isView()) {
.abstract_() .setSupertype(SimpleParameterizedType.create( table.isView() ? AbstractViewManager.class : AbstractManager.class,
private void primaryKeyColumns(Connection conn, Table table, ProgressMeasure progress) { requireNonNulls(conn, table, progress); final SqlSupplier<ResultSet> supplier = () -> conn.getMetaData().getPrimaryKeys(null, null, table.getId()); final TableChildMutator<PrimaryKeyColumn> mutator = (pkc, rs) -> { final String columnName = rs.getString("COLUMN_NAME"); pkc.mutator().setId(columnName); pkc.mutator().setName(columnName); pkc.mutator().setOrdinalPosition(rs.getInt("KEY_SEQ")); }; tableChilds( table, PrimaryKeyColumn.class, table.mutator()::addNewPrimaryKeyColumn, supplier, rsChild -> rsChild.getString("COLUMN_NAME"), mutator ); if (!table.isView() && table.primaryKeyColumns().noneMatch(pk -> true)) { LOGGER.warn(format("Table '%s' does not have any primary key.", table.getId())); } }
protected void primaryKeyColumns(Connection connection, Table table, ProgressMeasure progressListener) { requireNonNulls(connection, table); final Schema schema = table.getParentOrThrow(); final SqlSupplier<ResultSet> supplier = () -> connection.getMetaData().getPrimaryKeys(jdbcCatalogLookupName(schema), jdbcSchemaLookupName(schema), metaDataTableNameForPrimaryKeys(table) ); final AbstractDbmsOperationHandler.TableChildMutator<PrimaryKeyColumn, ResultSet> mutator = (primaryKeyColumn, rs) -> { final String columnName = rs.getString("COLUMN_NAME"); primaryKeyColumn.mutator().setId(columnName); primaryKeyColumn.mutator().setName(columnName); primaryKeyColumn.mutator().setOrdinalPosition(rs.getInt("KEY_SEQ")); }; tableChilds(PrimaryKeyColumn.class, table.mutator()::addNewPrimaryKeyColumn, supplier, mutator, progressListener); if (!table.isView() && table.primaryKeyColumns().noneMatch(pk -> true)) { LOGGER.warn("Table '" + table.getId() + "' does not have any primary key."); } }
private void indexes(Connection conn, Table table, ProgressMeasure progress) { requireNonNulls(conn, table, progress); if (table.isView() && IGNORE_VIEW_INDEXES) return; final SqlSupplier<ResultSet> supplier = () -> conn.getMetaData().getIndexInfo(null, null, table.getId(), false, APPROXIMATE_INDEX); final TableChildMutator<Index> mutator = (index, rs) -> { final String indexName = rs.getString("INDEX_NAME"); index.mutator().setId(indexName); index.mutator().setName(indexName); index.mutator().setUnique(!rs.getBoolean("NON_UNIQUE")); final IndexColumn indexColumn = index.mutator().addNewIndexColumn(); final String columnName = rs.getString("COLUMN_NAME"); indexColumn.mutator().setId(columnName); indexColumn.mutator().setName(columnName); indexColumn.mutator().setOrdinalPosition(rs.getInt("ORDINAL_POSITION")); indexColumn.mutator().setOrderType(getOrderType(rs)); }; final SqlPredicate<ResultSet> filter = rs -> rs.getString("INDEX_NAME") != null; tableChilds( table, Index.class, table.mutator()::addNewIndex, supplier, rsChild -> rsChild.getString("INDEX_NAME"), mutator, filter ); }
if (table.isView()) { return;
primaryKeyColumns(conn, table, progress); if (!table.isView()) {
.abstract_() .setSupertype(SimpleParameterizedType.create( table.isView() ? AbstractViewManager.class : AbstractManager.class,