@@ -0,0 +1,1360 @@
+package org.pfaa.chemica.model;%0A%0Aimport static org.pfaa.chemica.model.Element.Elements.H;%0Aimport static org.pfaa.chemica.model.Element.Elements.Br;%0Aimport static org.pfaa.chemica.model.Element.Elements.C;%0Aimport static org.pfaa.chemica.model.Element.Elements.Cl;%0Aimport static org.pfaa.chemica.model.Element.Elements.F;%0Aimport static org.pfaa.chemica.model.Element.Elements.I;%0Aimport static org.pfaa.chemica.model.Element.Elements.N;%0Aimport static org.pfaa.chemica.model.Element.Elements.O;%0Aimport static org.pfaa.chemica.model.Element.Elements.P;%0Aimport static org.pfaa.chemica.model.Element.Elements.S;%0Aimport static org.pfaa.chemica.model.Element.Elements.W;%0A%0Aimport org.pfaa.chemica.model.Formula.Part;%0Aimport org.pfaa.chemica.model.Formula.PartFactory;%0A%0Apublic enum Anion %7B%0A%09BROMIDE(Br),%0A%09CARBONATE(new Part(C, O._(3))),%0A%09CHLORIDE(Cl),%0A%09CYANIDE(new Part(C, N)),%0A%09FLUORIDE(F),%0A%09HYDROXIDE(new Part(O, H)),%0A%09IODATE(new Part(I, O._(4))),%0A%09IODIDE(I),%0A%09NITRATE(new Part(N, O._(3))),%0A%09OXIDE(O),%0A%09PHOSPHATE(new Part(P, O._(4))),%0A%09SULFATE(new Part(S, O._(4))),%0A%09SULFIDE(S),%0A%09TUNGSTATE(new Part(W, O._(4)))%0A%09;%0A%09%0A%09private Formula.Part formulaPart;%0A%09%0A%09private Anion(Formula.Part formulaPart) %7B%0A%09%09this.formulaPart = formulaPart;%0A%09%7D%0A%09private Anion(PartFactory factory) %7B%0A%09%09this(factory.getPart());%0A%09%7D%0A%0A%09public Formula.Part getFormulaPart() %7B%0A%09%09return formulaPart;%0A%09%7D%0A%7D%0A

introduce notion of anion types to classify salts