# Licensed to the Apache Software Foundation (ASF) under one
# or more contributor license agreements.  See the NOTICE file
# distributed with this work for additional information
# regarding copyright ownership.  The ASF licenses this file
# to you under the Apache License, Version 2.0 (the
# "License"); you may not use this file except in compliance
# with the License.  You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing,
# software distributed under the License is distributed on an
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
# KIND, either express or implied.  See the License for the
# specific language governing permissions and limitations
# under the License.  

access-type-change: Access type for "{0}" is changing from "{1}". to "{2}".
access-type-invalid: Invalid access type "{1}" for "{0}".
access-inconsistent-field:Field "{0}" can not be set to "{1}" because it is \
    not consistent with the access type "{2}" used by the owning class.  
access-inconsistent-inherit: "{1}" for class "{0}" is not consistent with \
	"{3}" used by its persistent superclass "{2}".  All persistent classes in \
	an inheritance hierarchy must use a single implicit field or property \
	based access style or explicitly declare an access style.
access-illegal-merge: Field "{0}" with "{1}" is not compatible with "{2}" \
	used by its declaring class. 
access-cannot-merge: Cannot merge field access "{0}" with class \
    access "{1}".
meta-reflect: Using reflection for metadata generation.
gen-meta: Generating default metadata for type "{0}".
load-cls: Loading metadata for "{0}" under mode "{1}".
load-mapping: Loading mapping for "{0}" under mode "{1}".
prep-mapping: Preparing mapping for "{0}".
resolve-meta: Resolving metadata for "{0}".
resolve-embed-meta: Resolving embedded metadata for "{0}".
resolve-mapping: Resolving mapping for "{0}".
resolve-field: \tResolving field "{0}".
init-mapping: Initializing mapping for "{0}".
resolve-identity: Guessing persistence-capable class name for identity \
	class "{0}".
resolve-errs: Errors encountered while resolving metadata.  See nested \
	exceptions for details.
prev-errs: Unable to resolve type "{0}" due to previous errors resolving \
	related type "{1}".
clear-repos: Clearing metadata repository "{0}".
process-registered: Processing registered persistence-capable class "{0}".
assigned-sup: Set persistence-capable superclass of "{0}" to "{1}".
found-pcs: Found {0} classes with metadata in {1} milliseconds.
not-managed-interface: Cannot set type "{1}" as interface "{0}" implementor. \
    "{0}" is not a managed interface.
declare-non-interface: Cannot declare type "{0}" on "{1}" as it is \
    not an interface.
unmanaged-sup-field: Superclass field "{0}" is mapped in the metadata for \
	subclass "{1}", but is not a persistent field.
bad-discover-class: The class "{0}" listed in the openjpa.MetaDataFactory \
	configuration property could not be loaded by {1}; ignoring.
bad-lrs-concrete: Large result set fields must be of type java.util.Collection \
	or java.util.Map.  No concrete classes or other interfaces are allowed. \
	Remove the "lrs" extension from field "{0}" or change it to one of \
	these types.
bad-lrs-array: Array fields do not support large result sets.  Remove the \
	"lrs" extension from field "{0}".
bad-lrs-extern: Externalized fields do not support large result sets.  Remove \
	the "lrs" extension from field "{0}".
no-detach-oid: Field "{0}" named as the detach object id field for type "{1}" \
	does not exist.
no-detach-state: Field "{0}" named as the detach state field for type "{1}" \
	does not exist.
parent-detach-oid: Type "{0}" declares a detach object id field, but is not \
	the least-derived detachable class in the inheritance tree.  Only the \
	least-derived detachable class can name the detach object id and state \
	fields.
parent-detach-state: Type "{0}" declares a detach state field, but is not \
	the least-derived detachable class in the inheritance tree.  Only the \
	least-derived detachable class can name the detach object id and state \
	fields.
appid-detach-oid: Type "{0}" declares a detach object id field, but uses \
	application identity.  Detach object id fields are only used for \
	datastore identity classes.
