Repository: johnzon
Updated Branches:
  refs/heads/master 17fdff13f -> 64812f4af


some jsonp 1.1 impl - to check more once Mark will have fixed the build


Project: http://git-wip-us.apache.org/repos/asf/johnzon/repo
Commit: http://git-wip-us.apache.org/repos/asf/johnzon/commit/64812f4a
Tree: http://git-wip-us.apache.org/repos/asf/johnzon/tree/64812f4a
Diff: http://git-wip-us.apache.org/repos/asf/johnzon/diff/64812f4a

Branch: refs/heads/master
Commit: 64812f4aff50d16173f7b0b58fa7516161ba2d9d
Parents: 17fdff1
Author: rmannibucau <[email protected]>
Authored: Tue Mar 28 12:57:56 2017 +0200
Committer: rmannibucau <[email protected]>
Committed: Tue Mar 28 12:57:56 2017 +0200

----------------------------------------------------------------------
 .../johnzon/core/JsonArrayBuilderImpl.java      | 190 ++++++++++++++++---
 .../org/apache/johnzon/core/JsonDoubleImpl.java |   5 +
 .../org/apache/johnzon/core/JsonLongImpl.java   |   5 +
 .../org/apache/johnzon/core/JsonNumberImpl.java |   5 +
 .../johnzon/core/JsonObjectBuilderImpl.java     |   4 +-
 .../johnzon/core/JsonStreamParserImpl.java      |   4 -
 .../org/apache/johnzon/core/JsonWriterImpl.java |  47 +++--
 7 files changed, 217 insertions(+), 43 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/johnzon/blob/64812f4a/johnzon-core/src/main/java/org/apache/johnzon/core/JsonArrayBuilderImpl.java
----------------------------------------------------------------------
diff --git 
a/johnzon-core/src/main/java/org/apache/johnzon/core/JsonArrayBuilderImpl.java 
b/johnzon-core/src/main/java/org/apache/johnzon/core/JsonArrayBuilderImpl.java
index 69e2281..72caf57 100644
--- 
a/johnzon-core/src/main/java/org/apache/johnzon/core/JsonArrayBuilderImpl.java
+++ 
b/johnzon-core/src/main/java/org/apache/johnzon/core/JsonArrayBuilderImpl.java
@@ -48,6 +48,150 @@ class JsonArrayBuilderImpl implements JsonArrayBuilder, 
Serializable {
         }
     }
 
