All Downloads are FREE. Search and download functionalities are using the official Maven repository.

scouter.lang.value.ValueEnum Maven / Gradle / Ivy

There is a newer version: 2.20.0
Show newest version
/*
 *  Copyright 2015 the original author or authors. 
 *  @https://github.com/scouter-project/scouter
 *
 *  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 scouter.lang.value;

public class ValueEnum {
	public final static byte NULL = 0;
	public final static byte BOOLEAN = 10;
	public final static byte DECIMAL = 20;
	public final static byte FLOAT = 30;
	public final static byte DOUBLE = 40;
	
	public final static byte DOUBLE_SUMMARY = 45;
	public final static byte LONG_SUMMARY = 46;

	public final static byte TEXT = 50;
	public final static byte TEXT_HASH = 51;
	public final static byte BLOB = 60;
	public final static byte IP4ADDR = 61;
	
	public final static byte LIST = 70;
	
	public final static byte ARRAY_INT = 71;
	public final static byte ARRAY_FLOAT = 72;
	public final static byte ARRAY_TEXT = 73;
	public final static byte ARRAY_LONG = 74;
	
	public final static byte MAP = 80;
	
	public static Value create(byte code) {
		switch (code) {
		case NULL:
			return new NullValue();
		case BOOLEAN:
			return new BooleanValue();
		case DECIMAL:
			return new DecimalValue();
		case FLOAT:
			return new FloatValue();
		case DOUBLE:
			return new DoubleValue();
		case TEXT:
			return new TextValue();
		case TEXT_HASH:
			return new TextHashValue();
		case BLOB:
			return new BlobValue();

		case IP4ADDR:
			return new IP4Value();

		case LIST:
			return new ListValue();
		case MAP:
			return new MapValue();

		case LONG_SUMMARY:
			return new LongSummary();
		case DOUBLE_SUMMARY:
			return new DoubleSummary();

			
		case ARRAY_INT:
			return new IntArray();
		case ARRAY_FLOAT:
			return new FloatArray();
		case ARRAY_TEXT:
			return new TextArray();
		case ARRAY_LONG:
			return new LongArray();

			
		default:
			throw new RuntimeException("unknown value type=" + code);
		}
	}

	public Value toValue(Object o) {
		if (o == null)
			return new NullValue();
		else if (o instanceof Value)
			return (Value) o;
		else if (o instanceof String)
			return new TextValue((String) o);
		else if (o instanceof Number) {
			Number n = (Number) o;
			if (n instanceof Double)
				return new DoubleValue((Double) o);
			if (n instanceof Float)
				return new FloatValue((Float) o);
			return new DecimalValue(n.longValue());
		} else
			return new TextValue(o.toString());
	}

}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy