package org.weso.wesearch.domain.impl;
import java.util.Iterator;
import java.util.LinkedList;
import java.util.List;
import org.apache.log4j.Logger;
import org.weso.utils.WesearchException;
import org.weso.wesearch.domain.Matter;
import org.weso.wesearch.domain.Matters;
/**
* It's an implementation of interface Matters. Represents a container of Matter
* objects
* @author Ignacio Fuertes Bernardo
*
*/
public class SubjectsImpl implements Matters {
private static Logger logger = Logger.getLogger(SubjectsImpl.class);
/**
* A list of matters that contains all matters stored by the object
*/
private List<Matter> matters;
/**
* It's a constructor of the class
*/
public SubjectsImpl() {
matters = new LinkedList<Matter>();
}
@Override
public Iterator<Matter> iterator() {
return matters.iterator();
}
@Override
public Matter findMatter(String label)
throws WesearchException {
for(Matter m : matters) {
if(m.getLabel().equals(label)) {
return m;
}
}
logger.error("There isn't any matter with label " + label);
throw new WesearchException("There isn't any matter with label " +
label);
}
@Override
public void addMatter(Matter m) {
if(m == null) {
throw new IllegalArgumentException("The parameter can not be null");
}
matters.add(m);
}
@Override
public int size() {
return matters.size();
}
}