# 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.  

copy-no-oid: Cannot copy identity for abstract type "{0}".
no-meta: No registered metadata for type "{0}". This can happen if this \
    class has not been annotated as a persistent entity or specified in the \
    persistence unit (ex: in the orm.xml). 
bad-getter: Missing getter for property "{1}" in type "{0}". 
bad-setter: Missing setter for property "{1}" in type "{0}". 
bad-field: Missing field for property "{1}" in type "{0}".
reflect-security: Unable to access "{0}" via reflection.  Make sure OpenJPA \
    has the "suppressAccessChecks" permission.
needs-runtime-enhance: "{0}" requires runtime enhancement: {1}
runtime-enhance-complete: Enhancement for "{0}" completed. Class size: [{1}/{2}]
runtime-enhance-pcclasses: You have enabled runtime enhancement, but have not \
	specified the set of persistent classes.  OpenJPA must look for metadata \
    for every loaded class, which might increase class load times significantly.
running-all-classes: No targets were given.  Running on all classes in your \
    persistent classes list, or all metadata files in classpath directories if \
	you have not listed your persistent classes.  Use -help to display tool \
    usage information.
no-class-to-enhance: Found no class to enhance.
detach-custom-ser: Type "{0}" is set to detach on serialize, but implements \
	a custom readObject and/or writeObject method.  You cannot use custom \
	serialization with detachment. 
detach-custom-extern: Type "{0}" is set to detach on serialize, but implements \
	a custom readExternal and/or writeExternal method.  You cannot use custom \
	serialization with detachment. 
enhance-start: Enhancing type "{0}" loaded by {1}.
runtime-optimization-disabled: This configuration disallows runtime \
    optimization, but the following listed types were not enhanced at build \
    time or at class load time with a javaagent: "{0}".
enhance-and-subclass-and-redef-start: Creating subclass and redefining methods \
    for "{0}". This means that your application will be less efficient \
    than it would if you ran the OpenJPA enhancer.
enhance-and-subclass-no-redef-start: Creating subclass for "{0}". \
    This means that your application will be less efficient and will consume \
    more memory than it would if you ran the OpenJPA enhancer. Additionally, \
    lazy loading will not be available for one-to-one and many-to-one \
    persistent attributes in types using field access; they will be loaded \
    eagerly instead.
redefine-types: Redefining {0} using Java 5 type redefinition.
retransform-types: Redefining {0} using Java 6 type retransformation.
pc-type: Type "{0}" loaded by {1} is already persistence capable; skipping.
pers-aware-classes: No metadata was found for {0} classes; they have been enhanced \
	as persistence-aware. If you intended for any of these classes to be \
	persistence-capable, then this means that OpenJPA could not find any metadata \
	for those classes. This can happen if the directory containing your metadata \
	is not in your CLASSPATH, or if your metadata files are not named properly. \
	See the documentation on metadata placement for more information. \
	Persistence-aware classes: {1}
enhance-running: Enhancer running on type "{0}".
enhance-aware: The class does not have metadata - enhanced as persistence-aware.
enhance-norun: The class is already persistence capable - no enhancement \
	performed.
enhance-interface: The class is a managed interface - no enhancement performed.
enhance-usage: Usage: java org.apache.openjpa.enhance.PCEnhancer\n\
	\t[-properties/-p <properties file or resource>]\n\
	\t[-<property name> <property value>]*\n\
	\t[-directory/-d <output directory>]\n\
	\t[-addDefaultConstructor/-adc <true/t | false/f>]\n\
	\t[-jdoEnhance/-jdo <true/t | false/f>]\n\
	\t[-enforcePropertyRestrictions/-epr <true/t | false/f>]\n\
	\t[-tmpClassLoader/-tcl <true/t | false/f>]\n\
	\t<class name | .java file | .class file | .jdo file>+ 
enhance-defaultconst: The type "{0}" must have a no-args constructor.
enhance-adddefaultconst: The type "{0}" must have a no-args constructor. \
	Adding a {1} no-args constructor.
enhance-cloneable:The type "{0}" implements Cloneable but does not call \
	super.clone ().  Adding protected super.clone () invocation.
