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 [3/12] - in /db/jdo/trunk/specification: ./ imports/
Date Fri, 24 Feb 2012 04:26:02 GMT
Added: db/jdo/trunk/specification/imports/JDONullIdentityException.txt
URL: http://svn.apache.org/viewvc/db/jdo/trunk/specification/imports/JDONullIdentityException.txt?rev=1293075&view=auto
==============================================================================
    (empty)

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Added: db/jdo/trunk/specification/imports/Join.txt
URL: http://svn.apache.org/viewvc/db/jdo/trunk/specification/imports/Join.txt?rev=1293075&view=auto
==============================================================================
--- db/jdo/trunk/specification/imports/Join.txt (added)
+++ db/jdo/trunk/specification/imports/Join.txt Fri Feb 24 04:25:57 2012
@@ -0,0 +1,78 @@
+@Target({ElementType.TYPE, ElementType.FIELD, ElementType.METHOD}) 
+@Retention(RetentionPolicy.RUNTIME)
+public @interface Join
+{
+    /** Table to join to (used when joining to secondary tables). 
+     * @return the table
+     */
+    String table() default "";
+
+    /** Name of the column in the join table. 
+     * @return the name of the column in the join table
+     */
+    String column() default "";
+
+    /** Whether the join column is indexed. 
+     * @return whether the join column(s) is(are) indexed
+     */
+    String indexed() default "";
+
+    /** The name of the index to generate. 
+     * @return the name of the index
+     */
+    String index() default "";
+
+    /** Whether the join column is unique.
+     * @return whether the join column(s) is(are) is unique
+     */
+    String unique() default "";
+
+    /**
+     * The name of the unique key constraint to generate.
+     * @return the name of the unique key constraint
+     */
+    String uniqueKey() default "";
+
+    /** Whether to use an outer join. 
+     * @return whether to use an outer join
+     */
+    String outer() default "";
+
+    /** Delete action to be applied to any ForeignKey on this join.
+     * @return the delete action
+     */
+    ForeignKeyAction deleteAction() default ForeignKeyAction.UNSPECIFIED;
+
+    /** Detail definition of the join column(s). This is needed for
+     * more than one join column.
+     * @return the join columns
+     */
+    Column[] columns() default {};
+
+    /** Generate or assume a primary key constraint exists on the column
+     * or columns associated with this join. Specify "true" or "false".
+     * @return whether to generate or assume a primary key constraint
+     */
+    String generatePrimaryKey() default "";
+
+    /** Name for a generated primary key constraint.
+     * @return the name of the generated primary key constraint
+     */
+    String primaryKey() default "";
+
+    /** Generate or assume a foreign key constraint exists on the column
+     * or columns associated with this join. Specify "true" or "false".
+     * @return whether to generate or assume a foreign key constraint
+     */
+    String generateForeignKey() default "";
+
+    /** Name for a generated foreign key constraint.
+     * @return the name of the generated foreign key constraint
+     */
+    String foreignKey() default "";
+
+    /** Vendor extensions.
+     * @return the vendor extensions
+     */
+    Extension[] extensions() default {};
+}

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