managed-detach-oid: Field "{0}" is named as the detach object id field in \
	type "{1}", but is a managed field.  Detach object id fields cannot \
	be managed.
managed-detach-state: Field "{0}" is named as the detach state field in \
	type "{1}", but is a managed field.  Detach state fields cannot \
	be managed.
bad-detach-oid: Field "{0}", named as the detach object id field for type \
	"{1}", must be of type String.
bad-detach-state: Field "{0}", named as the detach state field for type \
	"{1}", must be of type Object.
not-enhanced: The type "{0}" has not been enhanced.
appid-not-supported: The data store does not support application identity. \
	Alter "{0}" to use datastore identity.
datastoreid-not-supported: The data store does not support datastore identity. \
	Alter "{0}" to use application identity.
recurse-embed: Field "{0}" attempts to recursively embed its declaring type.
cant-embed-extern: Field "{0}" is marked as embedded, but OpenJPA is unable to \
	embed the field.  OpenJPA cannot embed first-class object fields produced \
	through an externalizer.  Treating as non-embedded.
cant-embed: Field "{0}" is marked as embedded, but the store manager in use \
	cannot embed first-class object fields.  Treating as non-embedded.
cant-embed-element: Field "{0}" is marked as having an embedded element or \
	value type, but the store manager in use cannot embed collection/map \
	elements. Treating as non-embedded.
cant-embed-key: Field "{0}" is marked as having an embedded key type, but \
	the store manager in use cannot embed map keys.  Treating as non-embedded.
type-not-supported: The data store does not support fields of type {0}.
null-external: An invalid null external-value was declared for field "{0}".
bad-external-type: The field "{0}" cannot use the external-values property. \
	External values can only be declared for fields of primitives, \
	primitive wrappers, or strings.
no-external-values: The field "{0}" declares an external-values property \
	but does not declare any values in the string: "{1}".
extern-externvalues: The field "{0}" cannot declare both an externalizer \
	method and external values.
bad-externalizer: The externalizer method "{1}" on field "{0}" is not valid. \
 	If this is a method of the owning class type and not the field type, make \
	sure you have declared the method in the form \
	"<owning-class>.<method-name>", and that the method is static.
externalizer-err: There was an error invoking the externalizer for field \
	"{0}" on Java value "{1}": {2}
factory-err: There was an error invoking the factory for field \
	"{0}" on datastore value "{1}": {2}
bad-factory: The factory method supplied for field "{0}" does not exist or \
	is not a valid constructor or method.  If the factory is a method \
	of the owning class and not the field type, make sure you have declared \
	the method in the form "<owning-class>.<method-name>".  Also, make sure \
	the specified factory method is static.
bad-class: The class name "{0}" used in a metadata extension on field "{1}" \
	is not valid.
no-mapped-by: "{0}" declared that it is mapped by "{1}", but that is a \
	not a field of the related type.
no-inverse: Field "{0}" declares a logical inverse of "{1}", but that is a not \
	a field of the related type.
circ-mapped-by: "{0}" declares that it is mapped by "{1}", but that \
	field also declares that it is mapped by another.  Only one side of \
	a relation can declare that it is mapped by another field.
mapped-not-inverse: Field "{0}" declares that it is mapped by a field that is \
	different from its logical inverse field.  You do not need to name the \
	logical inverse if you''ve already declared that the field is mapped by \
	another, but if you do, then the logical inverse must point to the \
	mapping field.
mapped-by-not-key: You cannot declare that "{0}" is mapped by another field. \
	Only direct field values and map keys can be mapped by another field.
rm-field: Field "{0}" is not a type that is persistent by default.  If \
	you want this field to be persistent, you have to explicitly set it to \
	persistent in your metadata.
no-meta-notpc: No metadata was found for type "{0}". The class is \
	not enhanced.
no-meta-types: No metadata was found for type "{0}". The class does \
	not appear in the list of persistent types: {1}.
no-meta: No metadata was found for type "{0}".  Ensure that the class is \
	enhanced (if necessary), that the class has appropriate metadata, and that \
	if you list your persistent classes, the class is included in your list.
