db-jdo-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From c..@apache.org
Subject svn commit: r1293075 [2/12] - in /db/jdo/trunk/specification: ./ imports/
Date Fri, 24 Feb 2012 04:26:02 GMT
Added: db/jdo/trunk/specification/imports/ElementMetadata.txt
URL: http://svn.apache.org/viewvc/db/jdo/trunk/specification/imports/ElementMetadata.txt?rev=1293075&view=auto
==============================================================================
--- db/jdo/trunk/specification/imports/ElementMetadata.txt (added)
+++ db/jdo/trunk/specification/imports/ElementMetadata.txt Fri Feb 24 04:25:57 2012
@@ -0,0 +1,138 @@
+/**
+ * Represents an element in a collection/array.
+ * @since 2.3
+ */
+public interface ElementMetadata extends Metadata {
+    /**
+     * Method to set the column name.
+     * 
+     * @param column Column name
+     */
+    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
+     */
+    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
+     */
+    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
+     */
+    ElementMetadata setUpdateAction(ForeignKeyAction action);
+
+    /**
+     * 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
+     * 
+     * @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
+     * 
+     * @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
+     * 
+     * @return The ForeignKeyMetadata
+     */
+    ForeignKeyMetadata newForeignKeyMetadata();
+
+    /**
+     * Accessor for any foreign key metadata on this element.
+     * 
+     * @return The ForeignKeyMetadata
+     */
+    ForeignKeyMetadata getForeignKeyMetadata();
+}

Propchange: db/jdo/trunk/specification/imports/ElementMetadata.txt
------------------------------------------------------------------------------
    svn:eol-style = LF

Added: db/jdo/trunk/specification/imports/Embedded.txt
URL: http://svn.apache.org/viewvc/db/jdo/trunk/specification/imports/Embedded.txt?rev=1293075&view=auto
==============================================================================
--- db/jdo/trunk/specification/imports/Embedded.txt (added)
+++ db/jdo/trunk/specification/imports/Embedded.txt Fri Feb 24 04:25:57 2012
@@ -0,0 +1,26 @@
+@Target({ElementType.FIELD, ElementType.METHOD}) 
+@Retention(RetentionPolicy.RUNTIME)
+public @interface Embedded
+{
+    /** The member in the embedded object that links back to the owning object
+     * where it has a bidirectional relationship. 
+     * @return the member that refers to the owner
+     */
+    String ownerMember() default "";
+
+    /** The column in the embedded object used to judge if the embedded object
+     * is null. 
+     * @return the null indicator column
+     */
+    String nullIndicatorColumn() default "";
+
+    /** The value in the null column to interpret the object as being null.
+     * @return the null indicator value
+     */
+    String nullIndicatorValue() default "";
+
+    /** Members for this embedding. 
+     * @return the members embedded in the field or property being annotated
+     */
+    Persistent[] members() default {};
+}

Propchange: db/jdo/trunk/specification/imports/Embedded.txt
------------------------------------------------------------------------------
    svn:eol-style = LF

Added: db/jdo/trunk/specification/imports/EmbeddedMetadata.java
URL: http://svn.apache.org/viewvc/db/jdo/trunk/specification/imports/EmbeddedMetadata.java?rev=1293075&view=auto
==============================================================================
--- db/jdo/trunk/specification/imports/EmbeddedMetadata.java (added)
+++ db/jdo/trunk/specification/imports/EmbeddedMetadata.java Fri Feb 24 04:25:57 2012
@@ -0,0 +1,95 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package javax.jdo.metadata;
+
+/**
+ * Represents embedding details of a field/property in a class.
+ * @since 2.3
+ */
+public interface EmbeddedMetadata extends Metadata {
+    /**
+     * Method to set the name of the owner field/property.
+     * 
+     * @param member Name of the owner member
+     */
+    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
+     * 
+     * @param col Null indicator column
+     */
+    EmbeddedMetadata setNullIndicatorColumn(String col);
+
+    /**
+     * 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
+     * 
+     * @param val Null indicator value
+     */
+    EmbeddedMetadata setNullIndicatorValue(String val);
+
+    /**
+     * 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
+     * 
+     * @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
+     * 
+     * @param name Name of the property
+     * @return The PropertyMetadata
+     */
+    PropertyMetadata newPropertyMetadata(String name);
+}
\ No newline at end of file

Propchange: db/jdo/trunk/specification/imports/EmbeddedMetadata.java
------------------------------------------------------------------------------
    svn:eol-style = LF

Added: db/jdo/trunk/specification/imports/EmbeddedMetadata.txt
URL: http://svn.apache.org/viewvc/db/jdo/trunk/specification/imports/EmbeddedMetadata.txt?rev=1293075&view=auto
==============================================================================
--- db/jdo/trunk/specification/imports/EmbeddedMetadata.txt (added)
+++ db/jdo/trunk/specification/imports/EmbeddedMetadata.txt Fri Feb 24 04:25:57 2012
@@ -0,0 +1,77 @@
+/**
+ * Represents embedding details of a field/property in a class.
+ * @since 2.3
+ */
+public interface EmbeddedMetadata extends Metadata {
+    /**
+     * Method to set the name of the owner field/property.
+     * 
+     * @param member Name of the owner member
+     */
+    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
+     * 
+     * @param col Null indicator column
+     */
+    EmbeddedMetadata setNullIndicatorColumn(String col);
+
+    /**
+     * 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
+     * 
+     * @param val Null indicator value
+     */
+    EmbeddedMetadata setNullIndicatorValue(String val);
+
+    /**
+     * 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
+     * 
+     * @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
+     * 
+     * @param name Name of the property
+     * @return The PropertyMetadata
+     */
+    PropertyMetadata newPropertyMetadata(String name);
+}

Propchange: db/jdo/trunk/specification/imports/EmbeddedMetadata.txt
------------------------------------------------------------------------------
    svn:eol-style = LF

Added: db/jdo/trunk/specification/imports/EmbeddedOnly.txt
URL: http://svn.apache.org/viewvc/db/jdo/trunk/specification/imports/EmbeddedOnly.txt?rev=1293075&view=auto
==============================================================================
--- db/jdo/trunk/specification/imports/EmbeddedOnly.txt (added)
+++ db/jdo/trunk/specification/imports/EmbeddedOnly.txt Fri Feb 24 04:25:57 2012
@@ -0,0 +1,5 @@
+@Target(ElementType.TYPE) 
+@Retention(RetentionPolicy.RUNTIME)
+public @interface EmbeddedOnly
+{
+}

Propchange: db/jdo/trunk/specification/imports/EmbeddedOnly.txt
------------------------------------------------------------------------------
    svn:eol-style = LF

Added: db/jdo/trunk/specification/imports/Enhancer.txt
URL: http://svn.apache.org/viewvc/db/jdo/trunk/specification/imports/Enhancer.txt?rev=1293075&view=auto
==============================================================================
    (empty)

Propchange: db/jdo/trunk/specification/imports/Enhancer.txt
------------------------------------------------------------------------------
    svn:eol-style = LF

Added: db/jdo/trunk/specification/imports/Extension.txt
URL: http://svn.apache.org/viewvc/db/jdo/trunk/specification/imports/Extension.txt?rev=1293075&view=auto
==============================================================================
--- db/jdo/trunk/specification/imports/Extension.txt (added)
+++ db/jdo/trunk/specification/imports/Extension.txt Fri Feb 24 04:25:57 2012
@@ -0,0 +1,19 @@
+@Target({ElementType.TYPE, ElementType.FIELD, ElementType.METHOD}) 
+@Retention(RetentionPolicy.RUNTIME)
+public @interface Extension
+{
+    /** Vendor that the extension applies to (required).
+     * @return the vendor
+     */
+    String vendorName();
+
+    /** The key for the extension (required). 
+     * @return the key
+     */
+    String key();
+
+    /** The value for the extension (required). 
+     * @return the value
+     */
+    String value();
+}

Propchange: db/jdo/trunk/specification/imports/Extension.txt
------------------------------------------------------------------------------
    svn:eol-style = LF