enhance-uid-access: An IllegalAccessException occurred when trying to \
	obtain the serialVersionUID field for the class "{0}". This is a known \
	bug in JDK 1.4+ when using a custom ClassLoader to enhance a \
	class that implements java.io.Serializable. If compatibility with \
	non-enhanced versions of "{0}" is not needed, this warning can be ignored.
enhance-defcons-extern: Type "{0}" requires a public constructor to support \
    detach on serialize.  Making default constructor public.
cons-access: An error occurred trying to instantiate a custom storage class.
pcdata-generate: Generating dynamic PCData for type: "{0}"
pcdata-created: Dynamic PCData created: name="{0}", for type="{1}"
factory-not-oidloader: Attempt to run the application id tool under metadata \
	configuration that does not support it.  The application id tool can only \
	run under certain metadata factory settings.
str-cons: The id type "{0}" specified by persistent type "{1}" \
	does not have a public {0}(String) or {0}(Class, String) constructor.
appid-start: Generating an application id for type "{0}".
appid-invalid: Type "{0}" does not have metadata, does not use application \
	identity, uses a built-in identity type, or inherits the identity class \
	from its superclass. 
appid-warn: Type "{0}" does not have metadata, does not use application \
	identity, or inherits the identity class from its superclass; skipping.
name-mult-args: When you supply the -name option, you must run the tool on \
	exactly one class.  Attempt to run on multiple classes: {0}
no-id-class: Type "{0}" does not declare an id class.
no-pks: Type "{0}" does not declare any primary key fields.
appid-running: Application identity tool running on type "{0}".
appid-output: Writing application identity class to file "{0}". 
appid-norun: No identity class was generated for this type.
appid-usage: Usage: java org.apache.openjpa.enhance.ApplicationIdTool\n\
	\t[-properties/-p <properties file or resource>]\n\
	\t[-<property name> <property value>]*\n\
	\t[-ignoreErrors/-i <true/t | false/f>]*\n\
	\t[-directory/-d <output directory>]\n\
	\t[-name/-n <id class name>]\n\
	\t[-suffix/-s <id class suffix>]\n\
	\t[-token/-t <token>]\n\
	\t[-codeFormat/-cf.<property name> <property value>]*\n\
	\t<class name | .java file | .class file | .jdo file>+ 
appid-comment-for: Application identity class for: {0}
appid-comment-gen: Auto-generated by:
property-violations: Detected the following possible violations of the \
	restrictions placed on property access persistent types:\n{0}
property-field-access: "{1}" uses property access, but its field "{2}" is \
	accessed directly in method "{3}" defined in "{0}".
property-bad-member: The member for for persistent property "{0}" was not \
	a method: "{1}".
property-no-getter: No getter method found for persistent property "{0}".  All \
	persistent properties must have getter methods.
property-no-setter: No setter method found for persistent property "{0}", and \
	bytecode analysis of the getter did not reveal a clear backing field. \
	Please create a setter method for this property.
property-setter-getter-mismatch: Bytecode analysis of the setter and getter \
	methods for persistent property "{0}" indicates that the two methods \
	might be acting on different backing fields.  The setter method assigns to \
	field "{1}", while the getter method returns field "{2}".
cft-exception-thrown: An exception was thrown while attempting to perform \
	class file transformation on "{0}":
subclasser-error-field: Error while processing persistent field {1}, declared \
	in {2}. Error details: {0}
subclasser-error-meta: Error while processing persistent type {1}, declared \
	in {2}. Error details: {0}
subclasser-contract-violation-field: Possible violation of subclassing \
    contract detected while processing persistent field {1}, declared in {2}. \
    Are you sure you are obeying the OpenJPA requirements? Details: {0}
subclasser-setter-getter-field-mismatch: Mismatch between getter and setter.
subclasser-no-ifaces: OpenJPA does not currently support automatic handling of \
    interface types. Failed type: {0}
subclasser-no-final-classes: OpenJPA cannot dynamically subclass final types. \
    To use final types, you must run the OpenJPA enhancer after compilation, \
    or deploy to an environment that supports deploy-time enhancement, such as \
    a Java EE 5 application server. Failed type: {0}
