{8.1.3-new} Annotations

##### Serialization Annotations (used to modify how artifacts are marshalled)

Annotation | Description | Used On | Used By
--- | --- | --- | ---
{@link oaj.annotation.Bean} | Classes | All serializers and parsers | Tailors how beans get marshalled.
{@link oaj.annotation.Beanc} | Bean constructors | All serializers and parsers | Identifies bean constructors and property args.
{@link oaj.annotation.BeanIgnore} | Classes Fields Methods | All serializers and parsers | Prevents artifacts from being interpreted as beans/bean components.
{@link oaj.annotation.Beanp} | Methods Fields Constructor args | All serializers and parsers | Tailors how bean properties get marshalled.
{@link oaj.annotation.Builder} | Classes | All parsers | Identifies a class as a builder for a POJO class.
{@link oaj.csv.annotation.Csv} | Classes Methods Fields | {@link oaj.csv.CsvSerializer} {@link oaj.csv.CsvParser} | CSV-specific tweaks.
{@link oaj.annotation.Example} | Static methods Static fields Classes | {@link oaj.json.JsonSchemaSerializer} | Identifies examples for POJOs.
{@link oaj.html.annotation.Html} | Classes Methods Fields | {@link oaj.html.HtmlSerializer} {@link oaj.html.HtmlParser} | HTML-specific tweaks.
{@link oaj.html.annotation.HtmlLink} | Classes | {@link oaj.html.HtmlSerializer} | Defines how to construct hyperlinks on objects.
{@link oaj.jso.annotation.Jso} | Classes Methods Fields | {@link oaj.jso.JsoSerializer} {@link oaj.jso.JsoParser} | JSO-specific tweaks.
{@link oaj.json.annotation.Json} | Classes Methods Fields | {@link oaj.json.JsonSerializer} {@link oaj.json.JsonParser} | JSON-specific tweaks.
{@link oaj.msgpack.annotation.MsgPack} | Classes Methods Fields | {@link oaj.msgpack.MsgPackSerializer} {@link oaj.msgpack.MsgPackParser} | MessagePack-specific tweaks.
{@link oaj.annotation.Name} | Constructor args | All parsers | Maps constructor args to property names.
{@link oaj.annotation.NameProperty} | Methods Fields | All parsers | Identifies a 'name' property.
{@link oaj.oapi.annotation.OpenApi} | Classes Methods Fields | {@link oaj.oapi.OpenApiSerializer} {@link oaj.oapi.OpenApiParser} | OpenAPI-specific tweaks.
{@link oaj.annotation.ParentProperty} | Methods Fields | All parsers | Identifies a 'parent' property.
{@link oaj.plaintext.annotation.PlainText} | Classes Methods Fields | {@link oaj.plaintext.PlainTextSerializer} {@link oaj.plaintext.PlainTextParser} | PlainText-specific tweaks.
{@link oaj.jena.annotation.Rdf} | Classes Methods Fields | All RDF serializers and parsers | RDF-specific tweaks.
{@link oaj.jena.annotation.RdfSchema} | Packages | All RDF serializers and parsers | Identifies the default RDF namespaces at the package level.
{@link oaj.soap.annotation.SoapXml} | Classes Methods Fields | {@link oaj.soap.SoapXmlSerializer} | SOAP/XML-specific tweaks.
{@link oaj.annotation.Swap} | Classes Bean getters/setters Fields | All serializers and parsers | Associates swaps and surrogates with POJOs and bean properties.
{@link oaj.annotation.Swaps} | Classes | All serializers and parsers | Associates multiple swaps with the same POJO class.
{@link oaj.uon.annotation.Uon} | Classes Methods Fields | {@link oaj.uon.UonSerializer} {@link oaj.uon.UonParser} | UON-specific tweaks.
{@link oaj.annotation.URI} | Classes Methods Fields | HTML and XML serializers | Identifies a class or bean property as a URI.
{@link oaj.urlencoding.annotation.UrlEncoding} | Classes Methods Fields | {@link oaj.urlencoding.UrlEncodingSerializer} {@link oaj.urlencoding.UrlEncodingParser} | URL-Encoding-specific tweaks.
{@link oaj.xml.annotation.Xml} | Classes Methods Fields | {@link oaj.xml.XmlSerializer} {@link oaj.xml.XmlParser} | XML-specific tweaks.
{@link oaj.xml.annotation.XmlSchema} | Packages | XML serializers and parsers | Identifies the default XML namespaces at the package level.

