GsonAgent/src/main/java/cn/citycraft/GsonAgent/normal/JsonPrimitiveHandle.java

155 lines
3.0 KiB
Java

/**
*
*/
package cn.citycraft.GsonAgent.normal;
import java.math.BigDecimal;
import java.math.BigInteger;
import cn.citycraft.GsonAgent.api.JsonPrimitive;
import cn.citycraft.GsonAgent.api.utils.Utils;
/**
*
* @since 2016年1月5日 下午1:49:49
* @author 喵♂呜
*/
public class JsonPrimitiveHandle extends JsonElementHandle implements JsonPrimitive {
private final com.google.gson.JsonPrimitive handle;
public JsonPrimitiveHandle(final Boolean bool) {
this(new com.google.gson.JsonPrimitive(bool));
setValue(bool);
}
public JsonPrimitiveHandle(final Character c) {
this(new com.google.gson.JsonPrimitive(c));
setValue(c);
}
public JsonPrimitiveHandle(final Number number) {
this(new com.google.gson.JsonPrimitive(number));
setValue(number);
}
public JsonPrimitiveHandle(final String string) {
this(new com.google.gson.JsonPrimitive(string));
setValue(string);
}
protected JsonPrimitiveHandle(final com.google.gson.JsonPrimitive handle) {
this.handle = handle;
}
@Override
public cn.citycraft.GsonAgent.api.JsonPrimitive deepCopy() {
return new JsonPrimitiveHandle(Utils.deepCopyObject(this.handle));
}
@Override
public boolean equals(final Object obj) {
return handle.equals(obj);
}
@Override
public BigDecimal getAsBigDecimal() {
return handle.getAsBigDecimal();
}
@Override
public BigInteger getAsBigInteger() {
return handle.getAsBigInteger();
}
@Override
public boolean getAsBoolean() {
return handle.getAsBoolean();
}
@Override
public byte getAsByte() {
return handle.getAsByte();
}
@Override
public char getAsCharacter() {
return handle.getAsCharacter();
}
@Override
public double getAsDouble() {
return handle.getAsDouble();
}
@Override
public float getAsFloat() {
return handle.getAsFloat();
}
@Override
public int getAsInt() {
return handle.getAsInt();
}
@Override
public JsonArrayHandle getAsJsonArray() {
return new JsonArrayHandle(handle.getAsJsonArray());
}
@Override
public JsonObjectHandle getAsJsonObject() {
return new JsonObjectHandle(handle.getAsJsonObject());
}
@Override
public long getAsLong() {
return handle.getAsLong();
}
@Override
public Number getAsNumber() {
return handle.getAsNumber();
}
@Override
public short getAsShort() {
return handle.getAsShort();
}
@Override
public String getAsString() {
return handle.getAsString();
}
@Override
public int hashCode() {
return handle.hashCode();
}
@Override
public boolean isBoolean() {
return handle.isBoolean();
}
@Override
public boolean isNumber() {
return handle.isNumber();
}
@Override
public boolean isString() {
return handle.isString();
}
@Override
public final void setValue(final Object primitive) {
try {
handle.getClass().getDeclaredMethod("setValue", Object.class).invoke(handle, primitive);
} catch (final Exception e) {
throw new RuntimeException(e);
}
}
}