package tr.gov.ulakbim.jDenetX.core; import weka.core.Instance; import weka.core.Instances; import java.util.ArrayList; /** * Created by IntelliJ IDEA. * User: caglar * Date: May 20, 2010 * Time: 4:42:58 PM * To change this template use File | Settings | File Templates. */ public class InstanceClassesClusterPool { public ArrayList<Instance>[][] InstancesClassClusterPool; private int NoOfClasses; private int NoOfClusters; public InstanceClassesClusterPool(int noOfClasses, int noOfClusters) { NoOfClasses = noOfClasses; NoOfClusters = noOfClusters; InstancesClassClusterPool = (ArrayList<Instance>[][]) new ArrayList[noOfClasses][noOfClusters]; } public int getNoOfClusters() { return NoOfClusters; } public void setNoOfClusters(int noOfClusters) { NoOfClusters = noOfClusters; } public int getNoOfClasses() { return NoOfClasses; } public void setNoOfClasses(int noOfClasses) { NoOfClasses = noOfClasses; } public void addInstance(Instance inst, int class_, int cluster) { if (InstancesClassClusterPool != null) { InstancesClassClusterPool[class_][cluster].add(inst); } } public void addInstancesToClass(int class_, ArrayList<Instance>[] instances) { InstancesClassClusterPool[class_] = instances; } public void addInstancesToClusterClass(ArrayList<Instance> instances, int class_, int cluster) { if (instances != null) { if (class_ < NoOfClasses && cluster < NoOfClusters) { InstancesClassClusterPool[class_][cluster].addAll(instances); } } } public void addInstancesToPool(Instances data, int assignments[]) { for (int i = 0; i < assignments.length; i++) { addInstance(data.get(i), (int) data.get(i).classValue(), assignments[i]); } } public void addInstancesToPool(ArrayList<Instance> data, int assignments[]) { for (int i = 0; i < assignments.length; i++) { addInstance(data.get(i), (int) data.get(i).classValue(), assignments[i]); } } public ArrayList<Instance> getInstancesForClusterInClass(int class_, int cluster) { return InstancesClassClusterPool[class_][cluster]; } public ArrayList<Instance>[] getInstancesInClass(int class_) { return InstancesClassClusterPool[class_]; } public ArrayList<Instance> getInstancesOfClustersInClass(int cluster) { ArrayList<Instance> rtnClusterInstances = new ArrayList<Instance>(); for (int i = 0; i < NoOfClasses; i++) { rtnClusterInstances.addAll(InstancesClassClusterPool[i][cluster]); } return rtnClusterInstances; } }