/* * 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; /** * JSON Reader. * * @author Takao Nakaguchi * * @since 1.0.6 */ public abstract class JsonReader { private ModelReader modelReader; /** * The constructor. * * @param modelReader the model reader */ public JsonReader(ModelReader modelReader){ this.modelReader = modelReader; } /** * Read the text. * * @return text */ public abstract String read(); /** * Reade the property value of object. * * @param name the name * @return property value */ public abstract String readProperty(String name); /** * Get the model reader * * @return model reader */ ModelReader getModelReader(){ return modelReader; } /** * Read the model. * * @param <T> the type of model * @param clazz the class * @param maxDepth the max depth * @param currentDepth the current depth * @return model */ <T> T readModel(Class<T> clazz, int maxDepth, int currentDepth){ return modelReader.read(this, clazz, maxDepth, currentDepth); } }