# Uses of Package
org.codehaus.jackson.annotate

- Packages that use org.codehaus.jackson.annotate
  Package | Description
  --- | ---
  org.codehaus.jackson | Main public API classes of the core streaming JSON processor: most importantly `JsonFactory` used for constructing JSON parser (`JsonParser`) and generator (`JsonParser`) instances.
  org.codehaus.jackson.annotate | Public core annotations, most of which are used to configure how Data Mapping/Binding works.
  org.codehaus.jackson.map | Contains basic mapper (conversion) functionality that allows for converting between regular streaming json content and Java objects (beans or Tree Model: support for both is via `ObjectMapper` class, as well as convenience methods included in `JsonParser`
  org.codehaus.jackson.map.annotate | Annotations that directly depend on Mapper classes (not just Jackson core) and are used for configuring Data Mapping functionality.
  org.codehaus.jackson.map.introspect | Functionality needed for Bean introspection, required for detecting accessors and mutators for Beans, as well as locating and handling method annotations.
  org.codehaus.jackson.map.jsontype | Package that contains interfaces that define how to implement functionality for dynamically resolving type during deserialization.
  org.codehaus.jackson.map.jsontype.impl | Package that contains standard implementations for `TypeResolverBuilder` and `TypeIdResolver`.
  org.codehaus.jackson.schema | Classes needed for JSON schema support (currently just ability to generate schemas using serialization part of data mapping)

- Classes in org.codehaus.jackson.annotate used by org.codehaus.jackson
  Class and Description
  JsonCreator Marker annotation that can be used to define constructors and factory methods as one to use for instantiating new instances of the associated class.
  JsonProperty Marker annotation that can be used to define a non-static method as a "setter" or "getter" for a logical property (depending on its signature), or non-static object field to be used (serialized, deserialized) as a logical property.

- Classes in org.codehaus.jackson.annotate used by org.codehaus.jackson.annotate
  Class and Description
  JacksonAnnotation Meta-annotation (annotations used on other annotations) used for marking all annotations that are part of Jackson package.
  JsonAutoDetect.Visibility Enumeration for possible visibility thresholds (minimum visibility) that can be used to limit which methods (and fields) are auto-detected.
  JsonMethod Enumeration used to define kinds of methods that annotations like `JsonAutoDetect` apply to.
  JsonTypeInfo.As Definition of standard type inclusion mechanisms for type metadata.
  JsonTypeInfo.Id Definition of different type identifiers that can be included in JSON during serialization, and used for deserialization.

- Classes in org.codehaus.jackson.annotate used by org.codehaus.jackson.map
  Class and Description
  JsonAutoDetect.Visibility Enumeration for possible visibility thresholds (minimum visibility) that can be used to limit which methods (and fields) are auto-detected.
  JsonMethod Enumeration used to define kinds of methods that annotations like `JsonAutoDetect` apply to.
  JsonTypeInfo.As Definition of standard type inclusion mechanisms for type metadata.

- Classes in org.codehaus.jackson.annotate used by org.codehaus.jackson.map.annotate
  Class and Description
  JacksonAnnotation Meta-annotation (annotations used on other annotations) used for marking all annotations that are part of Jackson package.

- Classes in org.codehaus.jackson.annotate used by org.codehaus.jackson.map.introspect
  Class and Description
  JsonAutoDetect Class annotation that can be used to define which kinds of Methods are to be detected by auto-detection.
  JsonAutoDetect.Visibility Enumeration for possible visibility thresholds (minimum visibility) that can be used to limit which methods (and fields) are auto-detected.
  JsonMethod Enumeration used to define kinds of methods that annotations like `JsonAutoDetect` apply to.

- Classes in org.codehaus.jackson.annotate used by org.codehaus.jackson.map.jsontype
  Class and Description
  JsonTypeInfo.As Definition of standard type inclusion mechanisms for type metadata.
  JsonTypeInfo.Id Definition of different type identifiers that can be included in JSON during serialization, and used for deserialization.

- Classes in org.codehaus.jackson.annotate used by org.codehaus.jackson.map.jsontype.impl
  Class and Description
  JsonTypeInfo.As Definition of standard type inclusion mechanisms for type metadata.
  JsonTypeInfo.Id Definition of different type identifiers that can be included in JSON during serialization, and used for deserialization.

- Classes in org.codehaus.jackson.annotate used by org.codehaus.jackson.schema
  Class and Description
  JacksonAnnotation Meta-annotation (annotations used on other annotations) used for marking all annotations that are part of Jackson package.
  JsonCreator Marker annotation that can be used to define constructors and factory methods as one to use for instantiating new instances of the associated class.
  JsonValue Marker annotation similar to `XmlValue` that indicates that results of the annotated "getter" method (which means signature must be that of getters; non-void return type, no args) is to be used as the single value to serialize for the instance.