public void verify(ChangedSign sign) throws ICVerificationException {
try {
String[] parts = RegexUtil.PIPE_PATTERN.split(sign.getLine(2));
if(parts.length == 1) {
if(!VariableManager.instance.hasVariable(sign.getLine(2), "global"))
throw new ICVerificationException("Unknown Variable!");
} else
if(!VariableManager.instance.hasVariable(parts[1], parts[0]))
throw new ICVerificationException("Unknown Variable!");
Validate.notNull(MathFunction.parseFunction(sign.getLine(3).split(":")[0]));
Double.parseDouble(sign.getLine(3).split(":")[1]);
} catch(NumberFormatException e) {
throw new ICVerificationException("Amount must be a number!");
} catch(IllegalArgumentException e) {
throw new ICVerificationException("Invalid Function!");
} catch(ArrayIndexOutOfBoundsException e) {
throw new ICVerificationException("Both Function and Amount must be entered, seperated by a colon (:)!");
}
}