public boolean equals(Object o) { if (!(o instanceof FilteredSubContext)) { return false; } FilteredSubContext that = (FilteredSubContext) o; return context.equals(that.context) && filter.equals(that.filter) && secondaryFilter.equals(that.secondaryFilter) && (recurse == that.recurse); }