package org.pentaho.platform.dataaccess.datasource.wizard.models; import org.pentaho.platform.dataaccess.datasource.DatasourceType; import org.pentaho.platform.dataaccess.datasource.IConnection; import java.io.Serializable; /** * This class is used to serialize out the current state of a DataSource. It contains enough information * to reconstitute the Datasource Dialog, associated models and no more. * * User: nbaker * Date: Aug 12, 2010 */ @Deprecated public class DatasourceDTO implements Serializable { private static final long serialVersionUID = 2498165523678485182L; private String datasourceName; private DatasourceType datasourceType; private ModelInfo csvModelInfo; private String query; private String connectionName; private double version = 2.0; public DatasourceDTO() { } public static DatasourceDTO generateDTO(DatasourceModel model){ DatasourceDTO dto = new DatasourceDTO(); dto.setDatasourceName(model.getDatasourceName()); dto.setCsvModelInfo(model.getModelInfo()); dto.setDatasourceType(model.getDatasourceType()); dto.setQuery(model.getQuery()); if(model.getSelectedRelationalConnection() != null){ dto.setConnectionName(model.getSelectedRelationalConnection().getName()); } return dto; } public static void populateModel(DatasourceDTO dto, DatasourceModel model){ model.setDatasourceName(dto.getDatasourceName()); model.setModelInfo(dto.getCsvModelInfo()); model.setDatasourceType(dto.getDatasourceType()); model.setQuery(dto.getQuery()); model.setSelectedRelationalConnection(model.getGuiStateModel().getConnectionByName(dto.getConnectionName())); } public String getDatasourceName() { return datasourceName; } public void setDatasourceName(String datasourceName) { this.datasourceName = datasourceName; } public DatasourceType getDatasourceType() { return datasourceType; } public void setDatasourceType(DatasourceType datasourceType) { this.datasourceType = datasourceType; } public ModelInfo getCsvModelInfo() { return csvModelInfo; } public void setCsvModelInfo(ModelInfo csvModelInfo) { this.csvModelInfo = csvModelInfo; } public String getQuery() { return query; } public void setQuery(String query) { this.query = query; } public String getConnectionName() { return connectionName; } public void setConnectionName(String connectionName) { this.connectionName = connectionName; } @Override public boolean equals(Object o) { if (this == o) return true; if (o == null || getClass() != o.getClass()) return false; DatasourceDTO that = (DatasourceDTO) o; if (Double.compare(that.version, version) != 0) return false; if (connectionName != null ? !connectionName.equals(that.connectionName) : that.connectionName != null) return false; if (csvModelInfo != null ? !csvModelInfo.equals(that.csvModelInfo) : that.csvModelInfo != null) return false; if (datasourceName != null ? !datasourceName.equals(that.datasourceName) : that.datasourceName != null) return false; if (datasourceType != that.datasourceType) return false; if (query != null ? !query.equals(that.query) : that.query != null) return false; return true; } @Override public int hashCode() { int result; result = datasourceName != null ? datasourceName.hashCode() : 0; result = 31 * result + (datasourceType != null ? datasourceType.hashCode() : 0); result = 31 * result + (csvModelInfo != null ? csvModelInfo.hashCode() : 0); result = 31 * result + (query != null ? query.hashCode() : 0); result = 31 * result + (connectionName != null ? connectionName.hashCode() : 0); return result; } }