/*
 * Copyright 2010-2020 Alfresco Software, Ltd.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */


package org.activiti.engine.impl.db;

/**

 */
public class ListQueryParameterObject {

  protected int maxResults = Integer.MAX_VALUE;
  protected int firstResult;
  protected Object parameter;
  protected String databaseType;

  public ListQueryParameterObject() {
  }

  public ListQueryParameterObject(Object parameter, int firstResult, int maxResults) {
    this.parameter = parameter;
    this.firstResult = firstResult;
    this.maxResults = maxResults;
  }

  public int getFirstResult() {
    return firstResult;
  }

  public int getFirstRow() {
    return firstResult + 1;
  }

  public int getLastRow() {
    if (maxResults == Integer.MAX_VALUE) {
      return maxResults;
    }
    return firstResult + maxResults + 1;
  }

  public int getMaxResults() {
    return maxResults;
  }

  public Object getParameter() {
    return parameter;
  }

  public void setFirstResult(int firstResult) {
    this.firstResult = firstResult;
  }

  public void setMaxResults(int maxResults) {
    this.maxResults = maxResults;
  }

  public void setParameter(Object parameter) {
    this.parameter = parameter;
  }

  public String getOrderBy() {
    // the default order column
    return "RES.ID_ asc";
  }

  public String getOrderByColumns() {
      return getOrderBy();
  }

  public void setDatabaseType(String databaseType) {
    this.databaseType = databaseType;
  }

  public String getDatabaseType() {
    return databaseType;
  }

}