Added: db/jdo/trunk/specification/imports/ExtensionMetadata.java
URL: http://svn.apache.org/viewvc/db/jdo/trunk/specification/imports/ExtensionMetadata.java?rev=1293075&view=auto
==============================================================================
--- db/jdo/trunk/specification/imports/ExtensionMetadata.java (added)
+++ db/jdo/trunk/specification/imports/ExtensionMetadata.java Fri Feb 24 04:25:57 2012
@@ -0,0 +1,42 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package javax.jdo.metadata;
+
+/**
+ * A vendor extension defined in Metadata.
+ *
+ * @version 2.3
+ */
+public interface ExtensionMetadata {
+    /**
+     * Accessor for the vendor name (set at construction).
+     * @return The vendor
+     */
+    String getVendorName();
+
+    /**
+     * Accessor for the key (set at construction).
+     * @return The key
+     */
+    String getKey();
+
+    /**
+     * Accessor for the value (set at construction).
+     * @return The value
+     */
+    String getValue();
+}
\ No newline at end of file

Propchange: db/jdo/trunk/specification/imports/ExtensionMetadata.java
------------------------------------------------------------------------------
    svn:eol-style = LF

Added: db/jdo/trunk/specification/imports/ExtensionMetadata.txt
URL: http://svn.apache.org/viewvc/db/jdo/trunk/specification/imports/ExtensionMetadata.txt?rev=1293075&view=auto
==============================================================================
--- db/jdo/trunk/specification/imports/ExtensionMetadata.txt (added)
+++ db/jdo/trunk/specification/imports/ExtensionMetadata.txt Fri Feb 24 04:25:57 2012
@@ -0,0 +1,24 @@
+/**
+ * A vendor extension defined in Metadata.
+ *
+ * @version 2.3
+ */
+public interface ExtensionMetadata {
+    /**
+     * Accessor for the vendor name (set at construction).
+     * @return The vendor
+     */
+    String getVendorName();
+
+    /**
+     * Accessor for the key (set at construction).
+     * @return The key
+     */
+    String getKey();
+
+    /**
+     * Accessor for the value (set at construction).
+     * @return The value
+     */
+    String getValue();
+}

Propchange: db/jdo/trunk/specification/imports/ExtensionMetadata.txt
------------------------------------------------------------------------------
    svn:eol-style = LF

Added: db/jdo/trunk/specification/imports/Extensions.txt
URL: http://svn.apache.org/viewvc/db/jdo/trunk/specification/imports/Extensions.txt?rev=1293075&view=auto
==============================================================================
--- db/jdo/trunk/specification/imports/Extensions.txt (added)
+++ db/jdo/trunk/specification/imports/Extensions.txt Fri Feb 24 04:25:57 2012
@@ -0,0 +1,10 @@
+@Target({ElementType.TYPE, ElementType.FIELD, ElementType.METHOD}) 
+@Retention(RetentionPolicy.RUNTIME)
+public @interface Extensions
+{
+    /**
+     * The extensions.
+     * @return the extensions
+     */
+    Extension[] value();
+}

Propchange: db/jdo/trunk/specification/imports/Extensions.txt
------------------------------------------------------------------------------
    svn:eol-style = LF

Added: db/jdo/trunk/specification/imports/Extent.txt
URL: http://svn.apache.org/viewvc/db/jdo/trunk/specification/imports/Extent.txt?rev=1293075&view=auto
==============================================================================
    (empty)

Propchange: db/jdo/trunk/specification/imports/Extent.txt
------------------------------------------------------------------------------
    svn:eol-style = LF

Added: db/jdo/trunk/specification/imports/FetchGroup.txt
URL: http://svn.apache.org/viewvc/db/jdo/trunk/specification/imports/FetchGroup.txt?rev=1293075&view=auto
==============================================================================
    (empty)

Propchange: db/jdo/trunk/specification/imports/FetchGroup.txt
------------------------------------------------------------------------------
    svn:eol-style = LF

Added: db/jdo/trunk/specification/imports/FetchGroupMetadata.java
URL: http://svn.apache.org/viewvc/db/jdo/trunk/specification/imports/FetchGroupMetadata.java?rev=1293075&view=auto
==============================================================================
--- db/jdo/trunk/specification/imports/FetchGroupMetadata.java (added)
+++ db/jdo/trunk/specification/imports/FetchGroupMetadata.java Fri Feb 24 04:25:57 2012
@@ -0,0 +1,73 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package javax.jdo.metadata;
+
+/**
+ * Represents a fetch group for a class.
+ * @since 2.3
+ */
+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
+     */
+    FetchGroupMetadata setPostLoad(boolean load);
+
+    /**
+     * Accessor for whether to call post load for this fetch group
+     * 
+     * @return Whether to call post-load
+     */
+    Boolean getPostLoad();
+
+    /**
+     * Accessor for all fields/properties defined on the fetch group.
+     * @return The members
+     */
+    MemberMetadata[] getMembers();
+
+    /**
+     * 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
+     * 
+     * @param name Name of property
+     * @return The PropertyMetadata
+     */
+    PropertyMetadata newPropertyMetadata(String name);
+}
\ No newline at end of file

Propchange: db/jdo/trunk/specification/imports/FetchGroupMetadata.java
------------------------------------------------------------------------------
    svn:eol-style = LF

Added: db/jdo/trunk/specification/imports/FetchGroupMetadata.txt
URL: http://svn.apache.org/viewvc/db/jdo/trunk/specification/imports/FetchGroupMetadata.txt?rev=1293075&view=auto
==============================================================================
--- db/jdo/trunk/specification/imports/FetchGroupMetadata.txt (added)
+++ db/jdo/trunk/specification/imports/FetchGroupMetadata.txt Fri Feb 24 04:25:57 2012
@@ -0,0 +1,55 @@
+/**
+ * Represents a fetch group for a class.
+ * @since 2.3
+ */
+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
+     */
+    FetchGroupMetadata setPostLoad(boolean load);
+
+    /**
+     * Accessor for whether to call post load for this fetch group
+     * 
+     * @return Whether to call post-load
+     */
+    Boolean getPostLoad();
+
+    /**
+     * Accessor for all fields/properties defined on the fetch group.
+     * @return The members
+     */
+    MemberMetadata[] getMembers();
+
+    /**
+     * 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
+     * 
+     * @param name Name of property
+     * @return The PropertyMetadata
+     */
+    PropertyMetadata newPropertyMetadata(String name);
+}

Propchange: db/jdo/trunk/specification/imports/FetchGroupMetadata.txt
------------------------------------------------------------------------------
    svn:eol-style = LF

Added: db/jdo/trunk/specification/imports/FetchGroups.txt
URL: http://svn.apache.org/viewvc/db/jdo/trunk/specification/imports/FetchGroups.txt?rev=1293075&view=auto
==============================================================================
--- db/jdo/trunk/specification/imports/FetchGroups.txt (added)
+++ db/jdo/trunk/specification/imports/FetchGroups.txt Fri Feb 24 04:25:57 2012
@@ -0,0 +1,10 @@
+@Target(ElementType.TYPE) 
+@Retention(RetentionPolicy.RUNTIME)
+public @interface FetchGroups
+{
+    /**
+     * The Fetch Groups
+     * @return The Fetch Groups
+     */
+    FetchGroup[] value();
+}

Propchange: db/jdo/trunk/specification/imports/FetchGroups.txt
------------------------------------------------------------------------------
    svn:eol-style = LF

Added: db/jdo/trunk/specification/imports/FetchPlan.txt
URL: http://svn.apache.org/viewvc/db/jdo/trunk/specification/imports/FetchPlan.txt?rev=1293075&view=auto
==============================================================================
    (empty)

Propchange: db/jdo/trunk/specification/imports/FetchPlan.txt
------------------------------------------------------------------------------
    svn:eol-style = LF