Added: db/jdo/trunk/specification/imports/JoinMetadata.java
URL: http://svn.apache.org/viewvc/db/jdo/trunk/specification/imports/JoinMetadata.java?rev=1293075&view=auto
==============================================================================
--- db/jdo/trunk/specification/imports/JoinMetadata.java (added)
+++ db/jdo/trunk/specification/imports/JoinMetadata.java Fri Feb 24 04:25:57 2012
@@ -0,0 +1,186 @@
+/*
+ * 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 join information.
+ * @since 2.3
+ */
+public interface JoinMetadata extends Metadata {
+    /**
+     * Method to set the join column.
+     * 
+     * @param column Name of the join column
+     */
+    JoinMetadata setColumn(String column);
+
+    /**
+     * Accessor for the join column name
+     * 
+     * @return The column name
+     */
+    String getColumn();
+
+    /**
+     * Method to set the table name.
+     * 
+     * @param table Table name
+     */
+    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
+     * 
+     * @param outer Outer join?
+     */
+    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
+     */
+    JoinMetadata setDeleteAction(ForeignKeyAction action);
+
+    /**
+     * 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)
+     */
+    JoinMetadata setIndexed(Indexed indexed);
+
+    /**
+     * Accessor for whether indexed (true|false|unique)
+     * 
+     * @return Indexed?
+     */
+    Indexed getIndexed();
+
+    /**
+     * Method to set whether it is unique.
+     * 
+     * @param unique Unique?
+     */
+    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
+     * 
+     * @return Index metadata
+     */
+    IndexMetadata getIndexMetadata();
+
+    /**
+     * 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
+     * 
+     * @return The ForeignKeyMetadata
+     */
+    ForeignKeyMetadata newForeignKeyMetadata();
+
+    /**
+     * Accessor for any foreign key metadata on this join.
+     * 
+     * @return The ForeignKeyMetadata
+     */
+    ForeignKeyMetadata getForeignKeyMetadata();
+
+    /**
+     * 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();
+}
\ No newline at end of file

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

Added: db/jdo/trunk/specification/imports/JoinMetadata.txt
URL: http://svn.apache.org/viewvc/db/jdo/trunk/specification/imports/JoinMetadata.txt?rev=1293075&view=auto
==============================================================================
--- db/jdo/trunk/specification/imports/JoinMetadata.txt (added)
+++ db/jdo/trunk/specification/imports/JoinMetadata.txt Fri Feb 24 04:25:57 2012
@@ -0,0 +1,166 @@
+/**
+ * Represents join information.
+ * @since 2.3
+ */
+public interface JoinMetadata extends Metadata {
+    /**
+     * Method to set the join column.
+     * 
+     * @param column Name of the join column
+     */
+    JoinMetadata setColumn(String column);
+
+    /**
+     * Accessor for the join column name
+     * 
+     * @return The column name
+     */
+    String getColumn();
+
+    /**
+     * Method to set the table name.
+     * 
+     * @param table Table name
+     */
+    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
+     * 
+     * @param outer Outer join?
+     */
+    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
+     */
+    JoinMetadata setDeleteAction(ForeignKeyAction action);
+
+    /**
+     * 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)
+     */
+    JoinMetadata setIndexed(Indexed indexed);
+
+    /**
+     * Accessor for whether indexed (true|false|unique)
+     * 
+     * @return Indexed?
+     */
+    Indexed getIndexed();
+
+    /**
+     * Method to set whether it is unique.
+     * 
+     * @param unique Unique?
+     */
+    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
+     * 
+     * @return Index metadata
+     */
+    IndexMetadata getIndexMetadata();
+
+    /**
+     * 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
+     * 
+     * @return The ForeignKeyMetadata
+     */
+    ForeignKeyMetadata newForeignKeyMetadata();
+
+    /**
+     * Accessor for any foreign key metadata on this join.
+     * 
+     * @return The ForeignKeyMetadata
+     */
+    ForeignKeyMetadata getForeignKeyMetadata();
+
+    /**
+     * 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();
+}

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

Added: db/jdo/trunk/specification/imports/Joins.txt
URL: http://svn.apache.org/viewvc/db/jdo/trunk/specification/imports/Joins.txt?rev=1293075&view=auto
==============================================================================
--- db/jdo/trunk/specification/imports/Joins.txt (added)
+++ db/jdo/trunk/specification/imports/Joins.txt Fri Feb 24 04:25:57 2012
@@ -0,0 +1,13 @@
+@Target(ElementType.TYPE) 
+@Retention(RetentionPolicy.RUNTIME)
+public @interface Joins
+{
+    /**
+     * The join definitions used for the mapping of this type. Joins for
+     * secondary tables are usually defined at the type level and not the
+     * field or property level. This allows multiple fields and properties
+     * to share the same join definition and avoid redundancies.
+     * @return the join definitions
+     */
+    Join[] value();
+}

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

Added: db/jdo/trunk/specification/imports/Key.txt
URL: http://svn.apache.org/viewvc/db/jdo/trunk/specification/imports/Key.txt?rev=1293075&view=auto
==============================================================================
--- db/jdo/trunk/specification/imports/Key.txt (added)
+++ db/jdo/trunk/specification/imports/Key.txt Fri Feb 24 04:25:57 2012
@@ -0,0 +1,112 @@
+@Target({ElementType.FIELD, ElementType.METHOD}) 
+@Retention(RetentionPolicy.RUNTIME)
+public @interface Key
+{
+    /**
+     * Types of the keys. This can be determined if using JDK1.5 generics
+     * but is required otherwise. Multiple types can be specified if the
+     * implementation supports multiple types.
+     * @return the types of keys
+     */
+    Class[] types() default {};
+
+    /**
+     * Whether the key is to be stored serialized (into a single column of a
+     * join table).
+     * @return whether the key is to be stored serialized
+     */
+    String serialized() default "";
+
+    /** Whether this key is embedded. 
+     * @return whether this key is embedded
+     */
+    String embedded() default "";
+
+    /**
+     * The embedded mapping for the key.
+     * @return the embedded mapping for the key
+     */
+    Embedded[] embeddedMapping() default {};
+
+    /**
+     * Whether the key is dependent on the owner (and will be deleted 
+     * when the owner is deleted).
+     * @return whether the key is dependent on the owner
+     */
+    String dependent() default "";
+
+    /**
+     * Name of the table for the key.
+     * @return name of the table for the key
+     */
+    String table() default "";
+
+    /**
+     * Name of the column to store the key in.
+     * @return name of the column to store the key in
+     */
+    String column() default "";
+
+    /**
+     * Delete action to apply to the foreign key for the key.
+     * @return delete action to apply to the foreign key for the key
+     */
+    ForeignKeyAction deleteAction() default ForeignKeyAction.UNSPECIFIED;
+
+    /**
+     * Update action to apply to the foreign key for the key.
+     * @return update action to apply to the foreign key for the key
+     */
+    ForeignKeyAction updateAction() default ForeignKeyAction.UNSPECIFIED;
+
+    /**
+     * Whether the value column(s) should be indexed.
+     * @return whether the value column(s) should be indexed.
+     */
+    String indexed() default "";
+
+    /** The name of the index to generate. 
+     * @return the name of the index
+     */
+    String index() default "";
+
+    /**
+     * Whether the element column(s) contents should be considered unique
+     * @return whether the element column(s) contents should be considered unique
+     */
+    String unique() default "";
+
+    /**
+     * The name of the unique key constraint to generate.
+     * @return the name of the unique key constraint
+     */
+    String uniqueKey() default "";
+
+    /**
+     * Name of a member in the value class where this key is stored.
+     * @return the name of a member in the value class where this key is stored
+     */
+    String mappedBy() default "";
+
+    /**
+     * The column(s) for the key
+     * @return the column(s) for the key
+     */
+    Column[] columns() default {};
+
+    /** Generate or assume a foreign key constraint exists on the column
+     * or columns associated with this join. Specify "true" or "false".
+     * @return whether to generate or assume a foreign key constraint
+     */
+    String generateForeignKey() default "";
+
+    /** Name for a generated foreign key constraint.
+     * @return the name of the generated foreign key constraint
+     */
+    String foreignKey() default "";
+
+    /** Vendor extensions.
+     * @return the vendor extensions
+     */
+    Extension[] extensions() default {};
+}

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

Added: db/jdo/trunk/specification/imports/KeyMetadata.java
URL: http://svn.apache.org/viewvc/db/jdo/trunk/specification/imports/KeyMetadata.java?rev=1293075&view=auto
==============================================================================
--- db/jdo/trunk/specification/imports/KeyMetadata.java (added)
+++ db/jdo/trunk/specification/imports/KeyMetadata.java Fri Feb 24 04:25:57 2012
@@ -0,0 +1,157 @@
+/*
+ * 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 key in a map.
+ */
+public interface KeyMetadata extends Metadata {
+    /**
+     * Method to set the column name.
+     * 
+     * @param column Column name
+     */
+    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
+     */
+    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
+     */
+    KeyMetadata 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
+     */
+    KeyMetadata 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 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();
+
+    /**
+     * Accessor for any embedded metadata on this key
+     * 
+     * @return The EmbeddedMetadata
+     */
+    EmbeddedMetadata getEmbeddedMetadata();
+
+    /**
+     * Method to set new index metadata for the key.
+     * 
+     * @return The IndexMetadata
+     */
+    IndexMetadata newIndexMetadata();
+
+    /**
+     * 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();
+}
\ No newline at end of file

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

Added: db/jdo/trunk/specification/imports/KeyMetadata.txt
URL: http://svn.apache.org/viewvc/db/jdo/trunk/specification/imports/KeyMetadata.txt?rev=1293075&view=auto
==============================================================================
--- db/jdo/trunk/specification/imports/KeyMetadata.txt (added)
+++ db/jdo/trunk/specification/imports/KeyMetadata.txt Fri Feb 24 04:25:57 2012
@@ -0,0 +1,137 @@
+/**
+ * Represents a key in a map.
+ */
+public interface KeyMetadata extends Metadata {
+    /**
+     * Method to set the column name.
+     * 
+     * @param column Column name
+     */
+    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
+     */
+    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
+     */
+    KeyMetadata 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
+     */
+    KeyMetadata 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 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();
+
+    /**
+     * Accessor for any embedded metadata on this key
+     * 
+     * @return The EmbeddedMetadata
+     */
+    EmbeddedMetadata getEmbeddedMetadata();
+
+    /**
+     * Method to set new index metadata for the key.
+     * 
+     * @return The IndexMetadata
+     */
+    IndexMetadata newIndexMetadata();
+
+    /**
+     * 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();
+}

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

Added: db/jdo/trunk/specification/imports/MapMetadata.java
URL: http://svn.apache.org/viewvc/db/jdo/trunk/specification/imports/MapMetadata.java?rev=1293075&view=auto
==============================================================================
--- db/jdo/trunk/specification/imports/MapMetadata.java (added)
+++ db/jdo/trunk/specification/imports/MapMetadata.java Fri Feb 24 04:25:57 2012
@@ -0,0 +1,135 @@
+/*
+ * 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 details of a map in a field/property in a class.
+ * @since 2.3
+ */
+public interface MapMetadata extends Metadata {
+    /**
+     * Method to set the name of the key type
+     * 
+     * @param type Name of the key type
+     */
+    MapMetadata setKeyType(String type);
+
+    /**
+     * Accessor for the key type
+     * 
+     * @return The key type
+     */
+    String getKeyType();
+
+    /**
+     * Method to set whether the key is embedded
+     * 
+     * @param val Whether it is embedded
+     */
+    MapMetadata setEmbeddedKey(boolean val);
+
+    /**
+     * Accessor for whether the key is embedded
+     * 
+     * @return whether the key is embedded
+     */
+    Boolean getEmbeddedKey();
+
+    /**
+     * Method to set whether the key is serialised
+     * 
+     * @param val Whether it is serialised
+     */
+    MapMetadata setSerializedKey(boolean val);
+
+    /**
+     * Accessor for whether the key is serialised
+     * 
+     * @return whether the key is serialised
+     */
+    Boolean getSerializedKey();
+
+    /**
+     * Method to set whether the key is dependent
+     * 
+     * @param val Whether it is dependent
+     */
+    MapMetadata setDependentKey(boolean val);
+
+    /**
+     * Accessor for whether the key is dependent
+     * 
+     * @return whether the key is dependent
+     */
+    Boolean getDependentKey();
+
+    /**
+     * Method to set the name of the value type
+     * 
+     * @param type Name of the value type
+     */
+    MapMetadata setValueType(String type);
+
+    /**
+     * Accessor for the value type
+     * 
+     * @return The value type
+     */
+    String getValueType();
+
+    /**
+     * Method to set whether the value is embedded
+     * 
+     * @param val Whether it is embedded
+     */
+    MapMetadata setEmbeddedValue(boolean val);
+
+    /**
+     * Accessor for whether the value is embedded
+     * 
+     * @return whether the value is embedded
+     */
+    Boolean getEmbeddedValue();
+
+    /**
+     * Method to set whether the value is serialised
+     * 
+     * @param val Whether it is serialised
+     */
+    MapMetadata setSerializedValue(boolean val);
+
+    /**
+     * Accessor for whether the value is serialised
+     * 
+     * @return whether the value is serialised
+     */
+    Boolean getSerializedValue();
+
+    /**
+     * Method to set whether the value is dependent
+     * 
+     * @param val Whether it is dependent
+     */
+    MapMetadata setDependentValue(boolean val);
+
+    /**
+     * Accessor for whether the value is dependent
+     * 
+     * @return whether the value is dependent
+     */
+    Boolean getDependentValue();
+}
\ No newline at end of file

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

Added: db/jdo/trunk/specification/imports/MapMetadata.txt
URL: http://svn.apache.org/viewvc/db/jdo/trunk/specification/imports/MapMetadata.txt?rev=1293075&view=auto
==============================================================================
--- db/jdo/trunk/specification/imports/MapMetadata.txt (added)
+++ db/jdo/trunk/specification/imports/MapMetadata.txt Fri Feb 24 04:25:57 2012
@@ -0,0 +1,117 @@
+/**
+ * Represents details of a map in a field/property in a class.
+ * @since 2.3
+ */
+public interface MapMetadata extends Metadata {
+    /**
+     * Method to set the name of the key type
+     * 
+     * @param type Name of the key type
+     */
+    MapMetadata setKeyType(String type);
+
+    /**
+     * Accessor for the key type
+     * 
+     * @return The key type
+     */
+    String getKeyType();
+
+    /**
+     * Method to set whether the key is embedded
+     * 
+     * @param val Whether it is embedded
+     */
+    MapMetadata setEmbeddedKey(boolean val);
+
+    /**
+     * Accessor for whether the key is embedded
+     * 
+     * @return whether the key is embedded
+     */
+    Boolean getEmbeddedKey();
+
+    /**
+     * Method to set whether the key is serialised
+     * 
+     * @param val Whether it is serialised
+     */
+    MapMetadata setSerializedKey(boolean val);
+
+    /**
+     * Accessor for whether the key is serialised
+     * 
+     * @return whether the key is serialised
+     */
+    Boolean getSerializedKey();
+
+    /**
+     * Method to set whether the key is dependent
+     * 
+     * @param val Whether it is dependent
+     */
+    MapMetadata setDependentKey(boolean val);
+
+    /**
+     * Accessor for whether the key is dependent
+     * 
+     * @return whether the key is dependent
+     */
+    Boolean getDependentKey();
+
+    /**
+     * Method to set the name of the value type
+     * 
+     * @param type Name of the value type
+     */
+    MapMetadata setValueType(String type);
+
+    /**
+     * Accessor for the value type
+     * 
+     * @return The value type
+     */
+    String getValueType();
+
+    /**
+     * Method to set whether the value is embedded
+     * 
+     * @param val Whether it is embedded
+     */
+    MapMetadata setEmbeddedValue(boolean val);
+
+    /**
+     * Accessor for whether the value is embedded
+     * 
+     * @return whether the value is embedded
+     */
+    Boolean getEmbeddedValue();
+
+    /**
+     * Method to set whether the value is serialised
+     * 
+     * @param val Whether it is serialised
+     */
+    MapMetadata setSerializedValue(boolean val);
+
+    /**
+     * Accessor for whether the value is serialised
+     * 
+     * @return whether the value is serialised
+     */
+    Boolean getSerializedValue();
+
+    /**
+     * Method to set whether the value is dependent
+     * 
+     * @param val Whether it is dependent
+     */
+    MapMetadata setDependentValue(boolean val);
+
+    /**
+     * Accessor for whether the value is dependent
+     * 
+     * @return whether the value is dependent
+     */
+    Boolean getDependentValue();
+}

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

Added: db/jdo/trunk/specification/imports/MemberMetadata.java
URL: http://svn.apache.org/viewvc/db/jdo/trunk/specification/imports/MemberMetadata.java?rev=1293075&view=auto
==============================================================================
--- db/jdo/trunk/specification/imports/MemberMetadata.java (added)
+++ db/jdo/trunk/specification/imports/MemberMetadata.java Fri Feb 24 04:25:57 2012
@@ -0,0 +1,513 @@
+/*
+ * 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;
+import javax.jdo.annotations.IdGeneratorStrategy;
+import javax.jdo.annotations.NullValue;
+import javax.jdo.annotations.PersistenceModifier;
+
+/**
+ * Represents a field/property in a class/persistent-interface.
+ * @since 2.3
+ */
+public interface MemberMetadata extends Metadata {
+    /**
+     * Method to set the name.
+     * 
+     * @param name name
+     */
+    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
+     */
+    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
+     */
+    MemberMetadata setColumn(String col);
+
+    /**
+     * Accessor for the name of the column.
+     * 
+     * @return The column name
+     */
+    String getColumn();
+
+    /**
+     * 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
+     */
+    MemberMetadata setFieldType(String type);
+
+    /**
+     * 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
+     */
+    MemberMetadata setDeleteAction(ForeignKeyAction action);
+
+    /**
+     * 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
+     */
+    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
+     */
+    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?
+     */
+    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?
+     */
+    MemberMetadata setDependent(boolean unique);
+
+    /**
+     * Accessor for whether unique.
+     * 
+     * @return Unique?
+     */
+    Boolean getDependent();
+
+    /**
+     * Method to set whether it is embedded.
+     * 
+     * @param emb Embedded?
+     */
+    MemberMetadata setEmbedded(boolean emb);
+
+    /**
+     * Accessor for whether it is embedded.
+     * 
+     * @return embedded?
+     */
+    Boolean getEmbedded();
+
+    /**
+     * Method to set whether it is serialized.
+     * 
+     * @param ser serialized?
+     */
+    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?
+     */
+    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?
+     */
+    MemberMetadata setIndexed(boolean index);
+
+    /**
+     * Accessor for whether it is indexed.
+     * 
+     * @return Indexed?
+     */
+    Boolean getIndexed();
+
+    /**
+     * Method to set whether it is unique.
+     * 
+     * @param unique Unique?
+     */
+    MemberMetadata setUnique(boolean unique);
+
+    /**
+     * Accessor for whether unique.
+     * 
+     * @return Unique?
+     */
+    Boolean getUnique();
+
+    /**
+     * Method to set whether this is cacheable
+     * 
+     * @param cacheable Cacheable?
+     */
+    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
+     */
+    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
+     */
+    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
+     */
+    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
+     */
+    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
+     */
+    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)
+     * 
+     * @param map  mapped-by field/property
+     */
+    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)
+     * 
+     * @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)
+     * 
+     * @return The MapMetadata
+     */
+    MapMetadata newMapMetadata();
+
+    /**
+     * Accessor for the map details.
+     * 
+     * @return map details
+     */
+    MapMetadata getMapMetadata();
+
+    /**
+     * 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
+     * 
+     * @return The EmbeddedMetadata
+     */
+    EmbeddedMetadata newEmbeddedMetadata();
+
+    /**
+     * Accessor for the embedded metadata.
+     * 
+     * @return embedded metadata
+     */
+    EmbeddedMetadata getEmbeddedMetadata();
+
+    /**
+     * Method to define the new element details
+     * 
+     * @return The ElementMetadata
+     */
+    ElementMetadata newElementMetadata();
+
+    /**
+     * Accessor for the element details
+     * 
+     * @return element details
+     */
+    ElementMetadata getElementMetadata();
+
+    /**
+     * Method to define the key details
+     * 
+     * @return The KeyMetadata
+     */
+    KeyMetadata newKeyMetadata();
+
+    /**
+     * Accessor for the key details
+     * 
+     * @return key details
+     */
+    KeyMetadata getKeyMetadata();
+
+    /**
+     * Method to define the value details
+     * 
+     * @return The ValueMetadata
+     */
+    ValueMetadata newValueMetadata();
+
+    /**
+     * Accessor for the value details
+     * 
+     * @return value details
+     */
+    ValueMetadata getValueMetadata();
+
+    /**
+     * 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
+     * 
+     * @return Index metadata
+     */
+    IndexMetadata getIndexMetadata();
+
+    /**
+     * 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
+     * 
+     * @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();
+}
\ No newline at end of file

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

Added: db/jdo/trunk/specification/imports/MemberMetadata.txt
URL: http://svn.apache.org/viewvc/db/jdo/trunk/specification/imports/MemberMetadata.txt?rev=1293075&view=auto
==============================================================================
--- db/jdo/trunk/specification/imports/MemberMetadata.txt (added)
+++ db/jdo/trunk/specification/imports/MemberMetadata.txt Fri Feb 24 04:25:57 2012
@@ -0,0 +1,490 @@
+/**
+ * Represents a field/property in a class/persistent-interface.
+ * @since 2.3
+ */
+public interface MemberMetadata extends Metadata {
+    /**
+     * Method to set the name.
+     * 
+     * @param name name
+     */
+    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
+     */
+    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
+     */
+    MemberMetadata setColumn(String col);
+
+    /**
+     * Accessor for the name of the column.
+     * 
+     * @return The column name
+     */
+    String getColumn();
+
+    /**
+     * 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
+     */
+    MemberMetadata setFieldType(String type);
+
+    /**
+     * 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
+     */
+    MemberMetadata setDeleteAction(ForeignKeyAction action);
+
+    /**
+     * 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
+     */
+    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
+     */
+    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?
+     */
+    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?
+     */
+    MemberMetadata setDependent(boolean unique);
+
+    /**
+     * Accessor for whether unique.
+     * 
+     * @return Unique?
+     */
+    Boolean getDependent();
+
+    /**
+     * Method to set whether it is embedded.
+     * 
+     * @param emb Embedded?
+     */
+    MemberMetadata setEmbedded(boolean emb);
+
+    /**
+     * Accessor for whether it is embedded.
+     * 
+     * @return embedded?
+     */
+    Boolean getEmbedded();
+
+    /**
+     * Method to set whether it is serialized.
+     * 
+     * @param ser serialized?
+     */
+    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?
+     */
+    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?
+     */
+    MemberMetadata setIndexed(boolean index);
+
+    /**
+     * Accessor for whether it is indexed.
+     * 
+     * @return Indexed?
+     */
+    Boolean getIndexed();
+
+    /**
+     * Method to set whether it is unique.
+     * 
+     * @param unique Unique?
+     */
+    MemberMetadata setUnique(boolean unique);
+
+    /**
+     * Accessor for whether unique.
+     * 
+     * @return Unique?
+     */
+    Boolean getUnique();
+
+    /**
+     * Method to set whether this is cacheable
+     * 
+     * @param cacheable Cacheable?
+     */
+    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
+     */
+    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
+     */
+    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
+     */
+    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
+     */
+    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
+     */
+    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)
+     * 
+     * @param map  mapped-by field/property
+     */
+    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)
+     * 
+     * @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)
+     * 
+     * @return The MapMetadata
+     */
+    MapMetadata newMapMetadata();
+
+    /**
+     * Accessor for the map details.
+     * 
+     * @return map details
+     */
+    MapMetadata getMapMetadata();
+
+    /**
+     * 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
+     * 
+     * @return The EmbeddedMetadata
+     */
+    EmbeddedMetadata newEmbeddedMetadata();
+
+    /**
+     * Accessor for the embedded metadata.
+     * 
+     * @return embedded metadata
+     */
+    EmbeddedMetadata getEmbeddedMetadata();
+
+    /**
+     * Method to define the new element details
+     * 
+     * @return The ElementMetadata
+     */
+    ElementMetadata newElementMetadata();
+
+    /**
+     * Accessor for the element details
+     * 
+     * @return element details
+     */
+    ElementMetadata getElementMetadata();
+
+    /**
+     * Method to define the key details
+     * 
+     * @return The KeyMetadata
+     */
+    KeyMetadata newKeyMetadata();
+
+    /**
+     * Accessor for the key details
+     * 
+     * @return key details
+     */
+    KeyMetadata getKeyMetadata();
+
+    /**
+     * Method to define the value details
+     * 
+     * @return The ValueMetadata
+     */
+    ValueMetadata newValueMetadata();
+
+    /**
+     * Accessor for the value details
+     * 
+     * @return value details
+     */
+    ValueMetadata getValueMetadata();
+
+    /**
+     * 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
+     * 
+     * @return Index metadata
+     */
+    IndexMetadata getIndexMetadata();
+
+    /**
+     * 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
+     * 
+     * @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();
+}

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

Added: db/jdo/trunk/specification/imports/Metadata.java
URL: http://svn.apache.org/viewvc/db/jdo/trunk/specification/imports/Metadata.java?rev=1293075&view=auto
==============================================================================
--- db/jdo/trunk/specification/imports/Metadata.java (added)
+++ db/jdo/trunk/specification/imports/Metadata.java Fri Feb 24 04:25:57 2012
@@ -0,0 +1,55 @@
+/*
+ * 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;
+
+/**
+ * This interface provides base level definitions for all metadata components.
+ *
+ * @version 2.3
+ */
+public interface Metadata {
+    /**
+     * Add a vendor extension to this metadata component.
+     * 
+     * @param vendor Identifier for the vendor
+     * @param key The extension key
+     * @param value Value for the extension
+     * @return The ExtensionMetaData
+     */
+    ExtensionMetadata newExtensionMetaData(String vendor, String key, String value);
+
+    /**
+     * Number of extensions on this component.
+     * 
+     * @return Number of extensions
+     */
+    int getNumberOfExtensions();
+
+    /**
+     * Accessor for the defined extensions for this component
+     * 
+     * @return The extensions
+     */
+    ExtensionMetadata[] getExtensions();
+
+    /**
+     * Accessor for the parent metadata component.
+     * 
+     * @return The parent
+     */
+    Metadata getParent();
+}
\ No newline at end of file

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

