forked from KNEMC/KLALB
UI改进
This commit is contained in:
@@ -0,0 +1,103 @@
|
||||
package org.kne.cloud.network.klalb;
|
||||
|
||||
import java.lang.reflect.Type;
|
||||
import java.net.InetAddress;
|
||||
import java.net.UnknownHostException;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.Objects;
|
||||
|
||||
import org.kne.cloud.network.MultipurposeSocketAddress;
|
||||
|
||||
import com.google.gson.Gson;
|
||||
import com.google.gson.GsonBuilder;
|
||||
import com.google.gson.JsonDeserializationContext;
|
||||
import com.google.gson.JsonDeserializer;
|
||||
import com.google.gson.JsonElement;
|
||||
import com.google.gson.JsonObject;
|
||||
import com.google.gson.JsonParseException;
|
||||
import com.google.gson.JsonPrimitive;
|
||||
import com.google.gson.JsonSerializationContext;
|
||||
import com.google.gson.JsonSerializer;
|
||||
import com.google.gson.reflect.TypeToken;
|
||||
|
||||
public class KLALBConfigItem {
|
||||
private String Type;
|
||||
|
||||
public String getType() {
|
||||
return Type;
|
||||
}
|
||||
|
||||
public void setType(String type) {
|
||||
Type = type;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
return "KLALBConfigItem [Type=" + Type + "]";
|
||||
}
|
||||
|
||||
public KLALBConfigItem(String type) {
|
||||
super();
|
||||
Type = type;
|
||||
}
|
||||
|
||||
@Override
|
||||
public int hashCode() {
|
||||
return Objects.hash(Type);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean equals(Object obj) {
|
||||
if (this == obj)
|
||||
return true;
|
||||
if (obj == null)
|
||||
return false;
|
||||
if (getClass() != obj.getClass())
|
||||
return false;
|
||||
KLALBConfigItem other = (KLALBConfigItem) obj;
|
||||
return Objects.equals(Type, other.Type);
|
||||
}
|
||||
public static JsonDeserializer<KLALBConfigItem>getDefaultJsonDeserializer(){
|
||||
return new JsonDeserializer<KLALBConfigItem>() {
|
||||
|
||||
@Override
|
||||
public KLALBConfigItem deserialize(JsonElement arg0, Type arg1, JsonDeserializationContext arg2)
|
||||
throws JsonParseException {
|
||||
if(arg0.isJsonObject()) {
|
||||
JsonObject jobj=(JsonObject) arg0;
|
||||
String s=jobj.get("Type").getAsString();
|
||||
switch(s) {
|
||||
case "KLALBController":
|
||||
return arg2.deserialize(arg0, new TypeToken<KLALBControllerConfigItem>() {}.getType());
|
||||
case "SocketBridge":
|
||||
return arg2.deserialize(arg0, new TypeToken<SocketBridgeConfigItem>() {}.getType());
|
||||
default:
|
||||
return arg2.deserialize(arg0, new TypeToken<UnknownKLALBConfigItem>() {}.getType());
|
||||
}
|
||||
}
|
||||
throw new JsonParseException("not a object:"+arg0);
|
||||
}
|
||||
};
|
||||
}
|
||||
public static JsonSerializer<KLALBConfigItem>getDefaultJsonSerializer(){
|
||||
return new JsonSerializer<KLALBConfigItem>() {
|
||||
|
||||
@Override
|
||||
public JsonElement serialize(KLALBConfigItem arg0, Type arg1, JsonSerializationContext arg2) {
|
||||
if(arg0 instanceof KLALBControllerConfigItem) {
|
||||
return arg2.serialize(arg0, new TypeToken<KLALBControllerConfigItem>() {}.getType());
|
||||
}
|
||||
if(arg0 instanceof SocketBridgeConfigItem) {
|
||||
return arg2.serialize(arg0, new TypeToken<SocketBridgeConfigItem>() {}.getType());
|
||||
}
|
||||
return arg2.serialize(arg0, new TypeToken<UnknownKLALBConfigItem>() {}.getType());
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
public static void registerToGsonBuilder(GsonBuilder gsonBuilder) {
|
||||
gsonBuilder.registerTypeAdapter(KLALBConfigItem.class, getDefaultJsonDeserializer());
|
||||
gsonBuilder.registerTypeAdapter(KLALBConfigItem.class, getDefaultJsonSerializer());
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user