001package Torello.Browser.JsonAST; 002 003/** 004 * Enumerates the JSON property names that may appear within their JSON protocol definitions. 005 * These files 006 * 007 * <B><CODE><A HREF='../doc-files/protocol_as_json/browser_protocol.json'> 008 * browser_protocol.json</A></CODE></B> 009 * and 010 * <B><CODE><A HREF='../doc-files/protocol_as_json/js_protocol.json'> 011 * js_protocol.json</A></CODE></B> 012 * 013 * contain the full specs for each of these APIs. 014 * 015 * <BR /><BR /> 016 * Each constant represents a field that could be present when describing a domain, type, command, 017 * event, property, parameter or return-value. Instances of this enum are recorded in AST nodes to 018 * keep track of which properties were included. This enum, effectively, enables writing 019 * statistics & diagnostics about these two {@code'.json'}-Files about the protocol as a whole. 020 * 021 * <EMBED CLASS='external-html' DATA-FILE-ID=ENUM_PROP_NAME> 022 * <EMBED CLASS='external-html' DATA-FILE-ID=ENUM_PROP_NAME_CGPT> 023 */ 024public enum PropName 025{ 026 /** 027 * Protocol property {@code "type"}, indicating the schema type of the value. 028 * <EMBED CLASS='external-html' DATA-FILE-ID=PN_01_TYPE> 029 */ 030 TYPE, 031 032 /** 033 * Protocol property {@code "name"}, the identifier of a {@link PPR} or a "command" or "event". 034 * <EMBED CLASS='external-html' DATA-FILE-ID=PN_02_NAME> 035 */ 036 NAME, 037 038 /** 039 * Protocol property {@code "id"}, the unique identifier for a "type" definition. 040 * <EMBED CLASS='external-html' DATA-FILE-ID=PN_03_ID> 041 */ 042 ID, 043 044 /** 045 * Protocol property {@code "domain"}, the name of the domain that owns this definition. 046 * <EMBED CLASS='external-html' DATA-FILE-ID=PN_04_DOMAIN> 047 */ 048 DOMAIN, 049 050 /** 051 * Protocol array {@code "types"}, containing schema type definitions for a domain. 052 * <EMBED CLASS='external-html' DATA-FILE-ID=PN_05_TYPES> 053 */ 054 TYPES, 055 056 /** 057 * Protocol array {@code "commands"}, listing all commands defined by a domain. 058 * <EMBED CLASS='external-html' DATA-FILE-ID=PN_06_COMMANDS> 059 */ 060 COMMANDS, 061 062 /** 063 * Protocol array {@code "events"}, listing all events defined by a domain. 064 * <EMBED CLASS='external-html' DATA-FILE-ID=PN_07_EVENTS> 065 */ 066 EVENTS, 067 068 /** 069 * Protocol array {@code "properties"}, defining the fields of an object type. 070 * <EMBED CLASS='external-html' DATA-FILE-ID=PN_08_PROPERTIES> 071 */ 072 PROPERTIES, 073 074 /** 075 * Protocol array {@code "parameters"}, defining the inputs accepted by a command. 076 * <EMBED CLASS='external-html' DATA-FILE-ID=PN_09_PARAMETERS> 077 */ 078 PARAMETERS, 079 080 /** 081 * Protocol array {@code "returns"}, defining the return values of a command. 082 * <EMBED CLASS='external-html' DATA-FILE-ID=PN_10_RETURNS> 083 */ 084 RETURNS, 085 086 /** 087 * Protocol flag {@code "optional"}, a boolean marker for nullable parameters or properties. 088 * <EMBED CLASS='external-html' DATA-FILE-ID=PN_11_OPTIONAL> 089 */ 090 OPTIONAL, 091 092 /** 093 * Protocol flag {@code "experimental"}, a boolean marker for unstable or evolving features. 094 * <EMBED CLASS='external-html' DATA-FILE-ID=PN_12_EXPERIMENTAL> 095 */ 096 EXPERIMENTAL, 097 098 /** 099 * Protocol flag {@code "deprecated"}, a boolean marker for obsolete definitions. 100 * <EMBED CLASS='external-html' DATA-FILE-ID=PN_13_DEPRECATED> 101 */ 102 DEPRECATED, 103 104 /** 105 * Protocol property {@code "description"}, free-form text documenting the definition. 106 * <EMBED CLASS='external-html' DATA-FILE-ID=PN_14_DESCRIPTION> 107 */ 108 DESCRIPTION, 109 110 /** 111 * Protocol array {@code "dependencies"}, listing domains or types this one relies on. 112 * <EMBED CLASS='external-html' DATA-FILE-ID=PN_15_DEPENDENCIES> 113 */ 114 DEPENDENCIES, 115 116 /** 117 * Protocol property {@code "enum"}, enumerating the fixed literal values allowed. 118 * <EMBED CLASS='external-html' DATA-FILE-ID=PN_16_ENUM> 119 */ 120 ENUM, 121 122 /** 123 * Protocol property {@code "items"}, defining the element type of an array schema. 124 * <EMBED CLASS='external-html' DATA-FILE-ID=PN_17_ITEMS> 125 */ 126 ITEMS, 127 128 /** 129 * Protocol property {@code "redirect"}, marking this type as an alias of another. 130 * <EMBED CLASS='external-html' DATA-FILE-ID=PN_18_REDIRECT> 131 */ 132 REDIRECT, 133 134 /** 135 * Protocol property {@code "$ref"}, referencing another type definition by name. 136 * <EMBED CLASS='external-html' DATA-FILE-ID=PN_19_REF> 137 */ 138 $REF; 139}