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 [1/12] - in /db/jdo/trunk/specification: ./ imports/
Date Fri, 24 Feb 2012 04:26:02 GMT
Author: clr
Date: Fri Feb 24 04:25:57 2012
New Revision: 1293075

URL: http://svn.apache.org/viewvc?rev=1293075&view=rev
Log:
Put specification under version control

Added:
    db/jdo/trunk/specification/
    db/jdo/trunk/specification/Acknowledgements.fm   (with props)
    db/jdo/trunk/specification/Appendixes.fm   (with props)
    db/jdo/trunk/specification/License.fm   (with props)
    db/jdo/trunk/specification/backcover.fm   (with props)
    db/jdo/trunk/specification/imports/
    db/jdo/trunk/specification/imports/ArrayMetadata.java   (with props)
    db/jdo/trunk/specification/imports/ArrayMetadata.txt   (with props)
    db/jdo/trunk/specification/imports/Cacheable.java   (with props)
    db/jdo/trunk/specification/imports/Cacheable.txt   (with props)
    db/jdo/trunk/specification/imports/ClassMetadata.java   (with props)
    db/jdo/trunk/specification/imports/ClassMetadata.txt   (with props)
    db/jdo/trunk/specification/imports/ClassPersistenceModifier.java   (with props)
    db/jdo/trunk/specification/imports/ClassPersistenceModifier.txt   (with props)
    db/jdo/trunk/specification/imports/CollectionMetadata.java   (with props)
    db/jdo/trunk/specification/imports/CollectionMetadata.txt   (with props)
    db/jdo/trunk/specification/imports/Column.txt   (with props)
    db/jdo/trunk/specification/imports/ColumnMetadata.java   (with props)
    db/jdo/trunk/specification/imports/ColumnMetadata.txt   (with props)
    db/jdo/trunk/specification/imports/Columns.txt   (with props)
    db/jdo/trunk/specification/imports/ComponentMetadata.java   (with props)
    db/jdo/trunk/specification/imports/ComponentMetadata.txt   (with props)
    db/jdo/trunk/specification/imports/Constants.txt   (with props)
    db/jdo/trunk/specification/imports/DatastoreIdentity.txt   (with props)
    db/jdo/trunk/specification/imports/DatastoreIdentityMetadata.java   (with props)
    db/jdo/trunk/specification/imports/DatastoreIdentityMetadata.txt   (with props)
    db/jdo/trunk/specification/imports/Discriminator.txt   (with props)
    db/jdo/trunk/specification/imports/DiscriminatorMetadata.java   (with props)
    db/jdo/trunk/specification/imports/DiscriminatorMetadata.txt   (with props)
    db/jdo/trunk/specification/imports/DiscriminatorStrategy.txt   (with props)
    db/jdo/trunk/specification/imports/Element.txt   (with props)
    db/jdo/trunk/specification/imports/ElementMetadata.java   (with props)
    db/jdo/trunk/specification/imports/ElementMetadata.txt   (with props)
    db/jdo/trunk/specification/imports/Embedded.txt   (with props)
    db/jdo/trunk/specification/imports/EmbeddedMetadata.java   (with props)
    db/jdo/trunk/specification/imports/EmbeddedMetadata.txt   (with props)
    db/jdo/trunk/specification/imports/EmbeddedOnly.txt   (with props)
    db/jdo/trunk/specification/imports/Enhancer.txt   (with props)
    db/jdo/trunk/specification/imports/Extension.txt   (with props)
    db/jdo/trunk/specification/imports/ExtensionMetadata.java   (with props)
    db/jdo/trunk/specification/imports/ExtensionMetadata.txt   (with props)
    db/jdo/trunk/specification/imports/Extensions.txt   (with props)
    db/jdo/trunk/specification/imports/Extent.txt   (with props)
    db/jdo/trunk/specification/imports/FetchGroup.txt   (with props)
    db/jdo/trunk/specification/imports/FetchGroupMetadata.java   (with props)
    db/jdo/trunk/specification/imports/FetchGroupMetadata.txt   (with props)
    db/jdo/trunk/specification/imports/FetchGroups.txt   (with props)
    db/jdo/trunk/specification/imports/FetchPlan.txt   (with props)
    db/jdo/trunk/specification/imports/FetchPlanMetadata.java   (with props)
    db/jdo/trunk/specification/imports/FetchPlanMetadata.txt   (with props)
    db/jdo/trunk/specification/imports/FetchPlans.txt   (with props)
    db/jdo/trunk/specification/imports/FieldMetadata.java   (with props)
    db/jdo/trunk/specification/imports/FieldMetadata.txt   (with props)
    db/jdo/trunk/specification/imports/ForeignKey.txt   (with props)
    db/jdo/trunk/specification/imports/ForeignKeyAction.txt   (with props)
    db/jdo/trunk/specification/imports/ForeignKeyMetadata.java   (with props)
    db/jdo/trunk/specification/imports/ForeignKeyMetadata.txt   (with props)
    db/jdo/trunk/specification/imports/ForeignKeys.txt   (with props)
    db/jdo/trunk/specification/imports/IdGeneratorStrategy.txt   (with props)
    db/jdo/trunk/specification/imports/IdentityType.txt   (with props)
    db/jdo/trunk/specification/imports/Index.txt   (with props)
    db/jdo/trunk/specification/imports/IndexMetadata.java   (with props)
    db/jdo/trunk/specification/imports/IndexMetadata.txt   (with props)
    db/jdo/trunk/specification/imports/Indexed.java   (with props)
    db/jdo/trunk/specification/imports/Indexed.txt   (with props)
    db/jdo/trunk/specification/imports/Indices.txt   (with props)
    db/jdo/trunk/specification/imports/Inheritance.txt   (with props)
    db/jdo/trunk/specification/imports/InheritanceMetadata.java   (with props)
    db/jdo/trunk/specification/imports/InheritanceMetadata.txt   (with props)
    db/jdo/trunk/specification/imports/InheritanceStrategy.txt   (with props)
    db/jdo/trunk/specification/imports/InstanceCallbacks.txt   (with props)
    db/jdo/trunk/specification/imports/InterfaceMetadata.java   (with props)
    db/jdo/trunk/specification/imports/InterfaceMetadata.txt   (with props)
    db/jdo/trunk/specification/imports/JDOCanRetryException.txt   (with props)
    db/jdo/trunk/specification/imports/JDODataStoreException.txt   (with props)
    db/jdo/trunk/specification/imports/JDODetachedFieldAccessException.txt   (with props)
    db/jdo/trunk/specification/imports/JDOEnhanceException.txt   (with props)
    db/jdo/trunk/specification/imports/JDOEnhancer.java   (with props)
    db/jdo/trunk/specification/imports/JDOEnhancer.txt   (with props)
    db/jdo/trunk/specification/imports/JDOEntityManager.txt   (with props)
    db/jdo/trunk/specification/imports/JDOEntityManagerFactory.txt   (with props)
    db/jdo/trunk/specification/imports/JDOException.txt   (with props)
    db/jdo/trunk/specification/imports/JDOFatalDataStoreException.txt   (with props)
    db/jdo/trunk/specification/imports/JDOFatalException.txt   (with props)
    db/jdo/trunk/specification/imports/JDOFatalInternalException.txt   (with props)
    db/jdo/trunk/specification/imports/JDOFatalUserException.txt   (with props)
    db/jdo/trunk/specification/imports/JDOHelper.txt   (with props)
    db/jdo/trunk/specification/imports/JDOMetadata.java   (with props)
    db/jdo/trunk/specification/imports/JDOMetadata.txt   (with props)
    db/jdo/trunk/specification/imports/JDONullIdentityException.txt   (with props)
    db/jdo/trunk/specification/imports/JDOObjectNotFoundException.txt   (with props)
    db/jdo/trunk/specification/imports/JDOOptimisticVerificationException.txt   (with props)
    db/jdo/trunk/specification/imports/JDOQueryInterruptedException.txt   (with props)
    db/jdo/trunk/specification/imports/JDOReadOnlyException.txt   (with props)
    db/jdo/trunk/specification/imports/JDOUnsupportedOptionException.txt   (with props)
    db/jdo/trunk/specification/imports/JDOUserCallbackException.txt   (with props)
    db/jdo/trunk/specification/imports/JDOUserException.txt   (with props)
    db/jdo/trunk/specification/imports/Join.txt   (with props)
    db/jdo/trunk/specification/imports/JoinMetadata.java   (with props)
    db/jdo/trunk/specification/imports/JoinMetadata.txt   (with props)
    db/jdo/trunk/specification/imports/Joins.txt   (with props)
    db/jdo/trunk/specification/imports/Key.txt   (with props)
    db/jdo/trunk/specification/imports/KeyMetadata.java   (with props)
    db/jdo/trunk/specification/imports/KeyMetadata.txt   (with props)
    db/jdo/trunk/specification/imports/MapMetadata.java   (with props)
    db/jdo/trunk/specification/imports/MapMetadata.txt   (with props)
    db/jdo/trunk/specification/imports/MemberMetadata.java   (with props)
    db/jdo/trunk/specification/imports/MemberMetadata.txt   (with props)
    db/jdo/trunk/specification/imports/Metadata.java   (with props)
    db/jdo/trunk/specification/imports/Metadata.txt   (with props)
    db/jdo/trunk/specification/imports/NotPersistent.txt   (with props)
    db/jdo/trunk/specification/imports/NullValue.txt   (with props)
    db/jdo/trunk/specification/imports/ObjectState.txt   (with props)
    db/jdo/trunk/specification/imports/Order.txt   (with props)
    db/jdo/trunk/specification/imports/OrderMetadata.java   (with props)
    db/jdo/trunk/specification/imports/OrderMetadata.txt   (with props)
    db/jdo/trunk/specification/imports/PackageMetadata.java   (with props)
    db/jdo/trunk/specification/imports/PackageMetadata.txt   (with props)
    db/jdo/trunk/specification/imports/PersistenceAware.txt   (with props)
    db/jdo/trunk/specification/imports/PersistenceCapable.java   (with props)
    db/jdo/trunk/specification/imports/PersistenceCapable.txt   (with props)
    db/jdo/trunk/specification/imports/PersistenceManager.txt   (with props)
    db/jdo/trunk/specification/imports/PersistenceManagerFactory.txt   (with props)
    db/jdo/trunk/specification/imports/PersistenceModifier.txt   (with props)
    db/jdo/trunk/specification/imports/Persistent.java   (with props)
    db/jdo/trunk/specification/imports/Persistent.txt   (with props)
    db/jdo/trunk/specification/imports/PrimaryKey.txt   (with props)
    db/jdo/trunk/specification/imports/PrimaryKeyMetadata.java   (with props)
    db/jdo/trunk/specification/imports/PrimaryKeyMetadata.txt   (with props)
    db/jdo/trunk/specification/imports/PropertyMetadata.java   (with props)
    db/jdo/trunk/specification/imports/PropertyMetadata.txt   (with props)
    db/jdo/trunk/specification/imports/Queries.txt   (with props)
    db/jdo/trunk/specification/imports/Query.txt   (with props)
    db/jdo/trunk/specification/imports/QueryMetadata.java   (with props)
    db/jdo/trunk/specification/imports/QueryMetadata.txt   (with props)
    db/jdo/trunk/specification/imports/Sequence.txt   (with props)
    db/jdo/trunk/specification/imports/SequenceMetadata.java   (with props)
    db/jdo/trunk/specification/imports/SequenceMetadata.txt   (with props)
    db/jdo/trunk/specification/imports/SequenceStrategy.txt   (with props)
    db/jdo/trunk/specification/imports/Serialized.txt   (with props)
    db/jdo/trunk/specification/imports/Transaction.txt   (with props)
    db/jdo/trunk/specification/imports/Transactional.txt   (with props)
    db/jdo/trunk/specification/imports/Unique.txt   (with props)
    db/jdo/trunk/specification/imports/UniqueMetadata.java   (with props)
    db/jdo/trunk/specification/imports/UniqueMetadata.txt   (with props)
    db/jdo/trunk/specification/imports/Uniques.txt   (with props)
    db/jdo/trunk/specification/imports/Value.txt   (with props)
    db/jdo/trunk/specification/imports/ValueMetadata.java   (with props)
    db/jdo/trunk/specification/imports/ValueMetadata.txt   (with props)
    db/jdo/trunk/specification/imports/Version.txt   (with props)
    db/jdo/trunk/specification/imports/VersionMetadata.java   (with props)
    db/jdo/trunk/specification/imports/VersionMetadata.txt   (with props)
    db/jdo/trunk/specification/imports/VersionStrategy.txt   (with props)
    db/jdo/trunk/specification/imports/jdo_2_0.dtd
    db/jdo/trunk/specification/imports/jdo_2_0.xsd   (with props)
    db/jdo/trunk/specification/imports/jdo_2_1.xsd   (with props)
    db/jdo/trunk/specification/imports/jdo_2_2.dtd
    db/jdo/trunk/specification/imports/jdo_2_2.xsd   (with props)
    db/jdo/trunk/specification/imports/jdo_2_3.dtd
    db/jdo/trunk/specification/imports/jdo_2_3.xsd   (with props)
    db/jdo/trunk/specification/imports/jdo_3_0.dtd
    db/jdo/trunk/specification/imports/jdo_3_0.xsd   (with props)
    db/jdo/trunk/specification/imports/jdoconfig_2_1.dtd
    db/jdo/trunk/specification/imports/jdoconfig_2_1.xsd   (with props)
    db/jdo/trunk/specification/imports/jdoconfig_2_2.dtd
    db/jdo/trunk/specification/imports/jdoconfig_2_2.xsd   (with props)
    db/jdo/trunk/specification/imports/jdoconfig_2_3.dtd
    db/jdo/trunk/specification/imports/jdoconfig_2_3.xsd   (with props)
    db/jdo/trunk/specification/imports/jdoconfig_3_0.dtd
    db/jdo/trunk/specification/imports/jdoconfig_3_0.xsd   (with props)
    db/jdo/trunk/specification/imports/jdoquery_2_0.dtd
    db/jdo/trunk/specification/imports/jdoquery_2_0.xsd   (with props)
    db/jdo/trunk/specification/imports/jdoquery_2_1.xsd   (with props)
    db/jdo/trunk/specification/imports/jdoquery_2_2.dtd
    db/jdo/trunk/specification/imports/jdoquery_2_2.xsd   (with props)
    db/jdo/trunk/specification/imports/jdoquery_3_0.dtd
    db/jdo/trunk/specification/imports/jdoquery_3_0.xsd   (with props)
    db/jdo/trunk/specification/imports/orm_2_0.dtd
    db/jdo/trunk/specification/imports/orm_2_0.xsd   (with props)
    db/jdo/trunk/specification/imports/orm_2_1.xsd   (with props)
    db/jdo/trunk/specification/imports/orm_2_2.dtd
    db/jdo/trunk/specification/imports/orm_3_0.dtd
    db/jdo/trunk/specification/imports/orm_3_0.xsd   (with props)
    db/jdo/trunk/specification/jdo.backup.book   (with props)
    db/jdo/trunk/specification/jdo.book   (with props)
    db/jdo/trunk/specification/jdo.fm   (with props)
    db/jdo/trunk/specification/jdoIOM.fm   (with props)
    db/jdo/trunk/specification/jdoLOF.fm   (with props)
    db/jdo/trunk/specification/jdoLOT.fm   (with props)
    db/jdo/trunk/specification/jdoTOC.fm   (with props)
    db/jdo/trunk/specification/titlepage.fm   (with props)

