/**************************************************************************************
* Copyright (C) 2008 EsperTech, Inc. All rights reserved. *
* http://esper.codehaus.org *
* 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.type;
/**
* Placeholder for a long-typed value in an event expression.
*/
public final class LongValue extends PrimitiveValueBase
{
private Long longValue;
public PrimitiveValueType getType()
{
return PrimitiveValueType.LONG;
}
public final void parse(String value)
{
longValue = parseString(value);
}
/**
* Parse the string containing a long value.
* @param value is the textual long value
* @return long value
*/
public static long parseString(String value)
{
if ((value.endsWith("L")) || ((value.endsWith("l"))))
{
value = value.substring(0, value.length() - 1);
}
if (value.startsWith("+"))
{
value = value.substring(1);
}
return Long.parseLong(value);
}
/**
* Parse the string array returning a long array.
* @param values - string array
* @return typed array
*/
public static long[] parseString(String[] values)
{
long[] result = new long[values.length];
for (int i = 0; i < result.length; i++)
{
result[i] = parseString(values[i]);
}
return result;
}
public final Object getValueObject()
{
return longValue;
}
public final void setLong(long x)
{
this.longValue = x;
}
/**
* Returns the long value.
* @return long value
*/
public final long getLong()
{
if (longValue == null)
{
throw new IllegalStateException();
}
return longValue;
}
public final String toString()
{
if (longValue == null)
{
return "null";
}
return longValue.toString();
}
}