// Path: src/main/java/com/kcthota/JSONQuery/exceptions/UnsupportedExprException.java
// @SuppressWarnings("serial")
// public class UnsupportedExprException extends RuntimeException {
// 
// 	public UnsupportedExprException(String message) {
// 		super(message);
// 	}
// 
// }


import com.fasterxml.jackson.databind.JsonNode;
import com.fasterxml.jackson.databind.node.TextNode;
import com.kcthota.JSONQuery.exceptions.UnsupportedExprException;
/**
 * 
 */
package com.kcthota.JSONQuery.expressions;


/**
 * Returns substring of a string
 * 
 * @author Krishna Chaitanya Thota Apr 28, 2015 8:38:07 PM
 */
public class SubstringValueExpression extends StringValueExpression {

	private Integer startIndex = 0;
	private Integer endIndex = null;

	public SubstringValueExpression(String property, Integer startIndex, Integer endIndex) {
		super(property);
		if (startIndex != null) {
			this.startIndex = startIndex;
		}

		if (endIndex != null) {
			this.endIndex = endIndex;
		}
	}

	public SubstringValueExpression(String property, Integer startIndex, Integer endIndex, ValueExpression innerExpression) {
		super(property, innerExpression);
		if (startIndex != null) {
// Path: src/main/java/com/kcthota/JSONQuery/exceptions/UnsupportedExprException.java
// @SuppressWarnings("serial")
// public class UnsupportedExprException extends RuntimeException {
// 
// 	public UnsupportedExprException(String message) {
// 		super(message);
// 	}
// 
// }


// Path: src/main/java/com/kcthota/JSONQuery/expressions/SubstringValueExpression.java
import com.fasterxml.jackson.databind.JsonNode;
import com.fasterxml.jackson.databind.node.TextNode;
import com.kcthota.JSONQuery.exceptions.UnsupportedExprException;

/**
 * 
 */
package com.kcthota.JSONQuery.expressions;


/**
 * Returns substring of a string
 * 
 * @author Krishna Chaitanya Thota Apr 28, 2015 8:38:07 PM
 */
public class SubstringValueExpression extends StringValueExpression {

	private Integer startIndex = 0;
	private Integer endIndex = null;

	public SubstringValueExpression(String property, Integer startIndex, Integer endIndex) {
		super(property);
		if (startIndex != null) {
			this.startIndex = startIndex;
		}

		if (endIndex != null) {
			this.endIndex = endIndex;
		}
	}

	public SubstringValueExpression(String property, Integer startIndex, Integer endIndex, ValueExpression innerExpression) {
		super(property, innerExpression);
		if (startIndex != null) {
			this.startIndex = startIndex;