All idl objects (protocols, records, messages, errors, etc) that can be namespaced can also accept arbitrary attribute decorations.
idl can be decorated with these arbitrary attributes and the avro tools converter from idl to avro schema maintains these as top-level attributes under the specific record for either the protocol, record, message, etc.
Example (IDL):
@linksFrom("com.inome.testTypeA")
@linksTo("com.inome.testTypeB")
record EdgeAType { string property = ""; }
The output of this should go on the specific details page for each type of object. Probably as simply a separate table of key-value properties as the keys and values are just arbitrary strings. However, if a specific namespaced type is discovered in either place, an appropriate link should be generated.
All idl objects (protocols, records, messages, errors, etc) that can be namespaced can also accept arbitrary attribute decorations.
idl can be decorated with these arbitrary attributes and the avro tools converter from idl to avro schema maintains these as top-level attributes under the specific record for either the protocol, record, message, etc.
Example (IDL): @linksFrom("com.inome.testTypeA") @linksTo("com.inome.testTypeB") record EdgeAType { string property = ""; }
Example (Avro SCHEMA): { "type" : "record", "name" : "EdgeAType", "namespace" : "com.inome", "doc" : "Some documentation.", "fields" : [ { "name" : "field1", "type" : [ "null", "com.inome.X" ], "doc" : "Some documentation", "default" : null } ], "linksFrom" : "com.inome.testTypeA", "linksTo" : "com.inome.testTypeB" }
The output of this should go on the specific details page for each type of object. Probably as simply a separate table of key-value properties as the keys and values are just arbitrary strings. However, if a specific namespaced type is discovered in either place, an appropriate link should be generated.