You are viewing a plain text version of this content. The canonical link for it is here.
Posted to jdo-commits@db.apache.org by an...@apache.org on 2015/05/19 10:01:49 UTC

svn commit: r1680199 [1/2] - in /db/jdo/trunk/api/src/java/javax/jdo: annotations/ identity/ listener/ metadata/ spi/

Author: andyj
Date: Tue May 19 08:01:48 2015
New Revision: 1680199

URL: http://svn.apache.org/r1680199
Log:
Javadoc changes so we can build javadocs using JDK 1.8 cleanly

Modified:
    db/jdo/trunk/api/src/java/javax/jdo/annotations/Convert.java
    db/jdo/trunk/api/src/java/javax/jdo/annotations/Converts.java
    db/jdo/trunk/api/src/java/javax/jdo/annotations/Element.java
    db/jdo/trunk/api/src/java/javax/jdo/annotations/FetchGroup.java
    db/jdo/trunk/api/src/java/javax/jdo/annotations/Key.java
    db/jdo/trunk/api/src/java/javax/jdo/annotations/Order.java
    db/jdo/trunk/api/src/java/javax/jdo/annotations/PersistenceCapable.java
    db/jdo/trunk/api/src/java/javax/jdo/annotations/Persistent.java
    db/jdo/trunk/api/src/java/javax/jdo/annotations/Value.java
    db/jdo/trunk/api/src/java/javax/jdo/identity/SingleFieldIdentity.java
    db/jdo/trunk/api/src/java/javax/jdo/listener/DirtyLifecycleListener.java
    db/jdo/trunk/api/src/java/javax/jdo/listener/InstanceLifecycleEvent.java
    db/jdo/trunk/api/src/java/javax/jdo/metadata/ArrayMetadata.java
    db/jdo/trunk/api/src/java/javax/jdo/metadata/ClassMetadata.java
    db/jdo/trunk/api/src/java/javax/jdo/metadata/CollectionMetadata.java
    db/jdo/trunk/api/src/java/javax/jdo/metadata/ColumnMetadata.java
    db/jdo/trunk/api/src/java/javax/jdo/metadata/DatastoreIdentityMetadata.java
    db/jdo/trunk/api/src/java/javax/jdo/metadata/DiscriminatorMetadata.java
    db/jdo/trunk/api/src/java/javax/jdo/metadata/ElementMetadata.java
    db/jdo/trunk/api/src/java/javax/jdo/metadata/EmbeddedMetadata.java
    db/jdo/trunk/api/src/java/javax/jdo/metadata/FetchGroupMetadata.java
    db/jdo/trunk/api/src/java/javax/jdo/metadata/FetchPlanMetadata.java
    db/jdo/trunk/api/src/java/javax/jdo/metadata/ForeignKeyMetadata.java
    db/jdo/trunk/api/src/java/javax/jdo/metadata/IndexMetadata.java
    db/jdo/trunk/api/src/java/javax/jdo/metadata/InheritanceMetadata.java
    db/jdo/trunk/api/src/java/javax/jdo/metadata/JDOMetadata.java
    db/jdo/trunk/api/src/java/javax/jdo/metadata/JoinMetadata.java
    db/jdo/trunk/api/src/java/javax/jdo/metadata/KeyMetadata.java
    db/jdo/trunk/api/src/java/javax/jdo/metadata/MapMetadata.java
    db/jdo/trunk/api/src/java/javax/jdo/metadata/MemberMetadata.java
    db/jdo/trunk/api/src/java/javax/jdo/metadata/OrderMetadata.java
    db/jdo/trunk/api/src/java/javax/jdo/metadata/PackageMetadata.java
    db/jdo/trunk/api/src/java/javax/jdo/metadata/PrimaryKeyMetadata.java
    db/jdo/trunk/api/src/java/javax/jdo/metadata/PropertyMetadata.java
    db/jdo/trunk/api/src/java/javax/jdo/metadata/QueryMetadata.java
    db/jdo/trunk/api/src/java/javax/jdo/metadata/SequenceMetadata.java
    db/jdo/trunk/api/src/java/javax/jdo/metadata/TypeMetadata.java
    db/jdo/trunk/api/src/java/javax/jdo/metadata/UniqueMetadata.java
    db/jdo/trunk/api/src/java/javax/jdo/metadata/ValueMetadata.java
    db/jdo/trunk/api/src/java/javax/jdo/metadata/VersionMetadata.java
    db/jdo/trunk/api/src/java/javax/jdo/spi/StateInterrogation.java

Modified: db/jdo/trunk/api/src/java/javax/jdo/annotations/Convert.java
URL: http://svn.apache.org/viewvc/db/jdo/trunk/api/src/java/javax/jdo/annotations/Convert.java?rev=1680199&r1=1680198&r2=1680199&view=diff
==============================================================================
--- db/jdo/trunk/api/src/java/javax/jdo/annotations/Convert.java (original)
+++ db/jdo/trunk/api/src/java/javax/jdo/annotations/Convert.java Tue May 19 08:01:48 2015
@@ -29,14 +29,10 @@ import javax.jdo.AttributeConverter;
  *
  * If this annotation is placed on a type, then the conversion applies to all fields or properties whose types
  * match the entity type of the given {@link AttributeConverter}.