Added: db/jdo/trunk/specification/imports/FetchPlanMetadata.java
URL: http://svn.apache.org/viewvc/db/jdo/trunk/specification/imports/FetchPlanMetadata.java?rev=1293075&view=auto
==============================================================================
--- db/jdo/trunk/specification/imports/FetchPlanMetadata.java (added)
+++ db/jdo/trunk/specification/imports/FetchPlanMetadata.java Fri Feb 24 04:25:57 2012
@@ -0,0 +1,80 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package javax.jdo.metadata;
+
+/**
+ * Represents a fetch plan for a class.
+ * @since 2.3
+ */
+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
+     */
+    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
+     */
+    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
+     */
+    FetchGroupMetadata newFetchGroupMetadata(String name);
+
+    /**
+     * Accessor for the number of fetch groups defined for this fetch plan.
+     * 
+     * @return The number of fetch groups
+     */
+    int getNumberOfFetchGroups();
+}
\ No newline at end of file

Propchange: db/jdo/trunk/specification/imports/FetchPlanMetadata.java
------------------------------------------------------------------------------
    svn:eol-style = LF

Added: db/jdo/trunk/specification/imports/FetchPlanMetadata.txt
URL: http://svn.apache.org/viewvc/db/jdo/trunk/specification/imports/FetchPlanMetadata.txt?rev=1293075&view=auto
==============================================================================
--- db/jdo/trunk/specification/imports/FetchPlanMetadata.txt (added)
+++ db/jdo/trunk/specification/imports/FetchPlanMetadata.txt Fri Feb 24 04:25:57 2012
@@ -0,0 +1,62 @@
+/**
+ * Represents a fetch plan for a class.
+ * @since 2.3
+ */
+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
+     */
+    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
+     */
+    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
+     */
+    FetchGroupMetadata newFetchGroupMetadata(String name);
+
+    /**
+     * Accessor for the number of fetch groups defined for this fetch plan.
+     * 
+     * @return The number of fetch groups
+     */
+    int getNumberOfFetchGroups();
+}

Propchange: db/jdo/trunk/specification/imports/FetchPlanMetadata.txt
------------------------------------------------------------------------------
    svn:eol-style = LF

Added: db/jdo/trunk/specification/imports/FetchPlans.txt
URL: http://svn.apache.org/viewvc/db/jdo/trunk/specification/imports/FetchPlans.txt?rev=1293075&view=auto
==============================================================================
--- db/jdo/trunk/specification/imports/FetchPlans.txt (added)
+++ db/jdo/trunk/specification/imports/FetchPlans.txt Fri Feb 24 04:25:57 2012
@@ -0,0 +1,10 @@
+@Target(ElementType.TYPE) 
+@Retention(RetentionPolicy.RUNTIME)
+public @interface FetchPlans
+{
+    /**
+     * The Fetch Plans
+     * @return The Fetch Plans
+     */
+    FetchPlan[] value();
+}

Propchange: db/jdo/trunk/specification/imports/FetchPlans.txt
------------------------------------------------------------------------------
    svn:eol-style = LF

Added: db/jdo/trunk/specification/imports/FieldMetadata.java
URL: http://svn.apache.org/viewvc/db/jdo/trunk/specification/imports/FieldMetadata.java?rev=1293075&view=auto
==============================================================================
--- db/jdo/trunk/specification/imports/FieldMetadata.java (added)
+++ db/jdo/trunk/specification/imports/FieldMetadata.java Fri Feb 24 04:25:57 2012
@@ -0,0 +1,25 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package javax.jdo.metadata;
+
+/**
+ * Represents a field in a class.
+ * @since 2.3
+ */
+public interface FieldMetadata extends MemberMetadata {
+
+}
\ No newline at end of file

Propchange: db/jdo/trunk/specification/imports/FieldMetadata.java
------------------------------------------------------------------------------
    svn:eol-style = LF

Added: db/jdo/trunk/specification/imports/FieldMetadata.txt
URL: http://svn.apache.org/viewvc/db/jdo/trunk/specification/imports/FieldMetadata.txt?rev=1293075&view=auto
==============================================================================
--- db/jdo/trunk/specification/imports/FieldMetadata.txt (added)
+++ db/jdo/trunk/specification/imports/FieldMetadata.txt Fri Feb 24 04:25:57 2012
@@ -0,0 +1,7 @@
+/**
+ * Represents a field in a class.
+ * @since 2.3
+ */
+public interface FieldMetadata extends MemberMetadata {
+
+}

Propchange: db/jdo/trunk/specification/imports/FieldMetadata.txt
------------------------------------------------------------------------------
    svn:eol-style = LF

Added: db/jdo/trunk/specification/imports/ForeignKey.txt
URL: http://svn.apache.org/viewvc/db/jdo/trunk/specification/imports/ForeignKey.txt?rev=1293075&view=auto
==============================================================================
--- db/jdo/trunk/specification/imports/ForeignKey.txt (added)
+++ db/jdo/trunk/specification/imports/ForeignKey.txt Fri Feb 24 04:25:57 2012
@@ -0,0 +1,46 @@
+@Target({ElementType.TYPE, ElementType.FIELD, ElementType.METHOD}) 
+@Retention(RetentionPolicy.RUNTIME)
+public @interface ForeignKey
+{
+    /** Name of the foreign key.
+     * @return the name of the foreign key
+     */
+    String name() default "";
+
+    /** Table for the foreign key. This is needed iff annotating a type where
+     * the foreign key is not defined on the primary table for the type.
+     * @return the table on which the foreign key is defined
+     */
+    String table() default "";
+
+    /** Whether this foreign key is deferred 
+     * (constraint is checked only at commit).
+     * @return whether this foreign key is deferred
+     */
+    String deferred() default "";
+
+    /** Whether this foreign key is unique.
+     * @return whether this foreign key is unique
+     */
+    String unique() default "";
+
+    /** The delete action of this foreign key.
+     * @return the delete action of this foreign key
+     */
+    ForeignKeyAction deleteAction() default ForeignKeyAction.RESTRICT;
+
+    /** The update action of this foreign key.
+     * @return the update action of this foreign key
+     */
+    ForeignKeyAction updateAction() default ForeignKeyAction.RESTRICT;
+
+    /** Member (field and property) names that compose this foreign key.
+     * @return the member names that compose this foreign key
+     */
+    String[] members() default {};
+
+    /** Columns that compose this foreign key.
+     * @return the columns that compose this foreign key
+     */
+    Column[] columns() default {};
+}

Propchange: db/jdo/trunk/specification/imports/ForeignKey.txt
------------------------------------------------------------------------------
    svn:eol-style = LF

Added: db/jdo/trunk/specification/imports/ForeignKeyAction.txt
URL: http://svn.apache.org/viewvc/db/jdo/trunk/specification/imports/ForeignKeyAction.txt?rev=1293075&view=auto
==============================================================================
--- db/jdo/trunk/specification/imports/ForeignKeyAction.txt (added)
+++ db/jdo/trunk/specification/imports/ForeignKeyAction.txt Fri Feb 24 04:25:57 2012
@@ -0,0 +1,10 @@
+
+public enum ForeignKeyAction
+{
+    UNSPECIFIED,
+    RESTRICT,
+    CASCADE,
+    NULL,
+    DEFAULT,
+    NONE
+}

Propchange: db/jdo/trunk/specification/imports/ForeignKeyAction.txt
------------------------------------------------------------------------------
    svn:eol-style = LF

