QueryParamHelper.java

package de.dlr.shepard.util;

import de.dlr.shepard.neo4Core.orderBy.OrderByAttribute;
import lombok.EqualsAndHashCode;
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.ToString;

@Getter
@ToString
@EqualsAndHashCode
@NoArgsConstructor
public class QueryParamHelper {

	private String name;
	private PaginationHelper pagination;
	private Long parentId;
	private Long predecessorId;
	private Long successorId;
	private OrderByAttribute orderByAttribute;
	private Boolean orderDesc;

	public QueryParamHelper withName(String name) {
		this.name = name;
		return this;
	}

	public boolean hasName() {
		return this.name != null;
	}

	public QueryParamHelper withPageAndSize(int page, int size) {
		this.pagination = new PaginationHelper(page, size);
		return this;
	}

	public boolean hasPagination() {
		return this.pagination != null;
	}

	public QueryParamHelper withPredecessorId(long predecessorId) {
		this.predecessorId = predecessorId;
		return this;
	}

	public boolean hasPredecessorId() {
		return this.predecessorId != null;
	}

	public QueryParamHelper withSuccessorId(long successorId) {
		this.successorId = successorId;
		return this;
	}

	public boolean hasSuccessorId() {
		return this.successorId != null;
	}

	public QueryParamHelper withParentId(long parentId) {
		this.parentId = parentId;
		return this;
	}

	public boolean hasParentId() {
		return this.parentId != null;
	}

	public QueryParamHelper withOrderByAttribute(OrderByAttribute orderBy, Boolean orderDesc) {
		this.orderByAttribute = orderBy;
		this.orderDesc = orderDesc;
		return this;
	}

	public boolean hasOrderByAttribute() {
		return this.orderByAttribute != null;
	}

}