AbstractDataSet.java
package com.github.celldynamics.quimp.omero;
import java.util.ArrayList;
import java.util.List;
import omero.gateway.model.DatasetData;
import omero.gateway.model.ImageData;
/**
* Abstract dataset with active element.
*
* @author p.baniukiewicz
* @param <E> Type of dataset ({@link ImageData}, {@link DatasetData})
*
*/
class AbstractDataSet<E> {
/**
* Opened datasets.
*/
public List<E> ds; // opened datasets
/**
* Index of active dataset from {@link #ds}.
*/
public int currentEl;
public AbstractDataSet() {
ds = new ArrayList<>();
currentEl = -1;
}
public void clear() {
ds.clear();
currentEl = -1;
}
/**
* Validate if dataset and current element are valid.
*
* @return true if dataset contains data and current element >= 0
*/
public boolean validate() {
if (ds.isEmpty() || currentEl < 0) {
return false;
} else {
return true;
}
}
/**
* Get current element.
*
* @return curent element
* @see AbstractDataSet#validate()
*/
public E getCurrent() {
return ds.get(currentEl);
}
/*
* (non-Javadoc)
*
* @see java.lang.Object#toString()
*/
@Override
public String toString() {
if (validate()) {
return "Image [ds=" + ds.get(currentEl) + "]";
} else {
return "not valid image";
}
}
}