/**
* Copyright CSIRO Australian e-Health Research Centre (http://aehrc.com).
* All rights reserved. Use is subject to license terms and conditions.
*/
package au.csiro.snorocket.core.util;
import java.io.Serializable;
import java.util.Collection;
import java.util.HashSet;
import au.csiro.snorocket.core.axioms.NF1a;
import au.csiro.snorocket.core.axioms.NF1b;
import au.csiro.snorocket.core.axioms.NF2;
import au.csiro.snorocket.core.axioms.NF3;
import au.csiro.snorocket.core.axioms.NF4;
import au.csiro.snorocket.core.axioms.NF5;
import au.csiro.snorocket.core.axioms.NF6;
import au.csiro.snorocket.core.axioms.NF7;
import au.csiro.snorocket.core.axioms.NF8;
import au.csiro.snorocket.core.axioms.NormalFormGCI;
/**
* Represents a set of axioms in normal form.
*
* @author Alejandro Metke
*
*/
public class AxiomSet implements Serializable {
/**
*
*/
private static final long serialVersionUID = 1L;
private final Collection<NF1a> nf1aAxioms = new HashSet<NF1a>();
private final Collection<NF1b> nf1bAxioms = new HashSet<NF1b>();
private final Collection<NF2> nf2Axioms = new HashSet<NF2>();
private final Collection<NF3> nf3Axioms = new HashSet<NF3>();
private final Collection<NF4> nf4Axioms = new HashSet<NF4>();
private final Collection<NF5> nf5Axioms = new HashSet<NF5>();
private final Collection<NF6> nf6Axioms = new HashSet<NF6>();
private final Collection<NF7> nf7Axioms = new HashSet<NF7>();
private final Collection<NF8> nf8Axioms = new HashSet<NF8>();
public void addAxiom(NormalFormGCI a) {
if (a instanceof NF1a) {
nf1aAxioms.add((NF1a) a);
} else if (a instanceof NF1b) {
nf1bAxioms.add((NF1b) a);
} else if (a instanceof NF2) {
nf2Axioms.add((NF2) a);
} else if (a instanceof NF3) {
nf3Axioms.add((NF3) a);
} else if (a instanceof NF4) {
nf4Axioms.add((NF4) a);
} else if (a instanceof NF5) {
nf5Axioms.add((NF5) a);
} else if (a instanceof NF6) {
nf6Axioms.add((NF6) a);
} else if (a instanceof NF7) {
nf7Axioms.add((NF7) a);
} else if (a instanceof NF8) {
nf8Axioms.add((NF8) a);
}
}
public Collection<NF1a> getNf1aAxioms() {
return nf1aAxioms;
}
public Collection<NF1b> getNf1bAxioms() {
return nf1bAxioms;
}
public Collection<NF2> getNf2Axioms() {
return nf2Axioms;
}
public Collection<NF3> getNf3Axioms() {
return nf3Axioms;
}
public Collection<NF4> getNf4Axioms() {
return nf4Axioms;
}
public Collection<NF5> getNf5Axioms() {
return nf5Axioms;
}
public Collection<NF6> getNf6Axioms() {
return nf6Axioms;
}
public Collection<NF7> getNf7Axioms() {
return nf7Axioms;
}
public Collection<NF8> getNf8Axioms() {
return nf8Axioms;
}
public void clear() {
nf1aAxioms.clear();
nf1bAxioms.clear();
nf2Axioms.clear();
nf3Axioms.clear();
nf4Axioms.clear();
nf5Axioms.clear();
nf6Axioms.clear();
nf7Axioms.clear();
nf8Axioms.clear();
}
public boolean isEmpty() {
return nf1aAxioms.isEmpty() && nf1bAxioms.isEmpty() && nf2Axioms.isEmpty() && nf3Axioms.isEmpty() &&
nf4Axioms.isEmpty() && nf5Axioms.isEmpty() && nf6Axioms.isEmpty() && nf7Axioms.isEmpty() &&
nf8Axioms.isEmpty();
}
}