Added: db/jdo/trunk/specification/imports/ForeignKeyMetadata.java
URL: http://svn.apache.org/viewvc/db/jdo/trunk/specification/imports/ForeignKeyMetadata.java?rev=1293075&view=auto
==============================================================================
--- db/jdo/trunk/specification/imports/ForeignKeyMetadata.java (added)
+++ db/jdo/trunk/specification/imports/ForeignKeyMetadata.java Fri Feb 24 04:25:57 2012
@@ -0,0 +1,158 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package javax.jdo.metadata;
+
+import javax.jdo.annotations.ForeignKeyAction;
+
+/**
+ * Represents a FK constraint in an ORM context.
+ * @since 2.3
+ */
+public interface ForeignKeyMetadata extends Metadata {
+    /**
+     * Method to set the name of the constraint
+     * 
+     * @param name Name of the constraint
+     */
+    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
+     */
+    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?
+     */
+    ForeignKeyMetadata setUnique(boolean unique);
+
+    /**
+     * Accessor for whether unique.
+     * 
+     * @return Unique?
+     */
+    Boolean getUnique();
+
+    /**
+     * Method to set whether it is deferred.
+     * 
+     * @param def Deferred?
+     */
+    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
+     */
+    ForeignKeyMetadata 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
+     */
+    ForeignKeyMetadata setUpdateAction(ForeignKeyAction action);
+
+    /**
+     * 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();
+
+    /**
+     * Accessor for all fields/properties defined on the FK.
+     * @return The members
+     */
+    MemberMetadata[] getMembers();
+
+    /**
+     * Accessor for the number of fields/properties defined for this FK.
+     * @return The number of members
+     */
+    int getNumberOfMembers();
+
+    /**
+     * Add a new field for this FK.
+     * 
+     * @param name Name of the field
+     * @return The FieldMetadata
+     */
+    FieldMetadata newFieldMetadata(String name);
+
+    /**
+     * Add a new property for this FK.
+     * 
+     * @param name Name of the property
+     * @return The PropertyMetadata
+     */
+    PropertyMetadata newPropertyMetadata(String name);
+}
\ No newline at end of file

Propchange: db/jdo/trunk/specification/imports/ForeignKeyMetadata.java
------------------------------------------------------------------------------
    svn:eol-style = LF

Added: db/jdo/trunk/specification/imports/ForeignKeyMetadata.txt
URL: http://svn.apache.org/viewvc/db/jdo/trunk/specification/imports/ForeignKeyMetadata.txt?rev=1293075&view=auto
==============================================================================
--- db/jdo/trunk/specification/imports/ForeignKeyMetadata.txt (added)
+++ db/jdo/trunk/specification/imports/ForeignKeyMetadata.txt Fri Feb 24 04:25:57 2012
@@ -0,0 +1,138 @@
+/**
+ * Represents a FK constraint in an ORM context.
+ * @since 2.3
+ */
+public interface ForeignKeyMetadata extends Metadata {
+    /**
+     * Method to set the name of the constraint
+     * 
+     * @param name Name of the constraint
+     */
+    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
+     */
+    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?
+     */
+    ForeignKeyMetadata setUnique(boolean unique);
+
+    /**
+     * Accessor for whether unique.
+     * 
+     * @return Unique?
+     */
+    Boolean getUnique();
+
+    /**
+     * Method to set whether it is deferred.
+     * 
+     * @param def Deferred?
+     */
+    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
+     */
+    ForeignKeyMetadata 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
+     */
+    ForeignKeyMetadata setUpdateAction(ForeignKeyAction action);
+
+    /**
+     * 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();
+
+    /**
+     * Accessor for all fields/properties defined on the FK.
+     * @return The members
+     */
+    MemberMetadata[] getMembers();
+
+    /**
+     * Accessor for the number of fields/properties defined for this FK.
+     * @return The number of members
+     */
+    int getNumberOfMembers();
+
+    /**
+     * Add a new field for this FK.
+     * 
+     * @param name Name of the field
+     * @return The FieldMetadata
+     */
+    FieldMetadata newFieldMetadata(String name);
+
+    /**
+     * Add a new property for this FK.
+     * 
+     * @param name Name of the property
+     * @return The PropertyMetadata
+     */
+    PropertyMetadata newPropertyMetadata(String name);
+}

Propchange: db/jdo/trunk/specification/imports/ForeignKeyMetadata.txt
------------------------------------------------------------------------------
    svn:eol-style = LF

Added: db/jdo/trunk/specification/imports/ForeignKeys.txt
URL: http://svn.apache.org/viewvc/db/jdo/trunk/specification/imports/ForeignKeys.txt?rev=1293075&view=auto
==============================================================================
--- db/jdo/trunk/specification/imports/ForeignKeys.txt (added)
+++ db/jdo/trunk/specification/imports/ForeignKeys.txt Fri Feb 24 04:25:57 2012
@@ -0,0 +1,10 @@
+@Target(ElementType.TYPE) 
+@Retention(RetentionPolicy.RUNTIME)
+public @interface ForeignKeys
+{
+    /**
+     * The foreign keys.
+     * @return The foreign keys
+     */
+    ForeignKey[] value();
+}

Propchange: db/jdo/trunk/specification/imports/ForeignKeys.txt
------------------------------------------------------------------------------
    svn:eol-style = LF

Added: db/jdo/trunk/specification/imports/IdGeneratorStrategy.txt
URL: http://svn.apache.org/viewvc/db/jdo/trunk/specification/imports/IdGeneratorStrategy.txt?rev=1293075&view=auto
==============================================================================
--- db/jdo/trunk/specification/imports/IdGeneratorStrategy.txt (added)
+++ db/jdo/trunk/specification/imports/IdGeneratorStrategy.txt Fri Feb 24 04:25:57 2012
@@ -0,0 +1,11 @@
+
+public enum IdGeneratorStrategy
+{
+    UNSPECIFIED,
+    NATIVE,
+    SEQUENCE,
+    IDENTITY,
+    INCREMENT,
+    UUIDSTRING,
+    UUIDHEX
+}

Propchange: db/jdo/trunk/specification/imports/IdGeneratorStrategy.txt
------------------------------------------------------------------------------
    svn:eol-style = LF

Added: db/jdo/trunk/specification/imports/IdentityType.txt
URL: http://svn.apache.org/viewvc/db/jdo/trunk/specification/imports/IdentityType.txt?rev=1293075&view=auto
==============================================================================
--- db/jdo/trunk/specification/imports/IdentityType.txt (added)
+++ db/jdo/trunk/specification/imports/IdentityType.txt Fri Feb 24 04:25:57 2012
@@ -0,0 +1,8 @@
+
+public enum IdentityType
+{
+    UNSPECIFIED,
+    APPLICATION,
+    DATASTORE,
+    NONDURABLE
+}

Propchange: db/jdo/trunk/specification/imports/IdentityType.txt
------------------------------------------------------------------------------
    svn:eol-style = LF

Added: db/jdo/trunk/specification/imports/Index.txt
URL: http://svn.apache.org/viewvc/db/jdo/trunk/specification/imports/Index.txt?rev=1293075&view=auto
==============================================================================
--- db/jdo/trunk/specification/imports/Index.txt (added)
+++ db/jdo/trunk/specification/imports/Index.txt Fri Feb 24 04:25:57 2012
@@ -0,0 +1,30 @@
+@Target({ElementType.TYPE, ElementType.FIELD, ElementType.METHOD}) 
+@Retention(RetentionPolicy.RUNTIME)
+public @interface Index
+{
+    /** Name of the index
+     * @return the name of the index
+     */
+    String name() default "";
+
+    /** Table for the index. This is needed iff annotating a type where
+     * the index is not defined on the primary table for the type.
+     * @return the table on which the index is defined
+     */
+    String table() default "";
+
+    /** Whether this index is unique
+     * @return whether this index is unique
+     */
+    String unique() default "";
+
+    /** Member (field and property) names that compose this index.
+     * @return member names that compose this index
+     */
+    String[] members() default {};
+
+    /** Columns that compose this index.
+     * @return columns that compose this index
+     */
+    Column[] columns() default {};
+}

Propchange: db/jdo/trunk/specification/imports/Index.txt
------------------------------------------------------------------------------
    svn:eol-style = LF

