com.espertech.esper.client.soda.RowLimitClause Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of esper Show documentation
Show all versions of esper Show documentation
Complex event processing and event series analysis component
The newest version!
/*
***************************************************************************************
* Copyright (C) 2006 EsperTech, Inc. All rights reserved. *
* http://www.espertech.com/esper *
* http://www.espertech.com *
* ---------------------------------------------------------------------------------- *
* The software in this package is published under the terms of the GPL license *
* a copy of which has been included with this distribution in the license.txt file. *
***************************************************************************************
*/
package com.espertech.esper.client.soda;
import java.io.Serializable;
import java.io.StringWriter;
/**
* Specification object for a row limit.
*/
public class RowLimitClause implements Serializable {
private static final long serialVersionUID = 0L;
private Integer numRows;
private Integer optionalOffsetRows;
private String numRowsVariable;
private String optionalOffsetRowsVariable;
/**
* Ctor.
*/
public RowLimitClause() {
}
/**
* Creates a row limit clause.
*
* @param numRowsVariable name of the variable providing the maximum number of rows
* @return clause
*/
public static RowLimitClause create(String numRowsVariable) {
return new RowLimitClause(null, null, numRowsVariable, null);
}
/**
* Creates a row limit clause.
*
* @param numRowsVariable name of the variable providing the maximum number of rows
* @param offsetVariable name of the variable providing the offset
* @return clause
*/
public static RowLimitClause create(String numRowsVariable, String offsetVariable) {
return new RowLimitClause(null, null, numRowsVariable, offsetVariable);
}
/**
* Creates a row limit clause.
*
* @param numRows maximum number of rows
* @return clause
*/
public static RowLimitClause create(int numRows) {
return new RowLimitClause(numRows, null, null, null);
}
/**
* Creates a row limit clause.
*
* @param numRows maximum number of rows
* @param offset offset
* @return clause
*/
public static RowLimitClause create(int numRows, int offset) {
return new RowLimitClause(numRows, offset, null, null);
}
/**
* Ctor.
*
* @param numRows maximum number of rows
* @param optionalOffsetRows offset
* @param numRowsVariable name of the variable providing the maximum number of rows
* @param optionalOffsetRowsVariable name of the variable providing the offset
*/
public RowLimitClause(Integer numRows, Integer optionalOffsetRows, String numRowsVariable, String optionalOffsetRowsVariable) {
this.numRows = numRows;
this.optionalOffsetRows = optionalOffsetRows;
this.numRowsVariable = numRowsVariable;
this.optionalOffsetRowsVariable = optionalOffsetRowsVariable;
}
/**
* Returns the maximum number of rows, or null if using variable.
*
* @return max num rows
*/
public Integer getNumRows() {
return numRows;
}
/**
* Sets the maximum number of rows.
*
* @param numRows max num rows
*/
public void setNumRows(Integer numRows) {
this.numRows = numRows;
}
/**
* Returns the offset, or null if using variable or not using offset.
*
* @return offset
*/
public Integer getOptionalOffsetRows() {
return optionalOffsetRows;
}
/**
* Sets the offset.
*
* @param optionalOffsetRows offset
*/
public void setOptionalOffsetRows(Integer optionalOffsetRows) {
this.optionalOffsetRows = optionalOffsetRows;
}
/**
* Returns the variable providing maximum number of rows, or null if using constant.
*
* @return max num rows variable
*/
public String getNumRowsVariable() {
return numRowsVariable;
}
/**
* Sets the variable providing maximum number of rows.
*
* @param numRowsVariable max num rows variable
*/
public void setNumRowsVariable(String numRowsVariable) {
this.numRowsVariable = numRowsVariable;
}
/**
* Returns the name of the variable providing offset values.
*
* @return variable name for offset
*/
public String getOptionalOffsetRowsVariable() {
return optionalOffsetRowsVariable;
}
/**
* Sets the name of the variable providing offset values.
*
* @param optionalOffsetRowsVariable variable name for offset
*/
public void setOptionalOffsetRowsVariable(String optionalOffsetRowsVariable) {
this.optionalOffsetRowsVariable = optionalOffsetRowsVariable;
}
/**
* Renders the clause in textual representation.
*
* @param writer to output to
*/
public void toEPL(StringWriter writer) {
if (numRowsVariable != null) {
writer.write(numRowsVariable);
} else {
if (numRows != null) {
writer.write(Integer.toString(numRows));
} else {
writer.write(Integer.toString(Integer.MAX_VALUE));
}
}
if (optionalOffsetRowsVariable != null) {
writer.write(" offset ");
writer.write(optionalOffsetRowsVariable);
} else if ((optionalOffsetRows != null) && (optionalOffsetRows != 0)) {
writer.write(" offset ");
writer.write(Integer.toString(optionalOffsetRows));
}
}
}