Added: db/jdo/trunk/specification/imports/Metadata.txt
URL: http://svn.apache.org/viewvc/db/jdo/trunk/specification/imports/Metadata.txt?rev=1293075&view=auto
==============================================================================
--- db/jdo/trunk/specification/imports/Metadata.txt (added)
+++ db/jdo/trunk/specification/imports/Metadata.txt Fri Feb 24 04:25:57 2012
@@ -0,0 +1,37 @@
+/**
+ * This interface provides base level definitions for all metadata components.
+ *
+ * @version 2.3
+ */
+public interface Metadata {
+    /**
+     * Add a vendor extension to this metadata component.
+     * 
+     * @param vendor Identifier for the vendor
+     * @param key The extension key
+     * @param value Value for the extension
+     * @return The ExtensionMetaData
+     */
+    ExtensionMetadata newExtensionMetaData(String vendor, String key, String value);
+
+    /**
+     * Number of extensions on this component.
+     * 
+     * @return Number of extensions
+     */
+    int getNumberOfExtensions();
+
+    /**
+     * Accessor for the defined extensions for this component
+     * 
+     * @return The extensions
+     */
+    ExtensionMetadata[] getExtensions();
+
+    /**
+     * Accessor for the parent metadata component.
+     * 
+     * @return The parent
+     */
+    Metadata getParent();
+}

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

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

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

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

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