- * If {@link #name()} is not the empty string, then the conversion only holds for the field or property
- * whose name matches the given name. Placing this annotation on a class allow
- * for centralized configuration of class-scoped {@link AttributeConverter}s.
- * Any {@link Convert} annotations placed on attributes within the annotated
- * type override this annotation.
+ * Any {@link Convert} annotations placed on members overrides any type-level conversion specifications.
  * 
- * If this annotation is placed on a field or property, then {@link #name()} is ignored and the annotated
- * attribute's type must be assignment-compatible with the {@link AttributeConverter}'s entity type argument.
+ * If this annotation is placed on a field or property, the annotated attribute's type must be 
+ * assignment-compatible with the {@link AttributeConverter}'s entity type argument.
  */
 @Retention(RetentionPolicy.RUNTIME)
 @Target({ElementType.TYPE, ElementType.METHOD, ElementType.FIELD })
@@ -44,6 +40,7 @@ public @interface Convert {
 
 	/**
 	 * The {@link AttributeConverter} to use for conversion.
+	 * @return Converter class to use
 	 */
 	@SuppressWarnings("rawtypes")
 	Class<? extends AttributeConverter> value();
@@ -51,13 +48,7 @@ public @interface Convert {
 	/**
 	 * Whether this conversion is enabled. True by default.
 	 * Setting this to false allows disabling conversion that was specified at PMF level.
+	 * @return Whether the PMF default converter is enabled
 	 */
 	boolean enabled() default true;
-
-	/**
-	 * The name of the field or property to which this conversion applies.
-	 * Ignored if this annotation is for a non-container member.
-	 * Specifying "key", "value" defines which part of a Map this applies to.
-	 */
-	String name() default "";
 }

Modified: db/jdo/trunk/api/src/java/javax/jdo/annotations/Converts.java
URL: http://svn.apache.org/viewvc/db/jdo/trunk/api/src/java/javax/jdo/annotations/Converts.java?rev=1680199&r1=1680198&r2=1680199&view=diff
==============================================================================
--- db/jdo/trunk/api/src/java/javax/jdo/annotations/Converts.java (original)
+++ db/jdo/trunk/api/src/java/javax/jdo/annotations/Converts.java Tue May 19 08:01:48 2015
@@ -30,6 +30,7 @@ public @interface Converts {
 
 	/**
 	 * The conversion specifications to be configured.
+	 * @return Array of converters
 	 */
 	Convert[] value();
 }

Modified: db/jdo/trunk/api/src/java/javax/jdo/annotations/Element.java
URL: http://svn.apache.org/viewvc/db/jdo/trunk/api/src/java/javax/jdo/annotations/Element.java?rev=1680199&r1=1680198&r2=1680199&view=diff
==============================================================================
--- db/jdo/trunk/api/src/java/javax/jdo/annotations/Element.java (original)
+++ db/jdo/trunk/api/src/java/javax/jdo/annotations/Element.java Tue May 19 08:01:48 2015
@@ -21,6 +21,9 @@ import java.lang.annotation.Retention;
 import java.lang.annotation.RetentionPolicy;
 import java.lang.annotation.Target;
 
+import javax.jdo.AttributeConverter;
+import javax.jdo.AttributeConverter.NullAttributeConverter;
+
 
 /**
  * Annotation for the element of a collection/array relation.
@@ -139,6 +142,20 @@ public @interface Element
      */
     String foreignKey() default "";
 
+	/**
+	 * Optional {@link AttributeConverter} to use for converting this element.
+	 * @return The converter class (or NullAttributeConverter if not specified).
+	 */
+	@SuppressWarnings("rawtypes")
+	Class<? extends AttributeConverter> converter() default NullAttributeConverter.class;
+
+	/**
+	 * Whether we should disable any converter that was specified as default for this type on the PMF.
+	 * If the converter is specified on this annotation then this is ignored
+	 * @return Whether PMF attribute conversion is to be disabled.
+	 */
+	boolean disableConversion() default false;
+
     /** Vendor extensions.
      * @return the vendor extensions
      */

Modified: db/jdo/trunk/api/src/java/javax/jdo/annotations/FetchGroup.java
URL: http://svn.apache.org/viewvc/db/jdo/trunk/api/src/java/javax/jdo/annotations/FetchGroup.java?rev=1680199&r1=1680198&r2=1680199&view=diff
==============================================================================
--- db/jdo/trunk/api/src/java/javax/jdo/annotations/FetchGroup.java (original)
+++ db/jdo/trunk/api/src/java/javax/jdo/annotations/FetchGroup.java Tue May 19 08:01:48 2015
@@ -54,6 +54,7 @@ public @interface FetchGroup
 
     /** 
      * Fetch groups to be nested (included) in this fetch group.
+     * @return The nested fetch groups in this fetch group
      */
     String[] fetchGroups() default {};
 }

Modified: db/jdo/trunk/api/src/java/javax/jdo/annotations/Key.java
URL: http://svn.apache.org/viewvc/db/jdo/trunk/api/src/java/javax/jdo/annotations/Key.java?rev=1680199&r1=1680198&r2=1680199&view=diff
==============================================================================
--- db/jdo/trunk/api/src/java/javax/jdo/annotations/Key.java (original)
+++ db/jdo/trunk/api/src/java/javax/jdo/annotations/Key.java Tue May 19 08:01:48 2015
@@ -21,6 +21,9 @@ import java.lang.annotation.Retention;
 import java.lang.annotation.RetentionPolicy;
 import java.lang.annotation.Target;
 
+import javax.jdo.AttributeConverter;
+import javax.jdo.AttributeConverter.NullAttributeConverter;
+
 
 /**
  * Annotation for the key of a map relation.
@@ -136,7 +139,22 @@ public @interface Key
      */
     String foreignKey() default "";
 
-    /** Vendor extensions.
+	/**
+	 * Optional {@link AttributeConverter} to use for converting this key.
+	 * @return Optional converter class for converting this key (when non-PersistenceCapable)
+	 */
+	@SuppressWarnings("rawtypes")
+	Class<? extends AttributeConverter> converter() default NullAttributeConverter.class;
+
+	/**
+	 * Whether we should disable any converter that was specified as default for this type on the PMF.
+	 * If the converter is specified on this annotation then this is ignored
+	 * @return Whether PMF attribute conversion is to be disabled.
+	 */
+	boolean disableConversion() default false;
+
+    /** 
+     * Vendor extensions.
      * @return the vendor extensions
      */
     Extension[] extensions() default {};

Modified: db/jdo/trunk/api/src/java/javax/jdo/annotations/Order.java
URL: http://svn.apache.org/viewvc/db/jdo/trunk/api/src/java/javax/jdo/annotations/Order.java?rev=1680199&r1=1680198&r2=1680199&view=diff
==============================================================================
--- db/jdo/trunk/api/src/java/javax/jdo/annotations/Order.java (original)
+++ db/jdo/trunk/api/src/java/javax/jdo/annotations/Order.java Tue May 19 08:01:48 2015
@@ -34,23 +34,27 @@ import java.lang.annotation.Target;
 @Retention(RetentionPolicy.RUNTIME)
 public @interface Order
 {
-    /** The name of the column to use for ordering the elements of the member.
+    /**
+     * The name of the column to use for ordering the elements of the member.
      * @return the name of the ordering column
      */
     String column() default "";
 
-    /** Name of a field or property in the target class that acts as the 
+    /**
+     * Name of a field or property in the target class that acts as the 
      * ordering field or property for this member.
-     * Return the name of the field or property in the target class
+     * @return the name of the field or property in the target class
      */
     String mappedBy() default "";
 
-    /** The definition of the column(s) to use for ordering.
+    /**
+     * The definition of the column(s) to use for ordering.
      * @return the columns to use for ordering
      */
     Column[] columns() default {};
 
-    /** Vendor extensions.
+    /**
+     * Vendor extensions.
      * @return the vendor extensions
      */
     Extension[] extensions() default {};

Modified: db/jdo/trunk/api/src/java/javax/jdo/annotations/PersistenceCapable.java
URL: http://svn.apache.org/viewvc/db/jdo/trunk/api/src/java/javax/jdo/annotations/PersistenceCapable.java?rev=1680199&r1=1680198&r2=1680199&view=diff
==============================================================================
--- db/jdo/trunk/api/src/java/javax/jdo/annotations/PersistenceCapable.java (original)
+++ db/jdo/trunk/api/src/java/javax/jdo/annotations/PersistenceCapable.java Tue May 19 08:01:48 2015
@@ -38,49 +38,71 @@ public @interface PersistenceCapable
      */
     Persistent[] members() default {};
 
-    /** Table to use for persisting this class or interface. 
+    /**
+     * Table to use for persisting this class or interface. 
+     * @return The table
      */
     String table() default "";
 
-    /** Catalog to use for persisting this class or interface. 
+    /**
+     * Catalog to use for persisting this class or interface. 
+     * @return The catalog
      */
     String catalog() default "";
 
-    /** Schema to use for persisting this class or interface. 
+    /**
+     * Schema to use for persisting this class or interface. 
+     * @return The schema
      */
     String schema() default "";
 
-    /** Whether this class or interface manages an extent. 
+    /**
+     * Whether this class or interface manages an extent. 
+     * @return Whether an extent is required
      */
     String requiresExtent() default "";
 
-    /** Whether objects of this class or interface can only be embedded. 
+    /**
+     * Whether objects of this class or interface can only be embedded.
+     * @return Whether this is embedded only
      */
     String embeddedOnly() default "";
 
-    /** Whether this class or interface is detachable. 
+    /**
+     * Whether this class or interface is detachable. 
+     * @return Whether this is detachable
      */
     String detachable() default "";
 
-    /** Type of identity for this class or interface. 
+    /**
+     * Type of identity for this class or interface. 
+     * @return The identity type for this class
      */
     IdentityType identityType() default IdentityType.UNSPECIFIED;
 
-    /** Primary key class when using application identity and using own PK. 
+    /**
+     * Primary key class when using application identity and using own PK. 
+     * @return Object-id class (if specified)
      */
     Class objectIdClass() default void.class;
 
-    /** Whether this class is cacheable in a Level2 cache.
+    /**
+     * Whether this class is cacheable in a Level2 cache.
+     * @return Whether the class is L2 cacheable
      * @since 2.2
      */
     String cacheable() default "true";
 
-    /** Whether objects of this type should, by default, be locked when read.
+    /**
+     * Whether objects of this type should, by default, be locked when read.
+     * @return Whether we should lock this type of object by default
      * @since 3.0
      */
     String serializeRead() default "false";
 
-    /** Any vendor extensions.
+    /**
+     * Any vendor extensions.
+     * @return The extensions defined for this class
      */
     Extension[] extensions() default {};
 }

Modified: db/jdo/trunk/api/src/java/javax/jdo/annotations/Persistent.java
URL: http://svn.apache.org/viewvc/db/jdo/trunk/api/src/java/javax/jdo/annotations/Persistent.java?rev=1680199&r1=1680198&r2=1680199&view=diff
==============================================================================
--- db/jdo/trunk/api/src/java/javax/jdo/annotations/Persistent.java (original)
+++ db/jdo/trunk/api/src/java/javax/jdo/annotations/Persistent.java Tue May 19 08:01:48 2015
@@ -21,6 +21,9 @@ import java.lang.annotation.Retention;
 import java.lang.annotation.RetentionPolicy;
 import java.lang.annotation.Target;
 
+import javax.jdo.AttributeConverter;
+import javax.jdo.AttributeConverter.NullAttributeConverter;
+
 /**
  * Annotation for defining the persistence of a member.
  * This corresponds to the xml elements "field" and "property". 
@@ -197,17 +200,35 @@ public @interface Persistent
      */
     String name() default ""; 
 
-    /** Recursion depth for this member. Used only when
+    /**
+     * Recursion depth for this member. Used only when
      * the annotation is used within the definition of a FetchGroup.
      * @return the recursion depth
      */
     int recursionDepth() default 1;
 
-    /** Whether this field/property is cacheable in a Level2 cache.
+    /**
+     * Whether this field/property is cacheable in a Level2 cache.
+     * @return Whether the field is L2 cacheable
      * @since 2.2
      */
     String cacheable() default "true";
 
+	/**
+	 * Optional {@link AttributeConverter} to use for converting this member.
+	 * @return Converter class for converting this member when not PersistenceCapable
+	 *   (or NullAttributeConverter when not specified).
+	 */
+	@SuppressWarnings("rawtypes")
+	Class<? extends AttributeConverter> converter() default NullAttributeConverter.class;
+
+	/**
+	 * Whether we should disable any converter that was specified as default for this type on the PMF.
+	 * If the converter is specified on this annotation then this is ignored
+	 * @return Whether PMF attribute conversion is to be disabled.
+	 */
+	boolean disableConversion() default false;
+
     /** Vendor extensions for this member. 
      * @return the vendor extensions
      */

Modified: db/jdo/trunk/api/src/java/javax/jdo/annotations/Value.java
URL: http://svn.apache.org/viewvc/db/jdo/trunk/api/src/java/javax/jdo/annotations/Value.java?rev=1680199&r1=1680198&r2=1680199&view=diff
==============================================================================
--- db/jdo/trunk/api/src/java/javax/jdo/annotations/Value.java (original)
+++ db/jdo/trunk/api/src/java/javax/jdo/annotations/Value.java Tue May 19 08:01:48 2015
@@ -21,6 +21,9 @@ import java.lang.annotation.Retention;
 import java.lang.annotation.RetentionPolicy;
 import java.lang.annotation.Target;
 
+import javax.jdo.AttributeConverter;
+import javax.jdo.AttributeConverter.NullAttributeConverter;
+
 /**
  * Annotation for the value of a map relation.
  * Corresponds to the xml element "value".
@@ -135,6 +138,21 @@ public @interface Value
      */
     String foreignKey() default "";
 
+	/**
+	 * Optional {@link AttributeConverter} to use for converting this value.
+	 * @return Converter class for converting this value when not PersistenceCapable
+	 *    (or NullAttributeConverter when not specified).
+	 */
+	@SuppressWarnings("rawtypes")
+	Class<? extends AttributeConverter> converter() default NullAttributeConverter.class;
+
+	/**
+	 * Whether we should disable any converter that was specified as default for this type on the PMF.
+	 * If the converter is specified on this annotation then this is ignored
+	 * @return Whether PMF attribute conversion is to be disabled.
+	 */
+	boolean disableConversion() default false;
+
     /** Vendor extensions.
      * @return the vendor extensions
      */

Modified: db/jdo/trunk/api/src/java/javax/jdo/identity/SingleFieldIdentity.java
URL: http://svn.apache.org/viewvc/db/jdo/trunk/api/src/java/javax/jdo/identity/SingleFieldIdentity.java?rev=1680199&r1=1680198&r2=1680199&view=diff
==============================================================================
--- db/jdo/trunk/api/src/java/javax/jdo/identity/SingleFieldIdentity.java (original)
+++ db/jdo/trunk/api/src/java/javax/jdo/identity/SingleFieldIdentity.java Tue May 19 08:01:48 2015
@@ -81,6 +81,7 @@ public abstract class SingleFieldIdentit
 
     /** Set the given key as the key for this instance. 
      * Compute the hash code for the instance.
+     * @param key The key to use
      * @since 2.0
      */
     protected void setKeyAsObject(Object key) {
@@ -90,6 +91,7 @@ public abstract class SingleFieldIdentit
 
     /** Assert that the key is not null. Throw a JDONullIdentityException
      * if the given key is null.
+     * @param key The key to check
      * @since 2.0
      */ 
     protected void assertKeyNotNull(Object key) {

Modified: db/jdo/trunk/api/src/java/javax/jdo/listener/DirtyLifecycleListener.java
URL: http://svn.apache.org/viewvc/db/jdo/trunk/api/src/java/javax/jdo/listener/DirtyLifecycleListener.java?rev=1680199&r1=1680198&r2=1680199&view=diff
==============================================================================
--- db/jdo/trunk/api/src/java/javax/jdo/listener/DirtyLifecycleListener.java (original)
+++ db/jdo/trunk/api/src/java/javax/jdo/listener/DirtyLifecycleListener.java Tue May 19 08:01:48 2015
@@ -28,21 +28,22 @@ package javax.jdo.listener;
  * @version 2.0
  * @since 2.0
  */
-public interface DirtyLifecycleListener
-    extends InstanceLifecycleListener {
+public interface DirtyLifecycleListener extends InstanceLifecycleListener {
 
     /**
-     *	Invoked whenever a persistent instance is first made dirty,
-     *	during an operation that modifies the value of a persistent or
-     *	transactional field. Called before the value is changed.
+     * Invoked whenever a persistent instance is first made dirty,
+     * during an operation that modifies the value of a persistent or
+     * transactional field. Called before the value is changed.
+     * @param event The lifecycle event
      * @since 2.0
      */
     void preDirty (InstanceLifecycleEvent event);
 
     /**
-     *	Invoked whenever a persistent instance is first made dirty,
-     *	during an operation that modifies the value of a persistent or
-     *	transactional field. Called after the value is changed.
+     * Invoked whenever a persistent instance is first made dirty,
+     * during an operation that modifies the value of a persistent or
+     * transactional field. Called after the value is changed.
+     * @param event The lifecycle event
      * @since 2.0
      */
     void postDirty (InstanceLifecycleEvent event);

Modified: db/jdo/trunk/api/src/java/javax/jdo/listener/InstanceLifecycleEvent.java
URL: http://svn.apache.org/viewvc/db/jdo/trunk/api/src/java/javax/jdo/listener/InstanceLifecycleEvent.java?rev=1680199&r1=1680198&r2=1680199&view=diff
==============================================================================
--- db/jdo/trunk/api/src/java/javax/jdo/listener/InstanceLifecycleEvent.java (original)
+++ db/jdo/trunk/api/src/java/javax/jdo/listener/InstanceLifecycleEvent.java Tue May 19 08:01:48 2015
@@ -181,7 +181,8 @@ public class InstanceLifecycleEvent
 
     /**
      * Serialization is not supported for InstanceLifecycleEvents.
-     * param out the output stream
+     * @param out the output stream
+     * @throws java.io.IOException Thrown when an error occurs
      * @since 2.0
      */
     private void writeObject(java.io.ObjectOutputStream out) 

Modified: db/jdo/trunk/api/src/java/javax/jdo/metadata/ArrayMetadata.java
URL: http://svn.apache.org/viewvc/db/jdo/trunk/api/src/java/javax/jdo/metadata/ArrayMetadata.java?rev=1680199&r1=1680198&r2=1680199&view=diff
==============================================================================
--- db/jdo/trunk/api/src/java/javax/jdo/metadata/ArrayMetadata.java (original)
+++ db/jdo/trunk/api/src/java/javax/jdo/metadata/ArrayMetadata.java Tue May 19 08:01:48 2015
@@ -22,57 +22,53 @@ package javax.jdo.metadata;
  */
 public interface ArrayMetadata extends Metadata {
     /**
-     * Method to set the name of the element type
-     * 
+     * Method to set the name of the element type.
      * @param type Name of the element type
+     * @return This metadata object
      */
     ArrayMetadata setElementType(String type);
 
     /**
-     * Accessor for the element type
-     * 
+     * Accessor for the element type.
      * @return The element type
      */
     String getElementType();
 
     /**
-     * Method to set whether the element is embedded
-     * 
+     * Method to set whether the element is embedded.
      * @param val Whether it is embedded
+     * @return This metadata object
      */
     ArrayMetadata setEmbeddedElement(boolean val);
 
     /**
-     * Accessor for whether the element is embedded
-     * 
+     * Accessor for whether the element is embedded.
      * @return whether the element is embedded
      */
     Boolean getEmbeddedElement();
 
     /**
-     * Method to set whether the element is serialised
-     * 
+     * Method to set whether the element is serialised.
      * @param val Whether it is serialised
+     * @return This metadata object
      */
     ArrayMetadata setSerializedElement(boolean val);
 
     /**
-     * Accessor for whether the element is serialised
-     * 
+     * Accessor for whether the element is serialised.
      * @return whether the element is serialised
      */
     Boolean getSerializedElement();
 
     /**
-     * Method to set whether the element is dependent
-     * 
+     * Method to set whether the element is dependent.
      * @param val Whether it is dependent
+     * @return This metadata object
      */
     ArrayMetadata setDependentElement(boolean val);
 
     /**
-     * Accessor for whether the element is dependent
-     * 
+     * Accessor for whether the element is dependent.
      * @return whether the element is dependent
      */
     Boolean getDependentElement();

Modified: db/jdo/trunk/api/src/java/javax/jdo/metadata/ClassMetadata.java
URL: http://svn.apache.org/viewvc/db/jdo/trunk/api/src/java/javax/jdo/metadata/ClassMetadata.java?rev=1680199&r1=1680198&r2=1680199&view=diff
==============================================================================
--- db/jdo/trunk/api/src/java/javax/jdo/metadata/ClassMetadata.java (original)
+++ db/jdo/trunk/api/src/java/javax/jdo/metadata/ClassMetadata.java Tue May 19 08:01:48 2015
@@ -26,6 +26,7 @@ public interface ClassMetadata extends T
     /**
      * Method to define the persistence modifier.
      * @param mod persistence modifier
+     * @return This metadata object
      */
     ClassMetadata setPersistenceModifier(ClassPersistenceModifier mod);
 

Modified: db/jdo/trunk/api/src/java/javax/jdo/metadata/CollectionMetadata.java
URL: http://svn.apache.org/viewvc/db/jdo/trunk/api/src/java/javax/jdo/metadata/CollectionMetadata.java?rev=1680199&r1=1680198&r2=1680199&view=diff
==============================================================================
--- db/jdo/trunk/api/src/java/javax/jdo/metadata/CollectionMetadata.java (original)
+++ db/jdo/trunk/api/src/java/javax/jdo/metadata/CollectionMetadata.java Tue May 19 08:01:48 2015
@@ -22,57 +22,53 @@ package javax.jdo.metadata;
  */
 public interface CollectionMetadata extends Metadata {
     /**
-     * Method to set the name of the element type
-     * 
+     * Method to set the name of the element type.
      * @param type Name of the element type
+     * @return This metadata object
      */
     CollectionMetadata setElementType(String type);
 
     /**
-     * Accessor for the element type
-     * 
+     * Accessor for the element type.
      * @return The element type
      */
     String getElementType();
 
     /**
-     * Method to set whether the element is embedded
-     * 
+     * Method to set whether the element is embedded.
      * @param val Whether it is embedded
+     * @return This metadata object
      */
     CollectionMetadata setEmbeddedElement(boolean val);
 
     /**
-     * Accessor for whether the element is embedded
-     * 
+     * Accessor for whether the element is embedded.
      * @return whether the element is embedded
      */
     Boolean getEmbeddedElement();
 
     /**
-     * Method to set whether the element is serialised
-     * 
+     * Method to set whether the element is serialised.
      * @param val Whether it is serialised
+     * @return This metadata object
      */
     CollectionMetadata setSerializedElement(boolean val);
 
     /**
-     * Accessor for whether the element is serialised
-     * 
+     * Accessor for whether the element is serialised.
      * @return whether the element is serialised
      */
     Boolean getSerializedElement();
 
     /**
-     * Method to set whether the element is dependent
-     * 
+     * Method to set whether the element is dependent.
      * @param val Whether it is dependent
+     * @return This metadata object
      */
     CollectionMetadata setDependentElement(boolean val);
 
     /**
      * Accessor for whether the element is dependent
-     * 
      * @return whether the element is dependent
      */
     Boolean getDependentElement();

Modified: db/jdo/trunk/api/src/java/javax/jdo/metadata/ColumnMetadata.java
URL: http://svn.apache.org/viewvc/db/jdo/trunk/api/src/java/javax/jdo/metadata/ColumnMetadata.java?rev=1680199&r1=1680198&r2=1680199&view=diff
==============================================================================
--- db/jdo/trunk/api/src/java/javax/jdo/metadata/ColumnMetadata.java (original)
+++ db/jdo/trunk/api/src/java/javax/jdo/metadata/ColumnMetadata.java Tue May 19 08:01:48 2015
@@ -23,106 +23,99 @@ package javax.jdo.metadata;
 public interface ColumnMetadata extends Metadata {
     /**
      * Method to set the column name.
-     * 
      * @param name Column name
+     * @return This metadata object
      */
     ColumnMetadata setName(String name);
 
     /**
      * Accessor for the name of the column.
-     * 
      * @return The name
      */
     String getName();
 
     /**
      * Method to set the target column (at the other side of the relation).
-     * 
      * @param target Target column
+     * @return This metadata object
      */
     ColumnMetadata setTarget(String target);
 
     /**
      * Accessor for the name of the target column.
-     * 
      * @return Target column name
      */
     String getTarget();
 
     /**
      * Method to set the target field (at the other side of the relation).
-     * 
      * @param target Target field
+     * @return This metadata object
      */
     ColumnMetadata setTargetField(String target);
 
     /**
      * Accessor for the name of the target field.
-     * 
      * @return Target field name
      */
     String getTargetField();
 
     /**
      * Method to set the JDBC type.
-     * 
      * @param type JDBC Type
+     * @return This metadata object
      */
     ColumnMetadata setJDBCType(String type);
 
     /**
-     * Accessor for the JDBC Type
-     * 
+     * Accessor for the JDBC Type.
      * @return JDBC Type
      */
     String getJDBCType();
 
     /**
      * Method to set the SQL type.
-     * 
      * @param type SQL Type
+     * @return This metadata object
      */
     ColumnMetadata setSQLType(String type);
 
     /**
-     * Accessor for the SQL Type
-     * 
+     * Accessor for the SQL Type.
      * @return SQL Type
      */
     String getSQLType();
 
     /**
-     * Method to set the length
-     * 
+     * Method to set the length.
      * @param len Length
+     * @return This metadata object
      */
     ColumnMetadata setLength(int len);
 
     /**
-     * Accessor for the length
-     * 
+     * Accessor for the length.
      * @return length
      */
     Integer getLength();
 
     /**
-     * Method to set the scale
-     * 
+     * Method to set the scale.
      * @param scale scale
+     * @return This metadata object
      */
     ColumnMetadata setScale(int scale);
 
     /**
-     * Accessor for the scale
-     * 
+     * Accessor for the scale.
      * @return scale
      */
     Integer getScale();
 
     /**
      * Method to set whether it allows null.
-     * 
      * @param nulls Allows null?
+     * @return This metadata object
      */
     ColumnMetadata setAllowsNull(boolean nulls);
 
@@ -135,22 +128,21 @@ public interface ColumnMetadata extends
 
     /**
      * Method to set the default value.
-     * 
      * @param val Default value
+     * @return This metadata object
      */
     ColumnMetadata setDefaultValue(String val);
 
     /**
-     * Accessor for the default value
-     * 
+     * Accessor for the default value.
      * @return Default value
      */
     String getDefaultValue();
 
     /**
      * Method to set the insert value (for columns with no field/property).
-     * 
      * @param val Insert value
+     * @return This metadata object
      */
     ColumnMetadata setInsertValue(String val);
 
@@ -162,15 +154,14 @@ public interface ColumnMetadata extends
     String getInsertValue();
 
     /**
-     * Method to set the position
-     * 
+     * Method to set the position.
      * @param pos Position
+     * @return This metadata object
      */
     ColumnMetadata setPosition(int pos);
 
     /**
-     * Accessor for the position
-     * 
+     * Accessor for the position.
      * @return position
      */
     Integer getPosition();

Modified: db/jdo/trunk/api/src/java/javax/jdo/metadata/DatastoreIdentityMetadata.java
URL: http://svn.apache.org/viewvc/db/jdo/trunk/api/src/java/javax/jdo/metadata/DatastoreIdentityMetadata.java?rev=1680199&r1=1680198&r2=1680199&view=diff
==============================================================================
--- db/jdo/trunk/api/src/java/javax/jdo/metadata/DatastoreIdentityMetadata.java (original)
+++ db/jdo/trunk/api/src/java/javax/jdo/metadata/DatastoreIdentityMetadata.java Tue May 19 08:01:48 2015
@@ -25,77 +25,70 @@ import javax.jdo.annotations.IdGenerator
 public interface DatastoreIdentityMetadata extends Metadata {
     /**
      * Method to set the datastore identity column name.
-     * 
      * @param column Name of the datastore identity column
+     * @return This metadata object
      */
     DatastoreIdentityMetadata setColumn(String column);
 
     /**
-     * Accessor for the datastore identity column name
-     * 
+     * Accessor for the datastore identity column name.
      * @return The column name
      */
     String getColumn();
 
     /**
      * Method to set the identity generation strategy.
-     * 
      * @param strategy The strategy
+     * @return This metadata object
      */
     DatastoreIdentityMetadata setStrategy(IdGeneratorStrategy strategy);
 
     /**
      * Accessor for the identity generation strategy.
-     * 
      * @return The strategy
      */
     IdGeneratorStrategy getStrategy();
 
     /**
      * Method to set the custom identity generation strategy.
-     * 
      * @param strategy The strategy
+     * @return This metadata object
      */
     DatastoreIdentityMetadata setCustomStrategy(String strategy);
 
     /**
      * Accessor for the custom strategy (overriding "strategy").
-     * 
      * @return The strategy
      */
     String getCustomStrategy();
 
     /**
-     * Method to set the sequence key (when using "sequence" strategy)
-     * 
+     * Method to set the sequence key (when using "sequence" strategy).
      * @param seq Sequence key
+     * @return This metadata object
      */
     DatastoreIdentityMetadata setSequence(String seq);
 
     /**
      * Accessor for the sequence key (when using "sequence" strategy)
-     * 
      * @return The sequence
      */
     String getSequence();
 
     /**
      * Accessor for all column(s) defined on the datastore identity.
-     * 
      * @return The column(s)
      */
     ColumnMetadata[] getColumns();
 
     /**
      * Add a new column for this datastore identity.
-     * 
      * @return The ColumnMetadata
      */
     ColumnMetadata newColumnMetadata();
 
     /**
      * Accessor for the number of columns defined for this datastore identity.
-     * 
      * @return The number of columns
      */
     int getNumberOfColumns();

Modified: db/jdo/trunk/api/src/java/javax/jdo/metadata/DiscriminatorMetadata.java
URL: http://svn.apache.org/viewvc/db/jdo/trunk/api/src/java/javax/jdo/metadata/DiscriminatorMetadata.java?rev=1680199&r1=1680198&r2=1680199&view=diff
==============================================================================
--- db/jdo/trunk/api/src/java/javax/jdo/metadata/DiscriminatorMetadata.java (original)
+++ db/jdo/trunk/api/src/java/javax/jdo/metadata/DiscriminatorMetadata.java Tue May 19 08:01:48 2015
@@ -25,91 +25,82 @@ import javax.jdo.annotations.Discriminat
 public interface DiscriminatorMetadata extends Metadata {
     /**
      * Method to set the discriminator column.
-     * 
-     * @param column Name of the discriminator clumn
+     * @param column Name of the discriminator column
+     * @return This metadata object
      */
     DiscriminatorMetadata setColumn(String column);
 
     /**
      * Accessor for the discriminator column name
-     * 
      * @return The column name
      */
     String getColumn();
 
     /**
      * Method to set the discriminator value (when using "value-map" strategy).
-     * 
      * @param val Value for the discriminator for this class
+     * @return This metadata object
      */
     DiscriminatorMetadata setValue(String val);
 
     /**
      * Accessor for the discriminator value (when using "value-map" strategy).
-     * 
      * @return The value
      */
     String getValue();
 
     /**
      * Method to set the discriminator strategy.
-     * 
      * @param strategy The strategy
+     * @return This metadata object
      */
     DiscriminatorMetadata setStrategy(DiscriminatorStrategy strategy);
 
     /**
      * Accessor for the discriminator strategy.
-     * 
      * @return The strategy
      */
     DiscriminatorStrategy getStrategy();
 
     /**
      * Method to set whether indexed.
-     * 
      * @param indexed Whether indexed (true | false | unique)
+     * @return This metadata object
      */
     DiscriminatorMetadata setIndexed(Indexed indexed);
 
     /**
      * Accessor for whether indexed (true|false|unique)
-     * 
      * @return Indexed?
      */
     Indexed getIndexed();
 
     /**
      * Accessor for all column(s) defined on the discriminator.
-     * 
      * @return The column(s)
      */
     ColumnMetadata[] getColumns();
 
     /**
      * Add a new column for this discriminator.
-     * 
      * @return The ColumnMetadata
      */
     ColumnMetadata newColumnMetadata();
 
     /**
      * Accessor for the number of columns defined for this discriminator.
-     * 
      * @return The number of columns
      */
     int getNumberOfColumns();
 
     /**
-     * Method to set the index metadata for the discriminator
-     * 
+     * Method to set the index metadata for the discriminator.
      * @return The IndexMetadata
      */
     IndexMetadata newIndexMetadata();
 
     /**
-     * Accessor for any index metadata for the discriminator
-     * 
+     * Accessor for any index metadata for the discriminator.
      * @return Index metadata
      */
     IndexMetadata getIndexMetadata();

Modified: db/jdo/trunk/api/src/java/javax/jdo/metadata/ElementMetadata.java
URL: http://svn.apache.org/viewvc/db/jdo/trunk/api/src/java/javax/jdo/metadata/ElementMetadata.java?rev=1680199&r1=1680198&r2=1680199&view=diff
==============================================================================
--- db/jdo/trunk/api/src/java/javax/jdo/metadata/ElementMetadata.java (original)
+++ db/jdo/trunk/api/src/java/javax/jdo/metadata/ElementMetadata.java Tue May 19 08:01:48 2015
@@ -16,6 +16,7 @@
  */
 package javax.jdo.metadata;
 
+import javax.jdo.AttributeConverter;
 import javax.jdo.annotations.ForeignKeyAction;
 
 /**
@@ -25,134 +26,146 @@ import javax.jdo.annotations.ForeignKeyA
 public interface ElementMetadata extends Metadata {
     /**
      * Method to set the column name.
-     * 
      * @param column Column name
+     * @return This metadata object
      */
     ElementMetadata setColumn(String column);
 
     /**
      * Accessor for the name of the column.
-     * 
      * @return The name
      */
     String getColumn();
 
     /**
      * Method to set the table name.
-     * 
      * @param table Table name
+     * @return This metadata object
      */
     ElementMetadata setTable(String table);
 
     /**
      * Accessor for the name of the table.
-     * 
      * @return The name
      */
     String getTable();
 
     /**
      * Method to set the delete action of the FK
-     * 
      * @param action Delete action of the FK
+     * @return This metadata object
      */
     ElementMetadata setDeleteAction(ForeignKeyAction action);
 
     /**
      * Accessor for the delete action of the FK
-     * 
      * @return The FK delete-action
      */
     ForeignKeyAction getDeleteAction();
 
     /**
      * Method to set the update action of the FK
-     * 
      * @param action Update action of the FK
+     * @return This metadata object
      */
     ElementMetadata setUpdateAction(ForeignKeyAction action);
 
     /**
-     * Accessor for the update action of the FK
-     * 
+     * Accessor for the update action of the FK.
      * @return The FK update-action
      */
     ForeignKeyAction getUpdateAction();
 
     /**
      * Accessor for all column(s) defined on the element.
-     * 
      * @return The column(s)
      */
     ColumnMetadata[] getColumns();
 
     /**
      * Add a new column for this element.
-     * 
      * @return The ColumnMetadata
      */
     ColumnMetadata newColumnMetadata();
 
     /**
      * Accessor for the number of columns defined for this element.
-     * 
      * @return The number of columns
      */
     int getNumberOfColumns();
 
     /**
      * Method to set new embedded metadata for the element.
-     * 
      * @return The EmbeddedMetadata
      */
     EmbeddedMetadata newEmbeddedMetadata();
 
     /**
-     * Accessor for any embedded metadata on this element
-     * 
+     * Accessor for any embedded metadata on this element.
      * @return The EmbeddedMetadata
      */
     EmbeddedMetadata getEmbeddedMetadata();
 
     /**
      * Method to set new index metadata for the element.
-     * 
      * @return The IndexMetadata
      */
     IndexMetadata newIndexMetadata();
 
     /**
      * Accessor for any index metadata on this element
-     * 
      * @return Index metadata
      */
     IndexMetadata getIndexMetadata();
 
     /**
-     * Method to set new unique constraint metadata for the element
-     * 
+     * Method to set new unique constraint metadata for the element.
      * @return The UniqueMetadata
      */
     UniqueMetadata newUniqueMetadata();
 
     /**
      * Accessor for any unique constraint metadata on this element.
-     * 
      * @return The UniqueMetadata
      */
     UniqueMetadata getUniqueMetadata();
 
     /**
-     * Method to set new foreign key metadata for the element
-     * 
+     * Method to set new foreign key metadata for the element.
      * @return The ForeignKeyMetadata
      */
     ForeignKeyMetadata newForeignKeyMetadata();
 
     /**
      * Accessor for any foreign key metadata on this element.
-     * 
      * @return The ForeignKeyMetadata
      */
     ForeignKeyMetadata getForeignKeyMetadata();
+
+    /**
+     * Accessor for the attribute converter for this element (if any).
+     * @return The converter
+     */
+    AttributeConverter<?, ?> getConverter();
+
+    /**
+     * Method to set the attribute converter to use for this element.
+     * @param conv Converter
+     * @return This metadata
+     */
+    ElementMetadata setConverter(AttributeConverter<?, ?> conv);
+
+    /**
+     * Accessor for whether the PMF defined converter for this element type is disabled.
+     * @return Whether it is disabled
+     */
+    boolean getDisableConverter();
+
+    /**
+     * Method to enable/disable the PMF defined converter for this member (if present).
+     * If a converter is defined on this metadata element then this flag will be ignored.
+     * @param disable Whether to disable
+     * @return This metadata
+     */
+    ElementMetadata setDisableConverter(boolean disable);
 }

Modified: db/jdo/trunk/api/src/java/javax/jdo/metadata/EmbeddedMetadata.java
URL: http://svn.apache.org/viewvc/db/jdo/trunk/api/src/java/javax/jdo/metadata/EmbeddedMetadata.java?rev=1680199&r1=1680198&r2=1680199&view=diff
==============================================================================
--- db/jdo/trunk/api/src/java/javax/jdo/metadata/EmbeddedMetadata.java (original)
+++ db/jdo/trunk/api/src/java/javax/jdo/metadata/EmbeddedMetadata.java Tue May 19 08:01:48 2015
@@ -23,71 +23,64 @@ package javax.jdo.metadata;
 public interface EmbeddedMetadata extends Metadata {
     /**
      * Method to set the name of the owner field/property.
-     * 
      * @param member Name of the owner member
+     * @return This metadata object
      */
     EmbeddedMetadata setOwnerMember(String member);
 
     /**
      * Accessor for the owner field/property name.
-     * 
      * @return The owner member name
      */
     String getOwnerMember();
 
     /**
-     * Method to set any column that indicates a null embedded object
-     * 
+     * Method to set any column that indicates a null embedded object.
      * @param col Null indicator column
+     * @return This metadata object
      */
     EmbeddedMetadata setNullIndicatorColumn(String col);
 
     /**
-     * Accessor for any column indicating a null embedded object
-     * 
+     * Accessor for any column indicating a null embedded object.
      * @return Whether to call post-load
      */
     String getNullIndicatorColumn();
 
     /**
-     * Method to set the value of a null indicator column to signify null object
-     * 
+     * Method to set the value of a null indicator column to signify null object.
      * @param val Null indicator value
+     * @return This metadata object
      */
     EmbeddedMetadata setNullIndicatorValue(String val);
 
     /**
-     * Accessor for a null indicator value
-     * 
+     * Accessor for a null indicator value.
      * @return Null indicator value
      */
     String getNullIndicatorValue();
 
     /**
      * Accessor for all fields/properties defined on the fetch group.
-     * 
      * @return The members
      */
     MemberMetadata[] getMembers();
 
     /**
-     * Accessor for the number of fields/properties defined for embedding
-     * 
+     * Accessor for the number of fields/properties defined for embedding.
      * @return The number of members
      */
     int getNumberOfMembers();
 
     /**
      * Add a new field to be embedded.
-     * 
      * @param name Name of the field
      * @return The FieldMetadata
      */
     FieldMetadata newFieldMetadata(String name);
 
     /**
-     * Add a new property for embedding
-     * 
+     * Add a new property for embedding.
      * @param name Name of the property
      * @return The PropertyMetadata
      */

Modified: db/jdo/trunk/api/src/java/javax/jdo/metadata/FetchGroupMetadata.java
URL: http://svn.apache.org/viewvc/db/jdo/trunk/api/src/java/javax/jdo/metadata/FetchGroupMetadata.java?rev=1680199&r1=1680198&r2=1680199&view=diff
==============================================================================
--- db/jdo/trunk/api/src/java/javax/jdo/metadata/FetchGroupMetadata.java (original)
+++ db/jdo/trunk/api/src/java/javax/jdo/metadata/FetchGroupMetadata.java Tue May 19 08:01:48 2015
@@ -23,21 +23,19 @@ package javax.jdo.metadata;
 public interface FetchGroupMetadata extends Metadata {
     /**
      * Accessor for the fetch group name (set on construction).
-     * 
      * @return The fetch group name
      */
     String getName();
 
     /**
      * Method to set whether to call post load with this fetch group
-     * 
      * @param load Call post load
+     * @return This metadata object
      */
     FetchGroupMetadata setPostLoad(boolean load);
 
     /**
-     * Accessor for whether to call post load for this fetch group
-     * 
+     * Accessor for whether to call post load for this fetch group.
      * @return Whether to call post-load
      */
     Boolean getPostLoad();
@@ -50,22 +48,19 @@ public interface FetchGroupMetadata exte
 
     /**
      * Accessor for the number of fields/properties defined for this fetch group.
-     * 
      * @return The number of members
      */
     int getNumberOfMembers();
 
     /**
      * Add a new field for this fetch group.
-     * 
      * @param name Name of field
      * @return The FieldMetadata
      */
     FieldMetadata newFieldMetadata(String name);
 
     /**
-     * Add a new property for this fetch group
-     * 
+     * Add a new property for this fetch group.
      * @param name Name of property
      * @return The PropertyMetadata
      */

Modified: db/jdo/trunk/api/src/java/javax/jdo/metadata/FetchPlanMetadata.java
URL: http://svn.apache.org/viewvc/db/jdo/trunk/api/src/java/javax/jdo/metadata/FetchPlanMetadata.java?rev=1680199&r1=1680198&r2=1680199&view=diff
==============================================================================
--- db/jdo/trunk/api/src/java/javax/jdo/metadata/FetchPlanMetadata.java (original)
+++ db/jdo/trunk/api/src/java/javax/jdo/metadata/FetchPlanMetadata.java Tue May 19 08:01:48 2015
@@ -23,49 +23,44 @@ package javax.jdo.metadata;
 public interface FetchPlanMetadata extends Metadata {
     /**
      * Accessor for the fetch plan name (set on construction).
-     * 
      * @return The fetch plan name
      */
     String getName();
 
     /**
      * Method to set the max fetch depth for this plan.
-     * 
      * @param depth The max fetch depth
+     * @return This metadata object
      */
     FetchPlanMetadata setMaxFetchDepth(int depth);
 
     /**
      * Accessor for the max fetch depth.
-     * 
      * @return The max fetch depth
      */
     int getMaxFetchDepth();
 
     /**
      * Method to set the fetch size.
-     * 
      * @param size The fetch size
+     * @return This metadata object
      */
     FetchPlanMetadata setFetchSize(int size);
 
     /**
      * Accessor for the max fetch depth.
-     * 
      * @return The max fetch depth
      */
     int getFetchSize();
 
     /**
      * Accessor for all fetch groups defined for this fetch plan.
-     * 
      * @return The fetch groups
      */
     FetchGroupMetadata[] getFetchGroups();
 
     /**
      * Add a new fetch group for this fetch plan.
-     * 
      * @param name Name of fetch group.
      * @return The FetchGroupMetadata
      */
@@ -73,7 +68,6 @@ public interface FetchPlanMetadata exten
 
     /**
      * Accessor for the number of fetch groups defined for this fetch plan.
-     * 
      * @return The number of fetch groups
      */
     int getNumberOfFetchGroups();

Modified: db/jdo/trunk/api/src/java/javax/jdo/metadata/ForeignKeyMetadata.java
URL: http://svn.apache.org/viewvc/db/jdo/trunk/api/src/java/javax/jdo/metadata/ForeignKeyMetadata.java?rev=1680199&r1=1680198&r2=1680199&view=diff
==============================================================================
--- db/jdo/trunk/api/src/java/javax/jdo/metadata/ForeignKeyMetadata.java (original)
+++ db/jdo/trunk/api/src/java/javax/jdo/metadata/ForeignKeyMetadata.java Tue May 19 08:01:48 2015
@@ -25,105 +25,96 @@ import javax.jdo.annotations.ForeignKeyA
 public interface ForeignKeyMetadata extends Metadata {
     /**
      * Method to set the name of the constraint
-     * 
      * @param name Name of the constraint
+     * @return This metadata object
      */
     ForeignKeyMetadata setName(String name);
 
     /**
      * Accessor for the constraint name.
-     * 
      * @return The constraint name
      */
     String getName();
 
     /**
      * Method to set the table name.
-     * 
      * @param table Table name
+     * @return This metadata object
      */
     ForeignKeyMetadata setTable(String table);
 
     /**
      * Accessor for the name of the table.
-     * 
      * @return The name
      */
     String getTable();
 
     /**
      * Method to set whether it is unique.
-     * 
      * @param unique Unique?
+     * @return This metadata object
      */
     ForeignKeyMetadata setUnique(boolean unique);
 
     /**
      * Accessor for whether unique.
-     * 
      * @return Unique?
      */
     Boolean getUnique();
 
     /**
      * Method to set whether it is deferred.
-     * 
      * @param def Deferred?
+     * @return This metadata object
      */
     ForeignKeyMetadata setDeferred(boolean def);
 
     /**
      * Accessor for whether the constraint can be deferred.
-     * 
      * @return Deferred?
      */
     Boolean getDeferred();
 
     /**
      * Method to set the delete action of the FK
-     * 
      * @param action Delete action of the FK
+     * @return This metadata object
      */
     ForeignKeyMetadata setDeleteAction(ForeignKeyAction action);
 
     /**
-     * Accessor for the delete action of the FK
-     * 
+     * Accessor for the delete action of the FK.
      * @return The FK delete-action
      */
     ForeignKeyAction getDeleteAction();
 
     /**
-     * Method to set the update action of the FK
-     * 
+     * Method to set the update action of the FK.
      * @param action Update action of the FK
+     * @return This metadata object
      */
     ForeignKeyMetadata setUpdateAction(ForeignKeyAction action);
 
     /**
-     * Accessor for the update action of the FK
-     * 
+     * Accessor for the update action of the FK.
      * @return The FK update-action
      */
     ForeignKeyAction getUpdateAction();
 
     /**
      * Accessor for all column(s) defined on the FK.
-     * 
      * @return The column(s)
      */
     ColumnMetadata[] getColumns();
 
     /**
      * Add a new column for this FK.
-     * 
      * @return The ColumnMetadata
      */
     ColumnMetadata newColumnMetadata();
 
     /**
      * Accessor for the number of columns defined for this FK.
-     * 
      * @return The number of columns
      */
     int getNumberOfColumns();

Modified: db/jdo/trunk/api/src/java/javax/jdo/metadata/IndexMetadata.java
URL: http://svn.apache.org/viewvc/db/jdo/trunk/api/src/java/javax/jdo/metadata/IndexMetadata.java?rev=1680199&r1=1680198&r2=1680199&view=diff
==============================================================================
--- db/jdo/trunk/api/src/java/javax/jdo/metadata/IndexMetadata.java (original)
+++ db/jdo/trunk/api/src/java/javax/jdo/metadata/IndexMetadata.java Tue May 19 08:01:48 2015
@@ -22,29 +22,27 @@ package javax.jdo.metadata;
  */
 public interface IndexMetadata extends Metadata {
     /**
-     * Method to set the name of the index
-     * 
+     * Method to set the name of the index.
      * @param name Name of the index
+     * @return This metadata object
      */
     IndexMetadata setName(String name);
 
     /**
      * Accessor for the index name.
-     * 
      * @return The index name
      */
     String getName();
 
     /**
      * Method to set the table name.
-     * 
      * @param table Table name
+     * @return This metadata object
      */
     IndexMetadata setTable(String table);
 
     /**
      * Accessor for the name of the table.
-     * 
      * @return The name
      */
     String getTable();
@@ -53,54 +51,48 @@ public interface IndexMetadata extends M
      * Method to set whether it is unique.
      * 
      * @param unique Unique?
+     * @return This metadata object
      */
     IndexMetadata setUnique(boolean unique);
 
     /**
      * Accessor for whether unique.
-     * 
      * @return Unique?
      */
     boolean getUnique();
 
     /**
      * Accessor for all column(s) defined on the index.
-     * 
      * @return The column(s)
      */
     ColumnMetadata[] getColumns();
 
     /**
      * Add a new column for this index.
-     * 
      * @return The ColumnMetadata
      */
     ColumnMetadata newColumn();
 
     /**
      * Accessor for the number of columns defined for this index.
-     * 
      * @return The number of columns
      */
     int getNumberOfColumns();
 
     /**
      * Accessor for all member(s) defined on the index.
-     * 
      * @return The fields/properties
      */
     MemberMetadata[] getMembers();
 
     /**
      * Accessor for the number of fields/properties defined for this index.
-     * 
      * @return The number of members
      */
     int getNumberOfMembers();
 
     /**
      * Add a new field for this index.
-     * 
      * @param name Name of the field
      * @return The FieldMetadata
      */
@@ -108,7 +100,6 @@ public interface IndexMetadata extends M
 
     /**
      * Add a new property for this index.
-     * 
      * @param name Name of the property
      * @return The PropertyMetadata
      */

Modified: db/jdo/trunk/api/src/java/javax/jdo/metadata/InheritanceMetadata.java
URL: http://svn.apache.org/viewvc/db/jdo/trunk/api/src/java/javax/jdo/metadata/InheritanceMetadata.java?rev=1680199&r1=1680198&r2=1680199&view=diff
==============================================================================
--- db/jdo/trunk/api/src/java/javax/jdo/metadata/InheritanceMetadata.java (original)
+++ db/jdo/trunk/api/src/java/javax/jdo/metadata/InheritanceMetadata.java Tue May 19 08:01:48 2015
@@ -25,56 +25,50 @@ import javax.jdo.annotations.Inheritance
 public interface InheritanceMetadata extends Metadata {
     /**
      * Method to set the inheritance strategy.
-     * 
      * @param strategy The strategy
+     * @return This metadata object
      */
     InheritanceMetadata setStrategy(InheritanceStrategy strategy);
 
     /**
      * Accessor for the inheritance strategy.
-     * 
      * @return The strategy
      */
     InheritanceStrategy getStrategy();
 
     /**
      * Method to set the custom inheritance strategy.
-     * 
      * @param strategy The strategy
+     * @return This metadata object
      */
     InheritanceMetadata setCustomStrategy(String strategy);
 
     /**
      * Accessor for the custom inheritance (overriding "strategy").
-     * 
      * @return The strategy
      */
     String getCustomStrategy();
 
     /**
      * Method to define the new discriminator metadata.
-     * 
      * @return The DiscriminatorMetadata
      */
     DiscriminatorMetadata newDiscriminatorMetadata();
 
     /**
      * Accessor for the discriminator (if any).
-     * 
      * @return Discriminator
      */
     DiscriminatorMetadata getDiscriminatorMetadata();
 
     /**
-     * Method to define the new join information
-     * 
+     * Method to define the new join information.
      * @return The JoinMetadata
      */
     JoinMetadata newJoinMetadata();
 
     /**
      * Accessor for the join (if any).
-     * 
      * @return Join information
      */
     JoinMetadata getJoinMetadata();

Modified: db/jdo/trunk/api/src/java/javax/jdo/metadata/JDOMetadata.java
URL: http://svn.apache.org/viewvc/db/jdo/trunk/api/src/java/javax/jdo/metadata/JDOMetadata.java?rev=1680199&r1=1680198&r2=1680199&view=diff
==============================================================================
--- db/jdo/trunk/api/src/java/javax/jdo/metadata/JDOMetadata.java (original)
+++ db/jdo/trunk/api/src/java/javax/jdo/metadata/JDOMetadata.java Tue May 19 08:01:48 2015
@@ -24,15 +24,14 @@ public interface JDOMetadata extends Met
     /**
      * Method to set the catalog (ORM) to apply to all classes in this
      * JDO Metadata.
-     * 
      * @param catalog Catalog name
+     * @return This metadata object
      */
     JDOMetadata setCatalog(String catalog);
 
     /**
      * Accessor for the catalog (ORM) that all classes in this JDO Metadata
      * default to.
-     * 
      * @return The catalog
      */
     String getCatalog();
@@ -40,29 +39,26 @@ public interface JDOMetadata extends Met
     /**
      * Method to set the schema (ORM) to apply to all classes in this JDO
      * Metadata.
-     * 
      * @param schema Schema name
+     * @return This metadata object
      */
     JDOMetadata setSchema(String schema);
 
     /**
      * Accessor for the schema (ORM) that all classes in this JDO Metadata
      * default to.
-     * 
      * @return The schema
      */
     String getSchema();
 
     /**
      * Accessor for all packages defined on the JDO Metadata.
-     * 
      * @return The packages
      */
     PackageMetadata[] getPackages();
 
     /**
      * Add a new package to this JDO Metadata.
-     * 
      * @param pkgName Name of the package
      * @return The PackageMetadata
      */
@@ -70,7 +66,6 @@ public interface JDOMetadata extends Met
 
     /**
      * Add a new package to this JDO Metadata.
-     * 
      * @param pkg The package
      * @return The PackageMetadata
      */
@@ -78,7 +73,6 @@ public interface JDOMetadata extends Met
 
     /**
      * Accessor for the number of packages defined in this JDO Metadata.
-     * 
      * @return The number of packages.
      */
     int getNumberOfPackages();
@@ -86,7 +80,6 @@ public interface JDOMetadata extends Met
     /**
      * Add a new class to this JDO Metadata.
      * Adds its package also if not yet existing.
-     * 
      * @param cls Class to add
      * @return The ClassMetadata
      */
@@ -95,7 +88,6 @@ public interface JDOMetadata extends Met
     /**
      * Add a new interface to this JDO Metadata.
      * Adds its package also if not yet existing.
-     * 
      * @param cls Class to add
      * @return The InterfaceMetadata
      */
@@ -103,14 +95,12 @@ public interface JDOMetadata extends Met
 
     /**
      * Accessor for any named queries defined on the JDO Metadata.
-     * 
      * @return The queries
      */
     QueryMetadata[] getQueries();
 
     /**
      * Add a new named query to this JDO Metadata.
-     * 
      * @param name Name of the query
      * @return The QueryMetadata
      */
@@ -118,14 +108,12 @@ public interface JDOMetadata extends Met
 
     /**
      * Accessor for the number of named queries defined in this JDO Metadata.
-     * 
      * @return The number of queries.
      */
     int getNumberOfQueries();
 
     /**
      * Accessor for any fetch plans defined on the JDO Metadata.
-     * 
      * @return The fetch plans
      */
     FetchPlanMetadata[] getFetchPlans();
@@ -140,7 +128,6 @@ public interface JDOMetadata extends Met
 
     /**
      * Accessor for the number of fetch plans defined in this JDO Metadata.
-     * 
      * @return The number of fetch plans.
      */
     int getNumberOfFetchPlans();

Modified: db/jdo/trunk/api/src/java/javax/jdo/metadata/JoinMetadata.java
URL: http://svn.apache.org/viewvc/db/jdo/trunk/api/src/java/javax/jdo/metadata/JoinMetadata.java?rev=1680199&r1=1680198&r2=1680199&view=diff
==============================================================================
--- db/jdo/trunk/api/src/java/javax/jdo/metadata/JoinMetadata.java (original)
+++ db/jdo/trunk/api/src/java/javax/jdo/metadata/JoinMetadata.java Tue May 19 08:01:48 2015
@@ -25,119 +25,108 @@ import javax.jdo.annotations.ForeignKeyA
 public interface JoinMetadata extends Metadata {
     /**
      * Method to set the join column.
-     * 
      * @param column Name of the join column
+     * @return This metadata object
      */
     JoinMetadata setColumn(String column);
 
     /**
-     * Accessor for the join column name
-     * 
+     * Accessor for the join column name.
      * @return The column name
      */
     String getColumn();
 
     /**
      * Method to set the table name.
-     * 
      * @param table Table name
+     * @return This metadata object
      */
     JoinMetadata setTable(String table);
 
     /**
      * Accessor for the name of the table.
-     * 
      * @return The name
      */
     String getTable();
 
     /**
-     * Method to set whether to use an outer join
-     * 
+     * Method to set whether to use an outer join.
      * @param outer Outer join?
+     * @return This metadata object
      */
     JoinMetadata setOuter(boolean outer);
 
     /**
      * Accessor for whether to use an outer join.
-     * 
      * @return Outer join?
      */
     boolean getOuter();
 
     /**
      * Method to set the delete action of the FK
-     * 
      * @param action Delete action of the FK
+     * @return This metadata object
      */
     JoinMetadata setDeleteAction(ForeignKeyAction action);
 
     /**
-     * Accessor for the delete action of the FK
-     * 
+     * Accessor for the delete action of the FK.
      * @return The FK delete-action
      */
     ForeignKeyAction getDeleteAction();
 
     /**
      * Method to set whether indexed.
-     * 
      * @param indexed Whether indexed (true | false | unique)
+     * @return This metadata object
      */
     JoinMetadata setIndexed(Indexed indexed);
 
     /**
-     * Accessor for whether indexed (true|false|unique)
-     * 
+     * Accessor for whether indexed (true|false|unique).
      * @return Indexed?
      */
     Indexed getIndexed();
 
     /**
      * Method to set whether it is unique.
-     * 
      * @param unique Unique?
+     * @return This metadata object
      */
     JoinMetadata setUnique(boolean unique);
 
     /**
      * Accessor for whether unique.
-     * 
      * @return Unique?
      */
     Boolean getUnique();
 
     /**
      * Method to set new index metadata for the join.
-     * 
      * @return The IndexMetadata
      */
     IndexMetadata newIndexMetadata();
 
     /**
-     * Accessor for any index metadata on this join
-     * 
+     * Accessor for any index metadata on this join.
      * @return Index metadata
      */
     IndexMetadata getIndexMetadata();
 
     /**
-     * Method to set new unique constraint metadata for the join
-     * 
+     * Method to set new unique constraint metadata for the join.
      * @return The UniqueMetadata
      */
     UniqueMetadata newUniqueMetadata();
 
     /**
      * Accessor for any unique constraint metadata on this join.
-     * 
      * @return The UniqueMetadata
      */
     UniqueMetadata getUniqueMetadata();
 
     /**
-     * Method to set new foreign key metadata for the join
-     * 
+     * Method to set new foreign key metadata for the join.
      * @return The ForeignKeyMetadata
      */
     ForeignKeyMetadata newForeignKeyMetadata();
@@ -150,36 +139,31 @@ public interface JoinMetadata extends Me
     ForeignKeyMetadata getForeignKeyMetadata();
 
     /**
-     * Method to set new primary key metadata for the join
-     * 
+     * Method to set new primary key metadata for the join.
      * @return The PrimaryKeyMetadata
      */
     PrimaryKeyMetadata newPrimaryKeyMetadata();
 
     /**
      * Accessor for any primary key metadata on this join.
-     * 
      * @return The PrimaryKeyMetadata
      */
     PrimaryKeyMetadata getPrimaryKeyMetadata();
 
     /**
      * Accessor for all column(s) defined on the join.
-     * 
      * @return The column(s)
      */
     ColumnMetadata[] getColumns();
 
     /**
      * Add a new column for this join.
-     * 
      * @return The ColumnMetadata
      */
     ColumnMetadata newColumnMetadata();
 
     /**
      * Accessor for the number of columns defined for this join.
-     * 
      * @return The number of columns
      */
     int getNumberOfColumns();

Modified: db/jdo/trunk/api/src/java/javax/jdo/metadata/KeyMetadata.java
URL: http://svn.apache.org/viewvc/db/jdo/trunk/api/src/java/javax/jdo/metadata/KeyMetadata.java?rev=1680199&r1=1680198&r2=1680199&view=diff
==============================================================================
--- db/jdo/trunk/api/src/java/javax/jdo/metadata/KeyMetadata.java (original)
+++ db/jdo/trunk/api/src/java/javax/jdo/metadata/KeyMetadata.java Tue May 19 08:01:48 2015
@@ -16,6 +16,7 @@
  */
 package javax.jdo.metadata;
 
+import javax.jdo.AttributeConverter;
 import javax.jdo.annotations.ForeignKeyAction;
 
 /**
@@ -24,84 +25,76 @@ import javax.jdo.annotations.ForeignKeyA
 public interface KeyMetadata extends Metadata {
     /**
      * Method to set the column name.
-     * 
      * @param column Column name
+     * @return This metadata object
      */
     KeyMetadata setColumn(String column);
 
     /**
      * Accessor for the name of the column.
-     * 
      * @return The name
      */
     String getColumn();
 
     /**
      * Method to set the table name.
-     * 
      * @param table Table name
+     * @return This metadata object
      */
     KeyMetadata setTable(String table);
 
     /**
      * Accessor for the name of the table.
-     * 
      * @return The name
      */
     String getTable();
 
     /**
      * Method to set the delete action of the FK
-     * 
      * @param action Delete action of the FK
+     * @return This metadata object
      */
     KeyMetadata setDeleteAction(ForeignKeyAction action);
 
     /**
-     * Accessor for the delete action of the FK
-     * 
+     * Accessor for the delete action of the FK.
      * @return The FK delete-action
      */
     ForeignKeyAction getDeleteAction();
 
     /**
-     * Method to set the update action of the FK
-     * 
+     * Method to set the update action of the FK.
      * @param action Update action of the FK
+     * @return This metadata object
      */
     KeyMetadata setUpdateAction(ForeignKeyAction action);
 
     /**
-     * Accessor for the update action of the FK
-     * 
+     * Accessor for the update action of the FK.
      * @return The FK update-action
      */
     ForeignKeyAction getUpdateAction();
 
     /**
      * Accessor for all column(s) defined on the key.
-     * 
      * @return The column(s)
      */
     ColumnMetadata[] getColumns();
 
     /**
      * Add a new column for this key.
-     * 
      * @return The ColumnMetadata
      */
     ColumnMetadata newColumnMetadata();
 
     /**
      * Accessor for the number of columns defined for this key.
-     * 
      * @return The number of columns
      */
     int getNumberOfColumns();
 
     /**
      * Method to set new embedded metadata for the key.
-     * 
      * @return The EmbeddedMetadata
      */
     EmbeddedMetadata newEmbeddedMetadata();
@@ -122,36 +115,58 @@ public interface KeyMetadata extends Met
 
     /**
      * Accessor for any index metadata on this key
-     * 
      * @return Index metadata
      */
     IndexMetadata getIndexMetadata();
 
     /**
      * Method to set new unique constraint metadata for the key
-     * 
      * @return The UniqueMetadata
      */
     UniqueMetadata newUniqueMetadata();
 
     /**
      * Accessor for any unique constraint metadata on this key.
-     * 
      * @return The UniqueMetadata
      */
     UniqueMetadata getUniqueMetadata();
 
     /**
      * Method to set new foreign key metadata for the key
-     * 
      * @return The ForeignKeyMetadata
      */
     ForeignKeyMetadata newForeignKeyMetadata();
 
     /**
      * Accessor for any foreign key metadata on this key.
-     * 
      * @return The ForeignKeyMetadata
      */
     ForeignKeyMetadata getForeignKeyMetadata();
+
+    /**
+     * Accessor for the attribute converter for this key (if any).
+     * @return The converter
+     */
+    AttributeConverter<?, ?> getConverter();
+
+    /**
+     * Method to set the attribute converter to use for this key.
+     * @param conv Converter
+     * @return This metadata
+     */
+    KeyMetadata setConverter(AttributeConverter<?, ?> conv);
+
+    /**
+     * Accessor for whether the PMF defined converter for this key type is disabled.
+     * @return Whether it is disabled
+     */
+    boolean getDisableConverter();
+
+    /**
+     * Method to enable/disable the PMF defined converter for this member (if present).
+     * If a converter is defined on this metadata element then this flag will be ignored.
+     * @param disable Whether to disable
+     * @return This metadata
+     */
+    KeyMetadata setDisableConverter(boolean disable);
 }
\ No newline at end of file

Modified: db/jdo/trunk/api/src/java/javax/jdo/metadata/MapMetadata.java
URL: http://svn.apache.org/viewvc/db/jdo/trunk/api/src/java/javax/jdo/metadata/MapMetadata.java?rev=1680199&r1=1680198&r2=1680199&view=diff
==============================================================================
--- db/jdo/trunk/api/src/java/javax/jdo/metadata/MapMetadata.java (original)
+++ db/jdo/trunk/api/src/java/javax/jdo/metadata/MapMetadata.java Tue May 19 08:01:48 2015
@@ -22,113 +22,105 @@ package javax.jdo.metadata;
  */
 public interface MapMetadata extends Metadata {
     /**
-     * Method to set the name of the key type
-     * 
+     * Method to set the name of the key type.
      * @param type Name of the key type
+     * @return This metadata object
      */
     MapMetadata setKeyType(String type);
 
     /**
-     * Accessor for the key type
-     * 
+     * Accessor for the key type.
      * @return The key type
      */
     String getKeyType();
 
     /**
-     * Method to set whether the key is embedded
-     * 
+     * Method to set whether the key is embedded.
      * @param val Whether it is embedded
+     * @return This metadata object
      */
     MapMetadata setEmbeddedKey(boolean val);
 
     /**
-     * Accessor for whether the key is embedded
-     * 
+     * Accessor for whether the key is embedded.
      * @return whether the key is embedded
      */
     Boolean getEmbeddedKey();
 
     /**
-     * Method to set whether the key is serialised
-     * 
+     * Method to set whether the key is serialised.
      * @param val Whether it is serialised
+     * @return This metadata object
      */
     MapMetadata setSerializedKey(boolean val);
 
     /**
-     * Accessor for whether the key is serialised
-     * 
+     * Accessor for whether the key is serialised.
      * @return whether the key is serialised
      */
     Boolean getSerializedKey();
 
     /**
-     * Method to set whether the key is dependent
-     * 
+     * Method to set whether the key is dependent.
      * @param val Whether it is dependent
+     * @return This metadata object
      */
     MapMetadata setDependentKey(boolean val);
 
     /**
-     * Accessor for whether the key is dependent
-     * 
+     * Accessor for whether the key is dependent.
      * @return whether the key is dependent
      */
     Boolean getDependentKey();
 
     /**
-     * Method to set the name of the value type
-     * 
+     * Method to set the name of the value type.
      * @param type Name of the value type
+     * @return This metadata object
      */
     MapMetadata setValueType(String type);
 
     /**
-     * Accessor for the value type
-     * 
+     * Accessor for the value type.
      * @return The value type
      */
     String getValueType();
 
     /**
-     * Method to set whether the value is embedded
-     * 
+     * Method to set whether the value is embedded.
      * @param val Whether it is embedded
+     * @return This metadata object
      */
     MapMetadata setEmbeddedValue(boolean val);
 
     /**
-     * Accessor for whether the value is embedded
-     * 
+     * Accessor for whether the value is embedded.
      * @return whether the value is embedded
      */
     Boolean getEmbeddedValue();
 
     /**
-     * Method to set whether the value is serialised
-     * 
+     * Method to set whether the value is serialised.
      * @param val Whether it is serialised
+     * @return This metadata object
      */
     MapMetadata setSerializedValue(boolean val);
 
     /**
-     * Accessor for whether the value is serialised
-     * 
+     * Accessor for whether the value is serialised.
      * @return whether the value is serialised
      */
     Boolean getSerializedValue();
 
     /**
-     * Method to set whether the value is dependent
-     * 
+     * Method to set whether the value is dependent.
      * @param val Whether it is dependent
+     * @return This metadata object
      */
     MapMetadata setDependentValue(boolean val);
 
     /**
-     * Accessor for whether the value is dependent
-     * 
+     * Accessor for whether the value is dependent.
      * @return whether the value is dependent
      */
     Boolean getDependentValue();

Modified: db/jdo/trunk/api/src/java/javax/jdo/metadata/MemberMetadata.java
URL: http://svn.apache.org/viewvc/db/jdo/trunk/api/src/java/javax/jdo/metadata/MemberMetadata.java?rev=1680199&r1=1680198&r2=1680199&view=diff
==============================================================================
--- db/jdo/trunk/api/src/java/javax/jdo/metadata/MemberMetadata.java (original)
+++ db/jdo/trunk/api/src/java/javax/jdo/metadata/MemberMetadata.java Tue May 19 08:01:48 2015
@@ -16,6 +16,7 @@
  */
 package javax.jdo.metadata;
 
+import javax.jdo.AttributeConverter;
 import javax.jdo.annotations.ForeignKeyAction;
 import javax.jdo.annotations.IdGeneratorStrategy;
 import javax.jdo.annotations.NullValue;
@@ -28,42 +29,39 @@ import javax.jdo.annotations.Persistence
 public interface MemberMetadata extends Metadata {
     /**
      * Method to set the name.
-     * 
      * @param name name
+     * @return This metadata object
      */
     MemberMetadata setName(String name);
 
     /**
      * Accessor for the name of the field/property.
-     * 
      * @return The name
      */
     String getName();
 
     /**
      * Method to set the table name.
-     * 
      * @param table Table name
+     * @return This metadata object
      */
     MemberMetadata setTable(String table);
 
     /**
      * Accessor for the name of the table.
-     * 
      * @return The name
      */
     String getTable();
 
     /**
      * Method to set the column name.
-     * 
      * @param col Column name
+     * @return This metadata object
      */
     MemberMetadata setColumn(String col);
 
     /**
      * Accessor for the name of the column.
-     * 
      * @return The column name
      */
     String getColumn();
@@ -71,443 +69,425 @@ public interface MemberMetadata extends
     /**
      * Method to set the field type(s). For defining where we want to restrict
      * what type is stored in a field
-     * 
      * @param type Type of field
+     * @return This metadata object
      */
     MemberMetadata setFieldType(String type);
 
     /**
-     * Accessor for the type storable in the field
-     * 
+     * Accessor for the type storable in the field.
      * @return The field type
      */
     String getFieldType();
 
     /**
      * Method to set the delete action of the FK
-     * 
      * @param action Delete action of the FK
+     * @return This metadata object
      */
     MemberMetadata setDeleteAction(ForeignKeyAction action);
 
     /**
-     * Accessor for the delete action of the FK
-     * 
+     * Accessor for the delete action of the FK.
      * @return The FK delete-action
      */
     ForeignKeyAction getDeleteAction();
 
     /**
      * Method to set the persistence-modifier of the field/property.
-     * 
      * @param mod persistence modifier
+     * @return This metadata object
      */
     MemberMetadata setPersistenceModifier(PersistenceModifier mod);
 
     /**
      * Accessor for the persistence modifier of the field/property.
-     * 
      * @return The persistence modifier
      */
     PersistenceModifier getPersistenceModifier();
 
     /**
      * Method to set the behaviour of a null value
-     * 
      * @param val Null value behaviour
+     * @return This metadata object
      */
     MemberMetadata setNullValue(NullValue val);
 
     /**
      * Accessor for the behaviour of a null value
-     * 
      * @return The null value behaviour
      */
     NullValue getNullValue();
 
     /**
      * Method to set whether it is in the DFG.
-     * 
      * @param dfg DFG?
+     * @return This metadata object
      */
     MemberMetadata setDefaultFetchGroup(boolean dfg);
 
     /**
      * Accessor for whether part of the DFG.
-     * 
      * @return dfg?
      */
     Boolean getDefaultFetchGroup();
 
     /**
      * Method to set whether it is unique.
-     * 
      * @param unique Unique?
+     * @return This metadata object
      */
     MemberMetadata setDependent(boolean unique);
 
     /**
      * Accessor for whether unique.
-     * 
      * @return Unique?
      */
     Boolean getDependent();
 
     /**
      * Method to set whether it is embedded.
-     * 
      * @param emb Embedded?
+     * @return This metadata object
      */
     MemberMetadata setEmbedded(boolean emb);
 
     /**
      * Accessor for whether it is embedded.
-     * 
      * @return embedded?
      */
     Boolean getEmbedded();
 
     /**
      * Method to set whether it is serialized.
-     * 
      * @param ser serialized?
+     * @return This metadata object
      */
     MemberMetadata setSerialized(boolean ser);
 
     /**
      * Accessor for whether it is serialized.
-     * 
      * @return serialized?
      */
     Boolean getSerialized();
 
     /**
      * Method to set whether it is part of the pk
-     * 
      * @param pk PK?
+     * @return This metadata object
      */
     MemberMetadata setPrimaryKey(boolean pk);
 
     /**
      * Accessor for whether it is part of the pk.
-     * 
      * @return pk?
      */
     boolean getPrimaryKey();
 
     /**
      * Method to set whether it is indexed.
-     * 
      * @param index Indexed?
+     * @return This metadata object
      */
     MemberMetadata setIndexed(boolean index);
 
     /**
      * Accessor for whether it is indexed.
-     * 
      * @return Indexed?
      */
     Boolean getIndexed();
 
     /**
      * Method to set whether it is unique.
-     * 
      * @param unique Unique?
+     * @return This metadata object
      */
     MemberMetadata setUnique(boolean unique);
 
     /**
      * Accessor for whether unique.
-     * 
      * @return Unique?
      */
     Boolean getUnique();
 
     /**
      * Method to set whether this is cacheable
-     * 
      * @param cacheable Cacheable?
+     * @return This metadata object
      */
     MemberMetadata setCacheable(boolean cacheable);
 
     /**
      * Accessor for whether this is cacheable.
-     * 
      * @return Detachable?
      */
     boolean getCacheable();
 
     /**
      * Method to set the recursion depth (when used in a fetch group).
-     * 
      * @param depth Recursion depth
+     * @return This metadata object
      */
     MemberMetadata setRecursionDepth(int depth);
 
     /**
      * Accessor for the recursion depth (when part of a fetch group).
-     * 
      * @return Recursion depth?
      */
     int getRecursionDepth();
 
     /**
      * Method to set the load fetch group.
-     * 
      * @param grp Load fetch group
+     * @return This metadata object
      */
     MemberMetadata setLoadFetchGroup(String grp);
 
     /**
      * Accessor for the name of the load fetch group
-     * 
      * @return The load fetch group
      */
     String getLoadFetchGroup();
 
     /**
      * Method to set the value strategy
-     * 
      * @param str Value strategy
+     * @return This metadata object
      */
     MemberMetadata setValueStrategy(IdGeneratorStrategy str);
 
     /**
      * Accessor for the value strategy
-     * 
      * @return Value strategy
      */
     IdGeneratorStrategy getValueStrategy();
 
     /**
      * Method to set the custom identity generation strategy.
-     * 
      * @param strategy The strategy
+     * @return This metadata object
      */
     MemberMetadata setCustomStrategy(String strategy);
 
     /**
      * Accessor for the custom strategy (overriding "strategy").
-     * 
      * @return The strategy
      */
     String getCustomStrategy();
 
     /**
      * Method to set the sequence (when using value-strategy of "sequence")
-     * 
      * @param seq Sequence key
+     * @return This metadata object
      */
     MemberMetadata setSequence(String seq);
 
     /**
      * Accessor for the sequence (when using value-strategy of "sequence")
-     * 
      * @return Sequence key
      */
     String getSequence();
 
     /**
      * Method to set the field on the other side of a bidirectional relation
-     * (this side is owner)
-     * 
+     * (this side is owner).
      * @param map  mapped-by field/property
+     * @return This metadata object
      */
     MemberMetadata setMappedBy(String map);
 
     /**
      * Accessor for the mapped-by field/property
-     * 
      * @return mapped-by field/property
      */
     String getMappedBy();
 
     /**
      * Method to define the array details (if the field/property is an array)
-     * 
      * @return The ArrayMetadata
      */
     ArrayMetadata newArrayMetadata();
 
     /**
      * Accessor for the array details.
-     * 
      * @return array details
      */
     ArrayMetadata getArrayMetadata();
 
     /**
-     * Method to define the array details (if the field/property is an array)
-     * 
+     * Method to define the array details (if the field/property is an array).
      * @return The ArrayMetadata
      */
     CollectionMetadata newCollectionMetadata();
 
     /**
      * Accessor for the array details.
-     * 
      * @return array details
      */
     CollectionMetadata getCollectionMetadata();
 
     /**
-     * Method to define the map details (if the field/property is an map)
-     * 
+     * Method to define the map details (if the field/property is an map).
      * @return The MapMetadata
      */
     MapMetadata newMapMetadata();
 
     /**
      * Accessor for the map details.
-     * 
      * @return map details
      */
     MapMetadata getMapMetadata();
 
     /**
-     * Method to define the join details
-     * 
+     * Method to define the join details.
      * @return The JoinMetadata
      */
     JoinMetadata newJoinMetadata();
 
     /**
      * Accessor for the join details.
-     * 
      * @return join details
      */
     JoinMetadata getJoinMetadata();
 
     /**
-     * Method to define the embedded details
-     * 
+     * Method to define the embedded details.
      * @return The EmbeddedMetadata
      */
     EmbeddedMetadata newEmbeddedMetadata();
 
     /**
      * Accessor for the embedded metadata.
-     * 
      * @return embedded metadata
      */
     EmbeddedMetadata getEmbeddedMetadata();
 
     /**
-     * Method to define the new element details
-     * 
+     * Method to define the new element details.
      * @return The ElementMetadata
      */
     ElementMetadata newElementMetadata();
 
     /**
-     * Accessor for the element details
-     * 
+     * Accessor for the element details.
      * @return element details
      */
     ElementMetadata getElementMetadata();
 
     /**
-     * Method to define the key details
-     * 
+     * Method to define the key details.
      * @return The KeyMetadata
      */
     KeyMetadata newKeyMetadata();
 
     /**
-     * Accessor for the key details
-     * 
+     * Accessor for the key details.
      * @return key details
      */
     KeyMetadata getKeyMetadata();
 
     /**
-     * Method to define the value details
-     * 
+     * Method to define the value details.
      * @return The ValueMetadata
      */
     ValueMetadata newValueMetadata();
 
     /**
-     * Accessor for the value details
-     * 
+     * Accessor for the value details.
      * @return value details
      */
     ValueMetadata getValueMetadata();
 
     /**
-     * Method to set index metadata for the field/property
-     * 
+     * Method to set index metadata for the field/property.
      * @return The metadata for any index
      */
     IndexMetadata newIndexMetadata();
 
     /**
-     * Accessor for any index metadata for the field/property
-     * 
+     * Accessor for any index metadata for the field/property.
      * @return Index metadata
      */
     IndexMetadata getIndexMetadata();
 
     /**
-     * Method to set new unique constraint metadata for the field/property
-     * 
+     * Method to set new unique constraint metadata for the field/property.
      * @return The UniqueMetadata
      */
     UniqueMetadata newUniqueMetadata();
 
     /**
      * Accessor for any unique constraint metadata on this field/property.
-     * 
      * @return The UniqueMetadata
      */
     UniqueMetadata getUniqueMetadata();
 
     /**
-     * Method to set new foreign key metadata for the field/property
-     * 
+     * Method to set new foreign key metadata for the field/property.
      * @return The ForeignKeyMetadata
      */
     ForeignKeyMetadata newForeignKeyMetadata();
 
     /**
      * Accessor for any foreign key metadata on this field/property.
-     * 
      * @return The ForeignKeyMetadata
      */
     ForeignKeyMetadata getForeignKeyMetadata();
 
     /**
      * Method to define the order details.
-     * 
      * @return The OrdeMetadata
      */
     OrderMetadata newOrderMetadata();
 
     /**
      * Accessor for the order metadata.
-     * 
      * @return order metadata
      */
     OrderMetadata getOrderMetadata();
 
     /**
      * Accessor for all column(s) defined on the join.
-     * 
      * @return The column(s)
      */
     ColumnMetadata[] getColumns();
 
     /**
      * Add a new column for this join.
-     * 
      * @return The ColumnMetadata
      */
     ColumnMetadata newColumnMetadata();
 
     /**
      * Accessor for the number of columns defined for this join.
-     * 
      * @return The number of columns
      */
     int getNumberOfColumns();
+
+    /**
+     * Accessor for the attribute converter for this member (if any).
+     * @return The converter
+     */
+    AttributeConverter<?, ?> getConverter();
+
+    /**
+     * Method to set the attribute converter to use for this member.
+     * @param conv Converter
+     * @return This metadata
+     */
+    MemberMetadata setConverter(AttributeConverter<?, ?> conv);
+
+    /**
+     * Accessor for whether the PMF defined converter for this member type is disabled.
+     * @return Whether it is disabled
+     */
+    boolean getDisableConverter();
+
+    /**
+     * Method to enable/disable the PMF defined converter for this member (if present).
+     * If a converter is defined on this metadata element then this flag will be ignored.
+     * @param disable Whether to disable
+     * @return This metadata
+     */
+    MemberMetadata setDisableConverter(boolean disable);
 }