##### Configuration Annotations (used to modify how serializers/parsers behave)

Annotation | Configures
--- | ---
{@link oaj.annotation.BeanConfig} | All serializers and parsers
{@link oaj.csv.annotation.CsvConfig} | {@link oaj.csv.CsvSerializer} {@link oaj.csv.CsvParser}
{@link oaj.html.annotation.HtmlConfig} | {@link oaj.html.HtmlSerializer} {@link oaj.html.HtmlParser}
{@link oaj.html.annotation.HtmlDocConfig} | {@link oaj.html.HtmlDocSerializer}
{@link oaj.jso.annotation.JsoConfig} | {@link oaj.jso.JsoSerializer} {@link oaj.jso.JsoParser}
{@link oaj.json.annotation.JsonConfig} | {@link oaj.json.JsonSerializer} {@link oaj.json.JsonParser}
{@link oaj.jsonschema.annotation.JsonSchemaConfig} | {@link oaj.json.JsonSchemaSerializer}
{@link oaj.msgpack.annotation.MsgPackConfig} | {@link oaj.msgpack.MsgPackSerializer} {@link oaj.msgpack.MsgPackParser}
{@link oaj.oapi.annotation.OpenApiConfig} | {@link oaj.oapi.OpenApiSerializer} {@link oaj.oapi.OpenApiParser}
{@link oaj.parser.annotation.ParserConfig} | All parsers
{@link oaj.plaintext.annotation.PlainTextConfig} | {@link oaj.plaintext.PlainTextSerializer}
{@link oaj.jena.annotation.RdfConfig} | All RDF serializers and parsers
{@link oaj.serializer.annotation.SerializerConfig} | All serializers
{@link oaj.soap.annotation.SoapXmlConfig} | {@link oaj.soap.SoapXmlSerializer}
{@link oaj.uon.annotation.UonConfig} | {@link oaj.uon.UonSerializer} {@link oaj.uon.UonParser}
{@link oaj.urlencoding.annotation.UrlEncodingConfig} | {@link oaj.urlencoding.UrlEncodingSerializer} {@link oaj.urlencoding.UrlEncodingParser}
{@link oaj.xml.annotation.XmlConfig} | {@link oaj.xml.XmlSerializer} {@link oaj.xml.XmlParser}

##### Common REST Annotations (used on both client-side and server-side)

Annotation | Used On | Description
--- | --- | ---
{@link oaj.http.annotation.Body} | Classes Methods Fields Parameters | HTTP request/response body.
{@link oaj.http.annotation.FormData} | Classes Methods Fields Parameters | HTTP form data parameter.
{@link oaj.http.annotation.HasFormData} | Classes Methods Fields Parameters | HTTP form data parameter is present.
{@link oaj.http.annotation.HasQuery} | Classes Methods Fields Parameters | HTTP query parameter is present.
{@link oaj.http.annotation.Header} | Classes Methods Fields Parameters | HTTP header.
{@link oaj.http.annotation.Path} | Classes Methods Fields Parameters | HTTP path part.
{@link oaj.http.annotation.Query} | Classes Methods Fields Parameters | HTTP query parameter.
{@link oaj.http.annotation.Request} | Classes Parameters | Identifies an interface to use to interact with HTTP parts of an HTTP request through a bean.
{@link oaj.http.annotation.Response} | Classes Methods Parameters | Identifies an interface to use to interact with HTTP parts of an HTTP response through a bean.
{@link oaj.http.annotation.ResponseBody} | Methods | Denotes a method as an HTTP response body on a @Response-annotated bean.
{@link oaj.http.annotation.ResponseHeader} | Classes Methods Parameters | Denotes a method as an HTTP response header on a @Response-annotated bean.
{@link oaj.http.annotation.ResponseStatus} | Methods Parameters | Denotes a method as an HTTP response status code on a @Response-annotated bean.

##### REST Server-only Annotations

Annotation | Used On | Description
--- | --- | ---
{@link oaj.rest.annotation.Attr} | Parameters | Request attribute.
{@link oaj.rest.annotation.Rest} | Classes | Identifies and configures REST resource classes.
{@link oaj.rest.annotation.RestHook} | Methods | Identifies REST lifecycle hook methods.
{@link oaj.rest.annotation.RestMethod} | Methods | Identifies and configures REST resource class methods.