package net.demilich.metastone.game.spells.desc.valueprovider; public enum AlgebraicOperation { ADD, SUBTRACT, MULTIPLY, DIVIDE, SET, NEGATE, MODULO, MINIMUM, MAXIMUM, ; public int performOperation(int num1, int num2) { switch (this) { case ADD: return num1 + num2; case DIVIDE: if (num2 == 0) { num2 = 1; } return num1 / num2; case MAXIMUM: return num2 < num1 ? num2 : num1; case MINIMUM: return num2 > num1 ? num2 : num1; case MODULO: if (num2 == 0) { num2 = 1; } return num1 % num2; case MULTIPLY: return num1 * num2; case NEGATE: return -num1; case SET: return num2; case SUBTRACT: return num1 - num2; default: return num1; } } }