public CachingNameConverters(NameConverters nameConverters) { Objects.requireNonNull(nameConverters, "nameConverters can't be null"); this.tableNameConverter = new CachingTableNameConverter(nameConverters.getTableNameConverter()); this.fieldNameConverter = nameConverters.getFieldNameConverter(); this.sequenceNameConverter = nameConverters.getSequenceNameConverter(); this.triggerNameConverter = nameConverters.getTriggerNameConverter(); this.indexNameConverter = nameConverters.getIndexNameConverter(); this.uniqueNameConverter = nameConverters.getUniqueNameConverter(); }
public IndexParser( final DatabaseProvider databaseProvider, final NameConverters nameConverters, final TypeManager typeManager ) { this.databaseProvider = databaseProvider; this.tableNameConverter = nameConverters.getTableNameConverter(); this.fieldNameConverter = nameConverters.getFieldNameConverter(); this.indexNameConverter = nameConverters.getIndexNameConverter(); this.typeManager = typeManager; }
private Iterable<SQLAction> renderDropTableActions(NameConverters nameConverters, DDLTable table) { ImmutableList.Builder<SQLAction> ret = ImmutableList.builder(); for (DDLIndex index : table.getIndexes()) { final SQLAction sqlAction = renderDropIndex(nameConverters.getIndexNameConverter(), index); if (sqlAction != null) { ret.add(sqlAction); } } ret.addAll(renderDropAccessories(nameConverters, table)); ret.add(renderDropTableStatement(table)); return ret.build(); }
@Override protected Iterable<SQLAction> renderAlterTableAddColumn(final NameConverters nameConverters, final DDLTable table, final DDLField field) { final Iterable<SQLAction> back = super.renderAlterTableAddColumn(nameConverters, table, field); if (field.isUnique()) { return concat(back, ImmutableList.of(renderAddUniqueConstraint(nameConverters.getUniqueNameConverter(), table, field))); } return back; }
/** * Not intended for public use. */ public static DDLTable parseInterface(DatabaseProvider provider, NameConverters nameConverters, Class<? extends RawEntity<?>> clazz) { String sqlName = nameConverters.getTableNameConverter().getName(clazz); DDLTable table = new DDLTable(); table.setName(sqlName); table.setFields(parseFields(provider, nameConverters.getFieldNameConverter(), clazz)); table.setForeignKeys(parseForeignKeys(nameConverters.getTableNameConverter(), nameConverters.getFieldNameConverter(), clazz)); table.setIndexes(parseIndexes(provider, nameConverters, clazz)); return table; }
/** * Retrieves the {@link FieldNameConverter} instance used for name conversion of all entity methods. */ public FieldNameConverter getFieldNameConverter() { return nameConverters.getFieldNameConverter(); }
SQLAction sqlAction = renderDropIndex(nameConverters.getIndexNameConverter(), index); sql.add(sqlAction); sql.add(SQLAction.of(new StringBuilder() .append("ALTER TABLE ").append(withSchema(table.getName())) .append(" ADD CONSTRAINT ").append(nameConverters.getUniqueNameConverter().getName(table.getName(), field.getName())) .append(" UNIQUE(").append(processID(field.getName())).append(")"))); sql.add(SQLAction.of(new StringBuilder() .append("ALTER TABLE ").append(withSchema(table.getName())) .append(" DROP CONSTRAINT ").append(nameConverters.getUniqueNameConverter().getName(table.getName(), oldField.getName())))); sql.add(renderCreateIndex(nameConverters.getIndexNameConverter(), index));
/** * Retrieves the {@link TableNameConverter} instance used for name conversion of all entity types. */ public TableNameConverter getTableNameConverter() { return nameConverters.getTableNameConverter(); }
private SQLAction renderTrigger(NameConverters nameConverters, DDLTable table, DDLField field) { StringBuilder back = new StringBuilder(); back.append("CREATE TRIGGER ").append(withSchema(nameConverters.getTriggerNameConverter().autoIncrementName(table.getName(), field.getName())) + '\n'); back.append("BEFORE INSERT\n").append(" ON ").append(withSchema(table.getName())).append(" FOR EACH ROW\n"); back.append("BEGIN\n"); back.append(" SELECT ").append(withSchema(nameConverters.getSequenceNameConverter().getName(shorten(table.getName()), shorten(field.getName()))) + ".NEXTVAL"); back.append(" INTO :NEW.").append(processID(field.getName())).append(" FROM DUAL;\nEND;"); return SQLAction.of(back); }
private boolean isUsingSequence(List<String> sequenceNames, String tableName, String fieldName) { return sequenceNames.contains(databaseProvider.processID(nameConverters.getSequenceNameConverter().getName(tableName, fieldName))); }
/** * Renders SQL statement(s) to drop the trigger which corresponds to the * specified field, or <code>null</code> if none. * * @param nameConverters * @param table The table containing the field for which a trigger * may need to be rendered. * @param field The field for which the trigger should be rendered, * if any. @return A database-specific DDL statement to drop a trigger for * the field in question, or <code>null</code>. */ protected SQLAction _renderDropTriggerForField(NameConverters nameConverters, DDLTable table, DDLField field) { final String trigger = _getTriggerNameForField(nameConverters.getTriggerNameConverter(), table, field); if (trigger != null) { return SQLAction.of("DROP TRIGGER " + processID(trigger)); } return null; }
private Iterable<SQLAction> renderDropTableActions(NameConverters nameConverters, DDLTable table) { ImmutableList.Builder<SQLAction> ret = ImmutableList.builder(); for (DDLIndex index : table.getIndexes()) { final SQLAction sqlAction = renderDropIndex(nameConverters.getIndexNameConverter(), index); if (sqlAction != null) { ret.add(sqlAction); } } ret.addAll(renderDropAccessories(nameConverters, table)); ret.add(renderDropTableStatement(table)); return ret.build(); }
public IndexParser( final DatabaseProvider databaseProvider, final NameConverters nameConverters, final TypeManager typeManager ) { this.databaseProvider = databaseProvider; this.tableNameConverter = nameConverters.getTableNameConverter(); this.fieldNameConverter = nameConverters.getFieldNameConverter(); this.indexNameConverter = nameConverters.getIndexNameConverter(); this.typeManager = typeManager; }
@Override protected Iterable<SQLAction> renderAlterTableAddColumn(NameConverters nameConverters, DDLTable table, DDLField field) { final Iterable<SQLAction> back = super.renderAlterTableAddColumn(nameConverters, table, field); if (field.isUnique()) { return concat(back, ImmutableList.of(renderAddUniqueConstraint(nameConverters.getUniqueNameConverter(), table, field))); } return back; }
/** * Not intended for public use. */ public static DDLTable parseInterface(DatabaseProvider provider, NameConverters nameConverters, Class<? extends RawEntity<?>> clazz) { String sqlName = nameConverters.getTableNameConverter().getName(clazz); DDLTable table = new DDLTable(); table.setName(sqlName); table.setFields(parseFields(provider, nameConverters.getFieldNameConverter(), clazz)); table.setForeignKeys(parseForeignKeys(nameConverters.getTableNameConverter(), nameConverters.getFieldNameConverter(), clazz)); table.setIndexes(parseIndexes(provider, nameConverters, clazz)); return table; }
/** * Retrieves the {@link FieldNameConverter} instance used for name conversion of all entity methods. */ public FieldNameConverter getFieldNameConverter() { return nameConverters.getFieldNameConverter(); }
SQLAction sqlAction = renderDropIndex(nameConverters.getIndexNameConverter(), index); sql.add(sqlAction); sql.add(SQLAction.of(new StringBuilder() .append("ALTER TABLE ").append(withSchema(table.getName())) .append(" ADD CONSTRAINT ").append(nameConverters.getUniqueNameConverter().getName(table.getName(), field.getName())) .append(" UNIQUE(").append(processID(field.getName())).append(")"))); sql.add(SQLAction.of(new StringBuilder() .append("ALTER TABLE ").append(withSchema(table.getName())) .append(" DROP CONSTRAINT ").append(nameConverters.getUniqueNameConverter().getName(table.getName(), oldField.getName())))); sql.add(renderCreateIndex(nameConverters.getIndexNameConverter(), index));
/** * Retrieves the {@link TableNameConverter} instance used for name conversion of all entity types. */ public TableNameConverter getTableNameConverter() { return nameConverters.getTableNameConverter(); }
private SQLAction renderTrigger(NameConverters nameConverters, DDLTable table, DDLField field) { StringBuilder back = new StringBuilder(); back.append("CREATE TRIGGER ").append(withSchema(nameConverters.getTriggerNameConverter().autoIncrementName(table.getName(), field.getName())) + '\n'); back.append("BEFORE INSERT\n").append(" ON ").append(withSchema(table.getName())).append(" FOR EACH ROW\n"); back.append("BEGIN\n"); back.append(" SELECT ").append(withSchema(nameConverters.getSequenceNameConverter().getName(shorten(table.getName()), shorten(field.getName()))) + ".NEXTVAL"); back.append(" INTO :NEW.").append(processID(field.getName())).append(" FROM DUAL;\nEND;"); return SQLAction.of(back); }
private boolean isUsingSequence(List<String> sequenceNames, String tableName, String fieldName) { return sequenceNames.contains(databaseProvider.processID(nameConverters.getSequenceNameConverter().getName(tableName, fieldName))); }