package ac.essex.gp.problems;

import ac.essex.gp.training.TrainingImage;

import java.util.Vector;
import java.io.File;

/**
 * A problem involving images. Identical to the standard problem class, except there
 * is a vector of training images.
 */
public abstract class ImagingProblem extends Problem {

    protected Vector<TrainingImage> trainingData;

    /**
     * Gets the training data, which in this case consists of a set of images.
     */
    public Vector<TrainingImage> getTrainingData() {
        return trainingData;
    }

    public int getTrainingCount() {
        if (trainingData != null) return trainingData.size();
        return 0;
    }

    public String getTrainingImageName(int index) {
        if (trainingData != null) {
            TrainingImage t = trainingData.elementAt(index);
                if (t != null) {
                    File f = t.getFile();
                    if (f != null) {
                        return f.getName();
                    }
                }
        }
        return "Image " + index;
    }
    
}