no-oid-meta: Could not locate metadata for the class using oid "{0}" of \
	type "{1}".  Registered oid type mappings: "{2}"
no-alias-meta: Could not locate metadata for the class using alias "{0}". \
	This could mean that you have mis-spelled the alias, or that OpenJPA failed \
    to properly load the metadata for the type whose alias is "{0}". \
    Registered alias mappings: "{1}"
no-alias-meta-hint: Could not locate metadata for the class using alias "{0}". \
    Perhaps you meant {2}, which is a close match. \
	This could mean that you have mis-spelled the alias, or that OpenJPA failed \
    to properly load the metadata for the type whose alias is "{0}". \
    Registered alias mappings: "{1}"
error-registered: An error occurred while processing registered class "{0}".
failed-registered: A potentially serious error occurred while processing \
	registered class "{0}".  Deferring processing of this class until next \
	opportunity.
cache-names: Type "{0}" declares a cache name of "{1}", but its persistent \
	superclass "{2}" uses a different cache name ("{3}").
cache-timeout-invalid: Type "{0}" declares an invalid data-cache-timeout \
	value. Valid timeout values are -1 (to disable timeouts), or positive \
	integers. Timeout was set to {1}.
id-types: Type "{0}" does not declare the same identity-type as its persistent \
	superclass.
id-classes: Type "{0}" declares an id class "{1}" that does not match or \
	extend its persistent superclass "{2}" identity class "{3}".
no-id-class: Entity "{0}" is using composite primary key comprising more than \
	one fields "{1}", but no primary key class has been defined in this class \
	or any of its persistent super classes. 
bad-pk: Field "{0}" cannot be a primary key.  Primary key fields can only be \
	declared in base persistent classes that also declare their identity-type \
	to be "application".
bad-pk-type: Field "{0}" cannot be a primary key.  It is of an unsupported type.
no-pk: Concrete type "{0}" with application identity does not declare any \
	primary key fields.
invalid-id: The id class specified by type "{0}" does not match the \
	primary key fields of the class.  Make sure your identity class has the \
	same primary keys as your persistent type, including pk field types. \
    Mismatched property: "{1}"
null-cons: The id class "{0}" specified by type "{1}" does not have a public \
	no-args constructor.
hc-method: The identity class specified by type "{0}" is not valid, as the \
	hashCode method is not overridden. Implement hashCode so that two \
	instances with the same primary key values have the same hash code.
eq-method: The identity class specified by type "{0}" is not valid, as the \
	equals method is not overridden. Implement the equals method so that two \
	two instances will compare equal if and only if they have the same primary \
	key values.
appid-strategy: Type "{0}" uses application identity; it cannot also declare \
	a datastore identity strategy.
no-seq-name: The metadata for "{0}" sets its value or identity strategy \
	to sequence, but does not name the sequence to use.
unsupported-value-strategy: "{0}" declares an unsupported strategy of "{1}" \
	for its {2}.
cant-init-seq: There was an error instantiating named sequence "{0}".
not-seq-cls: Named sequence "{0}" declares an invalid class "{1}".
bad-value-strategy: "{0}" declares an identity or value strategy of "{1}". \
	This is not a recognized strategy.  Available strategies are: {2}
bad-value-strategy-hint: "{0}" declares an identity or value strategy of \
	"{1}".  This is not a recognized strategy, though it closely resembles \
	the standard strategy "{2}".  Available strategies are: {3}
bad-update-strategy: "{0}" declares a read only value of "{1}". \
	This is not a recognized strategy.  Available strategies are: {2}
bad-update-strategy-hint: "{0}" declares a read only value of \
	"{1}".  This is not a recognized strategy, though it closely resembles \
	the standard strategy "{2}".  Available strategies are: {3}
not-interface: Cannot set type "{0}" to be a managed interface as it is not \
    an interface.
interface: The type "{0}" is an unmanaged interface and therefore cannot be \
    made persistent.
enum: Type "{0}" is an enumeration and therefore cannot be made persistent.
bad-drop: The metadata for some of the following classes may not have \
	been dropped: {0}
