added envelope jar for wson-cli
This commit is contained in:
9
wson-w3c-json/build.gradle
Normal file
9
wson-w3c-json/build.gradle
Normal file
@@ -0,0 +1,9 @@
|
||||
plugins {
|
||||
id 'java-library'
|
||||
}
|
||||
|
||||
dependencies {
|
||||
implementation rootProject
|
||||
implementation group: 'jakarta.json', name: 'jakarta.json-api', version: '2.1.0'
|
||||
implementation group: "net.woggioni", name: "jwo"
|
||||
}
|
@@ -0,0 +1,91 @@
|
||||
package net.woggioni.wson.jakarta;
|
||||
|
||||
import jakarta.json.JsonNumber;
|
||||
import net.woggioni.wson.value.FloatValue;
|
||||
import net.woggioni.wson.value.IntegerValue;
|
||||
import net.woggioni.wson.xface.Value;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.math.BigInteger;
|
||||
|
||||
|
||||
public class WorthJsonNumber implements JsonNumber {
|
||||
private final Value value;
|
||||
|
||||
public WorthJsonNumber(IntegerValue value) {
|
||||
this.value = value;
|
||||
}
|
||||
|
||||
public WorthJsonNumber(FloatValue value) {
|
||||
this.value = value;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isIntegral() {
|
||||
return value.type() == Value.Type.INTEGER;
|
||||
}
|
||||
|
||||
@Override
|
||||
public int intValue() {
|
||||
return (int) value.asInteger();
|
||||
}
|
||||
|
||||
@Override
|
||||
public int intValueExact() {
|
||||
if(isIntegral()) return intValue();
|
||||
else {
|
||||
double res = value.asFloat();
|
||||
double res2 = Math.floor(res);
|
||||
if(res != res2) throw new ArithmeticException();
|
||||
else return (int) res;
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public long longValue() {
|
||||
return value.asInteger();
|
||||
}
|
||||
|
||||
@Override
|
||||
public long longValueExact() {
|
||||
if(isIntegral()) return intValue();
|
||||
else {
|
||||
double res = value.asFloat();
|
||||
double res2 = Math.floor(res);
|
||||
if(res != res2) throw new ArithmeticException();
|
||||
else return (long) res;
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public BigInteger bigIntegerValue() {
|
||||
return bigDecimalValue().toBigInteger();
|
||||
}
|
||||
|
||||
@Override
|
||||
public BigInteger bigIntegerValueExact() {
|
||||
if(isIntegral()) return bigDecimalValue().toBigInteger();
|
||||
else {
|
||||
double res = value.asFloat();
|
||||
double res2 = Math.floor(res);
|
||||
if(res != res2) throw new ArithmeticException();
|
||||
else return BigInteger.valueOf((long) res);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public double doubleValue() {
|
||||
return value.asFloat();
|
||||
}
|
||||
|
||||
@Override
|
||||
public BigDecimal bigDecimalValue() {
|
||||
if(isIntegral()) return BigDecimal.valueOf(value.asInteger());
|
||||
else return BigDecimal.valueOf(value.asFloat());
|
||||
}
|
||||
|
||||
@Override
|
||||
public ValueType getValueType() {
|
||||
return ValueType.NUMBER;
|
||||
}
|
||||
}
|
@@ -0,0 +1,25 @@
|
||||
package net.woggioni.wson.jakarta;
|
||||
|
||||
import jakarta.json.JsonString;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import net.woggioni.wson.value.StringValue;
|
||||
|
||||
@RequiredArgsConstructor
|
||||
public class WorthJsonString implements JsonString {
|
||||
private final StringValue value;
|
||||
|
||||
@Override
|
||||
public String getString() {
|
||||
return value.asString();
|
||||
}
|
||||
|
||||
@Override
|
||||
public CharSequence getChars() {
|
||||
return value.asString();
|
||||
}
|
||||
|
||||
@Override
|
||||
public ValueType getValueType() {
|
||||
return ValueType.STRING;
|
||||
}
|
||||
}
|
@@ -0,0 +1,75 @@
|
||||
package net.woggioni.wson.jakarta;
|
||||
|
||||
import jakarta.json.JsonArray;
|
||||
import jakarta.json.JsonArrayBuilder;
|
||||
import jakarta.json.JsonObjectBuilder;
|
||||
import jakarta.json.JsonValue;
|
||||
import net.woggioni.wson.value.ArrayValue;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.math.BigInteger;
|
||||
|
||||
public class WsonArrayBuilder implements JsonArrayBuilder {
|
||||
|
||||
private final ArrayValue arrayValue = new ArrayValue();
|
||||
|
||||
@Override
|
||||
public JsonArrayBuilder add(JsonValue value) {
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public JsonArrayBuilder add(String value) {
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public JsonArrayBuilder add(BigDecimal value) {
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public JsonArrayBuilder add(BigInteger value) {
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public JsonArrayBuilder add(int value) {
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public JsonArrayBuilder add(long value) {
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public JsonArrayBuilder add(double value) {
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public JsonArrayBuilder add(boolean value) {
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public JsonArrayBuilder addNull() {
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public JsonArrayBuilder add(JsonObjectBuilder builder) {
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public JsonArrayBuilder add(JsonArrayBuilder builder) {
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public JsonArray build() {
|
||||
return null;
|
||||
}
|
||||
}
|
@@ -0,0 +1,58 @@
|
||||
package net.woggioni.wson.jakarta;
|
||||
|
||||
import jakarta.json.stream.JsonLocation;
|
||||
import jakarta.json.stream.JsonParser;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
|
||||
import java.io.Reader;
|
||||
import java.math.BigDecimal;
|
||||
|
||||
@RequiredArgsConstructor
|
||||
class WsonJsonParser implements JsonParser {
|
||||
private final Reader reader;
|
||||
|
||||
@Override
|
||||
public boolean hasNext() {
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Event next() {
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getString() {
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isIntegralNumber() {
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getInt() {
|
||||
return 0;
|
||||
}
|
||||
|
||||
@Override
|
||||
public long getLong() {
|
||||
return 0;
|
||||
}
|
||||
|
||||
@Override
|
||||
public BigDecimal getBigDecimal() {
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public JsonLocation getLocation() {
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void close() {
|
||||
|
||||
}
|
||||
}
|
@@ -0,0 +1,99 @@
|
||||
package net.woggioni.wson.jakarta;
|
||||
|
||||
import jakarta.json.JsonArrayBuilder;
|
||||
import jakarta.json.JsonBuilderFactory;
|
||||
import jakarta.json.JsonObjectBuilder;
|
||||
import jakarta.json.JsonReader;
|
||||
import jakarta.json.JsonReaderFactory;
|
||||
import jakarta.json.JsonWriter;
|
||||
import jakarta.json.JsonWriterFactory;
|
||||
import jakarta.json.spi.JsonProvider;
|
||||
import jakarta.json.stream.JsonGenerator;
|
||||
import jakarta.json.stream.JsonGeneratorFactory;
|
||||
import jakarta.json.stream.JsonParser;
|
||||
import jakarta.json.stream.JsonParserFactory;
|
||||
import net.woggioni.wson.value.ObjectValue;
|
||||
|
||||
import java.io.InputStream;
|
||||
import java.io.OutputStream;
|
||||
import java.io.Reader;
|
||||
import java.io.Writer;
|
||||
import java.util.Map;
|
||||
|
||||
public class WsonJsonProvider extends JsonProvider {
|
||||
@Override
|
||||
public JsonParser createParser(Reader reader) {
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public JsonParser createParser(InputStream in) {
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public JsonParserFactory createParserFactory(Map<String, ?> config) {
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public JsonGenerator createGenerator(Writer writer) {
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public JsonGenerator createGenerator(OutputStream out) {
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public JsonGeneratorFactory createGeneratorFactory(Map<String, ?> config) {
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public JsonReader createReader(Reader reader) {
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public JsonReader createReader(InputStream in) {
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public JsonWriter createWriter(Writer writer) {
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public JsonWriter createWriter(OutputStream out) {
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public JsonWriterFactory createWriterFactory(Map<String, ?> config) {
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public JsonReaderFactory createReaderFactory(Map<String, ?> config) {
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public JsonObjectBuilder createObjectBuilder() {
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public JsonArrayBuilder createArrayBuilder() {
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public JsonBuilderFactory createBuilderFactory(Map<String, ?> config) {
|
||||
return null;
|
||||
}
|
||||
}
|
@@ -0,0 +1,376 @@
|
||||
package net.woggioni.wson.jakarta;
|
||||
|
||||
import jakarta.json.JsonArray;
|
||||
import jakarta.json.JsonNumber;
|
||||
import jakarta.json.JsonObject;
|
||||
import jakarta.json.JsonString;
|
||||
import jakarta.json.JsonValue;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import net.woggioni.jwo.CollectionUtils;
|
||||
import net.woggioni.jwo.JWO;
|
||||
import net.woggioni.wson.xface.Value;
|
||||
|
||||
import java.util.Collection;
|
||||
import java.util.Iterator;
|
||||
import java.util.List;
|
||||
import java.util.ListIterator;
|
||||
import java.util.Map;
|
||||
import java.util.Set;
|
||||
|
||||
import static net.woggioni.jwo.JWO.newThrowable;
|
||||
|
||||
@RequiredArgsConstructor
|
||||
public class WsonJsonValue implements JsonValue {
|
||||
private final Value value;
|
||||
|
||||
@Override
|
||||
public ValueType getValueType() {
|
||||
ValueType result;
|
||||
switch (value.type()) {
|
||||
case NULL:
|
||||
result = ValueType.NULL;
|
||||
break;
|
||||
case OBJECT:
|
||||
result = ValueType.OBJECT;
|
||||
break;
|
||||
case ARRAY:
|
||||
result = ValueType.ARRAY;
|
||||
break;
|
||||
case STRING:
|
||||
result = ValueType.STRING;
|
||||
break;
|
||||
case BOOLEAN:
|
||||
result = value.asBoolean() ? ValueType.TRUE : ValueType.FALSE;
|
||||
break;
|
||||
case DOUBLE:
|
||||
case INTEGER:
|
||||
result = ValueType.NUMBER;
|
||||
break;
|
||||
default:
|
||||
throw new UnsupportedOperationException("This should never happen");
|
||||
}
|
||||
return result;
|
||||
}
|
||||
//
|
||||
// @Override
|
||||
// public JsonObject getJsonObject(int index) {
|
||||
// return new WsonJsonValue(value.get(index));
|
||||
// }
|
||||
//
|
||||
// @Override
|
||||
// public JsonArray getJsonArray(int index) {
|
||||
// return new WsonJsonValue(value.get(index));
|
||||
// }
|
||||
//
|
||||
// @Override
|
||||
// public JsonNumber getJsonNumber(int index) {
|
||||
// return new WsonJsonValue(value.get(index));
|
||||
// }
|
||||
//
|
||||
// @Override
|
||||
// public JsonString getJsonString(int index) {
|
||||
// return new WsonJsonValue(value.get(index));
|
||||
// }
|
||||
//
|
||||
// @Override
|
||||
// public <T extends JsonValue> List<T> getValuesAs(Class<T> clazz) {
|
||||
// return (List<T>) JWO.iterable2Stream(value.asArray()).map(WsonJsonValue::new)
|
||||
// .collect(CollectionUtils.toUnmodifiableList());
|
||||
// }
|
||||
//
|
||||
// @Override
|
||||
// public String getString(int index) {
|
||||
// return value.get(index).asString();
|
||||
// }
|
||||
//
|
||||
// @Override
|
||||
// public String getString(int index, String defaultValue) {
|
||||
// if(index < value.size()) return value.get(index).asString();
|
||||
// else return defaultValue;
|
||||
// }
|
||||
//
|
||||
// @Override
|
||||
// public int getInt(int index) {
|
||||
// return (int) value.get(index).asInteger();
|
||||
// }
|
||||
//
|
||||
// @Override
|
||||
// public int getInt(int index, int defaultValue) {
|
||||
// if(index < value.size()) return (int) value.get(index).asInteger();
|
||||
// else return defaultValue;
|
||||
// }
|
||||
//
|
||||
// @Override
|
||||
// public boolean getBoolean(int index) {
|
||||
// return value.get(index).asBoolean();
|
||||
// }
|
||||
//
|
||||
// @Override
|
||||
// public boolean getBoolean(int index, boolean defaultValue) {
|
||||
// if(index < value.size()) return value.get(index).asBoolean();
|
||||
// else return defaultValue;
|
||||
// }
|
||||
//
|
||||
// @Override
|
||||
// public boolean isNull(int index) {
|
||||
// return false;
|
||||
// }
|
||||
//
|
||||
// @Override
|
||||
// public JsonArray getJsonArray(String name) {
|
||||
// return new WsonJsonValue(value.get(name));
|
||||
// }
|
||||
//
|
||||
// @Override
|
||||
// public JsonObject getJsonObject(String name) {
|
||||
// return new WsonJsonValue(value.get(name));
|
||||
// }
|
||||
//
|
||||
// @Override
|
||||
// public JsonNumber getJsonNumber(String name) {
|
||||
// return new WsonJsonValue(value.get(name));
|
||||
// }
|
||||
//
|
||||
// @Override
|
||||
// public JsonString getJsonString(String name) {
|
||||
// return new WsonJsonValue(value.get(name));
|
||||
// }
|
||||
//
|
||||
// @Override
|
||||
// public String getString(String name) {
|
||||
// return value.get(name).asString();
|
||||
// }
|
||||
//
|
||||
// @Override
|
||||
// public String getString(String name, String defaultValue) {
|
||||
// Value result = value.getOrDefault(name, Value.Null);
|
||||
// if(result.isNull()) return defaultValue;
|
||||
// else return result.asString();
|
||||
// }
|
||||
//
|
||||
// @Override
|
||||
// public int getInt(String name) {
|
||||
// return (int) value.get(name).asInteger();
|
||||
// }
|
||||
//
|
||||
// @Override
|
||||
// public int getInt(String name, int defaultValue) {
|
||||
// Value result = value.getOrDefault(name, Value.Null);
|
||||
// if(result.isNull()) return defaultValue;
|
||||
// else return (int) result.asInteger();
|
||||
// }
|
||||
//
|
||||
// @Override
|
||||
// public boolean getBoolean(String name) {
|
||||
// return value.get(name).asBoolean();
|
||||
// }
|
||||
//
|
||||
// @Override
|
||||
// public boolean getBoolean(String name, boolean defaultValue) {
|
||||
// Value result = value.getOrDefault(name, Value.Null);
|
||||
// if(result.isNull()) return defaultValue;
|
||||
// else return result.asBoolean();
|
||||
// }
|
||||
//
|
||||
// @Override
|
||||
// public boolean isNull(String name) {
|
||||
// return value.isNull();
|
||||
// }
|
||||
//
|
||||
// @Override
|
||||
// public int size() {
|
||||
// return value.size();
|
||||
// }
|
||||
//
|
||||
// @Override
|
||||
// public boolean isEmpty() {
|
||||
// return value.size() == 0;
|
||||
// }
|
||||
//
|
||||
// @Override
|
||||
// public boolean contains(Object o) {
|
||||
// boolean result = false;
|
||||
// switch (value.type()) {
|
||||
// case ARRAY:
|
||||
// for(Value v : value.asArray()) {
|
||||
// if(v == o) {
|
||||
// result = true;
|
||||
// break;
|
||||
// }
|
||||
// }
|
||||
// break;
|
||||
// case OBJECT:
|
||||
// for(Map.Entry<String, Value> entry : value.asObject()) {
|
||||
// if(entry.getValue() == o) {
|
||||
// result = true;
|
||||
// break;
|
||||
// }
|
||||
// }
|
||||
// break;
|
||||
// default:
|
||||
// throw newThrowable(ClassCastException.class, "This value is not of type %s", ValueType.ARRAY);
|
||||
// }
|
||||
// return result;
|
||||
// }
|
||||
//
|
||||
// @Override
|
||||
// public Iterator<JsonValue> iterator() {
|
||||
// return new Iterator<>() {
|
||||
// private final Iterator<Value> it = value.asArray().iterator();
|
||||
// @Override
|
||||
// public boolean hasNext() {
|
||||
// return it.hasNext();
|
||||
// }
|
||||
//
|
||||
// @Override
|
||||
// public JsonValue next() {
|
||||
// return new WsonJsonValue(it.next());
|
||||
// }
|
||||
// };
|
||||
// }
|
||||
//
|
||||
// @Override
|
||||
// public Object[] toArray() {
|
||||
// return new Object[0];
|
||||
// }
|
||||
//
|
||||
// @Override
|
||||
// public <T> T[] toArray(T[] a) {
|
||||
// return null;
|
||||
// }
|
||||
//
|
||||
// @Override
|
||||
// public boolean add(JsonValue jsonValue) {
|
||||
// return false;
|
||||
// }
|
||||
//
|
||||
// @Override
|
||||
// public boolean remove(Object o) {
|
||||
// return false;
|
||||
// }
|
||||
//
|
||||
// @Override
|
||||
// public boolean containsAll(Collection<?> c) {
|
||||
// return false;
|
||||
// }
|
||||
//
|
||||
// @Override
|
||||
// public boolean addAll(Collection<? extends JsonValue> c) {
|
||||
// return false;
|
||||
// }
|
||||
//
|
||||
// @Override
|
||||
// public boolean addAll(int index, Collection<? extends JsonValue> c) {
|
||||
// return false;
|
||||
// }
|
||||
//
|
||||
// @Override
|
||||
// public boolean removeAll(Collection<?> c) {
|
||||
// return false;
|
||||
// }
|
||||
//
|
||||
// @Override
|
||||
// public boolean retainAll(Collection<?> c) {
|
||||
// return false;
|
||||
// }
|
||||
//
|
||||
// @Override
|
||||
// public void clear() {
|
||||
//
|
||||
// }
|
||||
//
|
||||
// @Override
|
||||
// public JsonValue get(int index) {
|
||||
// return null;
|
||||
// }
|
||||
//
|
||||
// @Override
|
||||
// public JsonValue set(int index, JsonValue element) {
|
||||
// return null;
|
||||
// }
|
||||
//
|
||||
// @Override
|
||||
// public void add(int index, JsonValue element) {
|
||||
//
|
||||
// }
|
||||
//
|
||||
// @Override
|
||||
// public JsonValue remove(int index) {
|
||||
// return null;
|
||||
// }
|
||||
//
|
||||
// @Override
|
||||
// public int indexOf(Object o) {
|
||||
// return 0;
|
||||
// }
|
||||
//
|
||||
// @Override
|
||||
// public int lastIndexOf(Object o) {
|
||||
// return 0;
|
||||
// }
|
||||
//
|
||||
// @Override
|
||||
// public ListIterator<JsonValue> listIterator() {
|
||||
// return null;
|
||||
// }
|
||||
//
|
||||
// @Override
|
||||
// public ListIterator<JsonValue> listIterator(int index) {
|
||||
// return null;
|
||||
// }
|
||||
//
|
||||
// @Override
|
||||
// public List<JsonValue> subList(int fromIndex, int toIndex) {
|
||||
// return null;
|
||||
// }
|
||||
//
|
||||
// @Override
|
||||
// public boolean containsKey(Object key) {
|
||||
// return false;
|
||||
// }
|
||||
//
|
||||
// @Override
|
||||
// public boolean containsValue(Object value) {
|
||||
// return false;
|
||||
// }
|
||||
//
|
||||
// @Override
|
||||
// public JsonValue get(Object key) {
|
||||
// return null;
|
||||
// }
|
||||
//
|
||||
// @Override
|
||||
// public JsonValue put(String key, JsonValue value) {
|
||||
// return null;
|
||||
// }
|
||||
//
|
||||
// @Override
|
||||
// public void putAll(Map<? extends String, ? extends JsonValue> m) {
|
||||
//
|
||||
// }
|
||||
//
|
||||
// @Override
|
||||
// public Set<String> keySet() {
|
||||
// return null;
|
||||
// }
|
||||
//
|
||||
// @Override
|
||||
// public Collection<JsonValue> values() {
|
||||
// return null;
|
||||
// }
|
||||
//
|
||||
// @Override
|
||||
// public Set<Entry<String, JsonValue>> entrySet() {
|
||||
// return null;
|
||||
// }
|
||||
//
|
||||
// @Override
|
||||
// public JsonObject asJsonObject() {
|
||||
// return this;
|
||||
// }
|
||||
//
|
||||
// @Override
|
||||
// public JsonArray asJsonArray() {
|
||||
// return this;
|
||||
// }
|
||||
}
|
Reference in New Issue
Block a user