Added: db/jdo/trunk/specification/imports/ObjectState.txt
URL: http://svn.apache.org/viewvc/db/jdo/trunk/specification/imports/ObjectState.txt?rev=1293075&view=auto
==============================================================================
--- db/jdo/trunk/specification/imports/ObjectState.txt (added)
+++ db/jdo/trunk/specification/imports/ObjectState.txt Fri Feb 24 04:25:57 2012
@@ -0,0 +1,28 @@
+
+public enum ObjectState {
+
+    TRANSIENT("transient"),
+    TRANSIENT_CLEAN("transient-clean"),
+    TRANSIENT_DIRTY("transient-dirty"),
+    PERSISTENT_NEW("persistent-new"),
+    HOLLOW_PERSISTENT_NONTRANSACTIONAL("hollow/persistent-nontransactional"),
+    PERSISTENT_NONTRANSACTIONAL_DIRTY("persistent-nontransactional-dirty"),
+    PERSISTENT_CLEAN("persistent-clean"),
+    PERSISTENT_DIRTY("persistent-dirty"),
+    PERSISTENT_DELETED("persistent-deleted"),
+    PERSISTENT_NEW_DELETED("persistent-new-deleted"),
+    DETACHED_CLEAN("detached-clean"),
+    DETACHED_DIRTY("detached-dirty");
+
+    private final String value;
+
+    private ObjectState(String value) {
+        this.value = value;
+    }
+
+    public String toString() {
+        return value;
+    }
+}
+
+

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