Added: db/jdo/trunk/specification/imports/IndexMetadata.java
URL: http://svn.apache.org/viewvc/db/jdo/trunk/specification/imports/IndexMetadata.java?rev=1293075&view=auto
==============================================================================
--- db/jdo/trunk/specification/imports/IndexMetadata.java (added)
+++ db/jdo/trunk/specification/imports/IndexMetadata.java Fri Feb 24 04:25:57 2012
@@ -0,0 +1,116 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package javax.jdo.metadata;
+
+/**
+ * Represents an index.
+ * @since 2.3
+ */
+public interface IndexMetadata extends Metadata {
+    /**
+     * Method to set the name of the index
+     * 
+     * @param name Name of the index
+     */
+    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
+     */
+    IndexMetadata 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?
+     */
+    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
+     */
+    FieldMetadata newFieldMetadata(String name);
+
+    /**
+     * Add a new property for this index.
+     * 
+     * @param name Name of the property
+     * @return The PropertyMetadata
+     */
+    PropertyMetadata newPropertyMetadata(String name);
+}
\ No newline at end of file

Propchange: db/jdo/trunk/specification/imports/IndexMetadata.java
------------------------------------------------------------------------------
    svn:eol-style = LF

Added: db/jdo/trunk/specification/imports/IndexMetadata.txt
URL: http://svn.apache.org/viewvc/db/jdo/trunk/specification/imports/IndexMetadata.txt?rev=1293075&view=auto
==============================================================================
--- db/jdo/trunk/specification/imports/IndexMetadata.txt (added)
+++ db/jdo/trunk/specification/imports/IndexMetadata.txt Fri Feb 24 04:25:57 2012
@@ -0,0 +1,98 @@
+/**
+ * Represents an index.
+ * @since 2.3
+ */
+public interface IndexMetadata extends Metadata {
+    /**
+     * Method to set the name of the index
+     * 
+     * @param name Name of the index
+     */
+    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
+     */
+    IndexMetadata 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?
+     */
+    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
+     */
+    FieldMetadata newFieldMetadata(String name);
+
+    /**
+     * Add a new property for this index.
+     * 
+     * @param name Name of the property
+     * @return The PropertyMetadata
+     */
+    PropertyMetadata newPropertyMetadata(String name);
+}

Propchange: db/jdo/trunk/specification/imports/IndexMetadata.txt
------------------------------------------------------------------------------
    svn:eol-style = LF

Added: db/jdo/trunk/specification/imports/Indexed.java
URL: http://svn.apache.org/viewvc/db/jdo/trunk/specification/imports/Indexed.java?rev=1293075&view=auto
==============================================================================
--- db/jdo/trunk/specification/imports/Indexed.java (added)
+++ db/jdo/trunk/specification/imports/Indexed.java Fri Feb 24 04:25:57 2012
@@ -0,0 +1,31 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package javax.jdo.metadata;
+
+/**
+ * Enumeration of the indexed values.
+ * 
+ * @version 2.3
+ * @since 2.3
+ */
+public enum Indexed
+{
+    UNSPECIFIED,
+    TRUE,
+    FALSE,
+    UNIQUE
+}

Propchange: db/jdo/trunk/specification/imports/Indexed.java
------------------------------------------------------------------------------
    svn:eol-style = LF

Added: db/jdo/trunk/specification/imports/Indexed.txt
URL: http://svn.apache.org/viewvc/db/jdo/trunk/specification/imports/Indexed.txt?rev=1293075&view=auto
==============================================================================
--- db/jdo/trunk/specification/imports/Indexed.txt (added)
+++ db/jdo/trunk/specification/imports/Indexed.txt Fri Feb 24 04:25:57 2012
@@ -0,0 +1,13 @@
+/**
+ * Enumeration of the indexed values.
+ * 
+ * @version 2.3
+ * @since 2.3
+ */
+public enum Indexed
+{
+    UNSPECIFIED,
+    TRUE,
+    FALSE,
+    UNIQUE
+}

Propchange: db/jdo/trunk/specification/imports/Indexed.txt
------------------------------------------------------------------------------
    svn:eol-style = LF

Added: db/jdo/trunk/specification/imports/Indices.txt
URL: http://svn.apache.org/viewvc/db/jdo/trunk/specification/imports/Indices.txt?rev=1293075&view=auto
==============================================================================
--- db/jdo/trunk/specification/imports/Indices.txt (added)
+++ db/jdo/trunk/specification/imports/Indices.txt Fri Feb 24 04:25:57 2012
@@ -0,0 +1,10 @@
+@Target(ElementType.TYPE) 
+@Retention(RetentionPolicy.RUNTIME)
+public @interface Indices
+{
+    /**
+     * The indices
+     * @return The indices
+     */
+    Index[] value();
+}

Propchange: db/jdo/trunk/specification/imports/Indices.txt
------------------------------------------------------------------------------
    svn:eol-style = LF

Added: db/jdo/trunk/specification/imports/Inheritance.txt
URL: http://svn.apache.org/viewvc/db/jdo/trunk/specification/imports/Inheritance.txt?rev=1293075&view=auto
==============================================================================
--- db/jdo/trunk/specification/imports/Inheritance.txt (added)
+++ db/jdo/trunk/specification/imports/Inheritance.txt Fri Feb 24 04:25:57 2012
@@ -0,0 +1,16 @@
+@Target(ElementType.TYPE) 
+@Retention(RetentionPolicy.RUNTIME)
+public @interface Inheritance
+{
+    /** Strategy to use for inheritance. Specifies in which table(s)
+     * the members for the class are stored. 
+     * @return the inheritance strategy
+     */
+    InheritanceStrategy strategy() default InheritanceStrategy.UNSPECIFIED;
+
+    /** Custom inheritance strategy. If customStrategy is non-empty, then
+     * strategy must be UNSPECIFIED.
+     * @return the custom inheritance strategy
+     */
+    String customStrategy() default "";
+}

Propchange: db/jdo/trunk/specification/imports/Inheritance.txt
------------------------------------------------------------------------------
    svn:eol-style = LF

Added: db/jdo/trunk/specification/imports/InheritanceMetadata.java
URL: http://svn.apache.org/viewvc/db/jdo/trunk/specification/imports/InheritanceMetadata.java?rev=1293075&view=auto
==============================================================================
--- db/jdo/trunk/specification/imports/InheritanceMetadata.java (added)
+++ db/jdo/trunk/specification/imports/InheritanceMetadata.java Fri Feb 24 04:25:57 2012
@@ -0,0 +1,81 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package javax.jdo.metadata;
+
+import javax.jdo.annotations.InheritanceStrategy;
+
+/**
+ * Represents the inheritance of a class.
+ * @since 2.3
+ */
+public interface InheritanceMetadata extends Metadata {
+    /**
+     * Method to set the inheritance strategy.
+     * 
+     * @param strategy The strategy
+     */
+    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
+     */
+    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
+     * 
+     * @return The JoinMetadata
+     */
+    JoinMetadata newJoinMetadata();
+
+    /**
+     * Accessor for the join (if any).
+     * 
+     * @return Join information
+     */
+    JoinMetadata getJoinMetaData();
+}
\ No newline at end of file

Propchange: db/jdo/trunk/specification/imports/InheritanceMetadata.java
------------------------------------------------------------------------------
    svn:eol-style = LF

Added: db/jdo/trunk/specification/imports/InheritanceMetadata.txt
URL: http://svn.apache.org/viewvc/db/jdo/trunk/specification/imports/InheritanceMetadata.txt?rev=1293075&view=auto
==============================================================================
--- db/jdo/trunk/specification/imports/InheritanceMetadata.txt (added)
+++ db/jdo/trunk/specification/imports/InheritanceMetadata.txt Fri Feb 24 04:25:57 2012
@@ -0,0 +1,61 @@
+/**
+ * Represents the inheritance of a class.
+ * @since 2.3
+ */
+public interface InheritanceMetadata extends Metadata {
+    /**
+     * Method to set the inheritance strategy.
+     * 
+     * @param strategy The strategy
+     */
+    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
+     */
+    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
+     * 
+     * @return The JoinMetadata
+     */
+    JoinMetadata newJoinMetadata();
+
+    /**
+     * Accessor for the join (if any).
+     * 
+     * @return Join information
+     */
+    JoinMetadata getJoinMetaData();
+}

