You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@polygene.apache.org by ni...@apache.org on 2015/04/17 18:05:33 UTC
[13/50] [abbrv] zest-qi4j git commit: QI-318 Removed org.json package
from SPI, using dependency instead
QI-318 Removed org.json package from SPI, using dependency instead
Project: http://git-wip-us.apache.org/repos/asf/zest-qi4j/repo
Commit: http://git-wip-us.apache.org/repos/asf/zest-qi4j/commit/e428fa92
Tree: http://git-wip-us.apache.org/repos/asf/zest-qi4j/tree/e428fa92
Diff: http://git-wip-us.apache.org/repos/asf/zest-qi4j/diff/e428fa92
Branch: refs/heads/master
Commit: e428fa925871c5568527968c41e59dd00f2692ab
Parents: f875d7c
Author: Paul Merlin <pa...@nosphere.org>
Authored: Wed Feb 13 00:32:50 2013 +0100
Committer: Paul Merlin <pa...@nosphere.org>
Committed: Wed Feb 13 00:32:50 2013 +0100
----------------------------------------------------------------------
.../org/qi4j/runtime/mixin/JDKMixinTest.java | 38 +-
core/spi/build.gradle | 1 +
core/spi/src/main/java/org/json/JSONArray.java | 1195 -----------
.../src/main/java/org/json/JSONException.java | 45 -
core/spi/src/main/java/org/json/JSONObject.java | 1904 ------------------
core/spi/src/main/java/org/json/JSONString.java | 34 -
.../src/main/java/org/json/JSONStringer.java | 95 -
.../spi/src/main/java/org/json/JSONTokener.java | 501 -----
core/spi/src/main/java/org/json/JSONWriter.java | 429 ----
core/spi/src/main/java/org/json/package.html | 8 -
.../helpers/JSONManyAssociationState.java | 99 +-
.../helpers/JSONManyAssociationStateTest.java | 137 ++
libraries.gradle | 4 +
13 files changed, 233 insertions(+), 4257 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/zest-qi4j/blob/e428fa92/core/runtime/src/test/java/org/qi4j/runtime/mixin/JDKMixinTest.java
----------------------------------------------------------------------
diff --git a/core/runtime/src/test/java/org/qi4j/runtime/mixin/JDKMixinTest.java b/core/runtime/src/test/java/org/qi4j/runtime/mixin/JDKMixinTest.java
index 93799c2..f52a6c6 100644
--- a/core/runtime/src/test/java/org/qi4j/runtime/mixin/JDKMixinTest.java
+++ b/core/runtime/src/test/java/org/qi4j/runtime/mixin/JDKMixinTest.java
@@ -1,3 +1,18 @@
+/*
+ * Copyright (c) 2012, Paul Merlin. All Rights Reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ *
+ * You may obtain a copy of the License at
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
package org.qi4j.runtime.mixin;
import java.lang.reflect.Method;
@@ -38,6 +53,7 @@ public class JDKMixinTest
}
+ @SuppressWarnings( "serial" )
public static class ExtendsJDKMixin
extends HashMap<String, String>
implements JSONSerializableMap
@@ -47,7 +63,8 @@ public class JDKMixinTest
public JSONObject toJSON()
{
System.out.println( ">>>> Call ExtendsJDKMixin.toJSON()" );
- return new JSONObject( this );
+ // Copy the Map before handing it to JSONObject so that the JSONObject do not use the Composite
+ return new JSONObject( new HashMap<String, String>( this ) );
}
}
@@ -63,7 +80,8 @@ public class JDKMixinTest
public JSONObject toJSON()
{
System.out.println( ">>>> Call ComposeWithJDKMixin.toJSON()" );
- return new JSONObject( map );
+ // Copy the Map before handing it to JSONObject so that the JSONObject do not use the Composite
+ return new JSONObject( new HashMap<String, String>( map ) );
}
}
@@ -85,8 +103,8 @@ public class JDKMixinTest
private static final String EXTENDS_IDENTITY = ExtendsJDKMixin.class.getName();
private static final String COMPOSE_IDENTITY = ComposeWithJDKMixin.class.getName();
- private static final Specification<ServiceReference> EXTENDS_IDENTITY_SPEC = new ServiceIdentitySpec( EXTENDS_IDENTITY );
- private static final Specification<ServiceReference> COMPOSE_IDENTITY_SPEC = new ServiceIdentitySpec( COMPOSE_IDENTITY );
+ private static final Specification<ServiceReference<?>> EXTENDS_IDENTITY_SPEC = new ServiceIdentitySpec( EXTENDS_IDENTITY );
+ private static final Specification<ServiceReference<?>> COMPOSE_IDENTITY_SPEC = new ServiceIdentitySpec( COMPOSE_IDENTITY );
private static final List<String> CONCERN_RECORDS = new ArrayList<String>();
@Before
@@ -122,8 +140,8 @@ public class JDKMixinTest
assertThat( services.get( 0 ).identity(), equalTo( EXTENDS_IDENTITY ) );
JSONSerializableMap extending = services.get( 0 ).get();
- extending.put( "foo", "bar" );
- JSONObject json = extending.toJSON();
+ extending.put( "foo", "bar" ); // Concern trigger #1 (put)
+ JSONObject json = extending.toJSON(); // Concern trigger #2, #3 and #4 (toJSON, size, entrySet)
assertThat( json.length(), equalTo( 1 ) );
assertThat( json.optString( "foo" ), equalTo( "bar" ) );
@@ -142,8 +160,8 @@ public class JDKMixinTest
assertThat( services.get( 0 ).identity(), equalTo( COMPOSE_IDENTITY ) );
JSONSerializableMap composing = services.get( 0 ).get();
- composing.put( "foo", "bar" );
- JSONObject json = composing.toJSON();
+ composing.put( "foo", "bar" ); // Concern trigger #1 (put)
+ JSONObject json = composing.toJSON(); // Concern trigger #2, #3 and #4 (toJSON, size, entrySet)
assertThat( json.length(), equalTo( 1 ) );
assertThat( json.optString( "foo" ), equalTo( "bar" ) );
@@ -152,7 +170,7 @@ public class JDKMixinTest
}
private static class ServiceIdentitySpec
- implements Specification<ServiceReference>
+ implements Specification<ServiceReference<?>>
{
private final String identity;
@@ -163,7 +181,7 @@ public class JDKMixinTest
}
@Override
- public boolean satisfiedBy( ServiceReference item )
+ public boolean satisfiedBy( ServiceReference<?> item )
{
return item.identity().equals( identity );
}
http://git-wip-us.apache.org/repos/asf/zest-qi4j/blob/e428fa92/core/spi/build.gradle
----------------------------------------------------------------------
diff --git a/core/spi/build.gradle b/core/spi/build.gradle
index 8b6b977..7288303 100644
--- a/core/spi/build.gradle
+++ b/core/spi/build.gradle
@@ -3,6 +3,7 @@ jar { manifest { name = "Qi4j Core SPI"}}
dependencies {
compile project( ':org.qi4j.core:org.qi4j.core.api' )
+ compile libraries.org_json
testCompile project(":org.qi4j.core:org.qi4j.core.testsupport")
http://git-wip-us.apache.org/repos/asf/zest-qi4j/blob/e428fa92/core/spi/src/main/java/org/json/JSONArray.java
----------------------------------------------------------------------
diff --git a/core/spi/src/main/java/org/json/JSONArray.java b/core/spi/src/main/java/org/json/JSONArray.java
deleted file mode 100644
index fc29154..0000000
--- a/core/spi/src/main/java/org/json/JSONArray.java
+++ /dev/null
@@ -1,1195 +0,0 @@
-package org.json;
-/*
-Copyright (c) 2002 JSON.org
-
-Permission is hereby granted, free of charge, to any person obtaining a copy
-of this software and associated documentation files (the "Software"), to deal
-in the Software without restriction, including without limitation the rights
-to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-copies of the Software, and to permit persons to whom the Software is
-furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in all
-copies or substantial portions of the Software.
-
-The Software shall be used for Good, not Evil.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
-SOFTWARE.
-*/
-
-import java.io.IOException;
-import java.io.Writer;
-import java.lang.reflect.Array;
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.Iterator;
-import java.util.Map;
-
-/**
- * A JSONArray is an ordered sequence of values. Its external text form is a
- * string wrapped in square brackets with commas separating the values. The
- * internal form is an object having <code>get</code> and <code>opt</code>
- * methods for accessing the values by index, and <code>put</code> methods for
- * adding or replacing values. The values can be any of these types:
- * <code>Boolean</code>, <code>JSONArray</code>, <code>JSONObject</code>,
- * <code>Number</code>, <code>String</code>, or the
- * <code>JSONObject.NULL object</code>.
- * <p/>
- * The constructor can convert a JSON text into a Java object. The
- * <code>toString</code> method converts to JSON text.
- * <p/>
- * A <code>get</code> method returns a value if one can be found, and throws an
- * exception if one cannot be found. An <code>opt</code> method returns a
- * default value instead of throwing an exception, and so is useful for
- * obtaining optional values.
- * <p/>
- * The generic <code>get()</code> and <code>opt()</code> methods return an
- * object which you can cast or query for type. There are also typed
- * <code>get</code> and <code>opt</code> methods that do type checking and type
- * coercion for you.
- * <p/>
- * The texts produced by the <code>toString</code> methods strictly conform to
- * JSON syntax rules. The constructors are more forgiving in the texts they will
- * accept:
- * <ul>
- * <li>An extra <code>,</code> <small>(comma)</small> may appear just
- * before the closing bracket.</li>
- * <li>The <code>null</code> value will be inserted when there
- * is <code>,</code> <small>(comma)</small> elision.</li>
- * <li>Strings may be quoted with <code>'</code> <small>(single
- * quote)</small>.</li>
- * <li>Strings do not need to be quoted at all if they do not begin with a quote
- * or single quote, and if they do not contain leading or trailing spaces,
- * and if they do not contain any of these characters:
- * <code>{ } [ ] / \ : , = ; #</code> and if they do not look like numbers
- * and if they are not the reserved words <code>true</code>,
- * <code>false</code>, or <code>null</code>.</li>
- * <li>Values can be separated by <code>;</code> <small>(semicolon)</small> as
- * well as by <code>,</code> <small>(comma)</small>.</li>
- * <li>Numbers may have the <code>0-</code> <small>(octal)</small> or
- * <code>0x-</code> <small>(hex)</small> prefix.</li>
- * </ul>
- */
-public final class JSONArray
-{
-
- /**
- * The arrayList where the JSONArray's properties are kept.
- */
- private ArrayList myArrayList;
-
- /**
- * Construct an empty JSONArray.
- */
- public JSONArray()
- {
- this.myArrayList = new ArrayList();
- }
-
- /**
- * Construct a JSONArray from a JSONTokener.
- *
- * @param x A JSONTokener
- *
- * @throws JSONException If there is a syntax error.
- */
- public JSONArray( JSONTokener x )
- throws JSONException
- {
- this();
- char c = x.nextClean();
- char q;
- if( c == '[' )
- {
- q = ']';
- }
- else if( c == '(' )
- {
- q = ')';
- }
- else
- {
- throw x.syntaxError( "A JSONArray text must start with '['" );
- }
- if( x.nextClean() == ']' )
- {
- return;
- }
- x.back();
- for(; ; )
- {
- if( x.nextClean() == ',' )
- {
- x.back();
- this.myArrayList.add( null );
- }
- else
- {
- x.back();
- this.myArrayList.add( x.nextValue() );
- }
- c = x.nextClean();
- switch( c )
- {
- case ';':
- case ',':
- if( x.nextClean() == ']' )
- {
- return;
- }
- x.back();
- break;
- case ']':
- case ')':
- if( q != c )
- {
- throw x.syntaxError( "Expected a '" + Character.valueOf( q ) + "'" );
- }
- return;
- default:
- throw x.syntaxError( "Expected a ',' or ']'" );
- }
- }
- }
-
- /**
- * Construct a JSONArray from a source JSON text.
- *
- * @param source A string that begins with
- * <code>[</code> <small>(left bracket)</small>
- * and ends with <code>]</code> <small>(right bracket)</small>.
- *
- * @throws JSONException If there is a syntax error.
- */
- public JSONArray( String source )
- throws JSONException
- {
- this( new JSONTokener( source ) );
- }
-
- /**
- * Construct a JSONArray from a Collection.
- *
- * @param collection A Collection.
- */
- public JSONArray( Collection collection )
- {
- this.myArrayList = ( collection == null ) ?
- new ArrayList() :
- new ArrayList( collection );
- }
-
- /**
- * Construct a JSONArray from a collection of beans.
- * The collection should have Java Beans.
- *
- * @throws JSONException If not an array.
- */
-
- public JSONArray( Collection collection, boolean includeSuperClass )
- {
- this.myArrayList = new ArrayList();
- if( collection != null )
- {
- Iterator iter = collection.iterator();
- ;
- while( iter.hasNext() )
- {
- Object o = iter.next();
- if( o instanceof Map )
- {
- this.myArrayList.add( new JSONObject( (Map) o, includeSuperClass ) );
- }
- else if( !JSONObject.isStandardProperty( o.getClass() ) )
- {
- this.myArrayList.add( new JSONObject( o, includeSuperClass ) );
- }
- else
- {
- this.myArrayList.add( o );
- }
- }
- }
- }
-
- /**
- * Construct a JSONArray from an array
- *
- * @throws JSONException If not an array.
- */
- public JSONArray( Object array )
- throws JSONException
- {
- this();
- if( array.getClass().isArray() )
- {
- int length = Array.getLength( array );
- for( int i = 0; i < length; i += 1 )
- {
- this.put( Array.get( array, i ) );
- }
- }
- else
- {
- throw new JSONException( "JSONArray initial value should be a string or collection or array." );
- }
- }
-
- /**
- * Construct a JSONArray from an array with a bean.
- * The array should have Java Beans.
- *
- * @throws JSONException If not an array.
- */
- public JSONArray( Object array, boolean includeSuperClass )
- throws JSONException
- {
- this();
- if( array.getClass().isArray() )
- {
- int length = Array.getLength( array );
- for( int i = 0; i < length; i += 1 )
- {
- Object o = Array.get( array, i );
- if( JSONObject.isStandardProperty( o.getClass() ) )
- {
- this.myArrayList.add( o );
- }
- else
- {
- this.myArrayList.add( new JSONObject( o, includeSuperClass ) );
- }
- }
- }
- else
- {
- throw new JSONException( "JSONArray initial value should be a string or collection or array." );
- }
- }
-
- /**
- * Get the object value associated with an index.
- *
- * @param index The index must be between 0 and length() - 1.
- *
- * @return An object value.
- *
- * @throws JSONException If there is no value for the index.
- */
- public Object get( int index )
- throws JSONException
- {
- Object o = opt( index );
- if( o == null )
- {
- throw new JSONException( "JSONArray[" + index + "] not found." );
- }
- return o;
- }
-
- /**
- * Get the boolean value associated with an index.
- * The string values "true" and "false" are converted to boolean.
- *
- * @param index The index must be between 0 and length() - 1.
- *
- * @return The truth.
- *
- * @throws JSONException If there is no value for the index or if the
- * value is not convertable to boolean.
- */
- public boolean getBoolean( int index )
- throws JSONException
- {
- Object o = get( index );
- if( o.equals( Boolean.FALSE ) ||
- ( o instanceof String &&
- ( (String) o ).equalsIgnoreCase( "false" ) ) )
- {
- return false;
- }
- else if( o.equals( Boolean.TRUE ) ||
- ( o instanceof String &&
- ( (String) o ).equalsIgnoreCase( "true" ) ) )
- {
- return true;
- }
- throw new JSONException( "JSONArray[" + index + "] is not a Boolean." );
- }
-
- /**
- * Get the double value associated with an index.
- *
- * @param index The index must be between 0 and length() - 1.
- *
- * @return The value.
- *
- * @throws JSONException If the key is not found or if the value cannot
- * be converted to a number.
- */
- public double getDouble( int index )
- throws JSONException
- {
- Object o = get( index );
- try
- {
- return o instanceof Number ?
- ( (Number) o ).doubleValue() :
- Double.valueOf( (String) o ).doubleValue();
- }
- catch( Exception e )
- {
- throw new JSONException( "JSONArray[" + index +
- "] is not a number." );
- }
- }
-
- /**
- * Get the int value associated with an index.
- *
- * @param index The index must be between 0 and length() - 1.
- *
- * @return The value.
- *
- * @throws JSONException If the key is not found or if the value cannot
- * be converted to a number.
- * if the value cannot be converted to a number.
- */
- public int getInt( int index )
- throws JSONException
- {
- Object o = get( index );
- return o instanceof Number ?
- ( (Number) o ).intValue() : (int) getDouble( index );
- }
-
- /**
- * Get the JSONArray associated with an index.
- *
- * @param index The index must be between 0 and length() - 1.
- *
- * @return A JSONArray value.
- *
- * @throws JSONException If there is no value for the index. or if the
- * value is not a JSONArray
- */
- public JSONArray getJSONArray( int index )
- throws JSONException
- {
- Object o = get( index );
- if( o instanceof JSONArray )
- {
- return (JSONArray) o;
- }
- throw new JSONException( "JSONArray[" + index +
- "] is not a JSONArray." );
- }
-
- /**
- * Get the JSONObject associated with an index.
- *
- * @param index subscript
- *
- * @return A JSONObject value.
- *
- * @throws JSONException If there is no value for the index or if the
- * value is not a JSONObject
- */
- public JSONObject getJSONObject( int index )
- throws JSONException
- {
- Object o = get( index );
- if( o instanceof JSONObject )
- {
- return (JSONObject) o;
- }
- throw new JSONException( "JSONArray[" + index +
- "] is not a JSONObject." );
- }
-
- /**
- * Get the long value associated with an index.
- *
- * @param index The index must be between 0 and length() - 1.
- *
- * @return The value.
- *
- * @throws JSONException If the key is not found or if the value cannot
- * be converted to a number.
- */
- public long getLong( int index )
- throws JSONException
- {
- Object o = get( index );
- return o instanceof Number ?
- ( (Number) o ).longValue() : (long) getDouble( index );
- }
-
- /**
- * Get the string associated with an index.
- *
- * @param index The index must be between 0 and length() - 1.
- *
- * @return A string value.
- *
- * @throws JSONException If there is no value for the index.
- */
- public String getString( int index )
- throws JSONException
- {
- return get( index ).toString();
- }
-
- /**
- * Determine if the value is null.
- *
- * @param index The index must be between 0 and length() - 1.
- *
- * @return true if the value at the index is null, or if there is no value.
- */
- public boolean isNull( int index )
- {
- return JSONObject.NULL.equals( opt( index ) );
- }
-
- /**
- * Make a string from the contents of this JSONArray. The
- * <code>separator</code> string is inserted between each element.
- * Warning: This method assumes that the data structure is acyclical.
- *
- * @param separator A string that will be inserted between the elements.
- *
- * @return a string.
- *
- * @throws JSONException If the array contains an invalid number.
- */
- public String join( String separator )
- throws JSONException
- {
- int len = length();
- StringBuffer sb = new StringBuffer();
-
- for( int i = 0; i < len; i += 1 )
- {
- if( i > 0 )
- {
- sb.append( separator );
- }
- sb.append( JSONObject.valueToString( this.myArrayList.get( i ) ) );
- }
- return sb.toString();
- }
-
- /**
- * Get the number of elements in the JSONArray, included nulls.
- *
- * @return The length (or size).
- */
- public int length()
- {
- return this.myArrayList.size();
- }
-
- /**
- * Get the optional object value associated with an index.
- *
- * @param index The index must be between 0 and length() - 1.
- *
- * @return An object value, or null if there is no
- * object at that index.
- */
- public Object opt( int index )
- {
- return ( index < 0 || index >= length() ) ?
- null : this.myArrayList.get( index );
- }
-
- /**
- * Get the optional boolean value associated with an index.
- * It returns false if there is no value at that index,
- * or if the value is not Boolean.TRUE or the String "true".
- *
- * @param index The index must be between 0 and length() - 1.
- *
- * @return The truth.
- */
- public boolean optBoolean( int index )
- {
- return optBoolean( index, false );
- }
-
- /**
- * Get the optional boolean value associated with an index.
- * It returns the defaultValue if there is no value at that index or if
- * it is not a Boolean or the String "true" or "false" (case insensitive).
- *
- * @param index The index must be between 0 and length() - 1.
- * @param defaultValue A boolean default.
- *
- * @return The truth.
- */
- public boolean optBoolean( int index, boolean defaultValue )
- {
- try
- {
- return getBoolean( index );
- }
- catch( Exception e )
- {
- return defaultValue;
- }
- }
-
- /**
- * Get the optional double value associated with an index.
- * NaN is returned if there is no value for the index,
- * or if the value is not a number and cannot be converted to a number.
- *
- * @param index The index must be between 0 and length() - 1.
- *
- * @return The value.
- */
- public double optDouble( int index )
- {
- return optDouble( index, Double.NaN );
- }
-
- /**
- * Get the optional double value associated with an index.
- * The defaultValue is returned if there is no value for the index,
- * or if the value is not a number and cannot be converted to a number.
- *
- * @param index subscript
- * @param defaultValue The default value.
- *
- * @return The value.
- */
- public double optDouble( int index, double defaultValue )
- {
- try
- {
- return getDouble( index );
- }
- catch( Exception e )
- {
- return defaultValue;
- }
- }
-
- /**
- * Get the optional int value associated with an index.
- * Zero is returned if there is no value for the index,
- * or if the value is not a number and cannot be converted to a number.
- *
- * @param index The index must be between 0 and length() - 1.
- *
- * @return The value.
- */
- public int optInt( int index )
- {
- return optInt( index, 0 );
- }
-
- /**
- * Get the optional int value associated with an index.
- * The defaultValue is returned if there is no value for the index,
- * or if the value is not a number and cannot be converted to a number.
- *
- * @param index The index must be between 0 and length() - 1.
- * @param defaultValue The default value.
- *
- * @return The value.
- */
- public int optInt( int index, int defaultValue )
- {
- try
- {
- return getInt( index );
- }
- catch( Exception e )
- {
- return defaultValue;
- }
- }
-
- /**
- * Get the optional JSONArray associated with an index.
- *
- * @param index subscript
- *
- * @return A JSONArray value, or null if the index has no value,
- * or if the value is not a JSONArray.
- */
- public JSONArray optJSONArray( int index )
- {
- Object o = opt( index );
- return o instanceof JSONArray ? (JSONArray) o : null;
- }
-
- /**
- * Get the optional JSONObject associated with an index.
- * Null is returned if the key is not found, or null if the index has
- * no value, or if the value is not a JSONObject.
- *
- * @param index The index must be between 0 and length() - 1.
- *
- * @return A JSONObject value.
- */
- public JSONObject optJSONObject( int index )
- {
- Object o = opt( index );
- return o instanceof JSONObject ? (JSONObject) o : null;
- }
-
- /**
- * Get the optional long value associated with an index.
- * Zero is returned if there is no value for the index,
- * or if the value is not a number and cannot be converted to a number.
- *
- * @param index The index must be between 0 and length() - 1.
- *
- * @return The value.
- */
- public long optLong( int index )
- {
- return optLong( index, 0 );
- }
-
- /**
- * Get the optional long value associated with an index.
- * The defaultValue is returned if there is no value for the index,
- * or if the value is not a number and cannot be converted to a number.
- *
- * @param index The index must be between 0 and length() - 1.
- * @param defaultValue The default value.
- *
- * @return The value.
- */
- public long optLong( int index, long defaultValue )
- {
- try
- {
- return getLong( index );
- }
- catch( Exception e )
- {
- return defaultValue;
- }
- }
-
- /**
- * Get the optional string value associated with an index. It returns an
- * empty string if there is no value at that index. If the value
- * is not a string and is not null, then it is coverted to a string.
- *
- * @param index The index must be between 0 and length() - 1.
- *
- * @return A String value.
- */
- public String optString( int index )
- {
- return optString( index, "" );
- }
-
- /**
- * Get the optional string associated with an index.
- * The defaultValue is returned if the key is not found.
- *
- * @param index The index must be between 0 and length() - 1.
- * @param defaultValue The default value.
- *
- * @return A String value.
- */
- public String optString( int index, String defaultValue )
- {
- Object o = opt( index );
- return o != null ? o.toString() : defaultValue;
- }
-
- /**
- * Append a boolean value. This increases the array's length by one.
- *
- * @param value A boolean value.
- *
- * @return this.
- */
- public JSONArray put( boolean value )
- {
- put( value ? Boolean.TRUE : Boolean.FALSE );
- return this;
- }
-
- /**
- * Put a value in the JSONArray, where the value will be a
- * JSONArray which is produced from a Collection.
- *
- * @param value A Collection value.
- *
- * @return this.
- */
- public JSONArray put( Collection value )
- {
- put( new JSONArray( value ) );
- return this;
- }
-
- /**
- * Append a double value. This increases the array's length by one.
- *
- * @param value A double value.
- *
- * @return this.
- *
- * @throws JSONException if the value is not finite.
- */
- public JSONArray put( double value )
- throws JSONException
- {
- Double d = new Double( value );
- JSONObject.testValidity( d );
- put( d );
- return this;
- }
-
- /**
- * Append an int value. This increases the array's length by one.
- *
- * @param value An int value.
- *
- * @return this.
- */
- public JSONArray put( int value )
- {
- put( Integer.valueOf( value ) );
- return this;
- }
-
- /**
- * Append an long value. This increases the array's length by one.
- *
- * @param value A long value.
- *
- * @return this.
- */
- public JSONArray put( long value )
- {
- put( Long.valueOf( value ) );
- return this;
- }
-
- /**
- * Put a value in the JSONArray, where the value will be a
- * JSONObject which is produced from a Map.
- *
- * @param value A Map value.
- *
- * @return this.
- */
- public JSONArray put( Map value )
- {
- put( new JSONObject( value ) );
- return this;
- }
-
- /**
- * Append an object value. This increases the array's length by one.
- *
- * @param value An object value. The value should be a
- * Boolean, Double, Integer, JSONArray, JSONObject, Long, or String, or the
- * JSONObject.NULL object.
- *
- * @return this.
- */
- public JSONArray put( Object value )
- {
- this.myArrayList.add( value );
- return this;
- }
-
- /**
- * Put or replace a boolean value in the JSONArray. If the index is greater
- * than the length of the JSONArray, then null elements will be added as
- * necessary to pad it out.
- *
- * @param index The subscript.
- * @param value A boolean value.
- *
- * @return this.
- *
- * @throws JSONException If the index is negative.
- */
- public JSONArray put( int index, boolean value )
- throws JSONException
- {
- put( index, value ? Boolean.TRUE : Boolean.FALSE );
- return this;
- }
-
- /**
- * Put a value in the JSONArray, where the value will be a
- * JSONArray which is produced from a Collection.
- *
- * @param index The subscript.
- * @param value A Collection value.
- *
- * @return this.
- *
- * @throws JSONException If the index is negative or if the value is
- * not finite.
- */
- public JSONArray put( int index, Collection value )
- throws JSONException
- {
- put( index, new JSONArray( value ) );
- return this;
- }
-
- /**
- * Put or replace a double value. If the index is greater than the length of
- * the JSONArray, then null elements will be added as necessary to pad
- * it out.
- *
- * @param index The subscript.
- * @param value A double value.
- *
- * @return this.
- *
- * @throws JSONException If the index is negative or if the value is
- * not finite.
- */
- public JSONArray put( int index, double value )
- throws JSONException
- {
- put( index, new Double( value ) );
- return this;
- }
-
- /**
- * Put or replace an int value. If the index is greater than the length of
- * the JSONArray, then null elements will be added as necessary to pad
- * it out.
- *
- * @param index The subscript.
- * @param value An int value.
- *
- * @return this.
- *
- * @throws JSONException If the index is negative.
- */
- public JSONArray put( int index, int value )
- throws JSONException
- {
- put( index, Integer.valueOf( value ) );
- return this;
- }
-
- /**
- * Put or replace a long value. If the index is greater than the length of
- * the JSONArray, then null elements will be added as necessary to pad
- * it out.
- *
- * @param index The subscript.
- * @param value A long value.
- *
- * @return this.
- *
- * @throws JSONException If the index is negative.
- */
- public JSONArray put( int index, long value )
- throws JSONException
- {
- put( index, Long.valueOf( value ) );
- return this;
- }
-
- /**
- * Put a value in the JSONArray, where the value will be a
- * JSONObject which is produced from a Map.
- *
- * @param index The subscript.
- * @param value The Map value.
- *
- * @return this.
- *
- * @throws JSONException If the index is negative or if the the value is
- * an invalid number.
- */
- public JSONArray put( int index, Map value )
- throws JSONException
- {
- put( index, new JSONObject( value ) );
- return this;
- }
-
- /**
- * Put or replace an object value in the JSONArray. If the index is greater
- * than the length of the JSONArray, then null elements will be added as
- * necessary to pad it out.
- *
- * @param index The subscript.
- * @param value The value to put into the array. The value should be a
- * Boolean, Double, Integer, JSONArray, JSONObject, Long, or String, or the
- * JSONObject.NULL object.
- *
- * @return this.
- *
- * @throws JSONException If the index is negative or if the the value is
- * an invalid number.
- */
- public JSONArray put( int index, Object value )
- throws JSONException
- {
- JSONObject.testValidity( value );
- if( index < 0 )
- {
- throw new JSONException( "JSONArray[" + index + "] not found." );
- }
- if( index < length() )
- {
- this.myArrayList.set( index, value );
- }
- else
- {
- while( index != length() )
- {
- put( JSONObject.NULL );
- }
- put( value );
- }
- return this;
- }
-
- /**
- * Insert an object value in the JSONArray. If the index is greater
- * than the length of the JSONArray, then null elements will be added as
- * necessary to pad it out.
- *
- * @param index The subscript.
- * @param value The value to insert into the array. The value should be a
- * Boolean, Double, Integer, JSONArray, JSONObject, Long, or String, or the
- * JSONObject.NULL object.
- *
- * @return this.
- *
- * @throws JSONException If the index is negative or if the the value is
- * an invalid number.
- */
- public JSONArray insert( int index, Object value )
- throws JSONException
- {
- JSONObject.testValidity( value );
- if( index < 0 )
- {
- throw new JSONException( "JSONArray[" + index + "] not found." );
- }
- if( index < length() )
- {
- this.myArrayList.add( index, value );
- }
- else
- {
- while( index != length() )
- {
- put( JSONObject.NULL );
- }
- put( value );
- }
- return this;
- }
-
- /**
- * Remove a index and close the hole.
- *
- * @param index The index of the element to be removed.
- *
- * @return The value that was associated with the index,
- * or null if there was no value.
- */
- public Object remove( int index )
- {
- Object o = opt( index );
- this.myArrayList.remove( index );
- return o;
- }
-
- /**
- * Produce a JSONObject by combining a JSONArray of names with the values
- * of this JSONArray.
- *
- * @param names A JSONArray containing a list of key strings. These will be
- * paired with the values.
- *
- * @return A JSONObject, or null if there are no names or if this JSONArray
- * has no values.
- *
- * @throws JSONException If any of the names are null.
- */
- public JSONObject toJSONObject( JSONArray names )
- throws JSONException
- {
- if( names == null || names.length() == 0 || length() == 0 )
- {
- return null;
- }
- JSONObject jo = new JSONObject();
- for( int i = 0; i < names.length(); i += 1 )
- {
- jo.put( names.getString( i ), this.opt( i ) );
- }
- return jo;
- }
-
- /**
- * Make a JSON text of this JSONArray. For compactness, no
- * unnecessary whitespace is added. If it is not possible to produce a
- * syntactically correct JSON text then null will be returned instead. This
- * could occur if the array contains an invalid number.
- * <p/>
- * Warning: This method assumes that the data structure is acyclical.
- *
- * @return a printable, displayable, transmittable
- * representation of the array.
- */
- public String toString()
- {
- try
- {
- return '[' + join( "," ) + ']';
- }
- catch( Exception e )
- {
- return null;
- }
- }
-
- /**
- * Make a prettyprinted JSON text of this JSONArray.
- * Warning: This method assumes that the data structure is acyclical.
- *
- * @param indentFactor The number of spaces to add to each level of
- * indentation.
- *
- * @return a printable, displayable, transmittable
- * representation of the object, beginning
- * with <code>[</code> <small>(left bracket)</small> and ending
- * with <code>]</code> <small>(right bracket)</small>.
- *
- * @throws JSONException
- */
- public String toString( int indentFactor )
- throws JSONException
- {
- return toString( indentFactor, 0 );
- }
-
- /**
- * Make a prettyprinted JSON text of this JSONArray.
- * Warning: This method assumes that the data structure is acyclical.
- *
- * @param indentFactor The number of spaces to add to each level of
- * indentation.
- * @param indent The indention of the top level.
- *
- * @return a printable, displayable, transmittable
- * representation of the array.
- *
- * @throws JSONException
- */
- String toString( int indentFactor, int indent )
- throws JSONException
- {
- int len = length();
- if( len == 0 )
- {
- return "[]";
- }
- int i;
- StringBuffer sb = new StringBuffer( "[" );
- if( len == 1 )
- {
- sb.append( JSONObject.valueToString( this.myArrayList.get( 0 ),
- indentFactor, indent ) );
- }
- else
- {
- int newindent = indent + indentFactor;
- sb.append( '\n' );
- for( i = 0; i < len; i += 1 )
- {
- if( i > 0 )
- {
- sb.append( ",\n" );
- }
- for( int j = 0; j < newindent; j += 1 )
- {
- sb.append( ' ' );
- }
- sb.append( JSONObject.valueToString( this.myArrayList.get( i ),
- indentFactor, newindent ) );
- }
- sb.append( '\n' );
- for( i = 0; i < indent; i += 1 )
- {
- sb.append( ' ' );
- }
- }
- sb.append( ']' );
- return sb.toString();
- }
-
- /**
- * Write the contents of the JSONArray as JSON text to a writer.
- * For compactness, no whitespace is added.
- * <p/>
- * Warning: This method assumes that the data structure is acyclical.
- *
- * @return The writer.
- *
- * @throws JSONException
- */
- public Writer write( Writer writer )
- throws JSONException
- {
- try
- {
- boolean b = false;
- int len = length();
-
- writer.write( '[' );
-
- for( int i = 0; i < len; i += 1 )
- {
- if( b )
- {
- writer.write( ',' );
- }
- Object v = this.myArrayList.get( i );
- if( v instanceof JSONObject )
- {
- ( (JSONObject) v ).write( writer );
- }
- else if( v instanceof JSONArray )
- {
- ( (JSONArray) v ).write( writer );
- }
- else
- {
- writer.write( JSONObject.valueToString( v ) );
- }
- b = true;
- }
- writer.write( ']' );
- return writer;
- }
- catch( IOException e )
- {
- throw new JSONException( e );
- }
- }
-}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/zest-qi4j/blob/e428fa92/core/spi/src/main/java/org/json/JSONException.java
----------------------------------------------------------------------
diff --git a/core/spi/src/main/java/org/json/JSONException.java b/core/spi/src/main/java/org/json/JSONException.java
deleted file mode 100644
index 41f2375..0000000
--- a/core/spi/src/main/java/org/json/JSONException.java
+++ /dev/null
@@ -1,45 +0,0 @@
-/*
- * Copyright (c) 2009, Rickard Öberg. All Rights Reserved.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
- */
-
-package org.json;
-
-/**
- * The JSONException is thrown by the JSON.org classes then things are amiss.
- */
-public class JSONException
- extends Exception
-{
- private Throwable cause;
-
- /**
- * Constructs a JSONException with an explanatory message.
- *
- * @param message Detail about the reason for the exception.
- */
- public JSONException( String message )
- {
- super( message );
- }
-
- public JSONException( Throwable t )
- {
- super( t.getMessage() );
- this.cause = t;
- }
-
- public Throwable getCause()
- {
- return this.cause;
- }
-}