package uk.org.squirm3.model.level.validators;
import java.util.Collection;
import uk.org.squirm3.model.Atom;
import uk.org.squirm3.model.level.LevelMessages;
import uk.org.squirm3.model.type.def.BasicType;
public class MakeECsValidator extends SetuplessAtomValidator {
@Override
public String evaluate(final Collection<? extends Atom> atoms,
final LevelMessages messages) {
int loose_e_atoms_found = 0, loose_c_atoms_found = 0;
for (final Atom atom : atoms) {
if (atom.getType() != BasicType.C && atom.getType() != BasicType.E
&& atom.getBonds().size() != 0) {
return messages.getError(1);
}
if (atom.getType() == BasicType.C || atom.getType() == BasicType.E) {
if (atom.getBonds().size() > 1) {
return messages.getError(2);
}
if (atom.getBonds().size() == 0) {
if (atom.getType() == BasicType.C) {
loose_c_atoms_found++;
} else {
loose_e_atoms_found++;
}
}
}
}
if (Math.min(loose_c_atoms_found, loose_e_atoms_found) > 0) {
return messages.getError(3);
}
return null;
}
}