Added: db/jdo/trunk/specification/Acknowledgements.fm
URL: http://svn.apache.org/viewvc/db/jdo/trunk/specification/Acknowledgements.fm?rev=1293075&view=auto
==============================================================================
Binary file - no diff available.

Propchange: db/jdo/trunk/specification/Acknowledgements.fm
------------------------------------------------------------------------------
    svn:mime-type = application/octet-stream

Added: db/jdo/trunk/specification/Appendixes.fm
URL: http://svn.apache.org/viewvc/db/jdo/trunk/specification/Appendixes.fm?rev=1293075&view=auto
==============================================================================
Binary file - no diff available.

Propchange: db/jdo/trunk/specification/Appendixes.fm
------------------------------------------------------------------------------
    svn:mime-type = application/octet-stream

Added: db/jdo/trunk/specification/License.fm
URL: http://svn.apache.org/viewvc/db/jdo/trunk/specification/License.fm?rev=1293075&view=auto
==============================================================================
Binary file - no diff available.

Propchange: db/jdo/trunk/specification/License.fm
------------------------------------------------------------------------------
    svn:mime-type = application/octet-stream

Added: db/jdo/trunk/specification/backcover.fm
URL: http://svn.apache.org/viewvc/db/jdo/trunk/specification/backcover.fm?rev=1293075&view=auto
==============================================================================
Binary file - no diff available.

Propchange: db/jdo/trunk/specification/backcover.fm
------------------------------------------------------------------------------
    svn:mime-type = application/octet-stream

Added: db/jdo/trunk/specification/imports/ArrayMetadata.java
URL: http://svn.apache.org/viewvc/db/jdo/trunk/specification/imports/ArrayMetadata.java?rev=1293075&view=auto
==============================================================================
--- db/jdo/trunk/specification/imports/ArrayMetadata.java (added)
+++ db/jdo/trunk/specification/imports/ArrayMetadata.java Fri Feb 24 04:25:57 2012
@@ -0,0 +1,61 @@
+/**
+ * Represents details of an array in a field/property in a class.
+ * @since 2.3
+ */
+public interface ArrayMetadata extends Metadata {
+    /**
+     * Method to set the name of the element type
+     * 
+     * @param type Name of the element type
+     */
+    ArrayMetadata setElementType(String type);
+
+    /**
+     * Accessor for the element type
+     * 
+     * @return The element type
+     */
+    String getElementType();
+
+    /**
+     * Method to set whether the element is embedded
+     * 
+     * @param val Whether it is embedded
+     */
+    ArrayMetadata setEmbeddedElement(boolean val);
+
+    /**
+     * Accessor for whether the element is embedded
+     * 
+     * @return whether the element is embedded
+     */
+    Boolean getEmbeddedElement();
+
+    /**
+     * Method to set whether the element is serialised
+     * 
+     * @param val Whether it is serialised
+     */
+    ArrayMetadata setSerializedElement(boolean val);
+
+    /**
+     * Accessor for whether the element is serialised
+     * 
+     * @return whether the element is serialised
+     */
+    Boolean getSerializedElement();
+
+    /**
+     * Method to set whether the element is dependent
+     * 
+     * @param val Whether it is dependent
+     */
+    ArrayMetadata setDependentElement(boolean val);
+
+    /**
+     * Accessor for whether the element is dependent
+     * 
+     * @return whether the element is dependent
+     */
+    Boolean getDependentElement();
+}

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

