| /* |
| * Copyright 2010 Google Inc. |
| * |
| * 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 elemental.json; |
| |
| import java.io.Serializable; |
| |
| /** |
| * Base interface for all Json values. |
| */ |
| public interface JsonValue extends Serializable { |
| |
| /** |
| * Coerces underlying value to boolean according to the rules of Javascript coercion. |
| */ |
| boolean asBoolean(); |
| |
| /** |
| * Coerces the underlying value to a number according to the rules of Javascript coercion. |
| */ |
| double asNumber(); |
| |
| /** |
| * Coerces the underlying value to a String according to the rules of JavaScript coercion. |
| */ |
| String asString(); |
| |
| /** |
| * Returns an enumeration representing the fundamental JSON type. |
| */ |
| JsonType getType(); |
| |
| /** |
| * Returns a serialized JSON string representing this value. |
| * @return |
| */ |
| String toJson(); |
| |
| /** |
| * Equivalent of Javascript '==' operator comparison between two values. |
| */ |
| boolean jsEquals(JsonValue value); |
| |
| |
| /** |
| * If used in a GWT context (dev or prod mode), converts the object to a native JavaScriptObject |
| * suitable for passing to JSNI methods. Otherwise, returns the current object in other contexts, |
| * such as server-side use. |
| */ |
| Object toNative(); |
| } |