Commit fd930a24 authored by Sonia Zorba's avatar Sonia Zorba
Browse files

Added sort by name of entities in datalayer; bugfix

parent 3098bbd2
Loading
Loading
Loading
Loading
+3 −7
Original line number Diff line number Diff line
@@ -7,7 +7,7 @@ import it.inaf.oats.ia2.tapschemamanager.datalayer.TapSchemaHandler;
 *
 * @author Sonia Zorba <zorba at oats.inaf.it>
 */
public class Column extends EntityWrapper {
public class Column extends EntityWrapper<ColumnEntity> {

    public static final String UTYPE = "utype";
    public static final String UCD = "ucd";
@@ -40,14 +40,14 @@ public class Column extends EntityWrapper {
        addValue(STD, columnEntity.getStd() + "");
        addValue(PRINCIPAL, columnEntity.getPrincipal() + "");

        String tableName = columnEntity.getTableName();
        String tableName = columnEntity.getFullTableName();
        String schemaName = columnEntity.getTable().getSchemaName();
        foreignKeyReference = tapSchemaHandler.getForeignKeyReference(schemaName, tableName, columnEntity.getName());
    }

    @Override
    protected void afterSetValue(String key, String value) {
        ColumnEntity columnEntity = getColumnEntity();
        ColumnEntity columnEntity = getEntity();
        if (key.equals(UTYPE)) {
            columnEntity.setUtype(value);
        } else if (key.equals(UCD)) {
@@ -63,10 +63,6 @@ public class Column extends EntityWrapper {
        }
    }

    protected ColumnEntity getColumnEntity() {
        return (ColumnEntity) getEntity();
    }

    public boolean isHidden() {
        return hidden;
    }
+5 −4
Original line number Diff line number Diff line
@@ -9,16 +9,17 @@ import java.util.Map;
/**
 *
 * @author Sonia Zorba <zorba at oats.inaf.it>
 * @param <T>
 */
public abstract class EntityWrapper {
public abstract class EntityWrapper<T extends TapSchemaEntity> {

    private final TapSchemaEntity entity;
    private final T entity;
    private final Map<String, String> originalValues;
    private final Map<String, String> editedValues;
    private final List<String> supportedKeys;
    private Status status;

    public EntityWrapper(TapSchemaEntity entity, String... supportedKeys) {
    public EntityWrapper(T entity, String... supportedKeys) {
        this.entity = entity;
        this.supportedKeys = Arrays.asList(supportedKeys);
        originalValues = new HashMap<String, String>();
@@ -81,7 +82,7 @@ public abstract class EntityWrapper {
        this.status = status;
    }

    public TapSchemaEntity getEntity() {
    public T getEntity() {
        return entity;
    }

+8 −3
Original line number Diff line number Diff line
@@ -6,16 +6,21 @@ import java.util.List;
/**
 *
 * @author Sonia Zorba <zorba at oats.inaf.it>
 * @param <T>
 */
public interface EntityWrapperContainer {
public interface EntityWrapperContainer<T extends EntityWrapper> {

    public EntityWrapper getSelectedEntity();
    public T getEntity(String name);

    public T getSelectedEntity();

    public void selectEntity(String entityName);

    public List<String> getEntitiesNames();
    
    public List<String> getAddables();

    public List<EntityWrapper> getAllEntityWrappers();
    public List<T> getAllEntityWrappers();

    public void addEntityWrapper(String name) throws SQLException;

+17 −30
Original line number Diff line number Diff line
@@ -5,16 +5,16 @@ import it.inaf.oats.ia2.tapschemamanager.datalayer.TableEntity;
import it.inaf.oats.ia2.tapschemamanager.datalayer.TapSchemaHandler;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import java.util.TreeMap;

/**
 *
 * @author Sonia Zorba <zorba at oats.inaf.it>
 */
public class Schema extends EntityWrapper implements EntityWrapperContainer {
public class Schema extends EntityWrapper<SchemaEntity> implements EntityWrapperContainer<Table> {

    public static final String UTYPE = "utype";
    public static final String DESCRIPTION = "description";
@@ -24,10 +24,6 @@ public class Schema extends EntityWrapper implements EntityWrapperContainer {
    private String selectedTable;
    private final Map<String, Table> tables;

//    public Schema(TapSchemaHandler tapSchemaHandler, String schemaName) throws SQLException {
//        this(tapSchemaHandler, tapSchemaHandler.getNewSchema(schemaName));
//        setStatus(Status.ADDED_NOT_PERSISTED);
//    }
    public Schema(TapSchemaHandler tapSchemaHandler, SchemaEntity schemaEntity) throws SQLException {
        super(schemaEntity, UTYPE, DESCRIPTION);

@@ -36,10 +32,10 @@ public class Schema extends EntityWrapper implements EntityWrapperContainer {
        addValue(UTYPE, schemaEntity.getUtype());
        addValue(DESCRIPTION, schemaEntity.getDescription());

        tables = new HashMap<String, Table>();
        tables = new TreeMap<String, Table>(String.CASE_INSENSITIVE_ORDER);

        for (TableEntity tableEntity : schemaEntity.getTables().values()) {
            String tableName = tableEntity.getTableName();
        for (TableEntity tableEntity : schemaEntity.getTables()) {
            String tableName = tableEntity.getShortTableName();
            tables.put(tableName, new Table(tapSchemaHandler, getName(), tableName, tableEntity));
        }

@@ -48,7 +44,7 @@ public class Schema extends EntityWrapper implements EntityWrapperContainer {

    @Override
    protected void afterSetValue(String key, String value) {
        SchemaEntity schemaEntity = getSchemaEntity();
        SchemaEntity schemaEntity = getEntity();
        if (key.equals(UTYPE)) {
            schemaEntity.setUtype(value);
        } else if (key.equals(DESCRIPTION)) {
@@ -56,7 +52,8 @@ public class Schema extends EntityWrapper implements EntityWrapperContainer {
        }
    }

    public List<String> getTablesNames() {
    @Override
    public List<String> getEntitiesNames() {
        return Util.setToList(tables.keySet());
    }

@@ -80,7 +77,7 @@ public class Schema extends EntityWrapper implements EntityWrapperContainer {
        }
        selectedTable = name;

        tapSchemaHandler.addTable(getName(), table.getTableEntity());
        tapSchemaHandler.addTable(getName(), table.getEntity());
    }

    @Override
@@ -93,17 +90,14 @@ public class Schema extends EntityWrapper implements EntityWrapperContainer {
        }
        selectedTable = tables.isEmpty() ? null : tables.keySet().iterator().next();

        tapSchemaHandler.removeTable(getSchemaEntity(), table.getTableEntity());
        tapSchemaHandler.removeTable(getEntity(), table.getEntity());
    }

    public Table getTable(String name) {
    @Override
    public Table getEntity(String name) {
        return tables.get(name);
    }

    protected SchemaEntity getSchemaEntity() {
        return (SchemaEntity) getEntity();
    }

    @Override
    protected void setPersisted() {
        super.setPersisted();
@@ -124,29 +118,22 @@ public class Schema extends EntityWrapper implements EntityWrapperContainer {
    }

    @Override
    public List<EntityWrapper> getAllEntityWrappers() {
    public List<Table> getAllEntityWrappers() {
        return new ArrayList(tables.values());
    }

    public Table getSelectedTable() {
        return selectedTable == null ? null : tables.get(selectedTable);
    }

    @Override
    public void selectEntity(String entityName) {
        selectedTable = entityName;
        Table table = tables.get(entityName);
        List<String> columns = table.getColumnsNames();
        List<String> columns = table.getEntitiesNames();
        if (!columns.isEmpty()) {
            table.selectEntity(Util.getFirstInAlphabeticalOrder(columns));
            table.selectEntity(columns.get(0));
        }
    }

    @Override
    public EntityWrapper getSelectedEntity() {
        if (selectedTable == null) {
            return null;
        }
        return tables.get(selectedTable);
    public Table getSelectedEntity() {
        return selectedTable == null ? null : tables.get(selectedTable);
    }
}
+25 −34
Original line number Diff line number Diff line
@@ -2,20 +2,20 @@ package it.inaf.oats.ia2.tapschemamanager.businesslayer;

import it.inaf.oats.ia2.tapschemamanager.datalayer.ColumnEntity;
import it.inaf.oats.ia2.tapschemamanager.datalayer.ColumnInfo;
import it.inaf.oats.ia2.tapschemamanager.datalayer.DLUtil;
import it.inaf.oats.ia2.tapschemamanager.datalayer.TableEntity;
import it.inaf.oats.ia2.tapschemamanager.datalayer.TapSchemaHandler;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Set;
import java.util.TreeMap;

/**
 *
 * @author Sonia Zorba <zorba at oats.inaf.it>
 */
public class Table extends EntityWrapper implements EntityWrapperContainer {
public class Table extends EntityWrapper<TableEntity> implements EntityWrapperContainer<Column> {

    public static final String UTYPE = "utype";
    public static final String DESCRIPTION = "description";
@@ -38,8 +38,8 @@ public class Table extends EntityWrapper implements EntityWrapperContainer {
        this.tableName = tableName;

        // Load all ColumnEntity map
        columns = new HashMap<String, Column>();
        Set<String> alreadyLoadedColumns = tableEntity.getColumns().keySet();
        columns = new TreeMap<String, Column>(String.CASE_INSENSITIVE_ORDER);
        List<String> alreadyLoadedColumns = DLUtil.getEntitiesNames(tableEntity.getColumns());
        for (ColumnInfo columnInfo : tapSchemaHandler.getColumnInfo(schemaName, tableName)) {
            ColumnEntity columnEntity = columnInfo.getColumnEntity();
            Column column = new Column(tapSchemaHandler, columnEntity, columnInfo.isPrimaryKey());
@@ -54,9 +54,17 @@ public class Table extends EntityWrapper implements EntityWrapperContainer {
        setStatus(Status.ADDED_PERSISTED);
    }

    public String getSchemaName() {
        return schemaName;
    }

    public String getFullName() {
        return getEntity().getName();
    }
    
    @Override
    protected void afterSetValue(String key, String value) {
        TableEntity tableEntity = getTableEntity();
        TableEntity tableEntity = getEntity();
        if (key.equals(UTYPE)) {
            tableEntity.setUtype(value);
        } else if (key.equals(DESCRIPTION)) {
@@ -64,10 +72,6 @@ public class Table extends EntityWrapper implements EntityWrapperContainer {
        }
    }

    protected TableEntity getTableEntity() {
        return (TableEntity) getEntity();
    }

    @Override
    public List<String> getAddables() {
        List<String> addables = new ArrayList<String>();
@@ -92,7 +96,7 @@ public class Table extends EntityWrapper implements EntityWrapperContainer {
        }
        selectedColumn = name;

        tapSchemaHandler.addColumn(getTableEntity(), column.getColumnEntity());
        tapSchemaHandler.addColumn(getEntity(), column.getEntity());
    }

    @Override
@@ -104,17 +108,19 @@ public class Table extends EntityWrapper implements EntityWrapperContainer {
        } else {
            column.setStatus(Status.TO_REMOVE);
        }
        List<String> visibleColumns = getColumnsNames();
        List<String> visibleColumns = getEntitiesNames();
        selectedColumn = visibleColumns.isEmpty() ? null : visibleColumns.get(0);

        tapSchemaHandler.removeColumn(getTableEntity(), name);
        tapSchemaHandler.removeColumn(getEntity(), name);
    }

    public Column getColumn(String name) {
    @Override
    public Column getEntity(String name) {
        return columns.get(name);
    }

    public List<String> getColumnsNames() {
    @Override
    public List<String> getEntitiesNames() {
        List<String> columnsNames = new ArrayList<String>();
        for (Column column : columns.values()) {
            if (!column.isHidden()) {
@@ -147,8 +153,8 @@ public class Table extends EntityWrapper implements EntityWrapperContainer {
    }

    @Override
    public List<EntityWrapper> getAllEntityWrappers() {
        List<EntityWrapper> list = new ArrayList<EntityWrapper>();
    public List<Column> getAllEntityWrappers() {
        List<Column> list = new ArrayList<Column>();
        for (Column column : columns.values()) {
            if (!column.isHidden()) {
                list.add(column);
@@ -157,33 +163,18 @@ public class Table extends EntityWrapper implements EntityWrapperContainer {
        return list;
    }

    public Column getSelectedColumn() {
        return selectedColumn == null ? null : columns.get(selectedColumn);
    }

    @Override
    public void selectEntity(String entityName) {
        selectedColumn = entityName;
    }

    public String getSchemaName() {
        return schemaName;
    }

    public String getFullName() {
        return getEntity().getName();
    }

    @Override
    public String getName() {
        return tableName;
    }

    @Override
    public EntityWrapper getSelectedEntity() {
        if (selectedColumn == null) {
            return null;
        }
        return columns.get(selectedColumn);
    public Column getSelectedEntity() {
        return selectedColumn == null ? null : columns.get(selectedColumn);
    }
}
Loading