/*
* Copyright 2004-2010 the original author or authors.
*
* 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.slim3.datastore.json;
import org.slim3.repackaged.org.json.JSONArray;
import org.slim3.repackaged.org.json.JSONException;
import org.slim3.repackaged.org.json.JSONObject;
/**
* JSON Reader.
*
* @author Takao Nakaguchi
*
* @since 1.0.6
*/
public class JsonRootReader {
private JSONObject jsonObject;
private ModelReader modelReader;
/**
* The constructor.
*
* @param json the JSON string
* @param modelReader the model reader
*/
public JsonRootReader(String json, ModelReader modelReader){
try{
this.jsonObject = new JSONObject(json);
} catch(JSONException e){
}
this.modelReader = modelReader;
}
/**
* The constructor.
*
* @param jsonObject the JSON Object
* @param modelReader the model reader
*/
JsonRootReader(JSONObject jsonObject, ModelReader modelReader){
this.jsonObject = jsonObject;
this.modelReader = modelReader;
}
/**
* Gets the model reader.
*
* @return model reader
*/
public ModelReader getModelReader(){
return modelReader;
}
/**
* Create the new JsonObjectReader.
*
* @param propertyName the property name
* @return JsonObjectReader
*/
public JsonObjectReader newObjectReader(String propertyName){
return new JsonObjectReader(jsonObject, propertyName, modelReader);
}
/**
* Creates the new JsonArrayReader.
*
* @param propertyName the property name
* @return JsonArrayReader
*/
public JsonArrayReader newArrayReader(String propertyName){
JSONArray array = jsonObject.optJSONArray(propertyName);
if(array == null) return null;
return new JsonArrayReader(array, modelReader);
}
}