#
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
#
# Copyright (c) 1997-2017 Oracle and/or its affiliates. All rights reserved.
#
# The contents of this file are subject to the terms of either the GNU
# General Public License Version 2 only ("GPL") or the Common Development
# and Distribution License("CDDL") (collectively, the "License").  You
# may not use this file except in compliance with the License.  You can
# obtain a copy of the License at
# https://oss.oracle.com/licenses/CDDL+GPL-1.1
# or LICENSE.txt.  See the License for the specific
# language governing permissions and limitations under the License.
#
# When distributing the software, include this License Header Notice in each
# file and include the License file at LICENSE.txt.
#
# GPL Classpath Exception:
# Oracle designates this particular file as subject to the "Classpath"
# exception as provided by Oracle in the GPL Version 2 section of the License
# file that accompanied this code.
#
# Modifications:
# If applicable, add the following below the License Header, with the fields
# enclosed by brackets [] replaced by your own identifying information:
# "Portions Copyright [year] [name of copyright owner]"
#
# Contributor(s):
# If you wish your version of this file to be governed by only the CDDL or
# only the GPL Version 2, indicate your decision by adding "[Contributor]
# elects to include this software in this distribution under the [CDDL or GPL
# Version 2] license."  If you don't indicate a single choice of license, a
# recipient has the option to distribute your version of this file under
# either the CDDL, the GPL Version 2 or to extend the choice of license to
# its licensees as provided above.  However, if you add GPL Version 2 code
# and therefore, elected the GPL Version 2 license, then the option applies
# only if the new code is made subject to such option by the copyright
# holder.
#

ID_MUST_BE_STRING = \
    Property "{0}" has an XmlID annotation but its type is not String.

# {0} - field or field accessor (getter/setter) e.g.: foo.Bar#field has mutually exclusive annotations @javax.xml.bind.annotation.XmlAttribute and @javax.xml.bind.annotation.XmlElement OR foo.Bar#getField() has mutually exclusive annotations @javax.xml.bind.annotation.XmlAttribute and @javax.xml.bind.annotation.XmlElement
MUTUALLY_EXCLUSIVE_ANNOTATIONS = \
    {0} has mutually exclusive annotations @{1} and @{2}

DUPLICATE_ANNOTATIONS = \
    @{0} annotation is found on two places; one would be suffice.

# {0} - class name. e.g.: java.lang.StackTraceElement does not have a no-arg default constructor.
NO_DEFAULT_CONSTRUCTOR = \
    {0} does not have a no-arg default constructor.

CANT_HANDLE_INTERFACE = \
    {0} is an interface, and JAXB can''t handle interfaces.

CANT_HANDLE_INNER_CLASS = \
    {0} is a non-static inner class, and JAXB can''t handle those.

ANNOTATION_ON_WRONG_METHOD = \
    JAXB annotation is placed on a method that is not a JAXB property

GETTER_SETTER_INCOMPATIBLE_TYPE = \
    The type of the getter is {0} but that of the setter is {1}. They have to be the same.

DUPLICATE_ENTRY_IN_PROP_ORDER = \
    Property "{0}" appears more than once in the @XmlType.propOrder

DUPLICATE_PROPERTIES = \
    There are two properties named "{0}" 

XML_ELEMENT_MAPPING_ON_NON_IXMLELEMENT_METHOD = \
    The {0} method has @XmlElementMapping on it, but it doesn''t return a sub-type of JAXBElement.

# {0} - (xsd) type name. e.g. ns:MyType is not bound to a complex type, and therefore illegal as the scope.
SCOPE_IS_NOT_COMPLEXTYPE = \
    {0} is not bound to a complex type, and therefore illegal as the scope.

CONFLICTING_XML_ELEMENT_MAPPING = \
    The element name '{'{0}'}'{1} has more than one mapping.
    
REFERENCE_TO_NON_ELEMENT = \
    Property {0} is annotated with @XmlReference but doesn''t refer to an element.

NON_EXISTENT_ELEMENT_MAPPING = \
    No element mapping exists for "{0}":"{1}"

TWO_ATTRIBUTE_WILDCARDS = \
    {0} has two properties with the @XmlAnyAttribute annotation.

SUPER_CLASS_HAS_WILDCARD = \
    Can''t have @XmlAnyAttribute when a base class has it already.

INVALID_ATTRIBUTE_WILDCARD_TYPE = \
    @XmlAnyAttribute is placed on a property whose type is {0} but it needs to be assignable to java.util.Map.

PROPERTY_MISSING_FROM_ORDER = \
    Property {0} is present but not specified in @XmlType.propOrder

PROPERTY_ORDER_CONTAINS_UNUSED_ENTRY = \
    Property {0} appears in @XmlType.propOrder, but no such property exists. Maybe you meant {1}?

# {1} - (local) type name e.g.: '#foo' is not a valid value for 'NCName'
INVALID_XML_ENUM_VALUE = \
    "{0}" is not a valid value for {1}.

NO_IMAGE_WRITER = \
    No javax.imageio.ImageWriter is available for the specified MIME type "{0}"

ILLEGAL_MIME_TYPE = \
    "{0}" is not a valid MIME type: {1}

ILLEGAL_ANNOTATION = \
    {0} annotation cannot be placed here

MULTIPLE_VALUE_PROPERTY = \
    @XmlValue is only allowed one per class, but two properties are annotated with @XmlValue.