Propchange: db/jdo/trunk/specification/imports/InheritanceMetadata.txt
------------------------------------------------------------------------------
    svn:eol-style = LF

Added: db/jdo/trunk/specification/imports/InheritanceStrategy.txt
URL: http://svn.apache.org/viewvc/db/jdo/trunk/specification/imports/InheritanceStrategy.txt?rev=1293075&view=auto
==============================================================================
--- db/jdo/trunk/specification/imports/InheritanceStrategy.txt (added)
+++ db/jdo/trunk/specification/imports/InheritanceStrategy.txt Fri Feb 24 04:25:57 2012
@@ -0,0 +1,8 @@
+
+public enum InheritanceStrategy
+{
+    UNSPECIFIED,
+    NEW_TABLE,
+    SUBCLASS_TABLE,
+    SUPERCLASS_TABLE
+}

Propchange: db/jdo/trunk/specification/imports/InheritanceStrategy.txt
------------------------------------------------------------------------------
    svn:eol-style = LF

Added: db/jdo/trunk/specification/imports/InstanceCallbacks.txt
URL: http://svn.apache.org/viewvc/db/jdo/trunk/specification/imports/InstanceCallbacks.txt?rev=1293075&view=auto
==============================================================================
    (empty)

Propchange: db/jdo/trunk/specification/imports/InstanceCallbacks.txt
------------------------------------------------------------------------------
    svn:eol-style = LF

Added: db/jdo/trunk/specification/imports/InterfaceMetadata.java
URL: http://svn.apache.org/viewvc/db/jdo/trunk/specification/imports/InterfaceMetadata.java?rev=1293075&view=auto
==============================================================================
--- db/jdo/trunk/specification/imports/InterfaceMetadata.java (added)
+++ db/jdo/trunk/specification/imports/InterfaceMetadata.java Fri Feb 24 04:25:57 2012
@@ -0,0 +1,25 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package javax.jdo.metadata;
+
+/**
+ * Represents a persistent-interface.
+ * @since 2.3
+ */
+public interface InterfaceMetadata extends ComponentMetadata {
+    
+}
\ No newline at end of file

Propchange: db/jdo/trunk/specification/imports/InterfaceMetadata.java
------------------------------------------------------------------------------
    svn:eol-style = LF

Added: db/jdo/trunk/specification/imports/InterfaceMetadata.txt
URL: http://svn.apache.org/viewvc/db/jdo/trunk/specification/imports/InterfaceMetadata.txt?rev=1293075&view=auto
==============================================================================
--- db/jdo/trunk/specification/imports/InterfaceMetadata.txt (added)
+++ db/jdo/trunk/specification/imports/InterfaceMetadata.txt Fri Feb 24 04:25:57 2012
@@ -0,0 +1,7 @@
+/**
+ * Represents a persistent-interface.
+ * @since 2.3
+ */
+public interface InterfaceMetadata extends ComponentMetadata {
+    
+}

Propchange: db/jdo/trunk/specification/imports/InterfaceMetadata.txt
------------------------------------------------------------------------------
    svn:eol-style = LF

Added: db/jdo/trunk/specification/imports/JDOCanRetryException.txt
URL: http://svn.apache.org/viewvc/db/jdo/trunk/specification/imports/JDOCanRetryException.txt?rev=1293075&view=auto
==============================================================================
    (empty)

Propchange: db/jdo/trunk/specification/imports/JDOCanRetryException.txt
------------------------------------------------------------------------------
    svn:eol-style = LF

Added: db/jdo/trunk/specification/imports/JDODataStoreException.txt
URL: http://svn.apache.org/viewvc/db/jdo/trunk/specification/imports/JDODataStoreException.txt?rev=1293075&view=auto
==============================================================================
    (empty)

Propchange: db/jdo/trunk/specification/imports/JDODataStoreException.txt
------------------------------------------------------------------------------
    svn:eol-style = LF

Added: db/jdo/trunk/specification/imports/JDODetachedFieldAccessException.txt
URL: http://svn.apache.org/viewvc/db/jdo/trunk/specification/imports/JDODetachedFieldAccessException.txt?rev=1293075&view=auto
==============================================================================
    (empty)

Propchange: db/jdo/trunk/specification/imports/JDODetachedFieldAccessException.txt
------------------------------------------------------------------------------
    svn:eol-style = LF

Added: db/jdo/trunk/specification/imports/JDOEnhanceException.txt
URL: http://svn.apache.org/viewvc/db/jdo/trunk/specification/imports/JDOEnhanceException.txt?rev=1293075&view=auto
==============================================================================
    (empty)

Propchange: db/jdo/trunk/specification/imports/JDOEnhanceException.txt
------------------------------------------------------------------------------
    svn:eol-style = LF

Added: db/jdo/trunk/specification/imports/JDOEnhancer.java
URL: http://svn.apache.org/viewvc/db/jdo/trunk/specification/imports/JDOEnhancer.java?rev=1293075&view=auto
==============================================================================
--- db/jdo/trunk/specification/imports/JDOEnhancer.java (added)
+++ db/jdo/trunk/specification/imports/JDOEnhancer.java Fri Feb 24 04:25:57 2012
@@ -0,0 +1,128 @@
+/**
+ * Interface for a JDO Enhancer.
+ * @since 2.3
+ */
+public interface JDOEnhancer extends ClassFileTransformer
+{
+    /**
+     * Return non-configurable properties of this JDOEnhancer.
+     * Properties with keys "VendorName" and "VersionNumber" are required. Other keys are optional.
+     * @return the non-configurable properties of this JDOEnhancer.
+     */
+    Properties getProperties();
+
+    /**
+     * Whether to provide verbose output
+     * @param flag Verbose?
+     * @return The enhancer
+     */
+    JDOEnhancer setVerbose(boolean flag);
+
+    /**
+     * Mutator to set the location where enhanced classes are written.
+     * Mutator to set the location where enhanced classes are written.
+     * If this method is not called, classes will be enhanced in place, 
+     * overwriting the existing classes. If overwriting classes in a jar file,
+     * the existing files in the jar file will be written unchanged except
+     * for the enhanced classes. The directory name can be absolute or relative.
+     * @param dirName Name of the directory
+     * @return The enhancer
+     */
+    JDOEnhancer setOutputDirectory(String dirName);
+
+    /**
+     * Mutator to set the class loader to use for loading classes.
+     * @param loader ClassLoader to use
+     * @return The enhancer
+     */
+    JDOEnhancer setClassLoader(ClassLoader loader);
+
+    /**
+     * Add a persistence-unit to the items to be enhanced.
+     * @param persistenceUnit Name of the persistence unit
+     * @return The enhancer
+     */
+    JDOEnhancer addPersistenceUnit(String persistenceUnit);
+
+    /**
+     * Add an in-memory class to the items to be enhanced.
+     * The class name should be of the form "mydomain.MyClass".
+     * @param className Name of the class
+     * @param bytes The bytes of the class
+     * @return The enhancer
+     */
+    JDOEnhancer addClass(String className, byte[] bytes);
+
+    /**
+     * Add class(es) to the items to be enhanced.
+     * The class names can be absolute file names, relative file names, or
+     * names of CLASSPATH resources.
+     * @param classNames Names of the classes
+     * @return The enhancer
+     */
+    JDOEnhancer addClasses(String... classNames);
+
+    /**
+     * Add metadata file(s) to the items to be enhanced.
+     * The metadata file names can be absolute file names, relative file names, or
+     * names of CLASSPATH resources. They should be JDO XML metadata files.
+     * @param metadataFiles Names of the files
+     * @return The enhancer
+     */
+    JDOEnhancer addFiles(String... metadataFiles);
+
+    /**
+     * Add a jar file to the items to be enhanced.
+     * The jar file name can be absolute, or relative or a CLASSPATH resource.
+     * @param jarFileName Name of the jar file
+     * @return The enhancer
+     */
+    JDOEnhancer addJar(String jarFileName);
+
+    /**
+     * Method to enhance the items specified using addJar, addFiles, addClasses, addClass,
+     * addPersistenceUnit.
+     * @return Number of classes enhanced
+     * @throws JDOEnhanceException if an error occurs during enhancement. If multiple
+     * errors occur then the nested exceptions provides this detail.
+     */
+    int enhance();
+
+    /**
+     * Method to validate the items specified using addJar, addFiles, addClasses, addClass,
+     * addPersistenceUnit.
+     * @return Number of classes validated
+     * @throws JDOEnhanceException if an error occurs during validation. If multiple
+     * errors occur then the nested exceptions provides this detail.
+     */
+    int validate();
+
+    /**
+     * Method to retrieve the (enhanced) bytes of the specified class.
+     * Only applies to the classes enhanced in the most recent enhance() call.
+     * If no enhance has yet been performed will throw a JDOEnhanceException.
+     * If the specified class hasn't been enhanced then will throw a JDOEnhanceException.
+     * @param className Name of the class (of the form "mydomain.MyClass")
+     * @return Enhanced bytes
+     */
+    byte[] getEnhancedBytes(String className);
+
+    /**
+     * Method to register metadata with the enhancement process managed by this
+     * <code>JDOEnhancer</code>.
+     * Metadata can be created using the method {@link #newMetadata}.
+     * If there is already metadata registered for a class contained in this metadata
+     * object then a JDOUserException will be thrown.
+     * @param metadata The Metadata to register.
+     * @since 2.3
+     */
+    void registerMetadata(JDOMetadata metadata);
+
+    /**
+     * Method to return a new metadata object that can be subsequently modified
+     * and registered with the enhancement process using the method {@link #registerMetadata}.
+     * @return The metadata
+     * @since 2.3
+     */
+    JDOMetadata newMetadata();
+}