Added: db/jdo/trunk/specification/imports/Order.txt
URL: http://svn.apache.org/viewvc/db/jdo/trunk/specification/imports/Order.txt?rev=1293075&view=auto
==============================================================================
--- db/jdo/trunk/specification/imports/Order.txt (added)
+++ db/jdo/trunk/specification/imports/Order.txt Fri Feb 24 04:25:57 2012
@@ -0,0 +1,25 @@
+@Target({ElementType.FIELD, ElementType.METHOD}) 
+@Retention(RetentionPolicy.RUNTIME)
+public @interface Order
+{
+    /** 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 
+     * ordering field or property for this member.
+     * 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.
+     * @return the columns to use for ordering
+     */
+    Column[] columns() default {};
+
+    /** Vendor extensions.
+     * @return the vendor extensions
+     */
+    Extension[] extensions() default {};
+}

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

Added: db/jdo/trunk/specification/imports/OrderMetadata.java
URL: http://svn.apache.org/viewvc/db/jdo/trunk/specification/imports/OrderMetadata.java?rev=1293075&view=auto
==============================================================================
--- db/jdo/trunk/specification/imports/OrderMetadata.java (added)
+++ db/jdo/trunk/specification/imports/OrderMetadata.java Fri Feb 24 04:25:57 2012
@@ -0,0 +1,86 @@
+/*
+ * 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 ordering of a collection field/property.
+ * @since 2.3
+ */
+public interface OrderMetadata extends Metadata {
+    /**
+     * Method to set the version column name.
+     * 
+     * @param column Name of the version clumn
+     */
+    OrderMetadata setColumn(String column);
+
+    /**
+     * Accessor for the version column name
+     * 
+     * @return The version column name
+     */
+    String getColumn();
+
+    /**
+     * Method to set mapped-by information whether the order is present in the element class.
+     * 
+     * @param mappedBy Field/property name in which to store the ordering in the element
+     */
+    OrderMetadata setMappedBy(String mappedBy);
+
+    /**
+     * Accessor for the mapped-by field/property name in the element class.
+     * 
+     * @return Name of field/property in element class
+     */
+    String getMappedBy();
+
+    /**
+     * Accessor for all column(s) defined on the ordering.
+     * 
+     * @return The column(s)
+     */
+    ColumnMetadata[] getColumns();
+
+    /**
+     * Add a column for this ordering.
+     * 
+     * @return The ColumnMetadata
+     */
+    ColumnMetadata newColumnMetadata();
+
+    /**
+     * Accessor for the number of columns defined for this ordering.
+     * 
+     * @return The number of columns
+     */
+    int getNumberOfColumns();
+
+    /**
+     * Method to set index metadata for the ordering
+     * 
+     * @return The metadata for any index
+     */
+    IndexMetadata newIndexMetadata();
+
+    /**
+     * Accessor for any index metadata for the ordering
+     * 
+     * @return Index metadata
+     */
+    IndexMetadata getIndexMetadata();
+}
\ No newline at end of file

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