+    @Override
+    public JsonArrayBuilder addAll(final JsonArrayBuilder builder) {
+        builder.build().forEach(this::add);
+        return this;
+    }
+
+    @Override
+    public JsonArrayBuilder add(final int index, final JsonValue value) {
+        addValue(index, value);
+        return this;
+    }
+
+    @Override
+    public JsonArrayBuilder add(final int index, final String value) {
+        addValue(index, new JsonStringImpl(value));
+        return this;
+    }
+
+    @Override
+    public JsonArrayBuilder add(final int index, final BigDecimal value) {
+        addValue(index, new JsonNumberImpl(value));
+        return this;
+    }
+
+    @Override
+    public JsonArrayBuilder add(final int index, final BigInteger value) {
+        addValue(index, new JsonNumberImpl(new BigDecimal(value)));
+        return this;
+    }
+
+    @Override
+    public JsonArrayBuilder add(final int index, final int value) {
+        addValue(index, new JsonLongImpl(value));
+        return this;
+    }
+
+    @Override
+    public JsonArrayBuilder add(final int index, final long value) {
+        addValue(index, new JsonLongImpl(value));
+        return this;
+    }
+
+    @Override
+    public JsonArrayBuilder add(final int index, final double value) {
+        addValue(index, new JsonDoubleImpl(value));
+        return this;
+    }
+
+    @Override
+    public JsonArrayBuilder add(final int index, final boolean value) {
+        addValue(index, value ? JsonValue.TRUE : JsonValue.FALSE);
+        return this;
+    }
+
+    @Override
+    public JsonArrayBuilder addNull(final int index) {
+        addValue(index, JsonValue.NULL);
+        return this;
+    }
+
+    @Override
+    public JsonArrayBuilder add(final int index, final JsonObjectBuilder 
builder) {
+        addValue(index, builder.build());
+        return this;
+    }
+
+    @Override
+    public JsonArrayBuilder add(final int index, final JsonArrayBuilder 
builder) {
+        addValue(index, builder.build());
+        return this;
+    }
+
+    @Override
+    public JsonArrayBuilder set(final int index, final JsonValue value) {
+        setValue(index, value);
+        return this;
+    }
+
+    @Override
+    public JsonArrayBuilder set(final int index, final String value) {
+        setValue(index, new JsonStringImpl(value));
+        return this;
+    }
+
+    @Override
+    public JsonArrayBuilder set(final int index, final BigDecimal value) {
+        setValue(index, new JsonNumberImpl(value));
+        return this;
+    }
+
+    @Override
+    public JsonArrayBuilder set(final int index, final BigInteger value) {
+        setValue(index, new JsonNumberImpl(new BigDecimal(value)));
+        return this;
+    }
+
+    @Override
+    public JsonArrayBuilder set(final int index, final int value) {
+        setValue(index, new JsonLongImpl(value));
+        return this;
+    }
+
+    @Override
+    public JsonArrayBuilder set(final int index, final long value) {
+        setValue(index, new JsonLongImpl(value));
+        return this;
+    }
+
+    @Override
+    public JsonArrayBuilder set(final int index, final double value) {
+        setValue(index, new JsonDoubleImpl(value));
+        return this;
+    }
+
+    @Override
+    public JsonArrayBuilder set(final int index, final boolean value) {
+        setValue(index, value ? JsonValue.TRUE : JsonValue.FALSE);
+        return this;
+    }
+
+    @Override
+    public JsonArrayBuilder setNull(final int index) {
+        setValue(index, JsonValue.NULL);
+        return this;
+    }
+
+    @Override
+    public JsonArrayBuilder set(final int index, final JsonObjectBuilder 
builder) {
+        setValue(index, builder.build());
+        return this;
+    }
+
+    @Override
+    public JsonArrayBuilder set(final int index, final JsonArrayBuilder 
builder) {
+        setValue(index, builder.build());
+        return this;
+    }
+
+    @Override
+    public JsonArrayBuilder remove(final int index) {
+        tmpList.remove(index);
+        return this;
+    }
+
     public JsonArrayBuilder add(final Object value) {
         if (value instanceof JsonValue) {
             add((JsonValue) value);
@@ -74,93 +218,95 @@ class JsonArrayBuilderImpl implements JsonArrayBuilder, 
Serializable {
 
         @Override
     public JsonArrayBuilder add(final JsonValue value) {
-        addValue(value);
+        addValue(tmpList.size(), value);
         return this;
     }
 
     @Override
     public JsonArrayBuilder add(final String value) {
-        addValue(new JsonStringImpl(value));
+        addValue(tmpList.size(), new JsonStringImpl(value));
         return this;
     }
 
     @Override
     public JsonArrayBuilder add(final BigDecimal value) {
-        addValue(new JsonNumberImpl(value));
+        addValue(tmpList.size(), new JsonNumberImpl(value));
         return this;
     }
 
     @Override
     public JsonArrayBuilder add(final BigInteger value) {
-        addValue(new JsonNumberImpl(new BigDecimal(value)));
+        addValue(tmpList.size(), new JsonNumberImpl(new BigDecimal(value)));
         return this;
     }
 
     @Override
     public JsonArrayBuilder add(final int value) {
-        addValue(new JsonLongImpl(value));
+        addValue(tmpList.size(), new JsonLongImpl(value));
         return this;
     }
 
     @Override
     public JsonArrayBuilder add(final long value) {
-        addValue(new JsonLongImpl(value));
+        addValue(tmpList.size(), new JsonLongImpl(value));
         return this;
     }
 
     @Override
     public JsonArrayBuilder add(final double value) {
-        addValue(new JsonDoubleImpl(value));
+        addValue(tmpList.size(), new JsonDoubleImpl(value));
         return this;
     }
 
     @Override
     public JsonArrayBuilder add(final boolean value) {
-        addValue(value ? JsonValue.TRUE : JsonValue.FALSE);
+        addValue(tmpList.size(), value ? JsonValue.TRUE : JsonValue.FALSE);
         return this;
     }
 
     @Override
     public JsonArrayBuilder addNull() {
-        addValue(JsonValue.NULL);
+        addValue(tmpList.size(), JsonValue.NULL);
         return this;
     }
 
     @Override
     public JsonArrayBuilder add(final JsonObjectBuilder builder) {
-        addValue(builder.build());
+        addValue(tmpList.size(), builder.build());
         return this;
     }
 
     @Override
     public JsonArrayBuilder add(final JsonArrayBuilder builder) {
-        addValue(builder.build());
+        addValue(tmpList.size(), builder.build());
         return this;
     }
     
-    private void addValue(JsonValue value){
+    private void setValue(int idx, JsonValue value){
+        if (value == null || tmpList == null) {
+            throw npe();
+        }
+        tmpList.set(idx, value);
+    }
+
+    private void addValue(int idx, JsonValue value){
         if (value == null) {
             throw npe();
         }
-        
+
         if(tmpList==null){
             tmpList=new ArrayList<>();
         }
-        
-        tmpList.add(value);
+
+        tmpList.add(idx, value);
     }
 
     @Override
     public JsonArray build() {
-        
         if(tmpList == null) {
-            return new JsonArrayImpl(Collections.EMPTY_LIST);
-        } else {
-            List<JsonValue> dump = (Collections.unmodifiableList(tmpList));
-            tmpList=null;
-            return new JsonArrayImpl(dump);
+            return new JsonArrayImpl(Collections.emptyList());
         }
-        
+        return new JsonArrayImpl(Collections.unmodifiableList(tmpList));
     }
 
     private static NullPointerException npe() {

http://git-wip-us.apache.org/repos/asf/johnzon/blob/64812f4a/johnzon-core/src/main/java/org/apache/johnzon/core/JsonDoubleImpl.java
----------------------------------------------------------------------
diff --git 
a/johnzon-core/src/main/java/org/apache/johnzon/core/JsonDoubleImpl.java 
b/johnzon-core/src/main/java/org/apache/johnzon/core/JsonDoubleImpl.java
index cff63c0..4238791 100644
--- a/johnzon-core/src/main/java/org/apache/johnzon/core/JsonDoubleImpl.java
+++ b/johnzon-core/src/main/java/org/apache/johnzon/core/JsonDoubleImpl.java
@@ -36,6 +36,11 @@ final class JsonDoubleImpl implements JsonNumber, 
Serializable {
     }
 
     @Override
+    public Number numberValue() {
+        return value;
+    }
+
+    @Override
     public boolean isIntegral() {
         return false;
     }

http://git-wip-us.apache.org/repos/asf/johnzon/blob/64812f4a/johnzon-core/src/main/java/org/apache/johnzon/core/JsonLongImpl.java
----------------------------------------------------------------------
diff --git 
a/johnzon-core/src/main/java/org/apache/johnzon/core/JsonLongImpl.java 
b/johnzon-core/src/main/java/org/apache/johnzon/core/JsonLongImpl.java
index 4068d9b..883bde5 100644
--- a/johnzon-core/src/main/java/org/apache/johnzon/core/JsonLongImpl.java
+++ b/johnzon-core/src/main/java/org/apache/johnzon/core/JsonLongImpl.java
@@ -31,6 +31,11 @@ public final class JsonLongImpl implements JsonNumber, 
Serializable {
     }
 
     @Override
+    public Number numberValue() {
+        return value;
+    }
+
+    @Override
     public boolean isIntegral() {
         return true;
     }

http://git-wip-us.apache.org/repos/asf/johnzon/blob/64812f4a/johnzon-core/src/main/java/org/apache/johnzon/core/JsonNumberImpl.java
----------------------------------------------------------------------
diff --git 
a/johnzon-core/src/main/java/org/apache/johnzon/core/JsonNumberImpl.java 
b/johnzon-core/src/main/java/org/apache/johnzon/core/JsonNumberImpl.java
index 9ad7752..13e518e 100644
--- a/johnzon-core/src/main/java/org/apache/johnzon/core/JsonNumberImpl.java
+++ b/johnzon-core/src/main/java/org/apache/johnzon/core/JsonNumberImpl.java
@@ -36,6 +36,11 @@ final class JsonNumberImpl implements JsonNumber, 
Serializable {
     }
 
     @Override
+    public Number numberValue() {
+        return value;
+    }
+
+    @Override
     public boolean isIntegral() {
         return value.scale() == 0;
     }

http://git-wip-us.apache.org/repos/asf/johnzon/blob/64812f4a/johnzon-core/src/main/java/org/apache/johnzon/core/JsonObjectBuilderImpl.java
----------------------------------------------------------------------
diff --git 
a/johnzon-core/src/main/java/org/apache/johnzon/core/JsonObjectBuilderImpl.java 
b/johnzon-core/src/main/java/org/apache/johnzon/core/JsonObjectBuilderImpl.java
index 1b727bd..69a2adb 100644
--- 
a/johnzon-core/src/main/java/org/apache/johnzon/core/JsonObjectBuilderImpl.java
+++ 
b/johnzon-core/src/main/java/org/apache/johnzon/core/JsonObjectBuilderImpl.java
@@ -143,9 +143,7 @@ class JsonObjectBuilderImpl implements JsonObjectBuilder, 
Serializable {
 
     @Override
     public JsonObjectBuilder addAll(JsonObjectBuilder builder) {
-        if (builder instanceof JsonObjectBuilderImpl) {
-            attributeMap.putAll(builder.build());
-        }
+        attributeMap.putAll(builder.build());
         return this;
     }
 

http://git-wip-us.apache.org/repos/asf/johnzon/blob/64812f4a/johnzon-core/src/main/java/org/apache/johnzon/core/JsonStreamParserImpl.java
----------------------------------------------------------------------
diff --git 
a/johnzon-core/src/main/java/org/apache/johnzon/core/JsonStreamParserImpl.java 
b/johnzon-core/src/main/java/org/apache/johnzon/core/JsonStreamParserImpl.java
index 6f34368..876ec78 100644
--- 
a/johnzon-core/src/main/java/org/apache/johnzon/core/JsonStreamParserImpl.java
+++ 
b/johnzon-core/src/main/java/org/apache/johnzon/core/JsonStreamParserImpl.java
@@ -838,10 +838,6 @@ public class JsonStreamParserImpl implements JsonChars, 
JsonParser{
         }
     }
 
-    boolean isNotTooLong() {
-        return (endOfValueInBuffer - startOfValueInBuffer) < 19;
-    }
-
     @Override
     public int getInt() {
         if (previousEvent != VALUE_NUMBER) {

http://git-wip-us.apache.org/repos/asf/johnzon/blob/64812f4a/johnzon-core/src/main/java/org/apache/johnzon/core/JsonWriterImpl.java
----------------------------------------------------------------------
diff --git 
a/johnzon-core/src/main/java/org/apache/johnzon/core/JsonWriterImpl.java 
b/johnzon-core/src/main/java/org/apache/johnzon/core/JsonWriterImpl.java
index e012ae1..2577f1f 100644
--- a/johnzon-core/src/main/java/org/apache/johnzon/core/JsonWriterImpl.java
+++ b/johnzon-core/src/main/java/org/apache/johnzon/core/JsonWriterImpl.java
@@ -18,15 +18,15 @@
  */
 package org.apache.johnzon.core;
 
-import java.io.Serializable;
-
 import javax.json.JsonArray;
 import javax.json.JsonObject;
 import javax.json.JsonStructure;
+import javax.json.JsonValue;
 import javax.json.JsonWriter;
 import javax.json.stream.JsonGenerator;
+import java.io.Serializable;
 
-class JsonWriterImpl implements JsonWriter, Serializable{
+class JsonWriterImpl implements JsonWriter, Serializable {
     private final JsonGenerator generator;
     private boolean closed = false;
 
@@ -37,37 +37,56 @@ class JsonWriterImpl implements JsonWriter, Serializable{
     @Override
     public void writeArray(final JsonArray array) {
         checkClosed();
-        generator.write(array);
-        close();
+        try {
+            generator.write(array);
+        } finally {
+            close();
+        }
     }
 
     @Override
     public void writeObject(final JsonObject object) {
         checkClosed();
-        generator.write(object);
-        close();
+        try {
+            generator.write(object);
+        } finally {
+            close();
+        }
+    }
+
+    @Override
+    public void write(final JsonValue value) {
+        checkClosed();
+        try {
+            generator.write(value);
+        } finally {
+            close();
+        }
     }
 
     @Override
     public void write(final JsonStructure value) {
         checkClosed();
-        generator.write(value);
-        close();
+        try {
+            generator.write(value);
+        } finally {
+            close();
+        }
     }
 
     @Override
     public void close() {
-        
-        if(!closed) {
+
+        if (!closed) {
             closed = true;
             generator.close();
         }
     }
-    
+
     private void checkClosed() {
-        if(closed) {
+        if (closed) {
             throw new IllegalStateException("writeArray(), writeObject(), 
write() or close() method was already called");
         }
-           
+
     }
 }

Reply via email to