Propchange: db/jdo/trunk/specification/imports/JDOEnhancer.java
------------------------------------------------------------------------------
    svn:eol-style = LF

Added: db/jdo/trunk/specification/imports/JDOEnhancer.txt
URL: http://svn.apache.org/viewvc/db/jdo/trunk/specification/imports/JDOEnhancer.txt?rev=1293075&view=auto
==============================================================================
--- db/jdo/trunk/specification/imports/JDOEnhancer.txt (added)
+++ db/jdo/trunk/specification/imports/JDOEnhancer.txt Fri Feb 24 04:25:57 2012
@@ -0,0 +1,129 @@
+/**
+ * Interface for a JDO Enhancer.
+ * @since 2.3
+ */
+public interface JDOEnhancer extends ClassFileTransformer
+{
+    /**
+     * Return non-configurable properties of this JDOEnhancer.
+     * Properties with keys "VendorName" and "VersionNumber" are required.
+     * Other keys are optional.
+     * @return the non-configurable properties of this JDOEnhancer.
+     */
+    Properties getProperties();
+
+    /**
+     * Whether to provide verbose output
+     * @param flag Verbose?
+     * @return The enhancer
+     */
+    JDOEnhancer setVerbose(boolean flag);
+
+    /**
+     * Mutator to set the location where enhanced classes are written.
+     * Mutator to set the location where enhanced classes are written.
+     * If this method is not called, classes will be enhanced in place, 
+     * overwriting the existing classes. If overwriting classes in a jar file,
+     * the existing files in the jar file will be written unchanged except
+     * for the enhanced classes. The directory name can be absolute or relative.
+     * @param dirName Name of the directory
+     * @return The enhancer
+     */
+    JDOEnhancer setOutputDirectory(String dirName);
+
+    /**
+     * Mutator to set the class loader to use for loading classes.
+     * @param loader ClassLoader to use
+     * @return The enhancer
+     */
+    JDOEnhancer setClassLoader(ClassLoader loader);
+
+    /**
+     * Add a persistence-unit to the items to be enhanced.
+     * @param persistenceUnit Name of the persistence unit
+     * @return The enhancer
+     */
+    JDOEnhancer addPersistenceUnit(String persistenceUnit);
+
+    /**
+     * Add an in-memory class to the items to be enhanced.
+     * The class name should be of the form "mydomain.MyClass".
+     * @param className Name of the class
+     * @param bytes The bytes of the class
+     * @return The enhancer
+     */
+    JDOEnhancer addClass(String className, byte[] bytes);
+
+    /**
+     * Add class(es) to the items to be enhanced.
+     * The class names can be absolute file names, relative file names, or
+     * names of CLASSPATH resources.
+     * @param classNames Names of the classes
+     * @return The enhancer
+     */
+    JDOEnhancer addClasses(String... classNames);
+
+    /**
+     * Add metadata file(s) to the items to be enhanced.
+     * The metadata file names can be absolute file names, relative file names, or
+     * names of CLASSPATH resources. They should be JDO XML metadata files.
+     * @param metadataFiles Names of the files
+     * @return The enhancer
+     */
+    JDOEnhancer addFiles(String... metadataFiles);
+
+    /**
+     * Add a jar file to the items to be enhanced.
+     * The jar file name can be absolute, or relative or a CLASSPATH resource.
+     * @param jarFileName Name of the jar file
+     * @return The enhancer
+     */
+    JDOEnhancer addJar(String jarFileName);
+
+    /**
+     * Method to enhance the items specified using addJar, addFiles, addClasses, addClass,
+     * addPersistenceUnit.
+     * @return Number of classes enhanced
+     * @throws JDOEnhanceException if an error occurs during enhancement. If multiple
+     * errors occur then the nested exceptions provides this detail.
+     */
+    int enhance();
+
+    /**
+     * Method to validate the items specified using addJar, addFiles, addClasses, addClass,
+     * addPersistenceUnit.
+     * @return Number of classes validated
+     * @throws JDOEnhanceException if an error occurs during validation. If multiple
+     * errors occur then the nested exceptions provides this detail.
+     */
+    int validate();
+
+    /**
+     * Method to retrieve the (enhanced) bytes of the specified class.
+     * Only applies to the classes enhanced in the most recent enhance() call.
+     * If no enhance has yet been performed will throw a JDOEnhanceException.
+     * If the specified class hasn't been enhanced then will throw a JDOEnhanceException.
+     * @param className Name of the class (of the form "mydomain.MyClass")
+     * @return Enhanced bytes
+     */
+    byte[] getEnhancedBytes(String className);
+
+    /**
+     * Method to register metadata with the enhancement process managed by this
+     * <code>JDOEnhancer</code>.
+     * Metadata can be created using the method {@link #newMetadata}.
+     * If there is already metadata registered for a class contained in this metadata
+     * object then a JDOUserException will be thrown.
+     * @param metadata The Metadata to register.
+     * @since 2.3
+     */
+    void registerMetadata(JDOMetadata metadata);
+
+    /**
+     * Method to return a new metadata object that can be subsequently modified
+     * and registered with the enhancement process using the method {@link #registerMetadata}.
+     * @return The metadata
+     * @since 2.3
+     */
+    JDOMetadata newMetadata();
+}

Propchange: db/jdo/trunk/specification/imports/JDOEnhancer.txt
------------------------------------------------------------------------------
    svn:eol-style = LF

Added: db/jdo/trunk/specification/imports/JDOEntityManager.txt
URL: http://svn.apache.org/viewvc/db/jdo/trunk/specification/imports/JDOEntityManager.txt?rev=1293075&view=auto
==============================================================================
    (empty)

Propchange: db/jdo/trunk/specification/imports/JDOEntityManager.txt
------------------------------------------------------------------------------
    svn:eol-style = LF

Added: db/jdo/trunk/specification/imports/JDOEntityManagerFactory.txt
URL: http://svn.apache.org/viewvc/db/jdo/trunk/specification/imports/JDOEntityManagerFactory.txt?rev=1293075&view=auto
==============================================================================
    (empty)

Propchange: db/jdo/trunk/specification/imports/JDOEntityManagerFactory.txt
------------------------------------------------------------------------------
    svn:eol-style = LF

Added: db/jdo/trunk/specification/imports/JDOException.txt
URL: http://svn.apache.org/viewvc/db/jdo/trunk/specification/imports/JDOException.txt?rev=1293075&view=auto
==============================================================================
    (empty)

