/** * A FeatureGenerator equals another FeatureGenerator if its class is equal and its arguments are * equal and its function names are equal. */ @Override public boolean equals(Object o) { if (o == null) // necessary here because otherwise the next line will throw a NPE return false; if (!this.getClass().equals(o.getClass())) return false; FeatureGenerator fg = (FeatureGenerator) o; if (!this.getFunction().equals(fg.getFunction())) return false; if (this.arguments.length != fg.arguments.length) return false; for (int i = 0; i < arguments.length; i++) { if (!this.arguments[i].equals(fg.arguments[i])) return false; } return true; }