subclasser-no-private-classes: OpenJPA cannot dynamically subclass final types. \
    To use final types, you must run the OpenJPA enhancer after compilation, \
    or deploy to an environment that supports deploy-time enhancement, such as \
    a Java EE 5 application server. Failed type: {0}
subclasser-super-already-pc: The superclass for type {0} implements \
    org.apache.openjpa.enhance.PersistenceCapable, which means that it was \
    processed by the OpenJPA enhancer. If you are enhancing some of your \
    persistent types, you must enhance all of them.
subclasser-private-ctor: Unenhanced classes must have a public or protected \
    no-args constructor. Type {0}''s no-args constructor is private or \
    package-visible. If you do not want to add such a constructor, you must \
    run the OpenJPA enhancer after compilation, \
    or deploy to an environment that supports deploy-time enhancement, such as \
    a Java EE 5 application server.
subclasser-no-void-ctor: Unenhanced classes must have a public or protected \
    no-args constructor. Type {0} does not have any no-args constructors. \
    If you do not want to add such a constructor, you must \
    run the OpenJPA enhancer after compilation, \
    or deploy to an environment that supports deploy-time enhancement, such as \
    a Java EE 5 application server.
subclasser-class-already-pc: Type {0} is already persistence-capable. Please \
    report this problem to the OpenJPA team at dev@openjpa.apache.org.
subclasser-no-getter: No getter exists for field {0}.
subclasser-no-setter: No setter exists for field {0}.
subclasser-invalid-getter: The getter for field {0} does not obey OpenJPA''s \
    subclassing restrictions. Getters must return a single non-computed field.
subclasser-invalid-setter: The setter for field {0} does not obey OpenJPA''s \
    subclassing restrictions. Setters must assign the passed-in parameter to a \
    single field in the object.
subclasser-private-accessors-unsupported: The accessor for field {1} in type \
    {0} is private or package-visible. OpenJPA requires accessors in \
    unenhanced instances to be public or protected. \
    If you do not want to add such an accessor, you must run the OpenJPA \
    enhancer after compilation, or deploy to an environment that supports \
    deploy-time enhancement, such as a Java EE 5 application server.
subclasser-final-methods-not-allowed: The method {1} in type {0} is final. \
    OpenJPA requires methods in unenhanced instances to be non-final.
subclasser-native-methods-not-allowed: The method {1} in type {0} is native. \
    OpenJPA requires methods in unenhanced instances to be non-native.
subclasser-static-methods-not-supported: The method {1} in type {0} is static. \
    OpenJPA requires methods in unenhanced instances to be non-static.
subclasser-fetch-group-override: The field {1} in type {0} is configured to be \
    lazily loaded, but lazy loading is not available for classes that use field \
    access when not running the OpenJPA enhancer or when dynamic class \
    redefinition is not available.
no-accessor: Could not find method called {0} in type {1}.
unspecified-unenhanced-types: The following classes were not specified in your \
    configuration: {1}. One or more of the classes that were registered with \
    the system had references to these classes. Registered types: {0}
enhance-error: An error occurred while enhancing {0}. Exception message: {1}
most-derived-unrelated: Methods "{0}" and "{1}" are defined in types that do \
    not have an interface or superclass inheritance relationship.
most-derived-unrelated-same-type: Methods "{0}" and "{1}" are defined in the same \
    type, but the method return types do not have an interface or superclass \
    inheritance relationship.
entities-loaded-before-em: Unenhanced classes were detected even though the \
    enhancer has ran. Ensure that the EntityManagerFactory is created prior \
    to creating any Entities.    
temp-file-creation: The temporary file "{0}" was created and it may not get \
    cleaned up properly.
get-field: Error while getting value of field {1} from instance {0} by reflection.    
get-method: Error while getting value by getter method {1} on instance {0} by reflection.    
set-field: Error while setting value {2} of {3} on field {1} of instance {0} by reflection.    
set-method: Error while setting value {2} of {3} by setter method {1} of instance {0} by reflection.
down-level-enhanced-entity: The Entity "{0}" was enhanced at level "{1}", but the current level of enhancement is \
"{2}".
ID-field-in-embeddable-unsupported: The identity field defined in the {0} Embeddable is not supported. 