XMLVALUE_IN_DERIVED_TYPE = \
    @XmlValue is not allowed on a class that derives another class.

ELEMENT_AND_VALUE_PROPERTY = \
    If a class has @XmlElement property, it cannot have @XmlValue property.

CONFLICTING_XML_TYPE_MAPPING = \
    Two classes have the same XML type name "{0}". Use @XmlType.name and @XmlType.namespace to \
    assign different names to them.

SIMPLE_TYPE_IS_REQUIRED = \
    @XmlAttribute/@XmlValue need to reference a Java type that maps to text in XML.

PROPERTY_COLLISION = \
    Class has two properties of the same name "{0}"

INVALID_IDREF = \
    XmlIDREF property is referencing a type "{0}" that doesn''t have an XmlID property.

INVALID_XML_ELEMENT_REF = \
    Invalid @XmlElementRef : Type "{0}" or any of it's subclasses are not known to this context.

NO_XML_ELEMENT_DECL = \
    There''s no ObjectFactory with an @XmlElementDecl for the element '{'{0}'}'{1}.

XML_ELEMENT_WRAPPER_ON_NON_COLLECTION = \
    @XmlElementWrapper is only allowed on a collection property but "{0}" is not a collection property.

ANNOTATION_NOT_ALLOWED = \
    {0} annotation is not allowed on this kind of property.

XMLLIST_NEEDS_SIMPLETYPE = \
    {0} maps to a structured XML fragment (AKA complex type), and therefore incompatible with @XmlList.

XMLLIST_ON_SINGLE_PROPERTY = \
    @XmlList cannot be placed on a single-value property

NO_FACTORY_METHOD = \
    Factory class "{0}" does not have static zero args factory method "{1}".

FACTORY_CLASS_NEEDS_FACTORY_METHOD = \
    XmlType has not defined a factory method for Factory class "{0}".

MISSING_JAXB_PROPERTIES = \
    Package "{0}" is missing jaxb.properties file. Have you copied this from the generated source directory or include it in the classpath?

TRANSIENT_FIELD_NOT_BINDABLE = \
    Transient field "{0}" cannot have any JAXB annotations.

THERE_MUST_BE_VALUE_IN_XMLVALUE = \
    Object must have some value in its @XmlValue field: {0}

INCOMPATIBLE_API_VERSION = \
    JAXB 2.1 API jar is being loaded (from {0}), but this RI (from {1}) requires JAXB 2.2 API jar.

# {0}, {1} - absolute class location e.g. JAXB 2.1 API is being loaded from the bootstrap classloader, but this RI (from jar:file:/c:/foo/bar/jaxb-impl.jar!/com/sun/xml/bind/v2/model/impl/ModelBuilder.class) needs 2.2 API.
INCOMPATIBLE_API_VERSION_MUSTANG = \
    JAXB 2.1 API is being loaded from the bootstrap classloader, but this RI (from {1}) needs 2.2 API. \
    Use the endorsed directory mechanism to place jaxb-api.jar in the bootstrap classloader. \
    (See http://java.sun.com/j2se/1.6.0/docs/guide/standards/)

# {0}, {1} - absolute class location e.g. JAXB 2.1 API is being loaded from the bootstrap classloader, but this RI (from jar:file:/c:/foo/bar/jaxb-impl.jar!/com/sun/xml/bind/v2/model/impl/ModelBuilder.class) needs 2.2 API.
RUNNING_WITH_1_0_RUNTIME = \
    You are trying to run JAXB 2.0 runtime (from {1}) but you have old JAXB 1.0 runtime earlier \
    in the classpath (at {0}) Please remove the JAXB 1.0 runtime for 2.0 runtime to work correctly.

UNMATCHABLE_ADAPTER = \
    Adapter {0} is not applicable to the field type {1}. 

# {0} - com.sun.xml.bind.XmlAccessorFactory, {1} - class name
ACCESSORFACTORY_INSTANTIATION_EXCEPTION = \
    Unable to create instance of AccessorFactory, {0} for class {1}.

# {0} - com.sun.xml.bind.XmlAccessorFactory, {1} - class name
ACCESSORFACTORY_ACCESS_EXCEPTION = \
    Unable to access instance of AccessorFactory, {0} for class {1}.

CUSTOM_ACCESSORFACTORY_PROPERTY_ERROR = \
    Custom AccessorFactory, {0}, is reporting an error accessing a property. {1}

CUSTOM_ACCESSORFACTORY_FIELD_ERROR = \
    Custom AccessorFactory, {0}, is reporting an error accessing a field. {1}

ANONYMOUS_ARRAY_ITEM = \
    {0} is used as an array component type, so it cannot be anonymous.

XMLGREGORIANCALENDAR_INVALID = \
    Invalid set of fields set for XMLGregorianCalendar type {0}.

XMLGREGORIANCALENDAR_SEC = \
    Seconds not set.

XMLGREGORIANCALENDAR_MIN = \
    Minutes not set.

XMLGREGORIANCALENDAR_HR = \
    Hour not set.

XMLGREGORIANCALENDAR_DAY = \
    Day not set.

XMLGREGORIANCALENDAR_MONTH = \
    Month not set.

XMLGREGORIANCALENDAR_YEAR = \
    Year not set.

XMLGREGORIANCALENDAR_TIMEZONE = \
    Timezone not set.