Added: db/jdo/trunk/specification/imports/ArrayMetadata.txt
URL: http://svn.apache.org/viewvc/db/jdo/trunk/specification/imports/ArrayMetadata.txt?rev=1293075&view=auto
==============================================================================
--- db/jdo/trunk/specification/imports/ArrayMetadata.txt (added)
+++ db/jdo/trunk/specification/imports/ArrayMetadata.txt Fri Feb 24 04:25:57 2012
@@ -0,0 +1,61 @@
+/**
+ * Represents details of an array in a field/property in a class.
+ * @since 2.3
+ */
+public interface ArrayMetadata extends Metadata {
+    /**
+     * Method to set the name of the element type
+     * 
+     * @param type Name of the element type
+     */
+    ArrayMetadata setElementType(String type);
+
+    /**
+     * Accessor for the element type
+     * 
+     * @return The element type
+     */
+    String getElementType();
+
+    /**
+     * Method to set whether the element is embedded
+     * 
+     * @param val Whether it is embedded
+     */
+    ArrayMetadata setEmbeddedElement(boolean val);
+
+    /**
+     * Accessor for whether the element is embedded
+     * 
+     * @return whether the element is embedded
+     */
+    Boolean getEmbeddedElement();
+
+    /**
+     * Method to set whether the element is serialised
+     * 
+     * @param val Whether it is serialised
+     */
+    ArrayMetadata setSerializedElement(boolean val);
+
+    /**
+     * Accessor for whether the element is serialised
+     * 
+     * @return whether the element is serialised
+     */
+    Boolean getSerializedElement();
+
+    /**
+     * Method to set whether the element is dependent
+     * 
+     * @param val Whether it is dependent
+     */
+    ArrayMetadata setDependentElement(boolean val);
+
+    /**
+     * Accessor for whether the element is dependent
+     * 
+     * @return whether the element is dependent
+     */
+    Boolean getDependentElement();
+}

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

Added: db/jdo/trunk/specification/imports/Cacheable.java
URL: http://svn.apache.org/viewvc/db/jdo/trunk/specification/imports/Cacheable.java?rev=1293075&view=auto
==============================================================================
--- db/jdo/trunk/specification/imports/Cacheable.java (added)
+++ db/jdo/trunk/specification/imports/Cacheable.java Fri Feb 24 04:25:57 2012
@@ -0,0 +1,6 @@
+@Target({ElementType.TYPE, ElementType.FIELD, ElementType.METHOD}) 
+@Retention(RetentionPolicy.RUNTIME)
+public @interface Cacheable
+{
+	String value() default "true";
+}

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

Added: db/jdo/trunk/specification/imports/Cacheable.txt
URL: http://svn.apache.org/viewvc/db/jdo/trunk/specification/imports/Cacheable.txt?rev=1293075&view=auto
==============================================================================
--- db/jdo/trunk/specification/imports/Cacheable.txt (added)
+++ db/jdo/trunk/specification/imports/Cacheable.txt Fri Feb 24 04:25:57 2012
@@ -0,0 +1,5 @@
+@Retention(RetentionPolicy.RUNTIME)
+public @interface Cacheable
+{
+	String value() default "true";
+}
\ No newline at end of file

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

Added: db/jdo/trunk/specification/imports/ClassMetadata.java
URL: http://svn.apache.org/viewvc/db/jdo/trunk/specification/imports/ClassMetadata.java?rev=1293075&view=auto
==============================================================================
--- db/jdo/trunk/specification/imports/ClassMetadata.java (added)
+++ db/jdo/trunk/specification/imports/ClassMetadata.java Fri Feb 24 04:25:57 2012
@@ -0,0 +1,51 @@
+/*
+ * 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 java.lang.reflect.Field;
+
+/**
+ * Represents a class.
+ * @since 2.3
+ */
+public interface ClassMetadata extends ComponentMetadata {
+    /**
+     * Method to define the persistence modifier.
+     * @param mod persistence modifier
+     */
+    ClassMetadata setPersistenceModifier(ClassPersistenceModifier mod);
+
+    /**
+     * Accessor for the persistence modifier.
+     * @return persistence modifier
+     */
+    ClassPersistenceModifier getPersistenceModifier();
+
+    /**
+     * Add a new field to this class.
+     * @param name Name of the field
+     * @return The FieldMetadata
+     */
+    FieldMetadata newFieldMetadata(String name);
+
+    /**
+     * Add a new field to this class.
+     * @param fld The field
+     * @return The FieldMetadata
+     */
+    FieldMetadata newFieldMetadata(Field fld);
+}
\ No newline at end of file

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

Added: db/jdo/trunk/specification/imports/ClassMetadata.txt
URL: http://svn.apache.org/viewvc/db/jdo/trunk/specification/imports/ClassMetadata.txt?rev=1293075&view=auto
==============================================================================
--- db/jdo/trunk/specification/imports/ClassMetadata.txt (added)
+++ db/jdo/trunk/specification/imports/ClassMetadata.txt Fri Feb 24 04:25:57 2012
@@ -0,0 +1,31 @@
+/**
+ * Represents a class.
+ * @since 2.3
+ */
+public interface ClassMetadata extends ComponentMetadata {
+    /**
+     * Method to define the persistence modifier.
+     * @param mod persistence modifier
+     */
+    ClassMetadata setPersistenceModifier(ClassPersistenceModifier mod);
+
+    /**
+     * Accessor for the persistence modifier.
+     * @return persistence modifier
+     */
+    ClassPersistenceModifier getPersistenceModifier();
+
+    /**
+     * Add a new field to this class.
+     * @param name Name of the field
+     * @return The FieldMetadata
+     */
+    FieldMetadata newFieldMetadata(String name);
+
+    /**
+     * Add a new field to this class.
+     * @param fld The field
+     * @return The FieldMetadata
+     */
+    FieldMetadata newFieldMetadata(Field fld);
+}

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

Added: db/jdo/trunk/specification/imports/ClassPersistenceModifier.java
URL: http://svn.apache.org/viewvc/db/jdo/trunk/specification/imports/ClassPersistenceModifier.java?rev=1293075&view=auto
==============================================================================
--- db/jdo/trunk/specification/imports/ClassPersistenceModifier.java (added)
+++ db/jdo/trunk/specification/imports/ClassPersistenceModifier.java Fri Feb 24 04:25:57 2012
@@ -0,0 +1,28 @@
+/*
+ * 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 persistence-modifier values for a class.
+ * @since 2.3
+ */
+public enum ClassPersistenceModifier
+{
+    PERSISTENCE_CAPABLE,
+    PERSISTENCE_AWARE,
+    NON_PERSISTENT
+}

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

Added: db/jdo/trunk/specification/imports/ClassPersistenceModifier.txt
URL: http://svn.apache.org/viewvc/db/jdo/trunk/specification/imports/ClassPersistenceModifier.txt?rev=1293075&view=auto
==============================================================================
--- db/jdo/trunk/specification/imports/ClassPersistenceModifier.txt (added)
+++ db/jdo/trunk/specification/imports/ClassPersistenceModifier.txt Fri Feb 24 04:25:57 2012
@@ -0,0 +1,10 @@
+/**
+ * Enumeration of the persistence-modifier values for a class.
+ * @since 2.3
+ */
+public enum ClassPersistenceModifier
+{
+    PERSISTENCE_CAPABLE,
+    PERSISTENCE_AWARE,
+    NON_PERSISTENT
+}

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

Added: db/jdo/trunk/specification/imports/CollectionMetadata.java
URL: http://svn.apache.org/viewvc/db/jdo/trunk/specification/imports/CollectionMetadata.java?rev=1293075&view=auto
==============================================================================
--- db/jdo/trunk/specification/imports/CollectionMetadata.java (added)
+++ db/jdo/trunk/specification/imports/CollectionMetadata.java Fri Feb 24 04:25:57 2012
@@ -0,0 +1,79 @@
+/*
+ * 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 collection in a field/property in a class.
+ * @since 2.3
+ */
+public interface CollectionMetadata extends Metadata {
+    /**
+     * Method to set the name of the element type
+     * 
+     * @param type Name of the element type
+     */
+    CollectionMetadata setElementType(String type);
+
+    /**
+     * Accessor for the element type
+     * 
+     * @return The element type
+     */
+    String getElementType();
+
+    /**
+     * Method to set whether the element is embedded
+     * 
+     * @param val Whether it is embedded
+     */
+    CollectionMetadata setEmbeddedElement(boolean val);
+
+    /**
+     * Accessor for whether the element is embedded
+     * 
+     * @return whether the element is embedded
+     */
+    Boolean getEmbeddedElement();
+
+    /**
+     * Method to set whether the element is serialised
+     * 
+     * @param val Whether it is serialised
+     */
+    CollectionMetadata setSerializedElement(boolean val);
+
+    /**
+     * Accessor for whether the element is serialised
+     * 
+     * @return whether the element is serialised
+     */
+    Boolean getSerializedElement();
+
+    /**
+     * Method to set whether the element is dependent
+     * 
+     * @param val Whether it is dependent
+     */
+    CollectionMetadata setDependentElement(boolean val);
+
+    /**
+     * Accessor for whether the element is dependent
+     * 
+     * @return whether the element is dependent
+     */
+    Boolean getDependentElement();
+}
\ No newline at end of file

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

