Java tutorial
/* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you 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 asterix.parser.classad; import asterix.parser.classad.AMutableCharArrayString; import asterix.parser.classad.AMutableNumberFactor; import asterix.parser.classad.ClassAdTime; import asterix.parser.classad.TokenValue; import asterix.parser.classad.Lexer.TokenType; import asterix.parser.classad.Value.NumberFactor; import org.apache.commons.lang3.mutable.MutableBoolean; import org.apache.asterix.om.base.AMutableDouble; import org.apache.asterix.om.base.AMutableInt64; public class TokenValue { private TokenType tt; private NumberFactor factor; private long intValue; private double realValue; private boolean boolValue; private AMutableCharArrayString strValue; private ClassAdTime time; public TokenValue() { tt = TokenType.LEX_TOKEN_ERROR; factor = NumberFactor.NO_FACTOR; intValue = 0; realValue = 0.0; boolValue = false; strValue = new AMutableCharArrayString(); time = new ClassAdTime(); } public void setTokenType(TokenType t) { tt = t; } public void setIntValue(long i, NumberFactor f) { intValue = i; factor = f; } public void setRealValue(double r, NumberFactor f) { realValue = r; factor = f; } public void setBoolValue(boolean b) { boolValue = b; } public void setStringValue(char[] str) { strValue.copyValue(str, str.length); } public void setStringValue(char[] str, int length) { strValue.copyValue(str, length); } public void setStringValue(AMutableCharArrayString aString) { strValue.setValue(aString); } public void setAbsTimeValue(ClassAdTime asecs) { time.setValue(asecs); } public void setRelTimeValue(double rsecs) { time.setValue((long) rsecs); } public TokenType getTokenType() { return tt; } public void getIntValue(AMutableInt64 i, AMutableNumberFactor f) { i.setValue(intValue); f.setFactor(factor); } public void getRealValue(AMutableDouble r, AMutableNumberFactor f) { r.setValue(realValue); f.setFactor(factor); } public void getBoolValue(MutableBoolean b) { b.setValue(boolValue); } void getStringValue(AMutableCharArrayString str) { str.copyValue(strValue.getValue(), strValue.getLength()); } void getAbsTimeValue(ClassAdTime asecs) { asecs.setValue(time); } void getRelTimeValue(ClassAdTime rsecs) { rsecs.setValue(time.getRelativeTime()); } void copyFrom(TokenValue tv) { tt = tv.tt; factor = tv.factor; intValue = tv.intValue; realValue = tv.realValue; boolValue = tv.boolValue; time.setValue(tv.time); strValue.setValue(tv.strValue); } public void reset() { tt = TokenType.LEX_TOKEN_ERROR; factor = NumberFactor.NO_FACTOR; intValue = 0; realValue = 0.0; boolValue = false; strValue.reset(); time.reset(); } public NumberFactor getFactor() { return factor; } public long getIntValue() { return intValue; } public double getRealValue() { return realValue; } public boolean getBoolValue() { return boolValue; } public AMutableCharArrayString getStrValue() { return strValue; } public ClassAdTime getTimeValue() { return time; } }