Added: db/jdo/trunk/specification/imports/OrderMetadata.txt
URL: http://svn.apache.org/viewvc/db/jdo/trunk/specification/imports/OrderMetadata.txt?rev=1293075&view=auto
==============================================================================
--- db/jdo/trunk/specification/imports/OrderMetadata.txt (added)
+++ db/jdo/trunk/specification/imports/OrderMetadata.txt Fri Feb 24 04:25:57 2012
@@ -0,0 +1,68 @@
+/**
+ * Represents ordering of a collection field/property.
+ * @since 2.3
+ */
+public interface OrderMetadata extends Metadata {
+    /**
+     * Method to set the version column name.
+     * 
+     * @param column Name of the version clumn
+     */
+    OrderMetadata setColumn(String column);
+
+    /**
+     * Accessor for the version column name
+     * 
+     * @return The version column name
+     */
+    String getColumn();
+
+    /**
+     * Method to set mapped-by information whether the order is present in the element class.
+     * 
+     * @param mappedBy Field/property name in which to store the ordering in the element
+     */
+    OrderMetadata setMappedBy(String mappedBy);
+
+    /**
+     * Accessor for the mapped-by field/property name in the element class.
+     * 
+     * @return Name of field/property in element class
+     */
+    String getMappedBy();
+
+    /**
+     * Accessor for all column(s) defined on the ordering.
+     * 
+     * @return The column(s)
+     */
+    ColumnMetadata[] getColumns();
+
+    /**
+     * Add a column for this ordering.
+     * 
+     * @return The ColumnMetadata
+     */
+    ColumnMetadata newColumnMetadata();
+
+    /**
+     * Accessor for the number of columns defined for this ordering.
+     * 
+     * @return The number of columns
+     */
+    int getNumberOfColumns();
+
+    /**
+     * Method to set index metadata for the ordering
+     * 
+     * @return The metadata for any index
+     */
+    IndexMetadata newIndexMetadata();
+
+    /**
+     * Accessor for any index metadata for the ordering
+     * 
+     * @return Index metadata
+     */
+    IndexMetadata getIndexMetadata();
+}

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