Added: db/jdo/trunk/specification/imports/CollectionMetadata.txt
URL: http://svn.apache.org/viewvc/db/jdo/trunk/specification/imports/CollectionMetadata.txt?rev=1293075&view=auto
==============================================================================
--- db/jdo/trunk/specification/imports/CollectionMetadata.txt (added)
+++ db/jdo/trunk/specification/imports/CollectionMetadata.txt Fri Feb 24 04:25:57 2012
@@ -0,0 +1,61 @@
+/**
+ * Represents details of a collection in a field/property in a class.
+ * @since 2.3
+ */
+public interface CollectionMetadata extends Metadata {
+    /**
+     * Method to set the name of the element type
+     * 
+     * @param type Name of the element type
+     */
+    CollectionMetadata setElementType(String type);
+
+    /**
+     * Accessor for the element type
+     * 
+     * @return The element type
+     */
+    String getElementType();
+
+    /**
+     * Method to set whether the element is embedded
+     * 
+     * @param val Whether it is embedded
+     */
+    CollectionMetadata setEmbeddedElement(boolean val);
+
+    /**
+     * Accessor for whether the element is embedded
+     * 
+     * @return whether the element is embedded
+     */
+    Boolean getEmbeddedElement();
+
+    /**
+     * Method to set whether the element is serialised
+     * 
+     * @param val Whether it is serialised
+     */
+    CollectionMetadata setSerializedElement(boolean val);
+
+    /**
+     * Accessor for whether the element is serialised
+     * 
+     * @return whether the element is serialised
+     */
+    Boolean getSerializedElement();
+
+    /**
+     * Method to set whether the element is dependent
+     * 
+     * @param val Whether it is dependent
+     */
+    CollectionMetadata setDependentElement(boolean val);
+
+    /**
+     * Accessor for whether the element is dependent
+     * 
+     * @return whether the element is dependent
+     */
+    Boolean getDependentElement();
+}

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

Added: db/jdo/trunk/specification/imports/Column.txt
URL: http://svn.apache.org/viewvc/db/jdo/trunk/specification/imports/Column.txt?rev=1293075&view=auto
==============================================================================
--- db/jdo/trunk/specification/imports/Column.txt (added)
+++ db/jdo/trunk/specification/imports/Column.txt Fri Feb 24 04:25:57 2012
@@ -0,0 +1,73 @@
+@Target({ElementType.FIELD, ElementType.METHOD}) 
+@Retention(RetentionPolicy.RUNTIME)
+public @interface Column
+{
+    /**
+     * Name of the column.
+     * @return the name of the column
+     */
+    String name() default "";
+
+    /**
+     * Target column for this column in the other table when part of a 
+     * foreign key relation.
+     * @return the target column in the other table for this column 
+     * when part of a foreign key relation.
+     */
+    String target() default "";
+
+    /**
+     * Target member in the other class or interface for this column 
+     * when part of a bidirectional relation.
+     * @return the target member for this column when part of 
+     * a bidirectional relation.
+     */
+    String targetMember() default "";
+
+    /**
+     * JDBC Type for this column.
+     * @return JDBC type for this column
+     */
+    String jdbcType() default "";
+
+    /**
+     * SQL Type for this column.
+     * @return SQL type for this column
+     */
+    String sqlType() default "";
+
+    /**
+     * Maximum length of data stored in this column.
+     * @return the maximum length of data stored in this column
+     */
+    int length() default -1;
+
+    /**
+     * Scale for the column when handling floating point values.
+     * @return the scale for the column when handling floating point values
+     */
+    int scale() default -1;
+
+    /**
+     * Whether the column allows null values to be inserted.
+     * @return whether the column allows null values to be inserted
+     */
+    String allowsNull() default "";
+
+    /**
+     * Default value for this column.
+     * @return the default value for this column
+     */
+    String defaultValue() default "";
+
+    /**
+     * Value to be inserted when this is an "unmapped" column
+     * @return the value to be inserted when this is an "unmapped" column
+     */
+    String insertValue() default "";
+
+    /** Vendor extensions.
+     * @return the vendor extensions
+     */
+    Extension[] extensions() default {};
+}

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

Added: db/jdo/trunk/specification/imports/ColumnMetadata.java
URL: http://svn.apache.org/viewvc/db/jdo/trunk/specification/imports/ColumnMetadata.java?rev=1293075&view=auto
==============================================================================
--- db/jdo/trunk/specification/imports/ColumnMetadata.java (added)
+++ db/jdo/trunk/specification/imports/ColumnMetadata.java Fri Feb 24 04:25:57 2012
@@ -0,0 +1,163 @@
+/*
+ * 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 element in a collection/array.
+ * @since 2.3
+ */
+public interface ColumnMetadata extends Metadata {
+    /**
+     * Method to set the column name.
+     * 
+     * @param name Column name
+     */
+    ColumnMetadata setName(String name);
+
+    /**
+     * Accessor for the name of the column.
+     * 
+     * @return The name
+     */
+    String getName();
+
+    /**
+     * Method to set the target column (at the other side of the relation).
+     * 
+     * @param target Target column
+     */
+    ColumnMetadata setTarget(String target);
+
+    /**
+     * Accessor for the name of the target column.
+     * 
+     * @return Target column name
+     */
+    String getTarget();
+
+    /**
+     * Method to set the target field (at the other side of the relation).
+     * 
+     * @param target Target field
+     */
+    ColumnMetadata setTargetField(String target);
+
+    /**
+     * Accessor for the name of the target field.
+     * 
+     * @return Target field name
+     */
+    String getTargetField();
+
+    /**
+     * Method to set the JDBC type.
+     * 
+     * @param type JDBC Type
+     */
+    ColumnMetadata setJDBCType(String type);
+
+    /**
+     * Accessor for the JDBC Type
+     * 
+     * @return JDBC Type
+     */
+    String getJDBCType();
+
+    /**
+     * Method to set the SQL type.
+     * 
+     * @param type SQL Type
+     */
+    ColumnMetadata setSQLType(String type);
+
+    /**
+     * Accessor for the SQL Type
+     * 
+     * @return SQL Type
+     */
+    String getSQLType();
+
+    /**
+     * Method to set the length
+     * 
+     * @param len Length
+     */
+    ColumnMetadata setLength(int len);
+
+    /**
+     * Accessor for the length
+     * 
+     * @return length
+     */
+    Integer getLength();
+
+    /**
+     * Method to set the scale
+     * 
+     * @param scale scale
+     */
+    ColumnMetadata setScale(int scale);
+
+    /**
+     * Accessor for the scale
+     * 
+     * @return scale
+     */
+    Integer getScale();
+
+    /**
+     * Method to set whether it allows null.
+     * 
+     * @param nulls Allows null?
+     */
+    ColumnMetadata setAllowsNull(boolean nulls);
+
+    /**
+     * Accessor for whether the column allows null.
+     * 
+     * @return Allows null?
+     */
+    Boolean getAllowsNull();
+
+    /**
+     * Method to set the default value.
+     * 
+     * @param val Default value
+     */
+    ColumnMetadata setDefaultValue(String val);
+
+    /**
+     * Accessor for the default value
+     * 
+     * @return Default value
+     */
+    String getDefaultValue();
+
+    /**
+     * Method to set the insert value (for columns with no field/property).
+     * 
+     * @param val Insert value
+     */
+    ColumnMetadata setInsertValue(String val);
+
+    /**
+     * Accessor for the insert value (for columns with no field/property)
+     * 
+     * @return Insert value
+     */
+    String getInsertValue();
+}
\ No newline at end of file

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