Propchange: db/jdo/trunk/specification/imports/JDOException.txt
------------------------------------------------------------------------------
    svn:eol-style = LF

Added: db/jdo/trunk/specification/imports/JDOFatalDataStoreException.txt
URL: http://svn.apache.org/viewvc/db/jdo/trunk/specification/imports/JDOFatalDataStoreException.txt?rev=1293075&view=auto
==============================================================================
    (empty)

Propchange: db/jdo/trunk/specification/imports/JDOFatalDataStoreException.txt
------------------------------------------------------------------------------
    svn:eol-style = LF

Added: db/jdo/trunk/specification/imports/JDOFatalException.txt
URL: http://svn.apache.org/viewvc/db/jdo/trunk/specification/imports/JDOFatalException.txt?rev=1293075&view=auto
==============================================================================
    (empty)

Propchange: db/jdo/trunk/specification/imports/JDOFatalException.txt
------------------------------------------------------------------------------
    svn:eol-style = LF

Added: db/jdo/trunk/specification/imports/JDOFatalInternalException.txt
URL: http://svn.apache.org/viewvc/db/jdo/trunk/specification/imports/JDOFatalInternalException.txt?rev=1293075&view=auto
==============================================================================
    (empty)

Propchange: db/jdo/trunk/specification/imports/JDOFatalInternalException.txt
------------------------------------------------------------------------------
    svn:eol-style = LF

Added: db/jdo/trunk/specification/imports/JDOFatalUserException.txt
URL: http://svn.apache.org/viewvc/db/jdo/trunk/specification/imports/JDOFatalUserException.txt?rev=1293075&view=auto
==============================================================================
    (empty)

Propchange: db/jdo/trunk/specification/imports/JDOFatalUserException.txt
------------------------------------------------------------------------------
    svn:eol-style = LF

Added: db/jdo/trunk/specification/imports/JDOHelper.txt
URL: http://svn.apache.org/viewvc/db/jdo/trunk/specification/imports/JDOHelper.txt?rev=1293075&view=auto
==============================================================================
    (empty)

Propchange: db/jdo/trunk/specification/imports/JDOHelper.txt
------------------------------------------------------------------------------
    svn:eol-style = LF

Added: db/jdo/trunk/specification/imports/JDOMetadata.java
URL: http://svn.apache.org/viewvc/db/jdo/trunk/specification/imports/JDOMetadata.java?rev=1293075&view=auto
==============================================================================
--- db/jdo/trunk/specification/imports/JDOMetadata.java (added)
+++ db/jdo/trunk/specification/imports/JDOMetadata.java Fri Feb 24 04:25:57 2012
@@ -0,0 +1,128 @@
+/**
+ * Represents the top-level JDO metadata.
+ * @since 2.3
+ */
+public interface JDOMetadata extends Metadata {
+    /**
+     * Method to set the catalog (ORM) to apply to all classes in this JDO Metadata.
+     * 
+     * @param catalog Catalog name
+     */
+    JDOMetadata setCatalog(String catalog);
+
+    /**
+     * Accessor for the catalog (ORM) that all classes in this JDO Metadata
+     * default to.
+     * 
+     * @return The catalog
+     */
+    String getCatalog();
+
+    /**
+     * Method to set the schema (ORM) to apply to all classes in this JDO
+     * Metadata.
+     * 
+     * @param schema Schema name
+     */
+    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
+     */
+    PackageMetadata newPackageMetadata(String pkgName);
+
+    /**
+     * Add a new package to this JDO Metadata.
+     * 
+     * @param pkg The package
+     * @return The PackageMetadata
+     */
+    PackageMetadata newPackageMetadata(Package pkg);
+
+    /**
+     * Accessor for the number of packages defined in this JDO Metadata.
+     * 
+     * @return The number of packages.
+     */
+    int getNumberOfPackages();
+
+    /**
+     * Add a new class to this JDO Metadata.
+     * Adds its package also if not yet existing.
+     * 
+     * @param cls Class to add
+     * @return The ClassMetadata
+     */
+    ClassMetadata newClassMetadata(Class cls);
+
+    /**
+     * Add a new interface to this JDO Metadata.
+     * Adds its package also if not yet existing.
+     * 
+     * @param cls Class to add
+     * @return The InterfaceMetadata
+     */
+    InterfaceMetadata newInterfaceMetadata(Class cls);
+
+    /**
+     * 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
+     */
+    QueryMetadata newQueryMetadata(String name);
+
+    /**
+     * 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();
+
+    /**
+     * Add a new fetch plan to this JDO Metadata.
+     * 
+     * @param name Name of the query
+     * @return The FetchPlanMetadata
+     */
+    FetchPlanMetadata newFetchPlanMetadata(String name);
+
+    /**
+     * Accessor for the number of fetch plans defined in this JDO Metadata.
+     * 
+     * @return The number of fetch plans.
+     */
+    int getNumberOfFetchPlans();
+}

Propchange: db/jdo/trunk/specification/imports/JDOMetadata.java
------------------------------------------------------------------------------
    svn:eol-style = LF

Added: db/jdo/trunk/specification/imports/JDOMetadata.txt
URL: http://svn.apache.org/viewvc/db/jdo/trunk/specification/imports/JDOMetadata.txt?rev=1293075&view=auto
==============================================================================
--- db/jdo/trunk/specification/imports/JDOMetadata.txt (added)
+++ db/jdo/trunk/specification/imports/JDOMetadata.txt Fri Feb 24 04:25:57 2012
@@ -0,0 +1,129 @@
+/**
+ * Represents the top-level JDO metadata.
+ * @since 2.3
+ */
+public interface JDOMetadata extends Metadata {
+    /**
+     * Method to set the catalog (ORM) to apply to all classes in this
+     * JDO Metadata.
+     * 
+     * @param catalog Catalog name
+     */
+    JDOMetadata setCatalog(String catalog);
+
+    /**
+     * Accessor for the catalog (ORM) that all classes in this JDO Metadata
+     * default to.
+     * 
+     * @return The catalog
+     */
+    String getCatalog();
+
+    /**
+     * Method to set the schema (ORM) to apply to all classes in this JDO
+     * Metadata.
+     * 
+     * @param schema Schema name
+     */
+    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
+     */
+    PackageMetadata newPackageMetadata(String pkgName);
+
+    /**
+     * Add a new package to this JDO Metadata.
+     * 
+     * @param pkg The package
+     * @return The PackageMetadata
+     */
+    PackageMetadata newPackageMetadata(Package pkg);
+
+    /**
+     * Accessor for the number of packages defined in this JDO Metadata.
+     * 
+     * @return The number of packages.
+     */
+    int getNumberOfPackages();
+
+    /**
+     * Add a new class to this JDO Metadata.
+     * Adds its package also if not yet existing.
+     * 
+     * @param cls Class to add
+     * @return The ClassMetadata
+     */
+    ClassMetadata newClassMetadata(Class cls);
+
+    /**
+     * Add a new interface to this JDO Metadata.
+     * Adds its package also if not yet existing.
+     * 
+     * @param cls Class to add
+     * @return The InterfaceMetadata
+     */
+    InterfaceMetadata newInterfaceMetadata(Class cls);
+
+    /**
+     * 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
+     */
+    QueryMetadata newQueryMetadata(String name);
+
+    /**
+     * 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();
+
+    /**
+     * Add a new fetch plan to this JDO Metadata.
+     * 
+     * @param name Name of the query
+     * @return The FetchPlanMetadata
+     */
+    FetchPlanMetadata newFetchPlanMetadata(String name);
+
+    /**
+     * Accessor for the number of fetch plans defined in this JDO Metadata.
+     * 
+     * @return The number of fetch plans.
+     */
+    int getNumberOfFetchPlans();
+}

Propchange: db/jdo/trunk/specification/imports/JDOMetadata.txt
------------------------------------------------------------------------------
    svn:eol-style = LF



Mime
View raw message