Added: db/jdo/trunk/specification/imports/PackageMetadata.java
URL: http://svn.apache.org/viewvc/db/jdo/trunk/specification/imports/PackageMetadata.java?rev=1293075&view=auto
==============================================================================
--- db/jdo/trunk/specification/imports/PackageMetadata.java (added)
+++ db/jdo/trunk/specification/imports/PackageMetadata.java Fri Feb 24 04:25:57 2012
@@ -0,0 +1,144 @@
+/*
+ * 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.SequenceStrategy;
+
+/**
+ * Represents a package within a JDOMetadata.
+ * @since 2.3
+ */
+public interface PackageMetadata extends Metadata {
+    /**
+     * Accessor for the name of this package (set on construction).
+     * 
+     * @return The name
+     */
+    String getName();
+
+    /**
+     * Method to set the catalog (ORM) to apply to all classes in this package.
+     * 
+     * @param catalog Catalog name
+     */
+    PackageMetadata setCatalog(String catalog);
+
+    /**
+     * Accessor for the catalog (ORM) that all classes in this package default
+     * to.
+     * 
+     * @return The catalog
+     */
+    String getCatalog();
+
+    /**
+     * Method to set the schema (ORM) to apply to all classes in this package.
+     * 
+     * @param schema Schema name
+     */
+    PackageMetadata setSchema(String schema);
+
+    /**
+     * Accessor for the schema (ORM) that all classes in this package default to.
+     * 
+     * @return The schema
+     */
+    String getSchema();
+
+    /**
+     * Accessor for all classes defined in this package.
+     * 
+     * @return The classes
+     */
+    ClassMetadata[] getClasses();
+
+    /**
+     * Add a new class to this package.
+     * 
+     * @param name Name of the class
+     * @return The ClassMetadata
+     */
+    ClassMetadata newClassMetadata(String name);
+
+    /**
+     * Add a new class to this package.
+     * 
+     * @param cls The class
+     * @return The ClassMetadata
+     */
+    ClassMetadata newClassMetadata(Class cls);
+
+    /**
+     * Accessor for the number of classes defined in this package.
+     * 
+     * @return The number of classes.
+     */
+    int getNumberOfClasses();
+
+    /**
+     * Accessor for all interfaces defined in this package.
+     * 
+     * @return The interfaces
+     */
+    InterfaceMetadata[] getInterfaces();
+
+    /**
+     * Add a new interface to this package.
+     * 
+     * @param name The interface name
+     * @return The InterfaceMetadata
+     */
+    InterfaceMetadata newInterfaceMetadata(String name);
+
+    /**
+     * Add a new interface to this package.
+     * 
+     * @param cls The class
+     * @return The ClassMetadata
+     */
+    InterfaceMetadata newInterfaceMetadata(Class cls);
+
+    /**
+     * Accessor for the number of interfaces defined in this package.
+     * 
+     * @return The number of interfaces.
+     */
+    int getNumberOfInterfaces();
+
+    /**
+     * Accessor for any sequences defined on the package.
+     * 
+     * @return The sequences
+     */
+    SequenceMetadata[] getSequences();
+
+    /**
+     * Add a new sequence to this package.
+     * 
+     * @param name Name of the sequence
+     * @param strategy Strategy for the sequence
+     * @return The SequenceMetadata
+     */
+    SequenceMetadata newSequenceMetadata(String name, SequenceStrategy strategy);
+
+    /**
+     * Accessor for the number of sequences defined for this package.
+     * 
+     * @return The number of sequences.
+     */
+    int getNumberOfSequences();
+}
\ No newline at end of file

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

