package foundation.json;
|
|
import java.io.UnsupportedEncodingException;
|
import java.net.URLDecoder;
|
import java.util.ArrayList;
|
import java.util.HashSet;
|
import java.util.Iterator;
|
import java.util.List;
|
import java.util.Set;
|
|
import foundation.translator.Translator;
|
import foundation.util.Util;
|
|
public class JValueReader extends JSONReader {
|
|
private Object value;
|
|
public JValueReader(String name) {
|
this.name = name;
|
this.type = JType.getInstance(value);
|
}
|
|
public JValueReader(String name, Object value) {
|
this.name = name;
|
this.value = value;
|
this.type = JType.getInstance(value);
|
}
|
|
@Override
|
public boolean isEmpty() {
|
return Util.isEmpty(value);
|
}
|
|
@Override
|
public boolean has(String name) {
|
return false;
|
}
|
|
@Override
|
public JType getType(String name) {
|
return JType.Empty;
|
}
|
|
@Override
|
public boolean hasChildren() {
|
return false;
|
}
|
|
@Override
|
public Object getValue() {
|
return value;
|
}
|
|
@Override
|
public Object getValue(String name) {
|
return value;
|
}
|
|
@Override
|
public Object getValue(String name, Object defaultValue) {
|
return (value == null) ? defaultValue : value;
|
}
|
|
@Override
|
public String getRawString(String name) {
|
String result = null;
|
|
try {
|
result = Translator.toString(value);
|
|
if (result == null) {
|
return null;
|
}
|
|
return result;
|
}
|
catch (Exception e) {
|
e.printStackTrace();
|
}
|
|
return result;
|
}
|
|
@Override
|
public String getString(String name) {
|
return getDecodeString(name);
|
}
|
|
@Override
|
public String getString(String name, String defaultValue) {
|
return getDecodeString(name, defaultValue);
|
}
|
|
@Override
|
public String getDecodeString(String name) {
|
return getDecodeString(name, null);
|
}
|
|
@Override
|
public String getDecodeString(String name, String defaultValue) {
|
String result = null;
|
|
try {
|
result = Translator.toString(value);
|
|
if (result == null) {
|
return null;
|
}
|
|
result = URLDecoder.decode(result, "UTF-8");
|
return result;
|
}
|
catch (Exception e) {
|
result = defaultValue;
|
}
|
|
return result;
|
}
|
|
@Override
|
public Set<String> getStringSet() {
|
if (value == null) {
|
return null;
|
}
|
|
Set<String> result = new HashSet<String>();
|
result.add(value.toString());
|
|
return result;
|
}
|
|
@Override
|
public List<String> getStringList() {
|
if (value == null) {
|
return null;
|
}
|
|
ArrayList<String> result = new ArrayList<String>();
|
result.add(value.toString());
|
|
return result;
|
}
|
|
@Override
|
public Set<String> getStringSet(String name) {
|
if (value == null) {
|
return null;
|
}
|
|
Set<String> result = new HashSet<String>();
|
result.add(value.toString());
|
|
return result;
|
}
|
|
@Override
|
public List<String> getStringList(String name) {
|
if (value == null) {
|
return null;
|
}
|
|
ArrayList<String> result = new ArrayList<String>();
|
result.add(value.toString());
|
|
return result;
|
}
|
|
@Override
|
public Integer getInteger(Integer defaultValue) {
|
Integer result = Translator.toInteger(value, defaultValue);
|
return result;
|
}
|
|
@Override
|
public Integer getInteger(String name, Integer defaultValue) {
|
return getInteger(defaultValue);
|
}
|
|
@Override
|
public boolean getBoolean(boolean defaultValue) {
|
boolean result = Translator.toBoolean(value, defaultValue);
|
return result;
|
}
|
|
@Override
|
public boolean getBoolean(String name, boolean defaultValue) {
|
return getBoolean(defaultValue);
|
}
|
|
@Override
|
public <T extends JSONReader> T getReader(String name, JType type) {
|
return null;
|
}
|
|
@Override
|
protected void putReader(String name, JSONReader reader) {
|
if (reader instanceof JValueReader) {
|
this.value = reader.getValue();
|
}
|
|
return;
|
}
|
|
@Override
|
protected void putValue(String name, Object value) {
|
this.value = value;
|
}
|
|
@Override
|
protected void putValue(Object value) {
|
this.value = value;
|
}
|
|
public void setValue(Object value) {
|
this.value = value;
|
}
|
|
@Override
|
public Iterator<JSONReader> iterator() {
|
return new EmptyIterator<JSONReader>();
|
}
|
|
public static void main(String[] args) throws UnsupportedEncodingException {
|
String value = "record_no%20like%20'%25BA010%25'";
|
String result = URLDecoder.decode(value, "UTF-8");
|
|
System.out.println(result);
|
}
|
}
|