public static Equation parse(String input) { if (input == null) { throw new NullPointerException("The parameter [input] is null."); } String[] sides = input.replace('(', ' ').replace(')', ' ').trim().split("="); if (sides.length < 2) { return null; } Derivation der = Derivation.parse(sides[0]); Coefficient c = Coefficient.parse(sides[1]); if (c != null) { return new Equation(der, c); } Variable v = Variable.parse(sides[1]); if (v != null) { return new Equation(der, v); } Multiplication mul = Multiplication.parse(sides[1]); if (mul != null) { return new Equation(der, mul); } Addition add = Addition.parse(sides[1]); if (add != null) { return new Equation(der, add); } return null; }