Added: db/jdo/trunk/specification/imports/PackageMetadata.txt
URL: http://svn.apache.org/viewvc/db/jdo/trunk/specification/imports/PackageMetadata.txt?rev=1293075&view=auto
==============================================================================
--- db/jdo/trunk/specification/imports/PackageMetadata.txt (added)
+++ db/jdo/trunk/specification/imports/PackageMetadata.txt Fri Feb 24 04:25:57 2012
@@ -0,0 +1,125 @@
+/**
+ * Represents a package within a JDOMetadata.
+ * @since 2.3
+ */
+public interface PackageMetadata extends Metadata {
+    /**
+     * Accessor for the name of this package (set on construction).
+     * 
+     * @return The name
+     */
+    String getName();
+
+    /**
+     * Method to set the catalog (ORM) to apply to all classes in this package.
+     * 
+     * @param catalog Catalog name
+     */
+    PackageMetadata setCatalog(String catalog);
+
+    /**
+     * Accessor for the catalog (ORM) that all classes in this package default
+     * to.
+     * 
+     * @return The catalog
+     */
+    String getCatalog();
+
+    /**
+     * Method to set the schema (ORM) to apply to all classes in this package.
+     * 
+     * @param schema Schema name
+     */
+    PackageMetadata setSchema(String schema);
+
+    /**
+     * Accessor for the schema (ORM) that all classes in this package default to.
+     * 
+     * @return The schema
+     */
+    String getSchema();
+
+    /**
+     * Accessor for all classes defined in this package.
+     * 
+     * @return The classes
+     */
+    ClassMetadata[] getClasses();
+
+    /**
+     * Add a new class to this package.
+     * 
+     * @param name Name of the class
+     * @return The ClassMetadata
+     */
+    ClassMetadata newClassMetadata(String name);
+
+    /**
+     * Add a new class to this package.
+     * 
+     * @param cls The class
+     * @return The ClassMetadata
+     */
+    ClassMetadata newClassMetadata(Class cls);
+
+    /**
+     * Accessor for the number of classes defined in this package.
+     * 
+     * @return The number of classes.
+     */
+    int getNumberOfClasses();
+
+    /**
+     * Accessor for all interfaces defined in this package.
+     * 
+     * @return The interfaces
+     */
+    InterfaceMetadata[] getInterfaces();
+
+    /**
+     * Add a new interface to this package.
+     * 
+     * @param name The interface name
+     * @return The InterfaceMetadata
+     */
+    InterfaceMetadata newInterfaceMetadata(String name);
+
+    /**
+     * Add a new interface to this package.
+     * 
+     * @param cls The class
+     * @return The ClassMetadata
+     */
+    InterfaceMetadata newInterfaceMetadata(Class cls);
+
+    /**
+     * Accessor for the number of interfaces defined in this package.
+     * 
+     * @return The number of interfaces.
+     */
+    int getNumberOfInterfaces();
+
+    /**
+     * Accessor for any sequences defined on the package.
+     * 
+     * @return The sequences
+     */
+    SequenceMetadata[] getSequences();
+
+    /**
+     * Add a new sequence to this package.
+     * 
+     * @param name Name of the sequence
+     * @param strategy Strategy for the sequence
+     * @return The SequenceMetadata
+     */
+    SequenceMetadata newSequenceMetadata(String name,
+            SequenceStrategy strategy);
+
+    /**
+     * Accessor for the number of sequences defined for this package.
+     * 
+     * @return The number of sequences.
+     */
+    int getNumberOfSequences();
+}

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

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

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

Added: db/jdo/trunk/specification/imports/PersistenceCapable.java
URL: http://svn.apache.org/viewvc/db/jdo/trunk/specification/imports/PersistenceCapable.java?rev=1293075&view=auto
==============================================================================
--- db/jdo/trunk/specification/imports/PersistenceCapable.java (added)
+++ db/jdo/trunk/specification/imports/PersistenceCapable.java Fri Feb 24 04:25:57 2012
@@ -0,0 +1,52 @@
+@Target(ElementType.TYPE) 
+@Retention(RetentionPolicy.RUNTIME)
+public @interface PersistenceCapable
+{
+    /** Member declarations. Annotations for persistent members of this
+     * class or interface can be specifed either here or on each member.
+     * Annotations for inherited members can only be specified here.
+     * @return member declarations
+     */
+    Persistent[] members() default {};
+
+    /** Table to use for persisting this class or interface. 
+     */
+    String table() default "";
+
+    /** Catalog to use for persisting this class or interface. 
+     */
+    String catalog() default "";
+
+    /** Schema to use for persisting this class or interface. 
+     */
+    String schema() default "";
+
+    /** Whether this class or interface manages an extent. 
+     */
+    String requiresExtent() default "";
+
+    /** Whether objects of this class or interface can only be embedded. 
+     */
+    String embeddedOnly() default "";
+
+    /** Whether this class or interface is detachable. 
+     */
+    String detachable() default "";
+
+    /** Type of identity for this class or interface. 
+     */
+    IdentityType identityType() default IdentityType.UNSPECIFIED;
+
+    /** Primary key class when using application identity and using own PK. 
+     */
+    Class objectIdClass() default void.class;
+
+    /** Whether this class is cacheable in a Level2 cache.
+     * @since 2.2
+     */
+    String cacheable() default "true";
+
+    /** Any vendor extensions.
+     */
+    Extension[] extensions() default {};
+}

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

Added: db/jdo/trunk/specification/imports/PersistenceCapable.txt
URL: http://svn.apache.org/viewvc/db/jdo/trunk/specification/imports/PersistenceCapable.txt?rev=1293075&view=auto
==============================================================================
--- db/jdo/trunk/specification/imports/PersistenceCapable.txt (added)
+++ db/jdo/trunk/specification/imports/PersistenceCapable.txt Fri Feb 24 04:25:57 2012
@@ -0,0 +1,57 @@
+@Target(ElementType.TYPE) 
+@Retention(RetentionPolicy.RUNTIME)
+public @interface PersistenceCapable
+{
+    /** Member declarations. Annotations for persistent members of this
+     * class or interface can be specifed either here or on each member.
+     * Annotations for inherited members can only be specified here.
+     * @return member declarations
+     */
+    Persistent[] members() default {};
+
+    /** Table to use for persisting this class or interface. 
+     */
+    String table() default "";
+
+    /** Catalog to use for persisting this class or interface. 
+     */
+    String catalog() default "";
+
+    /** Schema to use for persisting this class or interface. 
+     */
+    String schema() default "";
+
+    /** Whether this class or interface manages an extent. 
+     */
+    String requiresExtent() default "";
+
+    /** Whether objects of this class or interface can only be embedded. 
+     */
+    String embeddedOnly() default "";
+
+    /** Whether this class or interface is detachable. 
+     */
+    String detachable() default "";
+
+    /** Type of identity for this class or interface. 
+     */
+    IdentityType identityType() default IdentityType.UNSPECIFIED;
+
+    /** Primary key class when using application identity and using own PK. 
+     */
+    Class objectIdClass() default void.class;
+
+    /** Whether this class is cacheable in a Level2 cache.
+     * @since 2.2
+     */
+    String cacheable() default "true";
+
+    /** Whether objects of this type should, by default, be locked when read.
+     * @since 2.3
+     */
+    String serializeRead() default "false";
+
+    /** Any vendor extensions.
+     */
+    Extension[] extensions() default {};
+}

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

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

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

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

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

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

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



Mime
View raw message