use of org.obeonetwork.dsl.database.Column in project InformationSystem by ObeoNetwork.
the class DefaultDataBaseBuilder method buildPrimaryKey.
protected void buildPrimaryKey(AbstractTable table, ResultSet rs, PrimaryKey primaryKey) throws SQLException {
String columnName = rs.getString(4);
Column column = queries.getColumn(table, columnName);
primaryKey.getColumns().add(column);
column.setPrimaryKey(primaryKey);
}
use of org.obeonetwork.dsl.database.Column in project InformationSystem by ObeoNetwork.
the class DefaultDataBaseBuilder method buildForeignKeys.
protected void buildForeignKeys(Table table) {
Map foreignKeys = new HashMap();
ResultSet rs = null;
try {
rs = metaData.getImportedKeys(null, schemaName, table.getName());
while (rs.next()) {
String pkSchemaName = rs.getString(2);
String pkTableName = rs.getString(3);
String fkName = rs.getString(12);
String pkName = rs.getString(13);
String foreignKeyId = tableContainer.getName() + "::" + table.getName() + "::" + fkName;
ForeignKey foreignKey = (ForeignKey) foreignKeys.get(foreignKeyId);
if (foreignKey == null) {
foreignKey = CreationUtils.createForeignKey(table);
foreignKey.setName(fkName);
foreignKeys.put(foreignKeyId, foreignKey);
}
int keySeq = rs.getInt(9);
ForeignKeyElement foreignKeyElement = CreationUtils.createForeignKeyElement(keySeq, foreignKey);
foreignKey.getElements().add(foreignKeyElement);
String pkColumnName = rs.getString(4);
Column pkColumn = queries.getColumn(tableContainer, pkTableName, pkColumnName);
if (pkColumn != null) {
foreignKeyElement.setPkColumn(pkColumn);
} else {
AbstractTable pkTable = queries.getTable(pkTableName);
if (pkTable == null) {
pkTable = CreationUtils.createTable(tableContainer, pkTableName);
pkColumn = CreationUtils.createColumn(pkTable, pkColumnName);
} else {
pkColumn = queries.getColumn(pkTable, pkColumnName);
}
foreignKeyElement.setPkColumn(pkColumn);
}
String fkSchemaName = rs.getString(6);
String fkTableName = rs.getString(7);
String fkColumnName = rs.getString(8);
Column fkColumn = queries.getColumn(tableContainer, fkTableName, fkColumnName);
foreignKeyElement.setFkColumn(fkColumn);
// Set target table
if (foreignKey.getTarget() == null) {
Table targetTable = (Table) pkColumn.getOwner();
foreignKey.setTarget(targetTable);
}
}
} catch (Exception ex) {
ex.printStackTrace();
} finally {
JdbcUtils.closeResultSet(rs);
}
}
use of org.obeonetwork.dsl.database.Column in project InformationSystem by ObeoNetwork.
the class OracleDataBaseBuilder method buildSequences.
private void buildSequences(DatabaseMetaData metaData, TableContainer owner) {
ResultSet rs = null;
PreparedStatement pstmt = null;
try {
PreparedStatement psmt = metaData.getConnection().prepareStatement("SELECT SEQUENCE_NAME, INCREMENT_BY, MIN_VALUE, MAX_VALUE, LAST_NUMBER, CYCLE_FLAG, CACHE_SIZE " + "FROM user_sequences");
rs = psmt.executeQuery();
while (rs.next()) {
String name = rs.getString(1);
BigInteger increment = getBigIntValueForColumn(rs, 2);
BigInteger minValue = getBigIntValueForColumn(rs, 3);
BigInteger maxValue = getBigIntValueForColumn(rs, 4);
BigInteger start = getBigIntValueForColumn(rs, 5);
String cycleAsString = rs.getString(6);
boolean cycle = "Y".equals(cycleAsString);
BigInteger cacheSize = getBigIntValueForColumn(rs, 7);
Sequence sequence = CreationUtils.createSequence(owner, name, increment, minValue, maxValue, start, cycle, cacheSize);
// Look for a table that could correspond to the sequence
if (name.endsWith("_SEQ")) {
String tableName = name.substring(0, name.length() - "_SEQ".length());
AbstractTable abstractTable = queries.getTable(tableName);
if (abstractTable != null && abstractTable instanceof Table) {
Table table = (Table) abstractTable;
if (table.getPrimaryKey() != null && table.getPrimaryKey().getColumns().size() == 1) {
Column column = table.getPrimaryKey().getColumns().get(0);
column.setSequence(sequence);
}
}
}
}
} catch (Exception ex) {
ex.printStackTrace();
} finally {
JdbcUtils.closeStatement(pstmt);
JdbcUtils.closeResultSet(rs);
}
}
use of org.obeonetwork.dsl.database.Column in project InformationSystem by ObeoNetwork.
the class CreationUtils method createColumn.
public static Column createColumn(AbstractTable abstractTable, String name) {
if (abstractTable instanceof Table) {
Table table = (Table) abstractTable;
Column column = DatabaseFactory.eINSTANCE.createColumn();
column.setName(name);
column.setOwner(table);
table.getColumns().add(column);
return column;
}
return null;
}
use of org.obeonetwork.dsl.database.Column in project InformationSystem by ObeoNetwork.
the class RenameColumnChangeImpl method setNewColumn.
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public void setNewColumn(Column newNewColumn) {
Column oldNewColumn = newColumn;
newColumn = newNewColumn;
if (eNotificationRequired())
eNotify(new ENotificationImpl(this, Notification.SET, DbevolutionPackage.RENAME_COLUMN_CHANGE__NEW_COLUMN, oldNewColumn, newColumn));
}
Aggregations