diff options
Diffstat (limited to 'platform/script-debugger/protocol/protocol-reader-runtime/src/org/jetbrains/jsonProtocol/JsonType.java')
-rw-r--r-- | platform/script-debugger/protocol/protocol-reader-runtime/src/org/jetbrains/jsonProtocol/JsonType.java | 25 |
1 files changed, 25 insertions, 0 deletions
diff --git a/platform/script-debugger/protocol/protocol-reader-runtime/src/org/jetbrains/jsonProtocol/JsonType.java b/platform/script-debugger/protocol/protocol-reader-runtime/src/org/jetbrains/jsonProtocol/JsonType.java new file mode 100644 index 000000000000..79dc453ac9fb --- /dev/null +++ b/platform/script-debugger/protocol/protocol-reader-runtime/src/org/jetbrains/jsonProtocol/JsonType.java @@ -0,0 +1,25 @@ +// Copyright (c) 2009 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +package org.jetbrains.jsonProtocol; + +import java.lang.annotation.ElementType; +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; +import java.lang.annotation.Target; + +/** + * Marks an interface as interface to json type object. This way user may hold JSON object in + * form of statically typed Java interface. The interface provides methods for reading properties + * (here called fields, because we imply there are "types" in JSON) and for accessing subtypes. + * <p/> + * In this design casting to subtypes means getting a different object of the subtype interface. + * For a type interface, a set of subtypes is defined by its methods + * with {@link JsonSubtypeCasting} annotation. These methods provide access to subtype objects. + */ +@Target({ElementType.TYPE}) +@Retention(RetentionPolicy.RUNTIME) +public @interface JsonType { + boolean allowsOtherProperties() default false; +} |