Commit 8f95d727 authored by Sonia Zorba's avatar Sonia Zorba
Browse files

Improvements on XML models inheritance

parent fca053a6
Loading
Loading
Loading
Loading
+1 −1
Original line number Original line Diff line number Diff line
@@ -71,7 +71,7 @@ public class Column extends ChildEntity<Table> {
        String type = null;
        String type = null;


        if (tapSchema.getName().equals(parentSchema.getName())) {
        if (tapSchema.getName().equals(parentSchema.getName())) {
            TableModel tableModel = tapSchema.getTapSchemaModel().get(parentTable.getName());
            TableModel tableModel = tapSchema.getTapSchemaModel().getTable(parentTable.getName());
            type = tableModel.get(getName()).getType();
            type = tableModel.get(getName()).getType();
        }
        }


+2 −2
Original line number Original line Diff line number Diff line
@@ -59,11 +59,11 @@ public class Table extends ChildEntity<Schema> implements EntitiesContainer<Colu


    private TableModel getModel() {
    private TableModel getModel() {
        if (tapSchema.getName().equals(parentSchema.getName())) {
        if (tapSchema.getName().equals(parentSchema.getName())) {
            return tapSchema.getTapSchemaModel().get(simpleName);
            return tapSchema.getTapSchemaModel().getTable(simpleName);
        }
        }
        if (tapSchema.isHasObscore() && parentSchema.getName().equals("ivoa")
        if (tapSchema.isHasObscore() && parentSchema.getName().equals("ivoa")
                && simpleName.equals("obscore")) {
                && simpleName.equals("obscore")) {
            return tapSchema.getIvoaSchemaModel().get(simpleName);
            return tapSchema.getIvoaSchemaModel().getTable(simpleName);
        }
        }
        return null;
        return null;
    }
    }
+3 −3
Original line number Original line Diff line number Diff line
@@ -660,7 +660,7 @@ public class TapSchema implements EntitiesContainer<Schema>, Serializable {
    }
    }


    public final TableModel getTableModel(String tableName) {
    public final TableModel getTableModel(String tableName) {
        return getTapSchemaModel().getTables().get(tableName);
        return getTapSchemaModel().getTable(tableName);
    }
    }


    public Map<String, Object> getSchemaMetadata(String schemaName) {
    public Map<String, Object> getSchemaMetadata(String schemaName) {
@@ -697,11 +697,11 @@ public class TapSchema implements EntitiesContainer<Schema>, Serializable {
    private void fillColumnProperties(SchemaModel schemaModel, String schemaName) {
    private void fillColumnProperties(SchemaModel schemaModel, String schemaName) {


        // check only on std, but valid also for principal (it depends on TS version)
        // check only on std, but valid also for principal (it depends on TS version)
        boolean useIntegerAsBool = getTapSchemaModel().get(COLUMNS_TABLE).get(Column.STD_KEY).getJavaType() == Integer.class;
        boolean useIntegerAsBool = getTapSchemaModel().getTable(COLUMNS_TABLE).get(Column.STD_KEY).getJavaType() == Integer.class;


        Schema schema = getChild(schemaName);
        Schema schema = getChild(schemaName);
        schema.setValue(DESCRIPTION_KEY, schemaModel.getDescription());
        schema.setValue(DESCRIPTION_KEY, schemaModel.getDescription());
        for (TableModel tableModel : schemaModel.getTables().values()) {
        for (TableModel tableModel : schemaModel.getTables()) {
            Table table = schema.getChild(tableModel.getName());
            Table table = schema.getChild(tableModel.getName());
            table.setValue(DESCRIPTION_KEY, tableModel.getDescription());
            table.setValue(DESCRIPTION_KEY, tableModel.getDescription());
            for (ColumnModel propertyModel : tableModel.getColumns()) {
            for (ColumnModel propertyModel : tableModel.getColumns()) {
+7 −7
Original line number Original line Diff line number Diff line
@@ -142,7 +142,7 @@ public abstract class DBBrokerTemplate implements DBBroker {


            execute(getCreateDatabaseQuery(tapSchemaName), conn);
            execute(getCreateDatabaseQuery(tapSchemaName), conn);


            for (TableModel tableModel : tapSchemaModel.getTables().values()) {
            for (TableModel tableModel : tapSchemaModel.getTables()) {
                createTable(tapSchemaName, tableModel, conn);
                createTable(tapSchemaName, tableModel, conn);
            }
            }


@@ -174,7 +174,7 @@ public abstract class DBBrokerTemplate implements DBBroker {
    public void createIvoaSchemaStructure(SchemaModel ivoaSchemaModel) throws SQLException {
    public void createIvoaSchemaStructure(SchemaModel ivoaSchemaModel) throws SQLException {
        try (Connection conn = dataSource.getConnection()) {
        try (Connection conn = dataSource.getConnection()) {
            execute(getCreateDatabaseQuery(ivoaSchemaModel.getName()), conn);
            execute(getCreateDatabaseQuery(ivoaSchemaModel.getName()), conn);
            for (TableModel tableModel : ivoaSchemaModel.getTables().values()) {
            for (TableModel tableModel : ivoaSchemaModel.getTables()) {
                createTable(ivoaSchemaModel.getName(), tableModel, conn);
                createTable(ivoaSchemaModel.getName(), tableModel, conn);
            }
            }
        }
        }
@@ -681,11 +681,11 @@ public abstract class DBBrokerTemplate implements DBBroker {
        }
        }


        for (SchemaModel tapSchemaModel : SchemaModels.getTapSchemaModels()) {
        for (SchemaModel tapSchemaModel : SchemaModels.getTapSchemaModels()) {
            if (match(tapSchemaModel.get(TapSchema.SCHEMAS_TABLE), schemasColumns)
            if (match(tapSchemaModel.getTable(TapSchema.SCHEMAS_TABLE), schemasColumns)
                    && match(tapSchemaModel.get(TapSchema.TABLES_TABLE), tablesColumns)
                    && match(tapSchemaModel.getTable(TapSchema.TABLES_TABLE), tablesColumns)
                    && match(tapSchemaModel.get(TapSchema.COLUMNS_TABLE), columnsColumns)
                    && match(tapSchemaModel.getTable(TapSchema.COLUMNS_TABLE), columnsColumns)
                    && match(tapSchemaModel.get(TapSchema.KEYS_TABLE), keyColumns)
                    && match(tapSchemaModel.getTable(TapSchema.KEYS_TABLE), keyColumns)
                    && match(tapSchemaModel.get(TapSchema.KEY_COLUMNS_TABLE), keyColumnsColumns)) {
                    && match(tapSchemaModel.getTable(TapSchema.KEY_COLUMNS_TABLE), keyColumnsColumns)) {
                return tapSchemaModel.getVersion();
                return tapSchemaModel.getVersion();
            }
            }
        }
        }
+17 −15
Original line number Original line Diff line number Diff line
@@ -156,6 +156,7 @@ public class MySQLDBBroker extends DBBrokerTemplate {


        boolean first = true;
        boolean first = true;
        for (ColumnModel cm : tableModel.getColumns()) {
        for (ColumnModel cm : tableModel.getColumns()) {
            if (cm.isMandatory()) {
                if (!first) {
                if (!first) {
                    querySb.append(",\n");
                    querySb.append(",\n");
                }
                }
@@ -176,6 +177,7 @@ public class MySQLDBBroker extends DBBrokerTemplate {
                    querySb.append(" NOT NULL");
                    querySb.append(" NOT NULL");
                }
                }
            }
            }
        }


        querySb.append(")");
        querySb.append(")");


Loading