novie-core/src/main/java/com/groupon/novie/internal/engine/QueryParameter.java
public QueryParameter partialCopy(final QueryParameterKind... excludedElements) {
        List<QueryParameterKind> excludedList = Arrays.asList(excludedElements);
        QueryParameter returnValue = new QueryParameter();
        if (!excludedList.contains(QueryParameterKind.CONSTRAINTS)) {
            returnValue.rawConstraints = this.rawConstraints;
        }
        if (!excludedList.contains(QueryParameterKind.GROUPS)) {
            returnValue.groups = this.groups;
        }
        if (!excludedList.contains(QueryParameterKind.ORDERS)) {
            returnValue.orders = this.orders;
        }
        if (!excludedList.contains(QueryParameterKind.PAGE)) {
            returnValue.pageSize = this.pageSize;
            returnValue.page = this.page;
        }
        if (!excludedList.contains(QueryParameterKind.TIMEZONE)) {
            returnValue.timezoneName = this.timezoneName;
        }

        return returnValue;
    }
public QueryParameter partialCopy(final QueryParameterKind... excludedElements) {
        List<QueryParameterKind> excludedList = Arrays.asList(excludedElements);
        QueryParameter returnValue = new QueryParameter();
        if (!excludedList.contains(QueryParameterKind.CONSTRAINTS)) {
            returnValue.rawConstraints = this.rawConstraints;
        }
        if (!excludedList.contains(QueryParameterKind.GROUPS)) {
            returnValue.groups = this.groups;
        }
        if (!excludedList.contains(QueryParameterKind.ORDERS)) {
            returnValue.orders = this.orders;
        }
        if (!excludedList.contains(QueryParameterKind.PAGE)) {
            returnValue.pageSize = this.pageSize;
            returnValue.page = this.page;
        }
        if (!excludedList.contains(QueryParameterKind.TIMEZONE)) {
            returnValue.timezoneName = this.timezoneName;
        }

        return returnValue;
    }
Return a QueryParameter which contains reference to the original elements except for those from the exception list.

@param excludedElements list of QueryParameterKind which will NOT be cloned
@return