Added: db/jdo/trunk/specification/imports/ColumnMetadata.txt
URL: http://svn.apache.org/viewvc/db/jdo/trunk/specification/imports/ColumnMetadata.txt?rev=1293075&view=auto
==============================================================================
--- db/jdo/trunk/specification/imports/ColumnMetadata.txt (added)
+++ db/jdo/trunk/specification/imports/ColumnMetadata.txt Fri Feb 24 04:25:57 2012
@@ -0,0 +1,145 @@
+/**
+ * Represents an element in a collection/array.
+ * @since 2.3
+ */
+public interface ColumnMetadata extends Metadata {
+    /**
+     * Method to set the column name.
+     * 
+     * @param name Column name
+     */
+    ColumnMetadata setName(String name);
+
+    /**
+     * Accessor for the name of the column.
+     * 
+     * @return The name
+     */
+    String getName();
+
+    /**
+     * Method to set the target column (at the other side of the relation).
+     * 
+     * @param target Target column
+     */
+    ColumnMetadata setTarget(String target);
+
+    /**
+     * Accessor for the name of the target column.
+     * 
+     * @return Target column name
+     */
+    String getTarget();
+
+    /**
+     * Method to set the target field (at the other side of the relation).
+     * 
+     * @param target Target field
+     */
+    ColumnMetadata setTargetField(String target);
+
+    /**
+     * Accessor for the name of the target field.
+     * 
+     * @return Target field name
+     */
+    String getTargetField();
+
+    /**
+     * Method to set the JDBC type.
+     * 
+     * @param type JDBC Type
+     */
+    ColumnMetadata setJDBCType(String type);
+
+    /**
+     * Accessor for the JDBC Type
+     * 
+     * @return JDBC Type
+     */
+    String getJDBCType();
+
+    /**
+     * Method to set the SQL type.
+     * 
+     * @param type SQL Type
+     */
+    ColumnMetadata setSQLType(String type);
+
+    /**
+     * Accessor for the SQL Type
+     * 
+     * @return SQL Type
+     */
+    String getSQLType();
+
+    /**
+     * Method to set the length
+     * 
+     * @param len Length
+     */
+    ColumnMetadata setLength(int len);
+
+    /**
+     * Accessor for the length
+     * 
+     * @return length
+     */
+    Integer getLength();
+
+    /**
+     * Method to set the scale
+     * 
+     * @param scale scale
+     */
+    ColumnMetadata setScale(int scale);
+
+    /**
+     * Accessor for the scale
+     * 
+     * @return scale
+     */
+    Integer getScale();
+
+    /**
+     * Method to set whether it allows null.
+     * 
+     * @param nulls Allows null?
+     */
+    ColumnMetadata setAllowsNull(boolean nulls);
+
+    /**
+     * Accessor for whether the column allows null.
+     * 
+     * @return Allows null?
+     */
+    Boolean getAllowsNull();
+
+    /**
+     * Method to set the default value.
+     * 
+     * @param val Default value
+     */
+    ColumnMetadata setDefaultValue(String val);
+
+    /**
+     * Accessor for the default value
+     * 
+     * @return Default value
+     */
+    String getDefaultValue();
+
+    /**
+     * Method to set the insert value (for columns with no field/property).
+     * 
+     * @param val Insert value
+     */
+    ColumnMetadata setInsertValue(String val);
+
+    /**
+     * Accessor for the insert value (for columns with no field/property)
+     * 
+     * @return Insert value
+     */
+    String getInsertValue();
+}

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

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

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