bad-store: Your configured MetaDataIO cannot create metadata.  You \
	must create it by hand. 
tool-running: MetaData Tool running on type "{0}" with action "{1}".
tool-record: Recording metadata changes.
tool-usage: Usage: java org.apache.openjpa.meta.MetaDataTool\n\
	\t[-properties/-p <properties file or resource>]\n\
	\t[-<property name> <property value>]*\n\
	\t[-verbose/-v <true/t | false/f>]\n\
	\t[-file/-f <stdout | output file or resource>]\n\
	\t[-action/-a <add | drop>]\n\
	\t<class name | .java file | .class file>+
no-named-query: There is no named query defined for the class "{0}" with \
	the name "{1}".
no-named-query-null-class: There is no query with the name "{1}" defined for \
    any of the known persistent classes: {0}.
no-named-sequence: Could not locate the sequence with name "{0}".  It is \
	possible that the metadata file containing the sequence has not been \
	parsed yet.  Make sure to use a persistent class whose metadata is in \
	the same file somewhere in your application before requesting the sequence.
unrecognized-extension: The extension key "{1}" for "{0}" is not recognized \
	and will be ignored. Valid extension keys are "{2}".
unrecognized-extension-hint: The extension key "{1}" for "{0}" is not \
	recognized and will be ignored, although the name closely matches the \
	valid key "{3}". Valid extension keys are "{2}".
mult-vers-fields: Type "{0}" has multiple version fields: [{1}, {2}]
bad-access-type: The ClassMetaData access type must be set to either \
	ClassMetaData.ACCESS_FIELD or ClassMetaData.ACCESS_PROPERTY. Attempt to \
	set it to "{0}" failed.
val-not-pc: The map value type of field "{0}" with a derived key must be a \
	persistent class.
val-not-one-pk: The map value type of field "{0}" with a derived key must be a \
	persistent class with exactly one primary key field.
# this is a comma-separated set of prefixes that we want to
# exclude from top-level validation, so that extensions that
# show up with the prefix will not be included in the list of
# extensions that are validated by generic tools (such as the enhancer)
extension-datastore-prefix: jdbc-
nonpc-field-orderable: Cannot order "{0}" on "{1}", because {0} is not a \
	relation to another persistent type.  For non-relation fields, you can \
	only order on the field element values themselves, represented by \
	"#element".
bad-field-orderable: Cannot order "{0}" on "{1}", because that is not a \
	persistent field in the related type.
mixed-inmem-ordering: Field "{0}" uses an invalid combination of in-memory and \
	datastore ordering for its values.  If a combination is used, all \
	in-memory orderings must appear in the ordering declaration before \
	datastore orderings.
cant-order: Field "{0}" cannot be ordered.  Ordering is only supported for \
	collection and array fields.
lifecycle-resolved: Could add the following callback adapters to "{0}", as \
	the lifecycle metadata is already resolved: {1}
access-field-and-prop: Type "{0}" attempts to use both field and property \
	access. Only one access method is permitted.
access-field-and-prop-hints: Type "{0}" attempts to use both field and \
	property access. Only one access method is permitted. Field access is used \
    on the following fields: {1}. Property access is used on the following \
    methods: {2}.
unsupported-id-type: Type "{0}" declares field "{1}" as a primary key, but \
	keys of type "{2}" are not supported.
empty-fg-name: Attempt to add an unnamed fetch group to "{0}".
invalid-fg-depth: Fetch group "{0}" specifies invalid recursion depth "{2}" \
    for field "{1}". Recursion depth must be greater than or equal to -1.
cyclic-fg: Attempt to include fetch group "{1}" in fetch group "{0}" creates \
    an inclusion cycle.
bad-fg-inclue: Attempt to include non-existent fetch group "{1}" in fetch \
    group "{0}".
unknown-fg: Attempt to add fetch group "{0}" to type field "{1}" failed. \
    This fetch group has not been defined.
