#
# Copyright (c) 2016, 2020 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 v. 2.0 which is available at
# http://www.eclipse.org/legal/epl-2.0,
# or the Eclipse Distribution License v. 1.0 which is available at
# http://www.eclipse.org/org/documents/edl-v10.php.
#
# SPDX-License-Identifier: EPL-2.0 OR BSD-3-Clause
#

# The following 2 comment lines are for automated tools that the IBM translation teams use
#NLS_MESSAGEFORMAT_VAR
#NLS_ENCODING=UNICODE

cannotMarshallObject=Cannot marshall object
typeResolutionError=Error resolving runtime type for type: {0}
genericBoundNotFound=Generic bound not found for type {0} declared in {1}.
cantConvertJsonValue=Cannot convert JSON value into: {0}
cantCreateRootInstance=Cannot create root instance
invokingGetter=Error invoking getter method.
gettingValue=Error getting field value.
settingValue=Error setting field value.
noLoggerName=Logger name has to be set
resolveParametrizedType=Cannot resolve ParameterizedType superclass for: {0}
cantCreateInstance=Cannot create instance
inferTypeForUnmarshall=Cannot infer a type for unmarshalling into: {0}
implClassIncompatible=Implementation class {0} is not a subtype of interface {1}.
notValueType=Not a value type: {0}
unexpectedParseEvent=Unexpected parser event: {0}
processFromJson=Process class: {0} from json using converter: {1}
processToJson=Process class: {0} to json using converter: {1}
creatingHandles=Error creating handles.
settingValueWith=Error setting value with: {0}
gettingValueWith=Error getting value with: {0}
unpairedSurrogate=String contains unpaired surrogate.
adapterException=Problem adapting object of type {0} to {1} in class {2}
adapterFound=Found adapter from type {0} to type {1}.
adapterIncompatible=Adapter of runtime type {0} does not match property type {1}
propertyOrder=Property order strategy with name {0} was not recognized
unsupportedJsonpSerializerValue=Unsupported value of type {0} for JSON serializer.
noJndiEnvironment=No JNDI environment ({0}) found to look for CDI provider.
noCdiApiProvider=CDI API not found on class or module path {0}.
illegalAccess=Yasson does not have sufficient permissions to {0}.
usingDefaultConstructorInstantiator=CDI bean manager not found, serializers and adapters will not have CDI support.
noCdiEnvironment=CDI environment is not available.
iJsonEnabledSingleValue=Cannot marshal single value because I-Json is enabled!
dateTypeNotSupported=Date type not supported: {0}
errorParsingDate=Error parsing {1} from value: {0}. Check your @JsonbDateFormat has all time units for {1} type, \
  or consider using org.eclipse.yasson.YassonConfig#ZERO_TIME_PARSE_DEFAULTING.
noDefaultConstructor=Cannot create instance of a class: {0}, No default constructor found.
offsetDateTimeFromMillis=Parsing {0} from epoch millisecond, UTC zone offset will be used.
timeToEpochMillisError=Cannot convert {0} to/from epoch milliseconds.
configPropertyInvalidType=JsonbConfig property [{0}] must be of type [{1}].
conversionNotSupported=Conversion of type [{0}] to/from string value is not supported.
endOfJsonStructure=End of JSON structure reached.
invalidDeserializationType=Invalid json value type {0} for deserialization into type {1}.
czechDiacritics=p\u0159\u00edli\u0161,\u017elu\u0165ou\u010dk\u00fd,k\u016f\u0148,\u00fap\u011bl,\u010f\u00e1belsk\u00e9,\u00f3dy
russianDiacritics=\u0441\u043b\u0438\u0448\u043a\u043e\u043c,\u0436\u0435\u043b\u0442\u0435\u043d\u044c\u043a\u0438\u0439,\u043a\u043e\u043d\u044c,\u043f\u0435\u043b,\u0430\u0434\u0441\u043a\u0438\u0435,\u043e\u0434\u044b
propertyNotFoundDeserializer=Property {0} was not found in class {1}. Skipping value {2}.
settingPropertyDeserializer=Setting property {0} in class {1} with value {2}.
classLoadNotAllowed=Class load for {0} name is not allowed!
errorCallingJsonbCreator=Exception occurred during call to JSONB creator on class: {0}.
incompatibleFactoryCreatorReturnType=Return type of creator {0} must be of type {1}.
multipleJsonbCreators=More than one @JsonbCreator declared in class {0}.
internalError=Internal error: {0}
serializePropertyError=Unable to serialize property ''{0}'' from {1}
deserializeValueError=Error deserialize JSON value into type: {0}.
parsingNumber=Error parsing number {0} with format {1}.
unknownBinaryDataStrategy=Unknown binary data strategy: {0}
invalidPropertyNamingStrategy=Property naming strategy must be either: String name, or instance of jakarta.json.bind.config.PropertyNamingStrategy.
creatorParameterNotAnnotated=Argument has no JsonbProperty annotation for JsonbCreator {0}.
unknownJsonProperty=Json property {0} can not be mapped to a class {1}.
jsonbCreatorMissingProperty=JsonbCreator parameter {0} is missing in json document.
zoneParseError=Cannot parse zone from json value: {0}
jsonbTransientWithOtherAnnotations=JsonbTransient annotation cannot be used with other jsonb annotations on the same property.
nonParametrizedType=Type: {0} is not a parametrized type.
propertyNameClash=Property {0} clashes with property {1} by read or write name in class {2}.
sqlDateIJsonError=java.sql.Date is not supported in STRICT_IJSON mode.
recursiveReference=Recursive reference has been found in class {0}.
datatypeFactoryCreationFailed=An error occurred while DatatypeFactory creation.
multipleConstructorPropertiesCreators=More than one constructor annotated with @ConstructorProperties declared in class {0}.
annotationNotAvailable=Annotation {0} is not visible in modules or classpath. Annotation will be ignored.
missingValuePropertyInAnnotation=Missing value property in Annotation {0}. Annotation will be ignored.
numberIncompatibleValueTypeArray=Value type {0} is not a JsonNumber.
numberIncompatibleValueTypeObject=Value type {0} at key {1} is not a JsonNumber.