Added: db/jdo/trunk/specification/imports/ComponentMetadata.java
URL: http://svn.apache.org/viewvc/db/jdo/trunk/specification/imports/ComponentMetadata.java?rev=1293075&view=auto
==============================================================================
--- db/jdo/trunk/specification/imports/ComponentMetadata.java (added)
+++ db/jdo/trunk/specification/imports/ComponentMetadata.java Fri Feb 24 04:25:57 2012
@@ -0,0 +1,374 @@
+/**
+ * Represents a class or interface. Extended for the specifics of those cases.
+ * @since 2.3
+ */
+public interface ComponentMetadata extends Metadata {
+    /**
+     * Accessor for the name of this component (set on construction).
+     * 
+     * @return The name
+     */
+    String getName();
+
+    /**
+     * Method to define the identity type to use.
+     * 
+     * @param id identity type
+     */
+    ComponentMetadata setIdentityType(IdentityType id);
+
+    /**
+     * Accessor for the identity type to use.
+     * 
+     * @return identity type
+     */
+    IdentityType getIdentityType();
+
+    /**
+     * Method to set the object-id (PK) class.
+     * 
+     * @param idclass Object-id class
+     */
+    ComponentMetadata setObjectIdClass(String idclass);
+
+    /**
+     * Accessor for the object-id class (if defined).
+     * 
+     * @return The object-id class
+     */
+    String getObjectIdClass();
+
+    /**
+     * Method to set whether the component requires an extent.
+     * 
+     * @param extent Requires extent?
+     */
+    ComponentMetadata setRequiresExtent(boolean extent);
+
+    /**
+     * Accessor for whether the component requires an extent.
+     * 
+     * @return Requires extent?
+     */
+    boolean getRequiresExtent();
+
+    /**
+     * Method to set whether this is detachable
+     * 
+     * @param detachable Detachable?
+     */
+    ComponentMetadata setDetachable(boolean detachable);
+
+    /**
+     * Accessor for whether this is detachable.
+     * 
+     * @return Detachable?
+     */
+    boolean getDetachable();
+
+    /**
+     * Method to set whether this is cacheable
+     * 
+     * @param cacheable Cacheable?
+     */
+    ComponentMetadata setCacheable(boolean cacheable);
+
+    /**
+     * Accessor for whether this is cacheable.
+     * 
+     * @return Detachable?
+     */
+    boolean getCacheable();
+
+    /**
+     * Method to set whether it is stored only as embedded in other objects.
+     * 
+     * @param embedded Whether it is only stored embedded
+     */
+    ComponentMetadata setEmbeddedOnly(boolean embedded);
+
+    /**
+     * Accessor for whether this is embedded only.
+     * 
+     * @return Only stored as embedded
+     */
+    Boolean getEmbeddedOnly();
+
+    /**
+     * Method to set the catalog (ORM) for this component
+     * 
+     * @param catalog Catalog name
+     */
+    ComponentMetadata setCatalog(String catalog);
+
+    /**
+     * Accessor for the catalog (ORM) for this component
+     * 
+     * @return The catalog
+     */
+    String getCatalog();
+
+    /**
+     * Method to set the schema (ORM) for this component
+     * 
+     * @param schema Schema name
+     */
+    ComponentMetadata setSchema(String schema);
+
+    /**
+     * Accessor for the schema (ORM) for this component
+     * 
+     * @return The schema
+     */
+    String getSchema();
+
+    /**
+     * Method to set the table name.
+     * 
+     * @param table Table name
+     */
+    ComponentMetadata setTable(String table);
+
+    /**
+     * Accessor for the name of the table.
+     * 
+     * @return The name
+     */
+    String getTable();
+
+    /**
+     * Method to define the inheritance metadata.
+     * 
+     * @return The InheritanceMetadata
+     */
+    InheritanceMetadata newInheritanceMetadata();
+
+    /**
+     * Accessor for the inheritance (if any).
+     * 
+     * @return inheritance
+     */
+    InheritanceMetadata getInheritanceMetadata();
+
+    /**
+     * Method to define the version metadata.
+     * 
+     * @return The VersionMetadata
+     */
+    VersionMetadata newVersionMetadata();
+
+    /**
+     * Accessor for the version (if any).
+     * 
+     * @return version
+     */
+    VersionMetadata getVersionMetadata();
+
+    /**
+     * Method to define the datastore identity metadata details.
+     * 
+     * @return The DatastoreIdentityMetadata
+     */
+    DatastoreIdentityMetadata newDatastoreIdentityMetadata();
+
+    /**
+     * Accessor for the datastore identity details.
+     * 
+     * @return datastore identity details
+     */
+    DatastoreIdentityMetadata getDatastoreIdentityMetadata();
+
+    /**
+     * Method to define the primary key details.
+     * 
+     * @return The PrimaryKeyMetadata
+     */
+    PrimaryKeyMetadata newPrimaryKeyMetadata();
+
+    /**
+     * Accessor for the primary key (if any).
+     * 
+     * @return primary key details
+     */
+    PrimaryKeyMetadata getPrimaryKeyMetadata();
+
+    /**
+     * Accessor for all joins(s) defined on the component.
+     * 
+     * @return The join(s)
+     */
+    JoinMetadata[] getJoins();
+
+    /**
+     * Add a join for this component.
+     * 
+     * @return The JoinMetadata
+     */
+    JoinMetadata newJoinMetadata();
+
+    /**
+     * Accessor for the number of join(s) defined for this component.
+     * 
+     * @return The number of join(s)
+     */
+    int getNumberOfJoins();
+
+    /**
+     * Accessor for all fk(s) defined on the component.
+     * 
+     * @return The fk(s)
+     */
+    ForeignKeyMetadata[] getForeignKeys();
+
+    /**
+     * Add a new FK for this component.
+     * 
+     * @return The ForeignKeyMetadata
+     */
+    ForeignKeyMetadata newForeignKeyMetadata();
+
+    /**
+     * Accessor for the number of FKs defined for this component.
+     * 
+     * @return The number of FKs
+     */
+    int getNumberOfForeignKeys();
+
+    /**
+     * Accessor for all index(s) defined on the component.
+     * 
+     * @return The index(s)
+     */
+    IndexMetadata[] getIndices();
+
+    /**
+     * Add a new index for this component.
+     * 
+     * @return The IndexMetadata
+     */
+    IndexMetadata newIndexMetadata();
+
+    /**
+     * Accessor for the number of indices defined for this component.
+     * 
+     * @return The number of indices
+     */
+    int getNumberOfIndices();
+
+    /**
+     * Accessor for all unique constraints defined on the component.
+     * 
+     * @return The unique constraints
+     */
+    UniqueMetadata[] getUniques();
+
+    /**
+     * Add a new unique constraint for this component.
+     * 
+     * @return The UniqueMetadata
+     */
+    UniqueMetadata newUniqueMetadata();
+
+    /**
+     * Accessor for the number of unique constraints defined for this component.
+     * 
+     * @return The number of unique constraints
+     */
+    int getNumberOfUniques();
+
+    /**
+     * Accessor for all fields/properties defined on the component.
+     * 
+     * @return The members
+     */
+    MemberMetadata[] getMembers();
+
+    /**
+     * Accessor for the number of fields/properties defined for this component.
+     * 
+     * @return The number of members
+     */
+    int getNumberOfMembers();
+
+    /**
+     * Add a new property for this component.
+     * 
+     * @param name Name of the property
+     * @return The PropertyMetadata
+     */
+    PropertyMetadata newPropertyMetadata(String name);
+
+    /**
+     * Add a new property for this component.
+     * 
+     * @param method Java bean getter/setter method
+     * @return The PropertyMetadata
+     */
+    PropertyMetadata newPropertyMetadata(Method method);
+
+    /**
+     * Accessor for all named queries defined on the component.
+     * 
+     * @return The queries
+     */
+    QueryMetadata[] getQueries();
+
+    /**
+     * Add a new query for this component.
+     * 
+     * @param name
+     *            Name of the query to add
+     * @return The QueryMetadata
+     */
+    QueryMetadata newQueryMetadata(String name);
+
+    /**
+     * Accessor for the number of named queries defined for this component.
+     * 
+     * @return The number of named queries
+     */
+    int getNumberOfQueries();
+
+    /**
+     * Accessor for all FetchGroup defined on the component.
+     * 
+     * @return The FetchGroups
+     */
+    FetchGroupMetadata[] getFetchGroups();
+
+    /**
+     * Add a new FetchGroup for this component.
+     * 
+     * @param name Name of the FetchGroup
+     * @return The FetchGroupMetadata
+     */
+    FetchGroupMetadata newFetchGroupMetadata(String name);
+
+    /**
+     * Accessor for the number of fetchGroups defined for this component.
+     * 
+     * @return The number of fetch groups
+     */
+    int getNumberOfFetchGroups();
+
+    /**
+     * 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/ComponentMetadata.java
------------------------------------------------------------------------------
    svn:eol-style = LF

Added: db/jdo/trunk/specification/imports/ComponentMetadata.txt
URL: http://svn.apache.org/viewvc/db/jdo/trunk/specification/imports/ComponentMetadata.txt?rev=1293075&view=auto
==============================================================================
--- db/jdo/trunk/specification/imports/ComponentMetadata.txt (added)
+++ db/jdo/trunk/specification/imports/ComponentMetadata.txt Fri Feb 24 04:25:57 2012
@@ -0,0 +1,388 @@
+/**
+ * Represents a class or interface. Extended for the specifics of those cases.
+ * @since 2.3
+ */
+public interface ComponentMetadata extends Metadata {
+    /**
+     * Accessor for the name of this component (set on construction).
+     * 
+     * @return The name
+     */
+    String getName();
+
+    /**
+     * Method to define the identity type to use.
+     * 
+     * @param id identity type
+     */
+    ComponentMetadata setIdentityType(IdentityType id);
+
+    /**
+     * Accessor for the identity type to use.
+     * 
+     * @return identity type
+     */
+    IdentityType getIdentityType();
+
+    /**
+     * Method to set the object-id (PK) class.
+     * 
+     * @param idclass Object-id class
+     */
+    ComponentMetadata setObjectIdClass(String idclass);
+
+    /**
+     * Accessor for the object-id class (if defined).
+     * 
+     * @return The object-id class
+     */
+    String getObjectIdClass();
+
+    /**
+     * Method to set whether the component requires an extent.
+     * 
+     * @param extent Requires extent?
+     */
+    ComponentMetadata setRequiresExtent(boolean extent);
+
+    /**
+     * Accessor for whether the component requires an extent.
+     * 
+     * @return Requires extent?
+     */
+    boolean getRequiresExtent();
+
+    /**
+     * Method to set whether this is detachable
+     * 
+     * @param detachable Detachable?
+     */
+    ComponentMetadata setDetachable(boolean detachable);
+
+    /**
+     * Accessor for whether this is detachable.
+     * 
+     * @return Detachable?
+     */
+    boolean getDetachable();
+
+    /**
+     * Method to set whether this is cacheable
+     * 
+     * @param cacheable Cacheable?
+     */
+    ComponentMetadata setCacheable(boolean cacheable);
+
+    /**
+     * Accessor for whether this is cacheable.
+     * 
+     * @return Cacheable?
+     */
+    boolean getCacheable();
+
+    /**
+     * Method to set whether this is serializeRead
+     * 
+     * @param serializeRead serializeRead?
+     */
+    ComponentMetadata setSerializeRead(boolean serializeRead);
+
+    /**
+     * Accessor for whether this is serializeRead.
+     * 
+     * @return serializeRead?
+     */
+    boolean getSerializeRead();
+
+    /**
+     * Method to set whether it is stored only as embedded in other objects.
+     * 
+     * @param embedded Whether it is only stored embedded
+     */
+    ComponentMetadata setEmbeddedOnly(boolean embedded);
+
+    /**
+     * Accessor for whether this is embedded only.
+     * 
+     * @return Only stored as embedded
+     */
+    Boolean getEmbeddedOnly();
+
+    /**
+     * Method to set the catalog (ORM) for this component
+     * 
+     * @param catalog Catalog name
+     */
+    ComponentMetadata setCatalog(String catalog);
+
+    /**
+     * Accessor for the catalog (ORM) for this component
+     * 
+     * @return The catalog
+     */
+    String getCatalog();
+
+    /**
+     * Method to set the schema (ORM) for this component
+     * 
+     * @param schema Schema name
+     */
+    ComponentMetadata setSchema(String schema);
+
+    /**
+     * Accessor for the schema (ORM) for this component
+     * 
+     * @return The schema
+     */
+    String getSchema();
+
+    /**
+     * Method to set the table name.
+     * 
+     * @param table Table name
+     */
+    ComponentMetadata setTable(String table);
+
+    /**
+     * Accessor for the name of the table.
+     * 
+     * @return The name
+     */
+    String getTable();
+
+    /**
+     * Method to define the inheritance metadata.
+     * 
+     * @return The InheritanceMetadata
+     */
+    InheritanceMetadata newInheritanceMetadata();
+
+    /**
+     * Accessor for the inheritance (if any).
+     * 
+     * @return inheritance
+     */
+    InheritanceMetadata getInheritanceMetadata();
+
+    /**
+     * Method to define the version metadata.
+     * 
+     * @return The VersionMetadata
+     */
+    VersionMetadata newVersionMetadata();
+
+    /**
+     * Accessor for the version (if any).
+     * 
+     * @return version
+     */
+    VersionMetadata getVersionMetadata();
+
+    /**
+     * Method to define the datastore identity metadata details.
+     * 
+     * @return The DatastoreIdentityMetadata
+     */
+    DatastoreIdentityMetadata newDatastoreIdentityMetadata();
+
+    /**
+     * Accessor for the datastore identity details.
+     * 
+     * @return datastore identity details
+     */
+    DatastoreIdentityMetadata getDatastoreIdentityMetadata();
+
+    /**
+     * Method to define the primary key details.
+     * 
+     * @return The PrimaryKeyMetadata
+     */
+    PrimaryKeyMetadata newPrimaryKeyMetadata();
+
+    /**
+     * Accessor for the primary key (if any).
+     * 
+     * @return primary key details
+     */
+    PrimaryKeyMetadata getPrimaryKeyMetadata();
+
+    /**
+     * Accessor for all joins(s) defined on the component.
+     * 
+     * @return The join(s)
+     */
+    JoinMetadata[] getJoins();
+
+    /**
+     * Add a join for this component.
+     * 
+     * @return The JoinMetadata
+     */
+    JoinMetadata newJoinMetadata();
+
+    /**
+     * Accessor for the number of join(s) defined for this component.
+     * 
+     * @return The number of join(s)
+     */
+    int getNumberOfJoins();
+
+    /**
+     * Accessor for all fk(s) defined on the component.
+     * 
+     * @return The fk(s)
+     */
+    ForeignKeyMetadata[] getForeignKeys();
+
+    /**
+     * Add a new FK for this component.
+     * 
+     * @return The ForeignKeyMetadata
+     */
+    ForeignKeyMetadata newForeignKeyMetadata();
+
+    /**
+     * Accessor for the number of FKs defined for this component.
+     * 
+     * @return The number of FKs
+     */
+    int getNumberOfForeignKeys();
+
+    /**
+     * Accessor for all index(s) defined on the component.
+     * 
+     * @return The index(s)
+     */
+    IndexMetadata[] getIndices();
+
+    /**
+     * Add a new index for this component.
+     * 
+     * @return The IndexMetadata
+     */
+    IndexMetadata newIndexMetadata();
+
+    /**
+     * Accessor for the number of indices defined for this component.
+     * 
+     * @return The number of indices
+     */
+    int getNumberOfIndices();
+
+    /**
+     * Accessor for all unique constraints defined on the component.
+     * 
+     * @return The unique constraints
+     */
+    UniqueMetadata[] getUniques();
+
+    /**
+     * Add a new unique constraint for this component.
+     * 
+     * @return The UniqueMetadata
+     */
+    UniqueMetadata newUniqueMetadata();
+
+    /**
+     * Accessor for the number of unique constraints defined for this component.
+     * 
+     * @return The number of unique constraints
+     */
+    int getNumberOfUniques();
+
+    /**
+     * Accessor for all fields/properties defined on the component.
+     * 
+     * @return The members
+     */
+    MemberMetadata[] getMembers();
+
+    /**
+     * Accessor for the number of fields/properties defined for this component.
+     * 
+     * @return The number of members
+     */
+    int getNumberOfMembers();
+
+    /**
+     * Add a new property for this component.
+     * 
+     * @param name Name of the property
+     * @return The PropertyMetadata
+     */
+    PropertyMetadata newPropertyMetadata(String name);
+
+    /**
+     * Add a new property for this component.
+     * 
+     * @param method Java bean getter/setter method
+     * @return The PropertyMetadata
+     */
+    PropertyMetadata newPropertyMetadata(Method method);
+
+    /**
+     * Accessor for all named queries defined on the component.
+     * 
+     * @return The queries
+     */
+    QueryMetadata[] getQueries();
+
+    /**
+     * Add a new query for this component.
+     * 
+     * @param name
+     *            Name of the query to add
+     * @return The QueryMetadata
+     */
+    QueryMetadata newQueryMetadata(String name);
+
+    /**
+     * Accessor for the number of named queries defined for this component.
+     * 
+     * @return The number of named queries
+     */
+    int getNumberOfQueries();
+
+    /**
+     * Accessor for all FetchGroup defined on the component.
+     * 
+     * @return The FetchGroups
+     */
+    FetchGroupMetadata[] getFetchGroups();
+
+    /**
+     * Add a new FetchGroup for this component.
+     * 
+     * @param name Name of the FetchGroup
+     * @return The FetchGroupMetadata
+     */
+    FetchGroupMetadata newFetchGroupMetadata(String name);
+
+    /**
+     * Accessor for the number of fetchGroups defined for this component.
+     * 
+     * @return The number of fetch groups
+     */
+    int getNumberOfFetchGroups();
+
+    /**
+     * 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/ComponentMetadata.txt
------------------------------------------------------------------------------
    svn:eol-style = LF

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

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

Added: db/jdo/trunk/specification/imports/DatastoreIdentity.txt
URL: http://svn.apache.org/viewvc/db/jdo/trunk/specification/imports/DatastoreIdentity.txt?rev=1293075&view=auto
==============================================================================
--- db/jdo/trunk/specification/imports/DatastoreIdentity.txt (added)
+++ db/jdo/trunk/specification/imports/DatastoreIdentity.txt Fri Feb 24 04:25:57 2012
@@ -0,0 +1,39 @@
+@Target(ElementType.TYPE) 
+@Retention(RetentionPolicy.RUNTIME)
+public @interface DatastoreIdentity
+{
+    /**
+     * Strategy to use when generating datastore identities
+     * @return Strategy to use when generating datastore identities
+     */
+    IdGeneratorStrategy strategy() default IdGeneratorStrategy.UNSPECIFIED;
+
+    /** Custom strategy to use to generate the value for the identity. 
+     * If customStrategy is non-empty, then strategy must be UNSPECIFIED.
+     * @return the custom strategy
+     */
+    String customStrategy() default "";
+
+    /**
+     * Name of sequence to use when the strategy involves sequences
+     * @return Name of sequence to use when the strategy involves sequences
+     */
+    String sequence() default "";
+
+    /**
+     * Name of the column for the datastore identity
+     * @return Name of the column for the datastore identity
+     */
+    String column() default "";
+
+    /**
+     * The column(s) making up the datastore identity.
+     * @return The column(s) making up the datastore identity.
+     */
+    Column[] columns() default {};
+
+    /** Vendor extensions. 
+     * @return the vendor extensions
+     */
+    Extension[] extensions() default {};
+}

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

Added: db/jdo/trunk/specification/imports/DatastoreIdentityMetadata.java
URL: http://svn.apache.org/viewvc/db/jdo/trunk/specification/imports/DatastoreIdentityMetadata.java?rev=1293075&view=auto
==============================================================================
--- db/jdo/trunk/specification/imports/DatastoreIdentityMetadata.java (added)
+++ db/jdo/trunk/specification/imports/DatastoreIdentityMetadata.java Fri Feb 24 04:25:57 2012
@@ -0,0 +1,102 @@
+/*
+ * 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.IdGeneratorStrategy;
+
+/**
+ * Represents the datastore identity of a class.
+ * @since 2.3
+ */
+public interface DatastoreIdentityMetadata extends Metadata {
+    /**
+     * Method to set the datastore identity column name.
+     * 
+     * @param column Name of the datastore identity column
+     */
+    DatastoreIdentityMetadata setColumn(String column);
+
+    /**
+     * Accessor for the datastore identity column name
+     * 
+     * @return The column name
+     */
+    String getColumn();
+
+    /**
+     * Method to set the identity generation strategy.
+     * 
+     * @param strategy The strategy
+     */
+    DatastoreIdentityMetadata setStrategy(IdGeneratorStrategy strategy);
+
+    /**
+     * Accessor for the identity generation strategy.
+     * 
+     * @return The strategy
+     */
+    IdGeneratorStrategy getStrategy();
+
+    /**
+     * Method to set the custom identity generation strategy.
+     * 
+     * @param strategy The strategy
+     */
+    DatastoreIdentityMetadata setCustomStrategy(String strategy);
+
+    /**
+     * Accessor for the custom strategy (overriding "strategy").
+     * 
+     * @return The strategy
+     */
+    String getCustomStrategy();
+
+    /**
+     * Method to set the sequence key (when using "sequence" strategy)
+     * 
+     * @param seq Sequence key
+     */
+    DatastoreIdentityMetadata setSequence(String seq);
+
+    /**
+     * Accessor for the sequence key (when using "sequence" strategy)
+     * 
+     * @return The sequence
+     */
+    String getSequence();
+
+    /**
+     * Accessor for all column(s) defined on the datastore identity.
+     * 
+     * @return The column(s)
+     */
+    ColumnMetadata[] getColumns();
+
+    /**
+     * Add a new column for this datastore identity.
+     * 
+     * @return The ColumnMetadata
+     */
+    ColumnMetadata newColumnMetadata();
+
+    /**
+     * Accessor for the number of columns defined for this datastore identity.
+     * 
+     * @return The number of columns
+     */
+    int getNumberOfColumns();
+}
\ No newline at end of file

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

Added: db/jdo/trunk/specification/imports/DatastoreIdentityMetadata.txt
URL: http://svn.apache.org/viewvc/db/jdo/trunk/specification/imports/DatastoreIdentityMetadata.txt?rev=1293075&view=auto
==============================================================================
--- db/jdo/trunk/specification/imports/DatastoreIdentityMetadata.txt (added)
+++ db/jdo/trunk/specification/imports/DatastoreIdentityMetadata.txt Fri Feb 24 04:25:57 2012
@@ -0,0 +1,82 @@
+/**
+ * Represents the datastore identity of a class.
+ * @since 2.3
+ */
+public interface DatastoreIdentityMetadata extends Metadata {
+    /**
+     * Method to set the datastore identity column name.
+     * 
+     * @param column Name of the datastore identity column
+     */
+    DatastoreIdentityMetadata setColumn(String column);
+
+    /**
+     * Accessor for the datastore identity column name
+     * 
+     * @return The column name
+     */
+    String getColumn();
+
+    /**
+     * Method to set the identity generation strategy.
+     * 
+     * @param strategy The strategy
+     */
+    DatastoreIdentityMetadata setStrategy(IdGeneratorStrategy strategy);
+
+    /**
+     * Accessor for the identity generation strategy.
+     * 
+     * @return The strategy
+     */
+    IdGeneratorStrategy getStrategy();
+
+    /**
+     * Method to set the custom identity generation strategy.
+     * 
+     * @param strategy The strategy
+     */
+    DatastoreIdentityMetadata setCustomStrategy(String strategy);
+
+    /**
+     * Accessor for the custom strategy (overriding "strategy").
+     * 
+     * @return The strategy
+     */
+    String getCustomStrategy();
+
+    /**
+     * Method to set the sequence key (when using "sequence" strategy)
+     * 
+     * @param seq Sequence key
+     */
+    DatastoreIdentityMetadata setSequence(String seq);
+
+    /**
+     * Accessor for the sequence key (when using "sequence" strategy)
+     * 
+     * @return The sequence
+     */
+    String getSequence();
+
+    /**
+     * Accessor for all column(s) defined on the datastore identity.
+     * 
+     * @return The column(s)
+     */
+    ColumnMetadata[] getColumns();
+
+    /**
+     * Add a new column for this datastore identity.
+     * 
+     * @return The ColumnMetadata
+     */
+    ColumnMetadata newColumnMetadata();
+
+    /**
+     * Accessor for the number of columns defined for this datastore identity.
+     * 
+     * @return The number of columns
+     */
+    int getNumberOfColumns();
+}

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

Added: db/jdo/trunk/specification/imports/Discriminator.txt
URL: http://svn.apache.org/viewvc/db/jdo/trunk/specification/imports/Discriminator.txt?rev=1293075&view=auto
==============================================================================
--- db/jdo/trunk/specification/imports/Discriminator.txt (added)
+++ db/jdo/trunk/specification/imports/Discriminator.txt Fri Feb 24 04:25:57 2012
@@ -0,0 +1,44 @@
+@Target(ElementType.TYPE) 
+@Retention(RetentionPolicy.RUNTIME)
+public @interface Discriminator
+{
+    /**
+     * Strategy to use for the discriminator. The discriminator determines
+     * the class associated with a row in the datastore.
+     * @return the strategy to use for the discriminator
+     */
+    DiscriminatorStrategy strategy() 
+        default DiscriminatorStrategy.UNSPECIFIED;
+
+    /** Custom strategy to use for the discriminator. 
+     * If customStrategy is non-empty, then strategy must be UNSPECIFIED.
+     * @return the custom strategy
+     */
+    String customStrategy() default "";
+
+    /**
+     * Whether the discriminator is indexed.
+     * @return whether the discriminator is indexed
+     */
+    String indexed() default "";
+
+    /**
+     * Name of the column for the discriminator
+     * @return the name of the column for the discriminator
+     */
+    String column() default "";
+
+    /**
+     * The value for the discriminator for objects of this class 
+     * when using "value-map" strategy.
+     * @return The value for the discriminator for objects of this class 
+     * when using "value-map" strategy
+     */
+    String value() default "";
+
+    /**
+     * The column(s) making up the discriminator.
+     * @return the column(s) making up the discriminator
+     */
+    Column[] columns() default {};
+}

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

Added: db/jdo/trunk/specification/imports/DiscriminatorMetadata.java
URL: http://svn.apache.org/viewvc/db/jdo/trunk/specification/imports/DiscriminatorMetadata.java?rev=1293075&view=auto
==============================================================================
--- db/jdo/trunk/specification/imports/DiscriminatorMetadata.java (added)
+++ db/jdo/trunk/specification/imports/DiscriminatorMetadata.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;
+
+import javax.jdo.annotations.DiscriminatorStrategy;
+
+/**
+ * Represents the discriminator for inheritance purposes for this class.
+ * @since 2.3
+ */
+public interface DiscriminatorMetadata extends Metadata {
+    /**
+     * Method to set the discriminator column.
+     * 
+     * @param column Name of the discriminator clumn
+     */
+    DiscriminatorMetadata setColumn(String column);
+
+    /**
+     * Accessor for the discriminator column name
+     * 
+     * @return The column name
+     */
+    String getColumn();
+
+    /**
+     * Method to set the discriminator value (when using "value-map" strategy).
+     * 
+     * @param val Value for the discriminator for this class
+     */
+    DiscriminatorMetadata setValue(String val);
+
+    /**
+     * Accessor for the discriminator value (when using "value-map" strategy).
+     * 
+     * @return The value
+     */
+    String getValue();
+
+    /**
+     * Method to set the discriminator strategy.
+     * 
+     * @param strategy The strategy
+     */
+    DiscriminatorMetadata setStrategy(DiscriminatorStrategy strategy);
+
+    /**
+     * Accessor for the discriminator strategy.
+     * 
+     * @return The strategy
+     */
+    DiscriminatorStrategy getStrategy();
+
+    /**
+     * Method to set whether indexed.
+     * 
+     * @param indexed Whether indexed (true | false | unique)
+     */
+    DiscriminatorMetadata setIndexed(Indexed indexed);
+
+    /**
+     * Accessor for whether indexed (true|false|unique)
+     * 
+     * @return Indexed?
+     */
+    Indexed getIndexed();
+
+    /**
+     * Accessor for all column(s) defined on the discriminator.
+     * 
+     * @return The column(s)
+     */
+    ColumnMetadata[] getColumns();
+
+    /**
+     * Add a new column for this discriminator.
+     * 
+     * @return The ColumnMetadata
+     */
+    ColumnMetadata newColumnMetadata();
+
+    /**
+     * Accessor for the number of columns defined for this discriminator.
+     * 
+     * @return The number of columns
+     */
+    int getNumberOfColumns();
+
+    /**
+     * Method to set the index metadata for the discriminator
+     * 
+     * @return The IndexMetadata
+     */
+    IndexMetadata newIndexMetadata();
+
+    /**
+     * Accessor for any index metadata for the discriminator
+     * 
+     * @return Index metadata
+     */
+    IndexMetadata getIndexMetadata();
+}
\ No newline at end of file

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

Added: db/jdo/trunk/specification/imports/DiscriminatorMetadata.txt
URL: http://svn.apache.org/viewvc/db/jdo/trunk/specification/imports/DiscriminatorMetadata.txt?rev=1293075&view=auto
==============================================================================
--- db/jdo/trunk/specification/imports/DiscriminatorMetadata.txt (added)
+++ db/jdo/trunk/specification/imports/DiscriminatorMetadata.txt Fri Feb 24 04:25:57 2012
@@ -0,0 +1,96 @@
+/**
+ * Represents the discriminator for inheritance purposes for this class.
+ * @since 2.3
+ */
+public interface DiscriminatorMetadata extends Metadata {
+    /**
+     * Method to set the discriminator column.
+     * 
+     * @param column Name of the discriminator clumn
+     */
+    DiscriminatorMetadata setColumn(String column);
+
+    /**
+     * Accessor for the discriminator column name
+     * 
+     * @return The column name
+     */
+    String getColumn();
+
+    /**
+     * Method to set the discriminator value (when using "value-map" strategy).
+     * 
+     * @param val Value for the discriminator for this class
+     */
+    DiscriminatorMetadata setValue(String val);
+
+    /**
+     * Accessor for the discriminator value (when using "value-map" strategy).
+     * 
+     * @return The value
+     */
+    String getValue();
+
+    /**
+     * Method to set the discriminator strategy.
+     * 
+     * @param strategy The strategy
+     */
+    DiscriminatorMetadata setStrategy(DiscriminatorStrategy strategy);
+
+    /**
+     * Accessor for the discriminator strategy.
+     * 
+     * @return The strategy
+     */
+    DiscriminatorStrategy getStrategy();
+
+    /**
+     * Method to set whether indexed.
+     * 
+     * @param indexed Whether indexed (true | false | unique)
+     */
+    DiscriminatorMetadata setIndexed(Indexed indexed);
+
+    /**
+     * Accessor for whether indexed (true|false|unique)
+     * 
+     * @return Indexed?
+     */
+    Indexed getIndexed();
+
+    /**
+     * Accessor for all column(s) defined on the discriminator.
+     * 
+     * @return The column(s)
+     */
+    ColumnMetadata[] getColumns();
+
+    /**
+     * Add a new column for this discriminator.
+     * 
+     * @return The ColumnMetadata
+     */
+    ColumnMetadata newColumnMetadata();
+
+    /**
+     * Accessor for the number of columns defined for this discriminator.
+     * 
+     * @return The number of columns
+     */
+    int getNumberOfColumns();
+
+    /**
+     * Method to set the index metadata for the discriminator
+     * 
+     * @return The IndexMetadata
+     */
+    IndexMetadata newIndexMetadata();
+
+    /**
+     * Accessor for any index metadata for the discriminator
+     * 
+     * @return Index metadata
+     */
+    IndexMetadata getIndexMetadata();
+}

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

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

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

Added: db/jdo/trunk/specification/imports/Element.txt
URL: http://svn.apache.org/viewvc/db/jdo/trunk/specification/imports/Element.txt?rev=1293075&view=auto
==============================================================================
--- db/jdo/trunk/specification/imports/Element.txt (added)
+++ db/jdo/trunk/specification/imports/Element.txt Fri Feb 24 04:25:57 2012
@@ -0,0 +1,115 @@
+@Target({ElementType.FIELD, ElementType.METHOD}) 
+@Retention(RetentionPolicy.RUNTIME)
+public @interface Element
+{
+    /**
+     * Types of the elements. 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 elements
+     */
+    Class[] types() default {};
+
+    /**
+     * Whether the element is to be stored serialized (into a join table)
+     * @return whether the element is to be stored serialized 
+     * (into a join table)
+     */
+    String serialized() default "";
+
+    /** Whether this element is embedded. 
+     * @return whether this element is embedded
+     */
+    String embedded() default "";
+
+    /**
+     * The embedded mapping for the element.
+     * @return the embedded mapping for the element
+     */
+    Embedded[] embeddedMapping() default {};
+
+    /**
+     * Whether the element is dependent on the owner, and will be deleted 
+     * when the owner is deleted.
+     * @return whether the element is dependent on the owner, and will be 
+     * deleted when the owner is deleted
+     */
+    String dependent() default "";
+
+    /**
+     * Name of the table for the element.
+     * @return name of the table for the element
+     */
+    String table() default "";
+
+    /**
+     * Name of the column to store the element in.
+     * @return name of the column to store the element in
+     */
+    String column() default "";
+
+    /**
+     * Delete action to apply to any foreign key for the element.
+     * @return delete action to apply to any foreign key for the element
+     */
+    ForeignKeyAction deleteAction() default ForeignKeyAction.UNSPECIFIED;
+
+    /**
+     * Update action to apply to any foreign key for the element
+     * @return update action to apply to any foreign key for the element
+     */
+    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 a unique constraint should be generated or assumed.
+     * @return whether a unique constraint should be generated or assumed
+     */
+    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 the member in the target class that forms a bidirectional 
+     * relationship with this member. 
+     * @return name of the member in the target class that forms a bidirectional 
+     * relationship with this member
+     */
+    String mappedBy() default "";
+
+    /**
+     * The column(s) for the element.
+     * @return the column(s) for the element
+     */
+    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 primary 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/Element.txt
------------------------------------------------------------------------------
    svn:eol-style = LF

Added: db/jdo/trunk/specification/imports/ElementMetadata.java
URL: http://svn.apache.org/viewvc/db/jdo/trunk/specification/imports/ElementMetadata.java?rev=1293075&view=auto
==============================================================================
--- db/jdo/trunk/specification/imports/ElementMetadata.java (added)
+++ db/jdo/trunk/specification/imports/ElementMetadata.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 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();
+}
\ No newline at end of file

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



Mime
View raw message