protected String getNewColumnName(DBECommandContext context, TABLE_TYPE table) { for (int i = 1; ; i++) { final String name = DBObjectNameCaseTransformer.transformName(table.getDataSource(), "Column" + i); try { // check for existing columns boolean exists = table.getAttribute(VoidProgressMonitor.INSTANCE, name) != null; if (!exists) { // Check for new columns (they are present only within command context) for (DBPObject contextObject : context.getEditedObjects()) { if (contextObject instanceof JDBCTableColumn && ((JDBCTableColumn) contextObject).getTable() == table && name.equalsIgnoreCase(((JDBCTableColumn) contextObject).getName())) { exists = true; break; } } } if (!exists) { return name; } } catch (DBException e) { log.warn(e); return name; } } }
@Override protected DBEPersistAction[] makeObjectCreateActions(ObjectCreateCommand command) { final TABLE_TYPE table = command.getObject().getTable(); return new DBEPersistAction[] { new SQLDatabasePersistAction( ModelMessages.model_jdbc_create_new_table_column, "ALTER TABLE " + table.getFullQualifiedName() + " ADD " + getNestedDeclaration(table, command)) }; //$NON-NLS-1$ //$NON-NLS-2$ }
@Override public boolean canCreateObject(TABLE_TYPE parent) { return parent != null && !parent.isView(); }
@Override public boolean canEditObject(OBJECT_TYPE object) { TABLE_TYPE table = object.getParentObject(); return table != null && !table.isView(); }