duplicate-iface-alias: Cannot alias interface "{0}" property "{1}" to local \
    field "{2}" as the property has already been aliased.
pc-and-aware: Attempt to register "{0}" as a persistence-aware class failed. \
	The same class has been registered as persistence-capable already.
not-non-mapped: Type "{0}" cannot be a non-mapped interface as the class is \
    not an interface
non-mapped-pc: A non-mapped interface cannot also be mapped.
no-metadatafactory: MetaDataFactory could not be configured \
    (conf.newMetaDataFactoryInstance() returned null). This might mean that \
    no configuration properties were found. Ensure that you have a \
    META-INF/persistence.xml file, that it is available in your classpath, or \
    that the properties file you are using for configuration is available. \
    If you are using Ant, please see the <properties> or <propertiesFile> \
    attributes of the task''s nested <config> element. This can also occur if \
    your OpenJPA distribution jars are corrupt, or if your security policy is \
    overly strict.
scanning-directory: Scanning directory "{0}" for persistent types.
scanning-jar: Scanning jar "{0}" for persistent types.
scanning-file: Scanning file "{0}" for persistent types.
scanning-jar-url: Scanning jar: URL "{0}" for persistent types.
scanning-jar-at-url: Scanning jar file from URL "{0}" for persistent types.
scanning-url: Scanning URL "{0}" for persistent types.
scanning-zip-stream-url: Scanning jar in stream from URL "{0}" for persistent \
	types.
scanning-resource: Scanning resource "{0}" for persistent types.
scan-found-names: Scan of "{1}" found persistent types {0}.
parse-found-names: parsePersistentTypeNames() found {0}.
interface-load: Dynamic implementation of managed "{0}" can not be defined \
	using classloader "{1}". See nested exception for details.
interface-load2: Enhanced dynamic implementation of managed "{0}" can not be \
	defined using classloader "{1}". See nested exception for details.
interface-badenhance: Dynamic implementation of "{0}" can not be enhanced.
bad-externalized-value: Value "{0}" was not found in the list of \
	ExternalValues for field "{2}". Valid values are {1}
eager-no-class-found: No persistent class is specified in eager \
	initialization mode.
eager-class-not-found: Specified persistent class "{0}" can not be loaded in \
	eager initialization mode.
unexpected_proxy_sm_attribute_type: Unexpected attribute type "{1}" for \
	persistence-capable class "{0}" is detected. If the entity is packaged in \
    a jar file, this may be caused by one or more inherited class of the \
    entity not being packaged in the same jar file. Please check all \
    inherited class(es) are packaged in the same jar file.
meta-no-model: Meta class "{0}" for entity {1} can not be registered with \
	following exception "{2}"
no-mapped-by-in-mapped-super: Persistent relationship {0} defined by a mapped \
	superclass {1} must be unidirectional.
repos-preload: Metadata is loaded during initialization. The persistent classes \
	must be enlisted in configuration to be loaded during initialization.
repos-preload-nolock: Metadata is loaded during initialization with unguarded access. \
    The persistent classes must be enlisted in configuration to be loaded during \
    initialization.  	
repos-preload-none: No persistent metadata found for loading during initialization. \
	The persistent classes must be enlisted in configuration to be loaded during initialization.  
repos-preloading: Following metadata are being loaded during initialization by "{0}": {1}. 
repos-preload-error: Unexpected error during early loading during initialization. \
	See nested stacktrace for details. 	  
repos-initializeEager-none: No persistent metadata found for loading during initialization. \
    The persistent classes must be listed in persistence unit configuration to be loaded during initialization.
repos-initializeEager-found: The following classes are being preloaded "{0}".	   
repos-initializeEager-error: Unexpected error during early loading of entity metadata during initialization. \
    See nested stacktrace for details.	  
pu-root-url: The persistent unit root url is "{0}"
resource-url: The resource url is "{0}"   
mapping-file-name: Mapping file name is "{0}"
jar-file-url: Jar file url is "{0}"
down-level-entity: A down level Entity was detected and logged. Please enable RUNTIME trace to see all down level Entities.
