package de.uni_luebeck.inb.krabbenhoeft.eQTL.server; import java.util.ArrayList; import java.util.Date; import java.util.List; import org.hibernate.Query; import org.hibernate.Session; import de.uni_luebeck.inb.krabbenhoeft.eQTL.api.gwt.DataSetLayerOverview; import de.uni_luebeck.inb.krabbenhoeft.eQTL.entities.ColumnForDataSetLayer; import de.uni_luebeck.inb.krabbenhoeft.eQTL.entities.DataSet; import de.uni_luebeck.inb.krabbenhoeft.eQTL.entities.DataSetLayer; public class DataSetHelpers { @SuppressWarnings("unchecked") public static List<DataSet> listMyDataSets(final Session session, String ownerMailAddress) { final Query query = session.createQuery("from DataSet where ownerMailAddress = :a order by dateCreated ASC").setParameter("a", ownerMailAddress); final List<DataSet> dataSets = (List<DataSet>) query.list(); return dataSets; } public static DataSet createDataSet(final Session session, String name, String ownerMailAddress) { DataSet dataSet = new DataSet(); dataSet.setOwnerMailAddress(ownerMailAddress); dataSet.setName(name); dataSet.setDateCreated(new Date()); dataSet.setDateAccessed(new Date()); session.persist(dataSet); return dataSet; } public static DataSetLayer addLayerToDataSet(final Session session, DataSet dataSet, List<ColumnForDataSetLayer> columns, String operationFromLastLayer) { DataSetLayer dataSetLayer = new DataSetLayer(); dataSetLayer.getColumns().addAll(columns); for (ColumnForDataSetLayer columnForDataSetLayer : dataSetLayer.getColumns()) { session.persist(columnForDataSetLayer); } dataSetLayer.setOperationFromLastLayer(operationFromLastLayer); session.persist(dataSetLayer); dataSet.getLayers().add(dataSetLayer); session.persist(dataSet); return dataSetLayer; } public static DataSetLayerOverview generateOverviewForDataSetLayer(Integer dataSetKey, DataSetLayer dataSetLayer) { ArrayList<String> columnNames = new ArrayList<String>(); for (ColumnForDataSetLayer column : dataSetLayer.getColumns()) { columnNames.add(column.getName()); } DataSetLayerOverview layerOverview = new DataSetLayerOverview(); layerOverview.columns = columnNames.toArray(new String[0]); if (dataSetLayer.isCalculationComplete()) layerOverview.numberOfDataRows = (int) dataSetLayer.getNumberOfItems(); else layerOverview.numberOfDataRows = -1; layerOverview.dateCreated = dataSetLayer.getDateCreated(); layerOverview.dataSetKey = dataSetKey; layerOverview.layerKey = dataSetLayer.getKey(); layerOverview.operationFromLastLayer = dataSetLayer.getOperationFromLastLayer(); return layerOverview; } }