Class Model

  • Direct Known Subclasses:
    RuntimeModel

    public abstract class Model
    extends Object
    Version:
    %I%
    Author:
    raccah
    • Field Detail

      • RUNTIME

        public static final Model RUNTIME
        Default instance of the model for use at runtime.
      • ENHANCER

        public static final Model ENHANCER
        Default instance of the model used by the enhancer.
      • NO_ARGS

        public static final String[] NO_ARGS
        Standard set of empty arguments (for comparison with hashCode method and no-arg constructor).
    • Constructor Detail

      • Model

        public Model()
    • Method Detail

      • NewModel

        protected static Model NewModel​(String testName,
                                        String modelName)
        Create a new Model of the requested type. If the class definition exists in the class path of the environment, then this method will create a new instance of the Model.
        Parameters:
        modelName - the fully qualified name of the class to be instantiated.
        testName - the fully qualified name of the class to be tested as a precondition to loading.
        Returns:
        a new instance of the requested class (which implements Model).
      • getMessages

        protected static final ResourceBundle getMessages()
        Returns:
        I18N message handler for this element
      • getInputStreamForResource

        protected abstract BufferedInputStream getInputStreamForResource​(String className,
                                                                         ClassLoader classLoader,
                                                                         String resourceName)
        Returns the input stream with the supplied resource name found with the supplied class name.
        Parameters:
        className - the fully qualified name of the class which will be used as a base to find the resource
        classLoader - the class loader used to find mapping information
        resourceName - the name of the resource to be found
        Returns:
        the input stream for the specified resource, null if an error occurs or none exists
      • isInterface

        public abstract boolean isInterface​(String className)
        Determines if the specified className represents an interface type.
        Parameters:
        className - the fully qualified name of the class to be checked
        Returns:
        true if this class name represents an interface; false otherwise.
      • hasPersistentSuperclass

        public boolean hasPersistentSuperclass​(String className)
        Determines if the specified className has a persistent superclass.
        Parameters:
        className - the fully qualified name of the class to be checked
        Returns:
        true if this class name represents a class which has a persistent superclass (anywhere in the inheritance chain); false otherwise.
      • findPenultimateSuperclass

        protected abstract String findPenultimateSuperclass​(String className)
        Returns the name of the second to top (top excluding java.lang.Object) superclass for the given class name.
        Parameters:
        className - the fully qualified name of the class to be checked
        Returns:
        the top non-Object superclass for className, className if an error occurs or none exists
      • getSuperclass

        protected abstract String getSuperclass​(String className)
        Returns the name of the superclass for the given class name.
        Parameters:
        className - the fully qualified name of the class to be checked
        Returns:
        thesuperclass for className, null if an error occurs or none exists
      • getPersistenceClass

        public PersistenceClassElement getPersistenceClass​(String className)
        Returns a PersistenceClassElement created from the specified class name. Since our implementation of the mapping model class includes the persistence class, this method finds the persistence class by extracting it from the mapping class for the supplied name.
        Parameters:
        className - the fully qualified name of the persistence capable class to be returned
        Returns:
        the PersistenceClassElement for className, null if an error occurs or none exists
        See Also:
        getMappingClass(java.lang.String)
      • getPersistenceClass

        public PersistenceClassElement getPersistenceClass​(String className,
                                                           ClassLoader classLoader)
        Returns a PersistenceClassElement created from the specified class name. Since our implementation of the mapping model class includes the persistence class, this method finds the persistence class by extracting it from the mapping class for the supplied name.
        Parameters:
        className - the fully qualified name of the persistence capable class to be returned
        classLoader - the class loader used to find mapping information
        Returns:
        the PersistenceClassElement for className, null if an error occurs or none exists
        See Also:
        getMappingClass(java.lang.String)
      • getPersistenceClass

        protected PersistenceClassElement getPersistenceClass​(MappingClassElement mappingClass)
        Returns a PersistenceClassElement created from the mapping class.
        Parameters:
        mappingClass - the mapping class element to which the persistence class is associated
        Returns:
        the PersistenceClassElement for mappingClass, null if an error occurs or none exists
        See Also:
        getMappingClass(java.lang.String)
      • getMappingClass

        public MappingClassElement getMappingClass​(String className)
        Returns the MappingClassElement created for the specified class name. This method looks up the class in the internal cache. If not present it loads the corresponding xml file containing the mapping information.
        Parameters:
        className - the fully qualified name of the mapping class
        Returns:
        the MappingClassElement for class, null if an error occurs or none exists
      • getMappingClass

        public MappingClassElement getMappingClass​(String className,
                                                   ClassLoader classLoader)
        Returns the MappingClassElement created for the specified class name. This method looks up the class in the internal cache. If not present it loads the corresponding xml file containing the mapping information.
        Parameters:
        className - the fully qualified name of the mapping class
        classLoader - the class loader used to find mapping information
        Returns:
        the MappingClassElement for className, null if an error occurs or none exists
        See Also:
        MappingClassElementImpl.forName(java.lang.String, com.sun.jdo.api.persistence.model.Model)
      • getMappingCache

        public Map getMappingCache()
        Returns an unmodifiable copy of the MappingClassElement cache.
        Returns:
        unmodifiable MappingClassElement cache
      • getClassLoaderCache

        public Map getClassLoaderCache()
        Returns an unmodifiable copy of the ClassLoader cache. This implementation returns null, but subclasses (such as RuntimeModel) can override this method if they support a class loader cache.
        Returns:
        unmodifiable ClassLoader cache
      • removeResourcesFromCaches

        public void removeResourcesFromCaches​(ClassLoader classLoader)
        Removes the classes cached with the specified class loader from all caches. This implementation does nothing, but subclasses (such as RuntimeModel) can override this method if they support a class loader cache.
        Parameters:
        classLoader - used to determine the classes to be removed
      • removeResourcesFromCaches

        protected void removeResourcesFromCaches​(Collection classNames)
        Removes the specified classes from all caches. The specified collection includes the fully qualified class names of the classes to be removed. The method removes each class from the cache of MappingClassElements and the set of classes known to be non PC. Furthermore it removes the SchemaElement associated with this class from the SchemaElement cache. The next call getMappingClass will determine the status of the classes.
        Parameters:
        classNames - a collection of fully qualified class names
      • removeFromCache

        public void removeFromCache​(String className)
        Removes the class with the supplied name from the cache of classes known to be non PC. The next call getMappingClass will determine the status of the class.
        Parameters:
        className - the fully qualified name of the class
      • unlockFile

        public void unlockFile​(String className)
      • updateKeyForClass

        public void updateKeyForClass​(MappingClassElement mappingClass,
                                      String oldName)
        Updates the key in the cache for the supplied MappingClassElement.
        Parameters:
        mappingClass - the mapping class to be put in the cache (the new name is extracted from this element). The corresponding handling of the files is automatically handled by the data object. (use null to remove the old key but not replace it)
        oldName - the fully qualified name of the old key for the mapping class (use null to add the new key but not replace it)
      • isPersistent

        public boolean isPersistent​(String className)
        Determines if the specified className represents a persistence capable class. A class is persistence capable only if it is directly marked as such -- not by inheritance.
        Parameters:
        className - the fully qualified name of the class to be checked
        Returns:
        true if this class name represents a persistence capable class; false otherwise.
      • isPersistent

        public boolean isPersistent​(String className,
                                    ClassLoader classLoader)
        Determines if the specified className represents a persistence capable class. A class is persistence capable only if it is directly marked as such -- not by inheritance.
        Parameters:
        className - the fully qualified name of the class to be checked
        classLoader - the class loader used to find mapping information
        Returns:
        true if this class name represents a persistence capable class; false otherwise.
      • isPersistenceCapableAllowed

        public boolean isPersistenceCapableAllowed​(String className)
        Determines if the specified className represents a legal candidate for becoming a persistence capable class. A class may not become persistence capable if it is declared as static or abstract, an interface, a subclass of another persistence capable class (either direct or indirect), an exception subclass, or a subclass of ejb, swing, awt, or applet classes.
        Parameters:
        className - the fully qualified name of the class to be checked
        Returns:
        true if this class name represents a legal candidate for becoming a persistence capable class; false otherwise.
        See Also:
        getModifiersForClass(java.lang.String), isInterface(java.lang.String), findPenultimateSuperclass(java.lang.String)
      • getResourceNameWithExtension

        protected String getResourceNameWithExtension​(String className)
        Computes the mapping file resource name (with extension) for the supplied class name by converting the package name to a resource name.
        Parameters:
        className - the fully qualified name of the class
        Returns:
        the mapping file resource name (with extension) for the supplied class name
        See Also:
        MappingClassElement.MAPPING_EXTENSION
      • getResourceName

        protected String getResourceName​(String className)
        Computes the base resource name (without extension) for the supplied class name by converting the package name to a resource name.
        Parameters:
        className - the fully qualified name of the class
        Returns:
        the base resource name (without extension) for the supplied class name
      • getFileNameWithExtension

        protected String getFileNameWithExtension​(String className)
        Computes the mapping file name (with extension) for the supplied class name by converting the package name to a path name.
        Parameters:
        className - the fully qualified name of the class
        Returns:
        the mapping file name (with extension) for the supplied class name
        See Also:
        getFileName(java.lang.String), MappingClassElement.MAPPING_EXTENSION
      • getFileName

        protected String getFileName​(String className)
        Computes the base file name (without extension) for the supplied class name by converting the package name to a path name.
        Parameters:
        className - the fully qualified name of the class
        Returns:
        the base file name (without extension) for the supplied class name
      • convertToPersistenceCapable

        public void convertToPersistenceCapable​(String className,
                                                boolean flag)
                                         throws IOException
        Converts the class with the supplied name to or from persistence capable depending on the flag.
        Parameters:
        className - the fully qualified name of the class
        flag - if true, convert this class to be persistence capable, if false, convert this class to be non-persistence capable
        Throws:
        IOException - if there is some error converting the class
      • convertToPersistenceCapable

        public void convertToPersistenceCapable​(String className)
                                         throws IOException
        Converts the class with the supplied name to persistence-capable, then convert its default fields and save it to the xml file.
        Parameters:
        className - the fully qualified name of the class
        Throws:
        IOException - if there is some error storing the class
      • convertFields

        public void convertFields​(String className,
                                  List fields)
        Adds the allowable persistent fields from the supplied list to the persistent class with the specified name.
        Parameters:
        className - the fully qualified name of the class
        fields - a list of (short) field names
        See Also:
        convertDefaultFields(java.lang.String)
      • addFieldElement

        public boolean addFieldElement​(PersistenceClassElement element,
                                       String fieldName)
        Adds a PersistenceFieldElement for the specified field to the supplied PersistenceClassElement, creating a RelationshipElement if necessary.
        Parameters:
        element - the persistence class element to be used
        fieldName - the name of the field to be added
      • removeFieldElement

        public void removeFieldElement​(PersistenceFieldElement element)
                                throws ModelException
        Removes the specified PersistenceFieldElement from its declaring class. This method is added so that there is a common way to do this which checks if the argument is a relationship element with an inverse (in which case the inverse should first be cleared). This should really be handled by the jdo model directly, but the removeField method doesn't have access to the Model which is necessary for setting (or clearing) inverse relationships.
        Parameters:
        element - the persistence field element to be removed
        Throws:
        ModelException - if there is some error removing the field
      • getRelatedClass

        public String getRelatedClass​(RelationshipElement element)
        Gets the name of the related class for a relationship element. This method is added so that there is a common way to do this. It checks if the argument is a collection relationship element (in which case the element class should be returned) or not (in which case the type should be returned). This should really be handled by the jdo model directly, but it doesn't have access to the Model which is necessary for finding the field type and whether it is a collection or not.
        Parameters:
        element - the relationship element to be examined
        Returns:
        the name of the related class
      • createFile

        protected abstract BufferedOutputStream createFile​(String className,
                                                           String baseFileName,
                                                           String extension)
                                                    throws IOException
        Creates a file with the given base file name and extension parallel to the supplied class (if it does not yet exist).
        Parameters:
        className - the fully qualified name of the class
        baseFileName - the name of the base file
        extension - the file extension
        Returns:
        the output stream for the specified resource, null if an error occurs or none exists
        Throws:
        IOException - if there is some error creating the file
      • deleteFile

        protected abstract void deleteFile​(String className,
                                           String fileName)
                                    throws IOException
        Deletes the file with the given file name which is parallel to the supplied class.
        Parameters:
        className - the fully qualified name of the class
        fileName - the name of the file
        Throws:
        IOException - if there is some error deleting the file
      • getFields

        public abstract List getFields​(String className)
        Returns a list of names of all the declared field elements in the class with the specified name.
        Parameters:
        className - the fully qualified name of the class to be checked
        Returns:
        the names of the field elements for the specified class
      • getAllFields

        public List getAllFields​(String className)
        Returns a list of names of all the field elements in the class with the specified name. This list includes the inherited fields.
        Parameters:
        className - the fully qualified name of the class to be checked
        Returns:
        the names of the field elements for the specified class
      • getClass

        public Object getClass​(String className)
        Returns the class element with the specified className.
        Parameters:
        className - the fully qualified name of the class to be checked
        Returns:
        the class element for the specified className
      • getClass

        public abstract Object getClass​(String className,
                                        ClassLoader classLoader)
        Returns the class element with the specified className.
        Parameters:
        className - the fully qualified name of the class to be checked
        classLoader - the class loader used to find mapping information
        Returns:
        the class element for the specified className
      • hasClass

        public boolean hasClass​(String className)
        Determines if a class with the specified className exists.
        Parameters:
        className - the fully qualified name of the class to be checked
        Returns:
        true if this class name represents a valid class; false otherwise.
      • hasClass

        public boolean hasClass​(String className,
                                ClassLoader classLoader)
        Determines if a class with the specified className exists.
        Parameters:
        className - the fully qualified name of the class to be checked
        classLoader - the class loader used to find mapping information
        Returns:
        true if this class name represents a valid class; false otherwise.
      • implementsInterface

        public abstract boolean implementsInterface​(Object classElement,
                                                    String interfaceName)
        Determines if the specified class implements the specified interface. Note, class element is a model specific class representation as returned by a getClass call executed on the same model instance.
        Parameters:
        classElement - the class element to be checked
        interfaceName - the fully qualified name of the interface to be checked
        Returns:
        true if the class implements the interface; false otherwise.
        See Also:
        getClass(java.lang.String)
      • hasConstructor

        public abstract boolean hasConstructor​(String className)
        Determines if the class with the specified name declares a constructor.
        Parameters:
        className - the name of the class to be checked
        Returns:
        true if the class declares a constructor; false otherwise.
        See Also:
        getClass(java.lang.String)
      • getConstructor

        public abstract Object getConstructor​(String className,
                                              String[] argTypeNames)
        Returns the constructor element for the specified argument types in the class with the specified name. Types are specified as type names for primitive type such as int, float or as fully qualified class names.
        Parameters:
        className - the name of the class which contains the constructor to be checked
        argTypeNames - the fully qualified names of the argument types
        Returns:
        the constructor element
        See Also:
        getClass(java.lang.String)
      • getMethod

        public abstract Object getMethod​(String className,
                                         String methodName,
                                         String[] argTypeNames)
        Returns the method element for the specified method name and argument types in the class with the specified name. Types are specified as type names for primitive type such as int, float or as fully qualified class names.
        Parameters:
        className - the name of the class which contains the method to be checked
        methodName - the name of the method to be checked
        argTypeNames - the fully qualified names of the argument types
        Returns:
        the method element
        See Also:
        getClass(java.lang.String)
      • getInheritedMethod

        public Object getInheritedMethod​(String className,
                                         String methodName,
                                         String[] argTypeNames)
        Returns the inherited method element for the specified method name and argument types in the class with the specified name. Types are specified as type names for primitive type such as int, float or as fully qualified class names. Note that the class with the specified className is not checked for this method, only superclasses are checked.
        Parameters:
        className - the name of the class which contains the method to be checked
        methodName - the name of the method to be checked
        argTypeNames - the fully qualified names of the argument types
        Returns:
        the method element
        See Also:
        getClass(java.lang.String)
      • getType

        public abstract String getType​(Object element)
        Returns the string representation of type of the specified element. If element denotes a field, it returns the type of the field. If element denotes a method, it returns the return type of the method. Note, element is either a field element as returned by getField, or a method element as returned by getMethod executed on the same model instance.
        Parameters:
        element - the element to be checked
        Returns:
        the string representation of the type of the element
        See Also:
        getField(java.lang.String, java.lang.String), getMethod(java.lang.String, java.lang.String, java.lang.String[])
      • getField

        public abstract Object getField​(String className,
                                        String fieldName)
        Returns the field element for the specified fieldName in the class with the specified className.
        Parameters:
        className - the fully qualified name of the class which contains the field to be checked
        fieldName - the name of the field to be checked
        Returns:
        the field element for the specified fieldName
      • getInheritedField

        public Object getInheritedField​(String className,
                                        String fieldName)
        Returns the inherited field element for the specified fieldName in the class with the specified className. Note that the class with the specified className is not checked for this field, only superclasses are checked.
        Parameters:
        className - the fully qualified name of the class which contains a superclass with the field to be checked
        fieldName - the name of the field to be checked
        Returns:
        the field element for the specified fieldName
      • hasField

        public boolean hasField​(String className,
                                String fieldName)
        Determines if a field with the specified fieldName exists in the class with the specified className.
        Parameters:
        className - the fully qualified name of the class which contains the field to be checked
        fieldName - the name of the field to be checked
        Returns:
        true if this field name represents a valid field; false otherwise.
      • getFieldType

        public String getFieldType​(String className,
                                   String fieldName)
        Returns the field type for the specified fieldName in the class with the specified className.
        Parameters:
        className - the fully qualified name of the class which contains the field to be checked
        fieldName - the name of the field to be checked
        Returns:
        the field type for the specified fieldName
      • isSerializable

        public abstract boolean isSerializable​(Object fieldElement)
        Determines if the specified field element has a serializable type. A type is serializable if it is a primitive type, a class that implements java.io.Serializable or an interface that inherits from java.io.Serializable. Note, the field element is a model specific field representation as returned by a getField call executed on the same model instance.
        Parameters:
        fieldElement - the field element to be checked
        Returns:
        true if the field element has a serializable type; false otherwise.
        See Also:
        getField(java.lang.String, java.lang.String)
      • isPrimitive

        public boolean isPrimitive​(String className,
                                   String fieldName)
        Determines if a field with the specified fieldName in the class with the specified className has a primitive type.
        Parameters:
        className - the fully qualified name of the class which contains the field to be checked
        fieldName - the name of the field to be checked
        Returns:
        true if this field name represents a primitive field; false otherwise.
        See Also:
        getFieldType(java.lang.String, java.lang.String)
      • isPrimitive

        protected boolean isPrimitive​(String className)
        Determines if the specified className represents a primitive type.
        Parameters:
        className - the fully qualified name of the class or type to be checked
        Returns:
        true if this class represents a primitive; false otherwise.
        See Also:
        getFieldType(java.lang.String, java.lang.String)
      • isArray

        public abstract boolean isArray​(String className,
                                        String fieldName)
        Determines if a field with the specified fieldName in the class with the specified className is an array.
        Parameters:
        className - the fully qualified name of the class which contains the field to be checked
        fieldName - the name of the field to be checked
        Returns:
        true if this field name represents a java array field; false otherwise.
        See Also:
        getFieldType(java.lang.String, java.lang.String)
      • isByteArray

        public boolean isByteArray​(String className,
                                   String fieldName)
        Determines if a field with the specified fieldName in the class with the specified className is a byte array.
        Parameters:
        className - the fully qualified name of the class which contains the field to be checked
        fieldName - the name of the field to be checked
        Returns:
        true if this field name represents a byte array field; false otherwise.
        See Also:
        getFieldType(java.lang.String, java.lang.String)
      • isByteArray

        protected boolean isByteArray​(String className)
        Determines if the specified className represents a byte array.
        Parameters:
        className - the fully qualified name of the class or type to be checked
        Returns:
        true if this class represents a byte array; false otherwise.
      • isCollection

        public boolean isCollection​(String className)
        Determines if the class name represents a collection.
        Parameters:
        className - the fully qualified name of the class to be checked
        Returns:
        true if this class represents a collection; false otherwise.
        See Also:
        getFieldType(java.lang.String, java.lang.String)
      • isMutableSecondClassObject

        public boolean isMutableSecondClassObject​(String className)
        Determines if the specified className represents a mutable second class object. For this release, the class name is checked against a list of supported mutable second class objects since user-defined second class objects are not supported.
        Parameters:
        className - the fully qualified name of the class to be checked
        Returns:
        true if this class represents a mutable second class object; false otherwise.
        See Also:
        isSecondClassObject(java.lang.String), isCollection(java.lang.String), getFieldType(java.lang.String, java.lang.String)
      • getModifiersForClass

        public int getModifiersForClass​(String className)
        Returns the modifier mask for the specified className.
        Parameters:
        className - the fully qualified name of the class to be checked
        Returns:
        the modifier mask for the specified class
        See Also:
        Modifier
      • getModifiers

        protected int getModifiers​(String className,
                                   String fieldName)
        Returns the modifier mask for the specified fieldName in the class with the specified className.
        Parameters:
        className - the fully qualified name of the class which contains the field to be checked
        fieldName - the name of the field to be checked
        Returns:
        the modifier mask for the specified field
        See Also:
        Modifier
      • shouldBePersistent

        public boolean shouldBePersistent​(String className,
                                          String fieldName)
        Returns true if the specified field should be made persistent (i.e. does it make sense), false otherwise. This computation is based solely on the modifier: those which are not volatile return true.
        Parameters:
        className - the fully qualified name of the class which contains the field to be checked
        fieldName - the name of the field to be checked
        Returns:
        whether the specified field should be made persistent see #getModifiers(String,String)
      • getPersistenceField

        public PersistenceFieldElement getPersistenceField​(String className,
                                                           String fieldName)
        Returns the PersistenceFieldElement with the supplied fieldName found in the supplied className.
        Parameters:
        className - the fully qualified name of the class which contains the field to be checked
        fieldName - the name of the field to be checked
        Returns:
        the PersistenceFieldElement for the specified field, null if an error occurs or none exists
      • getPersistenceFieldInternal

        protected PersistenceFieldElement getPersistenceFieldInternal​(String className,
                                                                      String fieldName)
        Returns the PersistenceFieldElement with the supplied fieldName found in the supplied className.
        Parameters:
        className - the fully qualified name of the class which contains the field to be checked
        fieldName - the name of the field to be checked
        Returns:
        the PersistenceFieldElement for the specified field, null if an error occurs or none exists
      • isPersistent

        public boolean isPersistent​(String className,
                                    String fieldName)
        Determines if the specified className and fieldName pair represent a persistent field.
        Parameters:
        className - the fully qualified name of the class which contains the field to be checked
        fieldName - the name of the field to be checked
        Returns:
        true if this field name represents a persistent field; false otherwise.
      • isKey

        public boolean isKey​(String className,
                             String fieldName)
        Determines if the specified className and fieldName pair represent a key field.
        Parameters:
        className - the fully qualified name of the class which contains the field to be checked
        fieldName - the name of the field to be checked
        Returns:
        true if this field name represents a key field; false otherwise.
      • isValidKeyType

        public boolean isValidKeyType​(String className,
                                      String fieldName)
        Determines if the specified className and fieldName pair represent a field which has a type which is valid for key fields. Valid key field types include non-collection SCOs (wrappers, Date, Time, etc.) and primitives.
        Parameters:
        className - the fully qualified name of the class which contains the field to be checked
        fieldName - the name of the field to be checked
        Returns:
        true if this field name represents a field with a valid type for a key field; false otherwise.
      • isDefaultFetchGroup

        public boolean isDefaultFetchGroup​(String className,
                                           String fieldName)
        Determines if the specified className and fieldName pair represent a field which is part of the default fetch group.
        Parameters:
        className - the fully qualified name of the class which contains the field to be checked
        fieldName - the name of the field to be checked
        Returns:
        true if this field name represents a field in the default fetch group; false otherwise.
      • parse

        public boolean parse​(String className)
        Parses the combination of java (or class) information and mapping/jdo information by running through a subset of the full validation check and aborting (and returning false at the first error or warning.
        Parameters:
        className - the fully qualified name of the class to be checked
        Returns:
        true if no errors or warnings occur, false otherwise.
      • validate

        public Collection validate​(String className,
                                   ResourceBundle bundle)
        Validates the combination of java (or class) information and mapping/jdo information by running through the full validation check and returning a collection of ModelValidationExceptions containing any errors or warnings encountered.
        Parameters:
        className - the fully qualified name of the class to be checked
        bundle - the overridden resource bundle file - specify null if the default one should be used
        Returns:
        a collection of ModelValidationExceptions containing any errors or warnings encountered. If no errors or warnings were encountered, the collection will be empty, not null.
      • validate

        public Collection validate​(String className,
                                   ClassLoader classLoader,
                                   ResourceBundle bundle)
        Validates the combination of java (or class) information and mapping/jdo information by running through the full validation check and returning a collection of ModelValidationExceptions containing any errors or warnings encountered.
        Parameters:
        className - the fully qualified name of the class to be checked
        classLoader - the class loader used to find mapping information
        bundle - the overridden resource bundle file - specify null if the default one should be used
        Returns:
        a collection of ModelValidationExceptions containing any errors or warnings encountered. If no errors or warnings were encountered, the collection will be empty, not null.
      • getReadObjectArgs

        public static String[] getReadObjectArgs()
        Standard set of arguments for comparison with readObject method.
      • getEqualsArgs

        public static String[] getEqualsArgs()
        Standard set of arguments for comparison with equals method.
      • getWriteObjectArgs

        public static String[] getWriteObjectArgs()
        Standard set of arguments for comparison with writeObject method.