org.eclipse.persistence.jaxb.MarshallerProperties Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of eclipselink Show documentation
Show all versions of eclipselink Show documentation
EclipseLink build based upon Git transaction 346465e
/*******************************************************************************
* Copyright (c) 2012, 2013 Oracle and/or its affiliates. All rights reserved.
* This program and the accompanying materials are made available under the
* terms of the Eclipse Public License v1.0 and Eclipse Distribution License v. 1.0
* which accompanies this distribution.
* The Eclipse Public License is available at http://www.eclipse.org/legal/epl-v10.html
* and the Eclipse Distribution License is available at
* http://www.eclipse.org/org/documents/edl-v10.php.
*
* Contributors:
* Blaise Doughan - 2.3.3 - initial implementation
******************************************************************************/
package org.eclipse.persistence.jaxb;
/**
* These are properties that may be set on an instance of Marshaller. Below is
* an example of using the property mechanism to enable MOXy's JSON binding for
* an instance of Marshaller.
*
* Marshaller marshaller = jaxbContext.createMarshaller();
* marshaller.setProperty(MarshallerProperties.MEDIA_TYPE, "application/json");
*
*/
public class MarshallerProperties {
/**
* The Constant CHARACTER_ESCAPE_HANDLER. Allows for customization of
* character escaping when marshalling. Value should be an implementation
* of org.eclipse.persistence.oxm.CharacterEscapeHandler.
* @since 2.3.3
* @see org.eclipse.persistence.oxm.CharacterEscapeHandler
*/
public static final String CHARACTER_ESCAPE_HANDLER = "eclipselink.character-escape-handler";
/**
* The Constant INDENT_STRING. Property used to set the string used when
* indenting formatted marshalled documents. The default for formatted
* documents is " " (three spaces).
* @since 2.3.3
*/
public static final String INDENT_STRING = "eclipselink.indent-string";
/**
* The name of the property used to specify a value that will be prepended
* to all keys that are mapped to an XML attribute. By default there is no
* attribute prefix. There is no effect when media type is
* "application/xml". When this property is specified at the
* JAXBContext level all instances of Marshaller and
* Unmarshaller will default to this attribute prefix.
* @since 2.4
* @see org.eclipse.persistence.jaxb.JAXBContextProperties.JSON_ATTRIBUTE_PREFIX
* @see org.eclipse.persistence.jaxb.UnmarshallerProperties.JSON_ATTRIBUTE_PREFIX
*/
public static final String JSON_ATTRIBUTE_PREFIX = JAXBContextProperties.JSON_ATTRIBUTE_PREFIX;
/**
* The name of the property used to specify in the root node should be
* included in the message (default is true). There is no effect when media
* type is "application/xml". When this property is specified at the
* JAXBContext level all instances of Marshaller and
* Unmarshaller will default to this setting.
* @since 2.4
* @see org.eclipse.persistence.jaxb.JAXBContextProperties.JSON_INCLUDE_ROOT
* @see org.eclipse.persistence.jaxb.UnmarshallerProperties.JSON_INCLUDE_ROOT
*/
public static final String JSON_INCLUDE_ROOT = JAXBContextProperties.JSON_INCLUDE_ROOT;
/**
* The name of the property used to specify the character (default is '.')
* that separates the prefix from the key name. It is only used if namespace
* qualification has been enabled be setting a namespace prefix mapper.
* When this property is specified at the JAXBContext level all
* instances of Marshaller and Unmarshaller will default to
* this setting.
* @since 2.4
* @see org.eclipse.persistence.jaxb.JAXBContextProperties.NAMESPACE_SEPARATOR
* @see org.eclipse.persistence.jaxb.UnmarshallerProperties.NAMESPACE_SEPARATOR
*/
public static final String JSON_NAMESPACE_SEPARATOR = "eclipselink.json.namespace-separator";
/**
* The name of the property used to specify the key that will correspond to
* the property mapped with @XmlValue. This key will only be used if
* there are other mapped properties. When this property is specified at
* the JAXBContext level all instances of Marshaller and
* Unmarshaller will default to this setting.
* @since 2.4
* @see org.eclipse.persistence.jaxb.JAXBContextPropertes.JSON_VALUE_WRAPPER
* @see org.eclipse.persistence.jaxb.UnmarshallerPropertes.JSON_VALUE_WRAPPER
*/
public static final String JSON_VALUE_WRAPPER = JAXBContextProperties.JSON_VALUE_WRAPPER;
/**
* The name of the property used to specify the type of binding to be
* performed. When this property is specified at the JAXBContext
* level all instances of Marshaller and Unmarshaller will
* default to this media type. Supported values are:
*
* - MediaType.APPLICATION_XML (default)
*
- MediaType.APPLICATION_JSON
*
- "application/xml"
*
- "application/json"
*
* @since 2.4
* @see org.eclipse.persistence.jaxb.JAXBContextProperties.MEDIA_TYPE
* @see org.eclipse.persistence.jaxb.UnmarshallerProperties.MEDIA_TYPE
* @see org.eclipse.persistence.oxm.MediaType
*/
public static final String MEDIA_TYPE = JAXBContextProperties.MEDIA_TYPE;
/**
* The Constant NAMESPACE_PREFIX_MAPPER. Provides a means to customize the
* namespace prefixes used while marshalling to XML. Used for both marshal
* and unmarshal when mediaType is set to "application/json". Value is
* either a Map of URIs to prefixes, or an implementation of
* org.eclipse.persistence.oxm.NamespacePrefixMapper.
* @since 2.3.3
* @see org.eclipse.persistence.oxm.NamespacePrefixMapper
*/
public static final String NAMESPACE_PREFIX_MAPPER = JAXBContextProperties.NAMESPACE_PREFIX_MAPPER;
/**
* The Constant JSON_MARSHAL_EMPTY_COLLECTIONS. If true an empty or null
* collection will be marshalled as null or empty array, if false both will be
* represented as an absent node.
* @since 2.4
*/
public static final String JSON_MARSHAL_EMPTY_COLLECTIONS = "eclipselink.json.marshal-empty-collections";
/**
* The Constant JSON_REDUCE_ANY_ARRAYS. If true arrays that have just one item in them
* will be reduced and marshalled as a single item and not as a collection. ie: no [ ] in the marshalled JSON
* Default is false so all collections (even size 1) will have the [ ] around them.
* @since 2.4.2
*/
public static final String JSON_REDUCE_ANY_ARRAYS = "eclipselink.json.reduce-any-arrays";
/**
*
*/
public static final String OBJECT_GRAPH = "eclipselink.object-graph";
/**
* The Constant JSON_WRAPPER_AS_ARRAY_NAME. If true the grouping
* element will be used as the JSON key. There is no effect when media type
* is "application/xml". When this property is specified at the
* JAXBContext level all instances of Marshaller and
* Unmarshaller will default to this.
*
* Example
* Given the following class:
*
* @XmlAccessorType(XmlAccessType.FIELD)
* public class Customer {
*
* @XmlElementWrapper(name="phone-numbers")
* @XmlElement(name="phone-number")
* private List phoneNumbers;
*
* }
*
* If the property is set to false (the default) the JSON output will be:
*
* {
* "phone-numbers" : {
* "phone-number" : [ {
* ...
* }, {
* ...
* }]
* }
* }
*
* And if the property is set to true, then the JSON output will be:
*
* {
* "phone-numbers" : [ {
* ...
* }, {
* ...
* }]
* }
*
* @since 2.4.2
* @see org.eclipse.persistence.jaxb.JAXBContextProperties.JSON_WRAPPER_AS_ARRAY_NAME
* @see org.eclipse.persistence.jaxb.UnmarshallerProperties.JSON_WRAPPER_AS_ARRAY_NAME
*/
public static final String JSON_WRAPPER_AS_ARRAY_NAME = JAXBContextProperties.JSON_WRAPPER_AS_ARRAY_NAME;
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy