You are viewing a plain text version of this content. The canonical link for it is here.
Posted to jdo-commits@db.apache.org by cl...@apache.org on 2021/05/07 23:12:07 UTC
[db-jdo] 25/43: Updated initial 2.0.1 branch: - Removed api20
directory. - Updated currentVersion entry to 2.0.1 in core20, enhancer20,
and tck20. - Updated the JPOX dependency to 1.1.1. - Updated the Derby
dependency to 10.1.3.1.
This is an automated email from the ASF dual-hosted git repository.
clr pushed a commit to branch origin/2.0.1
in repository https://gitbox.apache.org/repos/asf/db-jdo.git
commit 01439560a4d8218e913675000123dbec4ad43060
Author: Michael Bouschen <mb...@apache.org>
AuthorDate: Tue Oct 3 19:17:10 2006 +0000
Updated initial 2.0.1 branch:
- Removed api20 directory.
- Updated currentVersion entry to 2.0.1 in core20, enhancer20, and tck20.
- Updated the JPOX dependency to 1.1.1.
- Updated the Derby dependency to 10.1.3.1.
---
api20/LICENSE.txt | 202 ----
api20/maven.xml | 71 --
api20/project.properties | 24 -
api20/project.xml | 104 --
api20/src/java/javax/jdo/Bundle.properties | 78 --
api20/src/java/javax/jdo/Extent.java | 89 --
api20/src/java/javax/jdo/FetchPlan.java | 219 ----
api20/src/java/javax/jdo/InstanceCallbacks.java | 70 --
api20/src/java/javax/jdo/JDOCanRetryException.java | 94 --
.../src/java/javax/jdo/JDODataStoreException.java | 95 --
.../javax/jdo/JDODetachedFieldAccessException.java | 73 --
api20/src/java/javax/jdo/JDOException.java | 295 -----
.../java/javax/jdo/JDOFatalDataStoreException.java | 74 --
api20/src/java/javax/jdo/JDOFatalException.java | 95 --
.../java/javax/jdo/JDOFatalInternalException.java | 67 --
.../src/java/javax/jdo/JDOFatalUserException.java | 94 --
api20/src/java/javax/jdo/JDOHelper.java | 835 --------------
.../java/javax/jdo/JDONullIdentityException.java | 77 --
.../java/javax/jdo/JDOObjectNotFoundException.java | 69 --
.../jdo/JDOOptimisticVerificationException.java | 70 --
.../javax/jdo/JDOUnsupportedOptionException.java | 66 --
.../java/javax/jdo/JDOUserCallbackException.java | 67 --
api20/src/java/javax/jdo/JDOUserException.java | 94 --
api20/src/java/javax/jdo/PersistenceManager.java | 1086 -------------------
.../java/javax/jdo/PersistenceManagerFactory.java | 432 --------
api20/src/java/javax/jdo/Query.java | 586 ----------
api20/src/java/javax/jdo/Transaction.java | 198 ----
.../java/javax/jdo/datastore/DataStoreCache.java | 169 ---
.../java/javax/jdo/datastore/JDOConnection.java | 55 -
api20/src/java/javax/jdo/datastore/Sequence.java | 82 --
api20/src/java/javax/jdo/datastore/package.html | 26 -
.../src/java/javax/jdo/identity/ByteIdentity.java | 131 ---
.../src/java/javax/jdo/identity/CharIdentity.java | 143 ---
api20/src/java/javax/jdo/identity/IntIdentity.java | 128 ---
.../src/java/javax/jdo/identity/LongIdentity.java | 130 ---
.../java/javax/jdo/identity/ObjectIdentity.java | 152 ---
.../src/java/javax/jdo/identity/ShortIdentity.java | 128 ---
.../javax/jdo/identity/SingleFieldIdentity.java | 188 ----
.../java/javax/jdo/identity/StringIdentity.java | 96 --
api20/src/java/javax/jdo/identity/package.html | 26 -
.../java/javax/jdo/listener/AttachCallback.java | 49 -
.../jdo/listener/AttachLifecycleListener.java | 55 -
.../src/java/javax/jdo/listener/ClearCallback.java | 42 -
.../javax/jdo/listener/ClearLifecycleListener.java | 58 -
.../jdo/listener/CreateLifecycleListener.java | 41 -
.../java/javax/jdo/listener/DeleteCallback.java | 41 -
.../jdo/listener/DeleteLifecycleListener.java | 53 -
.../java/javax/jdo/listener/DetachCallback.java | 47 -
.../jdo/listener/DetachLifecycleListener.java | 54 -
.../javax/jdo/listener/DirtyLifecycleListener.java | 48 -
.../javax/jdo/listener/InstanceLifecycleEvent.java | 190 ----
.../jdo/listener/InstanceLifecycleListener.java | 34 -
.../src/java/javax/jdo/listener/LoadCallback.java | 41 -
.../javax/jdo/listener/LoadLifecycleListener.java | 41 -
.../src/java/javax/jdo/listener/StoreCallback.java | 44 -
.../javax/jdo/listener/StoreLifecycleListener.java | 52 -
api20/src/java/javax/jdo/listener/package.html | 54 -
api20/src/java/javax/jdo/package.html | 90 --
api20/src/java/javax/jdo/spi/Detachable.java | 46 -
api20/src/java/javax/jdo/spi/I18NHelper.java | 403 -------
api20/src/java/javax/jdo/spi/JDOImplHelper.java | 935 ----------------
api20/src/java/javax/jdo/spi/JDOPermission.java | 134 ---
.../src/java/javax/jdo/spi/PersistenceCapable.java | 593 ----------
.../src/java/javax/jdo/spi/RegisterClassEvent.java | 122 ---
.../java/javax/jdo/spi/RegisterClassListener.java | 43 -
.../src/java/javax/jdo/spi/StateInterrogation.java | 250 -----
api20/src/java/javax/jdo/spi/StateManager.java | 515 ---------
api20/src/java/javax/jdo/spi/package.html | 47 -
api20/src/schema/javax/jdo/jdo.dtd | 226 ----
api20/src/schema/javax/jdo/jdo.xsd | 1144 --------------------
api20/src/schema/javax/jdo/jdoquery.dtd | 28 -
api20/src/schema/javax/jdo/jdoquery.xsd | 108 --
api20/src/schema/javax/jdo/orm.dtd | 167 ---
api20/src/schema/javax/jdo/orm.xsd | 775 -------------
api20/test/java/javax/jdo/JDOHelperTest.java | 525 ---------
.../java/javax/jdo/identity/ByteIdentityTest.java | 129 ---
.../java/javax/jdo/identity/CharIdentityTest.java | 138 ---
.../javax/jdo/identity/ConcreteTestIdentity.java | 53 -
.../java/javax/jdo/identity/IntIdentityTest.java | 128 ---
.../java/javax/jdo/identity/LongIdentityTest.java | 129 ---
.../javax/jdo/identity/ObjectIdentityTest.java | 425 --------
.../java/javax/jdo/identity/ShortIdentityTest.java | 128 ---
.../jdo/identity/SingleFieldIdentityTest.java | 109 --
.../javax/jdo/identity/StringIdentityTest.java | 91 --
.../jdo/listener/InstanceLifecycleEventTest.java | 130 ---
api20/test/java/javax/jdo/pc/PCPoint.java | 460 --------
api20/test/java/javax/jdo/schema/XMLTest.java | 128 ---
.../test/java/javax/jdo/spi/JDOImplHelperTest.java | 202 ----
.../java/javax/jdo/spi/StateInterrogationTest.java | 540 ---------
api20/test/java/javax/jdo/util/AbstractTest.java | 102 --
.../java/javax/jdo/util/BatchResultPrinter.java | 103 --
.../test/java/javax/jdo/util/BatchTestRunner.java | 163 ---
api20/test/java/javax/jdo/util/XMLTestUtil.java | 561 ----------
api20/test/schema/Negative0-dtd.jdo | 7 -
api20/test/schema/Negative0-dtd.jdoquery | 7 -
api20/test/schema/Negative0-dtd.orm | 7 -
api20/test/schema/Negative0-xsd.jdo | 7 -
api20/test/schema/Negative0-xsd.jdoquery | 8 -
api20/test/schema/Negative0-xsd.orm | 7 -
api20/test/schema/Positive0-dtd.jdo | 9 -
api20/test/schema/Positive0-dtd.jdoquery | 14 -
api20/test/schema/Positive0-dtd.orm | 9 -
api20/test/schema/Positive0-xsd.jdo | 9 -
api20/test/schema/Positive0-xsd.jdoquery | 14 -
api20/test/schema/Positive0-xsd.orm | 9 -
api20/test/schema/Positive1-dtd.jdo | 130 ---
api20/test/schema/Positive1-dtd.orm | 97 --
api20/test/schema/Positive1-xsd.jdo | 131 ---
api20/test/schema/Positive1-xsd.orm | 99 --
api20/test/schema/Positive15.1-dtd.orm | 17 -
api20/test/schema/Positive15.1-xsd.orm | 17 -
api20/test/schema/Positive15.2.1-dtd.orm | 26 -
api20/test/schema/Positive15.2.1-xsd.orm | 26 -
api20/test/schema/Positive15.2.2-dtd.orm | 23 -
api20/test/schema/Positive15.2.2-xsd.orm | 23 -
api20/test/schema/Positive15.3.1-dtd.orm | 16 -
api20/test/schema/Positive15.3.1-xsd.orm | 16 -
api20/test/schema/Positive15.3.2-dtd.orm | 18 -
api20/test/schema/Positive15.3.2-xsd.orm | 18 -
api20/test/schema/Positive15.3.3-dtd.orm | 16 -
api20/test/schema/Positive15.3.3-xsd.orm | 16 -
api20/test/schema/Positive15.3.4-dtd.orm | 20 -
api20/test/schema/Positive15.3.4-xsd.orm | 20 -
api20/test/schema/Positive15.3.5-dtd.orm | 24 -
api20/test/schema/Positive15.3.5-xsd.orm | 24 -
api20/test/schema/Positive15.3.6-dtd.orm | 21 -
api20/test/schema/Positive15.3.6-xsd.orm | 21 -
api20/test/schema/Positive15.4-dtd.orm | 35 -
api20/test/schema/Positive15.4-xsd.orm | 35 -
api20/test/schema/Positive15.5-dtd.orm | 20 -
api20/test/schema/Positive15.5-xsd.orm | 20 -
api20/test/schema/Positive15.6-dtd.orm | 20 -
api20/test/schema/Positive15.6-xsd.orm | 20 -
api20/test/schema/Positive15.8.1-dtd.orm | 27 -
api20/test/schema/Positive15.8.1-xsd.orm | 27 -
api20/test/schema/Positive15.8.2-dtd.orm | 27 -
api20/test/schema/Positive15.8.2-xsd.orm | 27 -
api20/test/schema/Positive15.8.3-dtd.orm | 21 -
api20/test/schema/Positive15.8.3-xsd.orm | 21 -
api20/test/schema/Positive99-dtd.jdo | 430 --------
api20/test/schema/Positive99-dtd.jdoquery | 45 -
api20/test/schema/Positive99-dtd.orm | 337 ------
api20/test/schema/Positive99-xsd.jdo | 432 --------
api20/test/schema/Positive99-xsd.jdoquery | 47 -
api20/test/schema/Positive99-xsd.orm | 339 ------
api20/xdocs/index.xml | 37 -
api20/xdocs/navigation.xml | 37 -
core20/project.xml | 2 +-
enhancer20/project.xml | 4 +-
project.xml | 2 +-
tck20/project.xml | 18 +-
151 files changed, 13 insertions(+), 20535 deletions(-)
diff --git a/api20/LICENSE.txt b/api20/LICENSE.txt
deleted file mode 100644
index d645695..0000000
--- a/api20/LICENSE.txt
+++ /dev/null
@@ -1,202 +0,0 @@
-
- Apache License
- Version 2.0, January 2004
- http://www.apache.org/licenses/
-
- TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
-
- 1. Definitions.
-
- "License" shall mean the terms and conditions for use, reproduction,
- and distribution as defined by Sections 1 through 9 of this document.
-
- "Licensor" shall mean the copyright owner or entity authorized by
- the copyright owner that is granting the License.
-
- "Legal Entity" shall mean the union of the acting entity and all
- other entities that control, are controlled by, or are under common
- control with that entity. For the purposes of this definition,
- "control" means (i) the power, direct or indirect, to cause the
- direction or management of such entity, whether by contract or
- otherwise, or (ii) ownership of fifty percent (50%) or more of the
- outstanding shares, or (iii) beneficial ownership of such entity.
-
- "You" (or "Your") shall mean an individual or Legal Entity
- exercising permissions granted by this License.
-
- "Source" form shall mean the preferred form for making modifications,
- including but not limited to software source code, documentation
- source, and configuration files.
-
- "Object" form shall mean any form resulting from mechanical
- transformation or translation of a Source form, including but
- not limited to compiled object code, generated documentation,
- and conversions to other media types.
-
- "Work" shall mean the work of authorship, whether in Source or
- Object form, made available under the License, as indicated by a
- copyright notice that is included in or attached to the work
- (an example is provided in the Appendix below).
-
- "Derivative Works" shall mean any work, whether in Source or Object
- form, that is based on (or derived from) the Work and for which the
- editorial revisions, annotations, elaborations, or other modifications
- represent, as a whole, an original work of authorship. For the purposes
- of this License, Derivative Works shall not include works that remain
- separable from, or merely link (or bind by name) to the interfaces of,
- the Work and Derivative Works thereof.
-
- "Contribution" shall mean any work of authorship, including
- the original version of the Work and any modifications or additions
- to that Work or Derivative Works thereof, that is intentionally
- submitted to Licensor for inclusion in the Work by the copyright owner
- or by an individual or Legal Entity authorized to submit on behalf of
- the copyright owner. For the purposes of this definition, "submitted"
- means any form of electronic, verbal, or written communication sent
- to the Licensor or its representatives, including but not limited to
- communication on electronic mailing lists, source code control systems,
- and issue tracking systems that are managed by, or on behalf of, the
- Licensor for the purpose of discussing and improving the Work, but
- excluding communication that is conspicuously marked or otherwise
- designated in writing by the copyright owner as "Not a Contribution."
-
- "Contributor" shall mean Licensor and any individual or Legal Entity
- on behalf of whom a Contribution has been received by Licensor and
- subsequently incorporated within the Work.
-
- 2. Grant of Copyright License. Subject to the terms and conditions of
- this License, each Contributor hereby grants to You a perpetual,
- worldwide, non-exclusive, no-charge, royalty-free, irrevocable
- copyright license to reproduce, prepare Derivative Works of,
- publicly display, publicly perform, sublicense, and distribute the
- Work and such Derivative Works in Source or Object form.
-
- 3. Grant of Patent License. Subject to the terms and conditions of
- this License, each Contributor hereby grants to You a perpetual,
- worldwide, non-exclusive, no-charge, royalty-free, irrevocable
- (except as stated in this section) patent license to make, have made,
- use, offer to sell, sell, import, and otherwise transfer the Work,
- where such license applies only to those patent claims licensable
- by such Contributor that are necessarily infringed by their
- Contribution(s) alone or by combination of their Contribution(s)
- with the Work to which such Contribution(s) was submitted. If You
- institute patent litigation against any entity (including a
- cross-claim or counterclaim in a lawsuit) alleging that the Work
- or a Contribution incorporated within the Work constitutes direct
- or contributory patent infringement, then any patent licenses
- granted to You under this License for that Work shall terminate
- as of the date such litigation is filed.
-
- 4. Redistribution. You may reproduce and distribute copies of the
- Work or Derivative Works thereof in any medium, with or without
- modifications, and in Source or Object form, provided that You
- meet the following conditions:
-
- (a) You must give any other recipients of the Work or
- Derivative Works a copy of this License; and
-
- (b) You must cause any modified files to carry prominent notices
- stating that You changed the files; and
-
- (c) You must retain, in the Source form of any Derivative Works
- that You distribute, all copyright, patent, trademark, and
- attribution notices from the Source form of the Work,
- excluding those notices that do not pertain to any part of
- the Derivative Works; and
-
- (d) If the Work includes a "NOTICE" text file as part of its
- distribution, then any Derivative Works that You distribute must
- include a readable copy of the attribution notices contained
- within such NOTICE file, excluding those notices that do not
- pertain to any part of the Derivative Works, in at least one
- of the following places: within a NOTICE text file distributed
- as part of the Derivative Works; within the Source form or
- documentation, if provided along with the Derivative Works; or,
- within a display generated by the Derivative Works, if and
- wherever such third-party notices normally appear. The contents
- of the NOTICE file are for informational purposes only and
- do not modify the License. You may add Your own attribution
- notices within Derivative Works that You distribute, alongside
- or as an addendum to the NOTICE text from the Work, provided
- that such additional attribution notices cannot be construed
- as modifying the License.
-
- You may add Your own copyright statement to Your modifications and
- may provide additional or different license terms and conditions
- for use, reproduction, or distribution of Your modifications, or
- for any such Derivative Works as a whole, provided Your use,
- reproduction, and distribution of the Work otherwise complies with
- the conditions stated in this License.
-
- 5. Submission of Contributions. Unless You explicitly state otherwise,
- any Contribution intentionally submitted for inclusion in the Work
- by You to the Licensor shall be under the terms and conditions of
- this License, without any additional terms or conditions.
- Notwithstanding the above, nothing herein shall supersede or modify
- the terms of any separate license agreement you may have executed
- with Licensor regarding such Contributions.
-
- 6. Trademarks. This License does not grant permission to use the trade
- names, trademarks, service marks, or product names of the Licensor,
- except as required for reasonable and customary use in describing the
- origin of the Work and reproducing the content of the NOTICE file.
-
- 7. Disclaimer of Warranty. Unless required by applicable law or
- agreed to in writing, Licensor provides the Work (and each
- Contributor provides its Contributions) on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
- implied, including, without limitation, any warranties or conditions
- of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
- PARTICULAR PURPOSE. You are solely responsible for determining the
- appropriateness of using or redistributing the Work and assume any
- risks associated with Your exercise of permissions under this License.
-
- 8. Limitation of Liability. In no event and under no legal theory,
- whether in tort (including negligence), contract, or otherwise,
- unless required by applicable law (such as deliberate and grossly
- negligent acts) or agreed to in writing, shall any Contributor be
- liable to You for damages, including any direct, indirect, special,
- incidental, or consequential damages of any character arising as a
- result of this License or out of the use or inability to use the
- Work (including but not limited to damages for loss of goodwill,
- work stoppage, computer failure or malfunction, or any and all
- other commercial damages or losses), even if such Contributor
- has been advised of the possibility of such damages.
-
- 9. Accepting Warranty or Additional Liability. While redistributing
- the Work or Derivative Works thereof, You may choose to offer,
- and charge a fee for, acceptance of support, warranty, indemnity,
- or other liability obligations and/or rights consistent with this
- License. However, in accepting such obligations, You may act only
- on Your own behalf and on Your sole responsibility, not on behalf
- of any other Contributor, and only if You agree to indemnify,
- defend, and hold each Contributor harmless for any liability
- incurred by, or claims asserted against, such Contributor by reason
- of your accepting any such warranty or additional liability.
-
- END OF TERMS AND CONDITIONS
-
- APPENDIX: How to apply the Apache License to your work.
-
- To apply the Apache License to your work, attach the following
- boilerplate notice, with the fields enclosed by brackets "[]"
- replaced with your own identifying information. (Don't include
- the brackets!) The text should be enclosed in the appropriate
- comment syntax for the file format. We also recommend that a
- file or class name and description of purpose be included on the
- same "printed page" as the copyright notice for easier
- identification within third-party archives.
-
- Copyright [yyyy] [name of copyright owner]
-
- Licensed 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.
diff --git a/api20/maven.xml b/api20/maven.xml
deleted file mode 100644
index 78b9b48..0000000
--- a/api20/maven.xml
+++ /dev/null
@@ -1,71 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
- Copyright 2005 The Apache Software Foundation
-
- Licensed 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.
--->
-
-<project default="default"
- xmlns:j="jelly:core"
- xmlns:ant="jelly:ant"
- >
-
- <!-- ==================== -->
- <!-- Default Global Goals -->
- <!-- ==================== -->
-
- <goal name="default">
- <attainGoal name="jar:install"/>
- </goal>
-
- <goal name="build">
- <attainGoal name="javadoc"/>
- <attainGoal name="default"/>
- </goal>
-
- <goal name="rebuild">
- <attainGoal name="clean"/>
- <attainGoal name="build"/>
- </goal>
-
- <goal name="clobber">
- <attainGoal name="clean"/>
- <delete>
- <fileset dir="." defaultexcludes="no" includes="**/*~"/>
- </delete>
- </goal>
-
- <!-- ======== -->
- <!-- XML test -->
- <!-- ======== -->
-
- <!-- Run XML parser on JDO metadata files (suffix .jdo, .orm or .jdoquery). -->
- <!-- The tool uses the following system properties: -->
- <!-- javax.jdo.metadata: a comma separated list of JDO metadata files or directories. -->
- <!-- javax.jdo.recursive: recursively serach directories. -->
- <goal name="xmltest" prereqs="test:compile">
- <java classname="javax.jdo.util.XMLTestUtil" fork="true">
- <classpath>
- <pathelement location="${xmlapis.jarfile}"/>
- <pathelement location="${xerces.jarfile}"/>
- <pathelement location="${maven.build.dir}/classes"/>
- <pathelement location="${maven.build.dir}/test-classes"/>
- </classpath>
- <sysproperty key="javax.jdo.metadata" value="${javax.jdo.metadata}"/>
- <sysproperty key="javax.jdo.recursive" value="${javax.jdo.recursive}"/>
- <sysproperty key="javax.xml.parsers.DocumentBuilderFactory"
- value="${javax.xml.parsers.DocumentBuilderFactory}"/>
- </java>
- </goal>
-
-</project>
diff --git a/api20/project.properties b/api20/project.properties
deleted file mode 100644
index e02241a..0000000
--- a/api20/project.properties
+++ /dev/null
@@ -1,24 +0,0 @@
-#
-# Copyright 2006 The Apache Software Foundation.
-#
-# Licensed 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.
-
-maven.junit.sysproperties = javax.xml.parsers.DocumentBuilderFactory basedir
-javax.xml.parsers.DocumentBuilderFactory=org.apache.xerces.jaxp.DocumentBuilderFactoryImpl
-
-xmlapis.jarfile = ${pom.getDependencyPath('xml-apis:xml-apis')}
-xerces.jarfile = ${pom.getDependencyPath('xerces:xerces')}
-junit.jarfile = ${pom.getDependencyPath('junit:junit')}
-
-# Manifest seed file
-maven.jar.manifest = ${basedir}/../JDO20.MF
diff --git a/api20/project.xml b/api20/project.xml
deleted file mode 100644
index 43d53ce..0000000
--- a/api20/project.xml
+++ /dev/null
@@ -1,104 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
- Copyright 2006 The Apache Software Foundation
-
- Licensed 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.
--->
-
-<project>
- <pomVersion>3</pomVersion>
- <extend>../project.xml</extend>
- <!-- ============== -->
- <!-- Identification -->
- <!-- ============== -->
- <name>JDO2 API</name>
- <groupId>javax.jdo</groupId>
- <artifactId>jdo2-api</artifactId>
- <currentVersion>2.0</currentVersion>
- <package>javax.jdo</package>
- <shortDescription>Java Data Objects 2.0 (JDO) API</shortDescription>
- <description>The Java Data Objects 2.0 (JDO) API is a standard interface-based
-Java model abstraction of persistence, developed as Java Specification
-Request 243 under the auspices of the Java Community Process.</description>
- <repository />
- <!-- ============ -->
- <!-- Dependencies -->
- <!-- ============ -->
- <dependencies>
- <dependency>
- <groupId>geronimo-spec</groupId>
- <artifactId>geronimo-spec-jta</artifactId>
- <version>1.0.1B-rc2</version>
- </dependency>
- <dependency>
- <groupId>xerces</groupId>
- <artifactId>xerces</artifactId>
- <version>2.4.0</version>
- </dependency>
- <dependency>
- <groupId>xml-apis</groupId>
- <artifactId>xml-apis</artifactId>
- <version>1.0.b2</version>
- </dependency>
- <dependency>
- <groupId>junit</groupId>
- <artifactId>junit</artifactId>
- <version>3.8.1</version>
- </dependency>
- </dependencies>
- <!-- =================== -->
- <!-- Build Specification -->
- <!-- =================== -->
- <build>
- <sourceDirectory>src/java</sourceDirectory>
- <unitTestSourceDirectory>test/java</unitTestSourceDirectory>
- <!-- Unit test cases -->
- <unitTest>
- <includes>
- <include>**/*Test.java</include>
- </includes>
- <excludes>
- <exclude>javax/jdo/util/AbstractTest.java</exclude>
- <exclude>javax/jdo/pc/*.java</exclude>
- </excludes>
- <resources>
- <resource>
- <directory>${basedir}/test/schema</directory>
- <includes>
- <include>**/*.jdo</include>
- <include>**/*.jdoquery</include>
- <include>**/*.orm</include>
- </includes>
- </resource>
- </resources>
- </unitTest>
- <!-- J A R R E S O U R C E S -->
- <!-- Resources that are packaged up inside the JAR file -->
- <resources>
- <resource>
- <directory>${basedir}/src/java</directory>
- <includes>
- <include>javax/jdo/*.properties</include>
- </includes>
- </resource>
- <resource>
- <directory>${basedir}/src/schema</directory>
- <includes>
- <include>javax/jdo/*.dtd</include>
- <include>javax/jdo/*.xsd</include>
- </includes>
- </resource>
- </resources>
- </build>
-</project>
-
diff --git a/api20/src/java/javax/jdo/Bundle.properties b/api20/src/java/javax/jdo/Bundle.properties
deleted file mode 100644
index 3aa8d5f..0000000
--- a/api20/src/java/javax/jdo/Bundle.properties
+++ /dev/null
@@ -1,78 +0,0 @@
-#
-# Copyright 2005 The Apache Software Foundation.
-#
-# Licensed 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.
-
-# ResourceBundle properties file for JDO
-ERR_AbstractClassNoIdentity=Abstract class {0} does not implement key field helper methods
-ERR_CannotInitCause=The initCause method cannot be used. To set the cause of this exception, \
-use a constructor with a Throwable[] argument.
-ERR_StateManagerClassCast=An element of the parameter collection is of class {0}. \
-The parameter collection must contain only elements that are instances of java.lang.Class.
-ERR_NoMetadata=No metadata has been registered for class {0}.
-EXC_GetPMFNoSuchMethod=Method getPersistenceManagerFactory(Properties) does not exist or is not public.
-EXC_GetPMFUnexpectedException=Unexpected exception caught.
-EXC_GetPMFClassNotFound=Class {0} was not found.
-EXC_GetPMFIllegalAccess=Illegal Access for class {0}.
-EXC_GetPMFNoClassNameProperty=A property named javax.jdo.PersistenceManagerFactoryClass must be specified.
-MSG_FailedObject=FailedObject:
-MSG_NestedThrowables=NestedThrowables:
-MSG_NestedThrowablesStackTrace=NestedThrowablesStackTrace:
-MSG_ExceptionGettingFailedToString=Exception getting failed.toString(): ''{0}''.
-MSG_ExceptionGettingFailedToStringObjectId=Exception getting failed.toString(): ''{0}''. ObjectId of failed instance: ''{1}''.
-ERR_NullClass=JDO implementation error: the parameter class object must not be null.
-EXC_GetPMFNullResource: The resource name argument to this method cannot be null.
-EXC_GetPMFNullLoader: The class loader argument to this method cannot be null.
-EXC_GetPMFNullPropsLoader: The class loader argument to this method cannot be null.
-EXC_GetPMFNullPMFLoader: The class loader argument to this method cannot be null.
-EXC_GetPMFNullStream: The stream argument to this method cannot be null.
-EXC_GetPMFNoResource: The resource named "{0}" could not be found in the class loader "{1}".
-EXC_GetPMFIOExceptionRsrc: An IOException was thrown while loading the resource \
-named "{0}" into a java.util.Properties object.
-EXC_GetPMFIOExceptionStream: An IOException was thrown while loading the stream \
-into a java.util.Properties object.
-EXC_GetPMFNullFile: The file argument to this method cannot be null.
-EXC_GetPMFNoFile: The file named "{0}" could not be found.
-EXC_GetPMFIOExceptionFile: An IOException was thrown while loading the file \
-named "{0}" into a java.util.Properties object.
-EXC_GetPMFNullJndiLoc: The JNDI location argument to this method cannot be null.
-EXC_GetPMFNamingException: A NamingException was thrown while obtaining the \
-PersistenceManagerFactory at "{0}" from JNDI.
-EXC_GetPMFNullPointerException: The PersistenceManagerFactory class must define a static \
-method \nPersistenceManagerFactory getPersistenceManagerFactory(Map props). \nThe class "{0}"\n\
-defines a non-static getPersistenceManagerFactory(Map props) method.
-EXC_GetPMFClassCastException: The PersistenceManagerFactory class must define a static \
-method \nPersistenceManagerFactory getPersistenceManagerFactory(Map props). \nThe class "{0}"\n\
-has the wrong return type for the getPersistenceManagerFactory(Map props) method.
-EXC_StringWrongLength: There must be exactly one character in the id in the input String for CharIdentity.
-EXC_IllegalEventType:The event type is outside the range of valid event types.
-EXC_SingleFieldIdentityNullParameter: The identity must not be null.
-EXC_ObjectIdentityStringConstruction: The identity instance could not be constructed. \
-\nThe exception thrown was: "{0}". \
-\nParsed the class name as "{1}" and key as "{2}".
-EXC_ObjectIdentityStringConstructionNoDelimiter: Missing delimiter ":".
-EXC_ObjectIdentityStringConstructionTooShort: Parameter is too short.
-EXC_ObjectIdentityStringConstructionUsage: The instance could not be constructed \
-from the parameter String "{0}". \
-\nThe parameter String is of the form "<className>:<keyString>".
-EXC_CreateKeyAsObjectMustNotBeCalled: The method createKeyAsObject must not be called \
-because the keyAsObject field must never be null for this class.
-EXC_CurrencyStringConstructorIllegalArgument: The instance could not be constructed \
-with the argument "{0}". Try "USD".
-EXC_CurrencyStringConstructorException: An exception was thrown during construction \
-of the Currency instance.
-EXC_LocaleStringConstructorException: An exception was thrown during construction \
-of the Locale instance.
-EXC_DateStringConstructor: Error parsing Date string "{0}" at position {1} \
-using date format "{2}".
-MSG_unknown: unknown
diff --git a/api20/src/java/javax/jdo/Extent.java b/api20/src/java/javax/jdo/Extent.java
deleted file mode 100644
index 44811af..0000000
--- a/api20/src/java/javax/jdo/Extent.java
+++ /dev/null
@@ -1,89 +0,0 @@
-/*
- * Copyright 2005 The Apache Software Foundation.
- *
- * Licensed 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.
- */
-
-/*
- * Extent.java
- *
- */
-
-package javax.jdo;
-
-import java.util.Iterator;
-
-/** Instances of the <code>Extent</code> class represent the entire collection
- * of instances in the data store of the candidate class
- * possibly including its subclasses.
- * <P>The <code>Extent</code> instance has two possible uses:
- * <ol>
- * <li>to iterate all instances of a particular class
- * <li>to execute a <code>Query</code> in the data store over all instances
- * of a particular class
- * </ol>
- * @version 2.0
- */
-public interface Extent {
-
- /** Returns an iterator over all the instances in the <code>Extent</code>.
- * The behavior of the returned iterator might depend on the setting of the
- * <code>ignoreCache</code> flag in the owning <code>PersistenceManager</code>.
- * @return an iterator over all instances in the <code>Extent</code>
- */
- Iterator iterator();
-
- /** Returns whether this <code>Extent</code> was defined to contain subclasses.
- * @return true if this <code>Extent</code> was defined to contain instances
- * that are of a subclass type.
- */
- boolean hasSubclasses();
-
- /** An <code>Extent</code> contains all instances of a particular class in the data
- * store; this method returns the <code>Class</code> of the instances.
- * @return the <code>Class</code> of instances of this <code>Extent</code>.
- */
- Class getCandidateClass();
-
- /** An <code>Extent</code> is managed by a <code>PersistenceManager</code>;
- * this method gives access to the owning <code>PersistenceManager</code>.
- * @return the owning <code>PersistenceManager</code>
- */
- PersistenceManager getPersistenceManager();
-
- /** Close all <code>Iterator</code>s associated with this <code>Extent</code> instance.
- * <code>Iterator</code>s closed by this method will return <code>false</code>
- * to <code>hasNext()</code> and will throw
- * <code>NoSuchElementException</code> on <code>next()</code>.
- * The <code>Extent</code> instance can still be used
- * as a parameter of <code>Query.setExtent</code>, and to get an <code>Iterator</code>.
- */
- void closeAll ();
-
- /** Close an <code>Iterator</code> associated with this <code>Extent</code> instance.
- * <code>Iterator</code>s closed by this method will return <code>false</code>
- * to <code>hasNext()</code> and will throw <code>NoSuchElementException</code>
- * on <code>next()</code>. The <code>Extent</code> instance can still be used
- * as a parameter of <code>Query.setExtent</code>, and to get an <code>Iterator</code>.
- * @param it an <code>Iterator</code> obtained by the method
- * <code>iterator()</code> on this <code>Extent</code> instance.
- */
- void close (Iterator it);
-
- /** Get the fetch plan associated with this Extent.
- * @return the fetch plan
- * @since 2.0
- */
- FetchPlan getFetchPlan();
-}
-
diff --git a/api20/src/java/javax/jdo/FetchPlan.java b/api20/src/java/javax/jdo/FetchPlan.java
deleted file mode 100644
index 24c3ab2..0000000
--- a/api20/src/java/javax/jdo/FetchPlan.java
+++ /dev/null
@@ -1,219 +0,0 @@
-/*
- * Copyright 2005 The Apache Software Foundation.
- *
- * Licensed 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.
- */
-
-/*
- * FetchPlan.java
- *
- */
-
-package javax.jdo;
-
-import java.util.Collection;
-import java.util.Set;
-
-/**
- * Fetch groups are activated using methods on this interface. An
- * instance of this interface can be obtained from {@link
- * PersistenceManager#getFetchPlan}, {@link Extent#getFetchPlan}, and
- * {@link Query#getFetchPlan}. When a <code>Query</code> or
- * <code>Extent</code> is retrieved from a
- * <code>PersistenceManager</code>, its <code>FetchPlan</code> is
- * initialized to the same settings as that of the
- * <code>PersistenceManager</code>. Subsequent modifications of the
- * <code>Query</code> or <code>Extent</code>'s <code>FetchPlan</code>
- * are not reflected in the <code>FetchPlan</code> of the
- * <code>PersistenceManager</code>.
- * @version 2.0
- * @since 2.0
- */
-public interface FetchPlan {
-
- /**
- * For use with {@link #addGroup}, {@link #removeGroup}, and the
- * various {@link #setGroups} calls. Value: <code>default</code>.
- * @since 2.0
- */
- public static final String DEFAULT = "default";
-
- /**
- * For use with {@link #addGroup}, {@link #removeGroup}, and the
- * various {@link #setGroups} calls. Value: <code>all</code>.
- * @since 2.0
- */
- public static final String ALL = "all";
-
- /**
- * For use with {@link PersistenceManager#detachCopy} and
- * {@link #setDetachmentOptions}. Specifies that
- * fields that are loaded but not in the current fetch plan should
- * be unloaded prior to detachment.
- * @since 2.0
- */
- public static final int DETACH_UNLOAD_FIELDS = 2;
-
- /**
- * For use with {@link PersistenceManager#detachCopy} and
- * {@link #setDetachmentOptions}. Specifies that
- * fields that are not loaded but are in the current fetch plan should
- * be loaded prior to detachment.
- * @since 2.0
- */
- public static final int DETACH_LOAD_FIELDS = 1;
-
- /**
- * For use with {@link #setFetchSize}. Value: -1.
- * @since 2.0
- */
- public static final int FETCH_SIZE_GREEDY = -1;
-
- /**
- * For use with {@link #setFetchSize}. Value: 0.
- * @since 2.0
- */
- public static final int FETCH_SIZE_OPTIMAL = 0;
-
- /**
- * Add the fetch group to the set of active fetch groups.
- * @return the FetchPlan
- * @since 2.0
- */
- FetchPlan addGroup(String fetchGroupName);
-
- /**
- * Remove the fetch group from the set active fetch groups.
- * @return the FetchPlan
- * @since 2.0
- */
- FetchPlan removeGroup(String fetchGroupName);
-
- /**
- * Remove all active groups leaving no active fetch group.
- * @return the FetchPlan
- * @since 2.0
- */
- FetchPlan clearGroups();
-
- /**
- * Return an immutable collection containing the names
- * of all active fetch groups.
- * @return an immutable collection containing the names
- * of all active fetch groups
- * @since 2.0
- */
- Set getGroups();
-
- /**
- * Set a collection of groups.
- * @param fetchGroupNames a collection of names of fetch groups
- * @return the FetchPlan
- * @since 2.0
- */
- FetchPlan setGroups(Collection fetchGroupNames);
-
- /**
- * Set a collection of groups.
- * @param fetchGroupNames a String array of names of fetch groups
- * @return the FetchPlan
- * @since 2.0
- */
- FetchPlan setGroups(String[]fetchGroupNames);
-
- /**
- * Set the active fetch groups to the single named fetch group.
- * @param fetchGroupName the single fetch group
- * @return the FetchPlan
- * @since 2.0
- */
- FetchPlan setGroup(String fetchGroupName);
-
- /**
- * Set the maximum fetch depth when fetching.
- * A value of 0 has no meaning and will throw a JDOUserException.
- * A value of -1 means that no limit is placed on fetching.
- * A positive integer will result in that number of references from the
- * initial object to be fetched.
- * @param fetchDepth the depth
- * @return the FetchPlan
- * @since 2.0
- */
- FetchPlan setMaxFetchDepth(int fetchDepth);
-
- /**
- * Return the maximum fetch depth used when fetching instances.
- * @return the maximum fetch depth
- * @since 2.0
- */
- int getMaxFetchDepth();
-
- /**
- * Set the roots for DetachAllOnCommit.
- * @param roots Collection of the detachment roots.
- * @since 2.0
- */
- FetchPlan setDetachmentRoots(Collection roots);
-
- /**
- * Get the roots for DetachAllOnCommit.
- * @return Collection of detachment roots.
- * @since 2.0
- */
- Collection getDetachmentRoots();
-
- /**
- * Set the root classes for DetachAllOnCommit.
- * @param rootClasses The root classes.
- * @since 2.0
- */
- FetchPlan setDetachmentRootClasses(Class[] rootClasses);
-
- /**
- * Get the root classes for DetachAllOnCommit.
- * @return The detachment root classes
- * @since 2.0
- */
- Class[] getDetachmentRootClasses();
-
- /**
- * Set the fetch size for large result set support. Use
- * {@link #FETCH_SIZE_OPTIMAL} to unset, and {@link #FETCH_SIZE_GREEDY}
- * to force loading of everything.
- * @param fetchSize the fetch size
- * @return the FetchPlan
- * @since 2.0
- */
- FetchPlan setFetchSize(int fetchSize);
-
- /**
- * Return the fetch size, or {@link #FETCH_SIZE_OPTIMAL} if not set,
- * or {@link #FETCH_SIZE_GREEDY} to fetch all.
- * @return the fetch size
- * @since 2.0
- */
- int getFetchSize();
-
- /**
- * Set options to be used during detachment. Options are {@link
- * #DETACH_LOAD_FIELDS} and {@link #DETACH_UNLOAD_FIELDS}.
- */
- FetchPlan setDetachmentOptions(int options);
-
- /**
- * Get options used during detachment.
- */
- int getDetachmentOptions();
-
-}
-
diff --git a/api20/src/java/javax/jdo/InstanceCallbacks.java b/api20/src/java/javax/jdo/InstanceCallbacks.java
deleted file mode 100644
index 8d7b934..0000000
--- a/api20/src/java/javax/jdo/InstanceCallbacks.java
+++ /dev/null
@@ -1,70 +0,0 @@
-/*
- * Copyright 2005 The Apache Software Foundation.
- *
- * Licensed 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.
- */
-
-/*
- * InstanceCallbacks.java
- *
- */
-
-package javax.jdo;
-
-/** A <code>PersistenceCapable</code> class that provides callback methods for life
- * cycle events implements this interface.
- *
- * <P>For JDO 2.0, <code>InstanceCallbacks</code> has been refactored to extend
- * four other interfaces, without changing any of the methods or semantics.
- * This allows fine-grained control over callbacks, for
- * example to allow a class to implement the load callback without
- * implementing any of the other callbacks. For backward compatibility
- * with JDO 1.0, the <code>InstanceCallbacks</code> interface is preserved.
- *
- * <P>Classes which include non-persistent fields whose values depend
- * on the values of persistent fields require callbacks on specific
- * JDO instance life cycle events in order to correctly populate the
- * values in these fields.
- *
- * <P>The callbacks might also be used if the persistent instances
- * need to be put into the runtime infrastructure of the application.
- * For example, a persistent instance might notify other instances
- * on changes to state. The persistent instance might be in a list of
- * managed instances. When the persistent instance is made hollow,
- * it can no longer generate change events, and the persistent
- * instance should be removed from the list of managed instances.
- *
- * <P>To implement this, the application programmer would implement
- * <code>jdoPostLoad</code> to put itself into the list of managed
- * instances, and implement <code>jdoPreClear</code> to remove itself from
- * the list. With JDO 1.0, the domain class would be declared to implement
- * <code>InstanceCallbacks</code>. With JDO 2.0, the domain class
- * would be declared to implement
- * <code>javax.jdo.listener.LoadCallback</code> and
- * <code>javax.jdo.listener.ClearCallback</code>.
- *
- * <P>Note that JDO does not manage the state of non-persistent
- * fields, and when a JDO instance transitions to hollow, JDO clears
- * the persistent fields. It is the programmer's responsibility to
- * clear non-persistent fields so that garbage collection of
- * referred instances can occur.
- *
- * @since 1.0
- * @version 2.0
- */
-public interface InstanceCallbacks
- extends javax.jdo.listener.ClearCallback,
- javax.jdo.listener.DeleteCallback,
- javax.jdo.listener.LoadCallback,
- javax.jdo.listener.StoreCallback {
-}
diff --git a/api20/src/java/javax/jdo/JDOCanRetryException.java b/api20/src/java/javax/jdo/JDOCanRetryException.java
deleted file mode 100644
index cef0363..0000000
--- a/api20/src/java/javax/jdo/JDOCanRetryException.java
+++ /dev/null
@@ -1,94 +0,0 @@
-/*
- * Copyright 2005 The Apache Software Foundation.
- *
- * Licensed 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.
- */
-
-/*
- * JDOCanRetryException.java
- *
- */
-
-package javax.jdo;
-
-/** This is the base class for exceptions that can be retried.
- *
- * @version 1.0
- */
-public class JDOCanRetryException extends JDOException {
-
- /**
- * Constructs a new <code>JDOCanRetryException</code> without a detail message.
- */
- public JDOCanRetryException() {
- }
-
-
- /**
- * Constructs a new <code>JDOCanRetryException</code> with the specified detail message.
- * @param msg the detail message.
- */
- public JDOCanRetryException(String msg) {
- super(msg);
- }
-
- /**
- * Constructs a new <code>JDOCanRetryException</code> with the specified detail
- * message and nested <code>Throwable</code>s.
- * @param msg the detail message.
- * @param nested the nested <code>Throwable[]</code>.
- */
- public JDOCanRetryException(String msg, Throwable[] nested) {
- super(msg, nested);
- }
-
- /**
- * Constructs a new <code>JDOCanRetryException</code> with the specified detail
- * message and nested <code>Throwable<code>s.
- * @param msg the detail message.
- * @param nested the nested <code>Throwable</code>.
- */
- public JDOCanRetryException(String msg, Throwable nested) {
- super(msg, nested);
- }
-
- /** Constructs a new <code>JDOCanRetryException</code> with the specified detail message
- * and failed object.
- * @param msg the detail message.
- * @param failed the failed object.
- */
- public JDOCanRetryException(String msg, Object failed) {
- super(msg, failed);
- }
-
- /** Constructs a new <code>JDOCanRetryException</code> with the specified detail message,
- * nested <code>Throwable</code>s, and failed object.
- * @param msg the detail message.
- * @param nested the nested <code>Throwable[]</code>.
- * @param failed the failed object.
- */
- public JDOCanRetryException(String msg, Throwable[] nested, Object failed) {
- super(msg, nested, failed);
-
- }
- /** Constructs a new <code>JDOCanRetryException</code> with the specified detail message,
- * nested <code>Throwable</code>s, and failed object.
- * @param msg the detail message.
- * @param nested the nested <code>Throwable</code>.
- * @param failed the failed object.
- */
- public JDOCanRetryException(String msg, Throwable nested, Object failed) {
- super(msg, nested, failed);
- }
-}
-
diff --git a/api20/src/java/javax/jdo/JDODataStoreException.java b/api20/src/java/javax/jdo/JDODataStoreException.java
deleted file mode 100644
index 9736108..0000000
--- a/api20/src/java/javax/jdo/JDODataStoreException.java
+++ /dev/null
@@ -1,95 +0,0 @@
-/*
- * Copyright 2005 The Apache Software Foundation.
- *
- * Licensed 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.
- */
-
-/*
- * JDODataStoreException.java
- *
- */
-
-package javax.jdo;
-
-/** This class represents data store exceptions that can be retried.
- *
- * @version 1.0
- */
-public class JDODataStoreException extends JDOCanRetryException {
-
- /**
- * Constructs a new <code>JDODataStoreException</code> without a detail message.
- */
- public JDODataStoreException() {
- }
-
-
- /**
- * Constructs a new <code>JDODataStoreException</code> with the specified detail message.
- * @param msg the detail message.
- */
- public JDODataStoreException(String msg) {
- super(msg);
- }
-
- /**
- * Constructs a new <code>JDODataStoreException</code> with the specified
- * detail message and nested <code>Throwable</code>s.
- * @param msg the detail message.
- * @param nested the nested <code>Throwable[]</code>.
- */
- public JDODataStoreException(String msg, Throwable[] nested) {
- super(msg, nested);
- }
-
- /**
- * Constructs a new <code>JDODataStoreException</code> with the specified
- * detail message and nested <code>Throwable</code>s.
- * @param msg the detail message.
- * @param nested the nested <code>Throwable</code>.
- */
- public JDODataStoreException(String msg, Throwable nested) {
- super(msg, nested);
- }
-
- /** Constructs a new <code>JDODataStoreException</code> with the specified detail message
- * and failed object.
- * @param msg the detail message.
- * @param failed the failed object.
- */
- public JDODataStoreException(String msg, Object failed) {
- super(msg, failed);
- }
-
- /** Constructs a new <code>JDODataStoreException</code> with the specified detail message,
- * nested <code>Throwable</code>s, and failed object.
- * @param msg the detail message.
- * @param nested the nested <code>Throwable[]</code>.
- * @param failed the failed object.
- */
- public JDODataStoreException(String msg, Throwable[] nested, Object failed) {
- super(msg, nested, failed);
- }
-
- /** Constructs a new <code>JDODataStoreException</code> with the specified detail message,
- * nested <code>Throwable</code>s, and failed object.
- * @param msg the detail message.
- * @param nested the nested <code>Throwable</code>.
- * @param failed the failed object.
- */
- public JDODataStoreException(String msg, Throwable nested, Object failed) {
- super(msg, nested, failed);
- }
-
-}
-
diff --git a/api20/src/java/javax/jdo/JDODetachedFieldAccessException.java b/api20/src/java/javax/jdo/JDODetachedFieldAccessException.java
deleted file mode 100644
index 343e019..0000000
--- a/api20/src/java/javax/jdo/JDODetachedFieldAccessException.java
+++ /dev/null
@@ -1,73 +0,0 @@
-/*
- * Copyright 2005 The Apache Software Foundation.
- *
- * Licensed 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.
- */
-
-/*
- * JDODetachedFieldAccessException.java
- *
- */
-
-package javax.jdo;
-
-/** This class represents exceptions caused by access of an unloaded field while
- * the instance is detached.
- *
- * @version 2.0
- * @since 2.0
- */
-public class JDODetachedFieldAccessException extends JDOUserException {
-
- /**
- * Constructs a new <code>JDODetachedFieldAccessException</code> without a
- * detail message.
- * @since 2.0
- */
- public JDODetachedFieldAccessException() {
- }
-
-
- /**
- * Constructs a new <code>JDODetachedFieldAccessException</code> with the
- * specified detail message.
- * @param msg the detail message.
- * @since 2.0
- */
- public JDODetachedFieldAccessException(String msg) {
- super(msg);
- }
-
- /**
- * Constructs a new <code>JDODetachedFieldAccessException</code> with the
- * specified detail message and nested <code>Throwable</code>s.
- * @param msg the detail message.
- * @param nested the nested <code>Throwable[]</code>.
- * @since 2.0
- */
- public JDODetachedFieldAccessException(String msg, Throwable[] nested) {
- super(msg, nested);
- }
-
- /**
- * Constructs a new <code>JDODetachedFieldAccessException</code> with the
- * specified detail message and nested <code>Throwable</code>s.
- * @param msg the detail message.
- * @param nested the nested <code>Throwable</code>.
- * @since 2.0
- */
- public JDODetachedFieldAccessException(String msg, Throwable nested) {
- super(msg, nested);
- }
-}
-
diff --git a/api20/src/java/javax/jdo/JDOException.java b/api20/src/java/javax/jdo/JDOException.java
deleted file mode 100644
index 813b559..0000000
--- a/api20/src/java/javax/jdo/JDOException.java
+++ /dev/null
@@ -1,295 +0,0 @@
-/*
- * Copyright 2005 The Apache Software Foundation.
- *
- * Licensed 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.
- */
-
-/*
- * JDOException.java
- *
- */
-
-package javax.jdo;
-
-import javax.jdo.spi.I18NHelper;
-
-/** This is the root of all JDO Exceptions. It contains an optional detail
- * message, an optional nested <code>Throwable</code> array and an optional failed object.
- * @author Craig Russell
- * @version 1.0.2
- */
-public class JDOException extends java.lang.RuntimeException {
-
- /** This exception was generated because of an exception in the runtime library.
- * @serial the nested <code>Throwable</code> array
- */
- Throwable[] nested;
-
- /** This exception may be the result of incorrect parameters supplied
- * to an API. This is the object from which the user can determine
- * the cause of the problem.
- * @serial the failed <code>Object</code>
- */
- Object failed;
-
- /** The Internationalization message helper.
- */
- private static I18NHelper msg = I18NHelper.getInstance ("javax.jdo.Bundle"); //NOI18N
-
- /** Flag indicating whether printStackTrace is being executed.
- */
- private boolean inPrintStackTrace = false;
-
- /**
- * Constructs a new <code>JDOException</code> without a detail message.
- */
- public JDOException() {
- }
-
-
- /**
- * Constructs a new <code>JDOException</code> with the specified detail message.
- * @param msg the detail message.
- */
- public JDOException(String msg) {
- super(msg);
- }
-
- /** Constructs a new <code>JDOException</code> with the specified detail message
- * and nested <code>Throwable</code>s.
- * @param msg the detail message.
- * @param nested the nested <code>Throwable[]</code>.
- */
- public JDOException(String msg, Throwable[] nested) {
- super(msg);
- this.nested = nested;
- }
-
- /** Constructs a new <code>JDOException</code> with the specified detail message
- * and nested <code>Throwable</code>.
- * @param msg the detail message.
- * @param nested the nested <code>Throwable</code>.
- */
- public JDOException(String msg, Throwable nested) {
- super(msg);
- this.nested = new Throwable[] {nested};
- }
-
- /** Constructs a new <code>JDOException</code> with the specified detail message
- * and failed object.
- * @param msg the detail message.
- * @param failed the failed object.
- */
- public JDOException(String msg, Object failed) {
- super(msg);
- this.failed = failed;
- }
-
- /** Constructs a new <code>JDOException</code> with the specified detail message,
- * nested <code>Throwable</code>s, and failed object.
- * @param msg the detail message.
- * @param nested the nested <code>Throwable[]</code>.
- * @param failed the failed object.
- */
- public JDOException(String msg, Throwable[] nested, Object failed) {
- super(msg);
- this.nested = nested;
- this.failed = failed;
- }
-
- /** Constructs a new <code>JDOException</code> with the specified detail message,
- * nested <code>Throwable</code>, and failed object.
- * @param msg the detail message.
- * @param nested the nested <code>Throwable</code>.
- * @param failed the failed object.
- */
- public JDOException(String msg, Throwable nested, Object failed) {
- super(msg);
- this.nested = new Throwable[] {nested};
- this.failed = failed;
- }
-
- /** The exception may include a failed object.
- * @return the failed object.
- */
- public Object getFailedObject() {
- return failed;
- }
-
- /** The exception may have been caused by multiple exceptions in the runtime.
- * If multiple objects caused the problem, each failed object will have
- * its own <code>Exception</code>.
- * @return the nested Throwable array.
- */
- public Throwable[] getNestedExceptions() {
- return nested;
- }
-
- /** Often there is only one nested exception, and this method returns it.
- * If there are more than one, then this method returns the first nested
- * exception. If there is no nested exception, then null is returned.
- * @return the first or only nested Throwable.
- * @since 1.0.1
- */
- public synchronized Throwable getCause() {
- // super.printStackTrace calls getCause to handle the cause.
- // Returning null prevents the superclass from handling the cause;
- // instead the local implementation of printStackTrace should
- // handle the cause. Otherwise, the cause is printed twice.
- if (nested == null || nested.length == 0 || inPrintStackTrace) {
- return null;
- } else {
- return nested[0];
- }
- }
-
- /** JDK 1.4 includes a new chaining mechanism for Throwable, but since
- * JDO has its own "legacy" chaining mechanism, the "standard" mechanism
- * cannot be used. This method always throws a JDOFatalInternalException.
- * @param cause ignored.
- * @return never.
- */
- public Throwable initCause(Throwable cause) {
- throw new JDOFatalInternalException(msg.msg("ERR_CannotInitCause"));
- }
-
- /** The <code>String</code> representation includes the name of the class,
- * the descriptive comment (if any),
- * the <code>String</code> representation of the failed <code>Object</code> (if any),
- * and the <code>String</code> representation of the nested <code>Throwable</code>s (if any).
- * @return the <code>String</code>.
- */
- public synchronized String toString() {
- int len = nested==null?0:nested.length;
- // calculate approximate size of the String to return
- StringBuffer sb = new StringBuffer (10 + 100 * len);
- sb.append (super.toString());
- // include failed object information
- if (failed != null) {
- sb.append ("\n").append (msg.msg ("MSG_FailedObject"));
- String failedToString = null;
- try {
- failedToString = failed.toString();
- } catch (Exception ex) {
- // include the information from the exception thrown by failed.toString
- Object objectId = JDOHelper.getObjectId(failed);
- if (objectId == null) {
- failedToString = msg.msg("MSG_ExceptionGettingFailedToString", //NOI18N
- exceptionToString(ex));
- }
- else {
- // include the ObjectId information
- String objectIdToString = null;
- try {
- objectIdToString = objectId.toString();
- }
- catch (Exception ex2) {
- objectIdToString = exceptionToString(ex2);
- }
- failedToString = msg.msg("MSG_ExceptionGettingFailedToStringObjectId", //NOI18N
- exceptionToString(ex), objectIdToString);
- }
- }
- sb.append (failedToString);
- }
- // include nested Throwable information, but only if not called by
- // printStackTrace; the stacktrace will include the cause anyway.
- if (len > 0 && !inPrintStackTrace) {
- sb.append ("\n").append (msg.msg ("MSG_NestedThrowables")).append ("\n");
- Throwable exception = nested[0];
- sb.append (exception==null?"null":exception.toString()); //NOI18N
- for (int i=1; i<len; ++i) {
- sb.append ("\n"); //NOI18N
- exception = nested[i];
- sb.append (exception==null?"null":exception.toString()); //NOI18N
- }
- }
- return sb.toString();
- }
-
- /**
- * Prints this <code>JDOException</code> and its backtrace to the
- * standard error output.
- * Print nested Throwables' stack trace as well.
- */
- public void printStackTrace() {
- printStackTrace (System.err);
- }
-
- /**
- * Prints this <code>JDOException</code> and its backtrace to the
- * specified print stream.
- * Print nested Throwables' stack trace as well.
- * @param s <code>PrintStream</code> to use for output
- */
- public synchronized void printStackTrace(java.io.PrintStream s) {
- int len = nested==null?0:nested.length;
- synchronized (s) {
- inPrintStackTrace = true;
- super.printStackTrace(s);
- if (len > 0) {
- s.println (msg.msg ("MSG_NestedThrowablesStackTrace"));
- for (int i=0; i<len; ++i) {
- Throwable exception = nested[i];
- if (exception != null) {
- exception.printStackTrace(s);
- }
- }
- }
- inPrintStackTrace = false;
- }
- }
-
- /**
- * Prints this <code>JDOException</code> and its backtrace to the specified
- * print writer.
- * Print nested Throwables' stack trace as well.
- * @param s <code>PrintWriter</code> to use for output
- */
- public synchronized void printStackTrace(java.io.PrintWriter s) {
- int len = nested==null?0:nested.length;
- synchronized (s) {
- inPrintStackTrace = true;
- super.printStackTrace(s);
- if (len > 0) {
- s.println (msg.msg ("MSG_NestedThrowablesStackTrace"));
- for (int i=0; i<len; ++i) {
- Throwable exception = nested[i];
- if (exception != null) {
- exception.printStackTrace(s);
- }
- }
- }
- inPrintStackTrace = false;
- }
- }
-
- /**
- * Helper method returning a short description of the exception passed
- * as an argument. The returned string has the format defined by
- * Throwable.toString. If the exception has a non-null detail message
- * string, then it returns the name of exception class concatenated
- * with ": " concatenated with the detailed message. Otherwise it
- * returns the name of exception class.
- * @param ex the exception to be represented.
- * @return a string representation of the exception passed as an argument.
- */
- private static String exceptionToString(Exception ex)
- {
- if (ex == null) return null;
- String s = ex.getClass().getName();
- String message = ex.getMessage();
- return (message != null) ? (s + ": " + message) : s;
- }
-}
-
diff --git a/api20/src/java/javax/jdo/JDOFatalDataStoreException.java b/api20/src/java/javax/jdo/JDOFatalDataStoreException.java
deleted file mode 100644
index f7c0ca0..0000000
--- a/api20/src/java/javax/jdo/JDOFatalDataStoreException.java
+++ /dev/null
@@ -1,74 +0,0 @@
-/*
- * Copyright 2005 The Apache Software Foundation.
- *
- * Licensed 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.
- */
-
-/*
- * JDOFatalDataStoreException.java
- *
- */
-
-package javax.jdo;
-
-/** This class represents data store exceptions that cannot be retried.
- *
- * @version 1.0.1
- */
-public class JDOFatalDataStoreException extends JDOFatalException {
-
- /**
- * Constructs a new <code>JDOFatalDataStoreException</code> without a detail message.
- */
- public JDOFatalDataStoreException() {
- }
-
-
- /**
- * Constructs a new <code>JDOFatalDataStoreException</code> with the specified detail message.
- * @param msg the detail message.
- */
- public JDOFatalDataStoreException(String msg) {
- super(msg);
- }
-
- /** Constructs a new <code>JDOFatalDataStoreException</code> with the specified detail message
- * and failed object.
- * @param msg the detail message.
- * @param failed the failed object.
- */
- public JDOFatalDataStoreException(String msg, Object failed) {
- super(msg, failed);
- }
-
- /**
- * Constructs a new <code>JDOFatalDataStoreException</code> with the specified
- * detail message and nested <code>Throwable</code>s.
- * @param msg the detail message.
- * @param nested the nested <code>Throwable[]</code>.
- */
- public JDOFatalDataStoreException(String msg, Throwable[] nested) {
- super(msg, nested);
- }
-
- /**
- * Constructs a new <code>JDOFatalDataStoreException</code> with the specified
- * detail message and nested <code>Throwable</code>s.
- * @param msg the detail message.
- * @param nested the nested <code>Throwable</code>.
- */
- public JDOFatalDataStoreException(String msg, Throwable nested) {
- super(msg, nested);
- }
-}
-
diff --git a/api20/src/java/javax/jdo/JDOFatalException.java b/api20/src/java/javax/jdo/JDOFatalException.java
deleted file mode 100644
index 4df8e6c..0000000
--- a/api20/src/java/javax/jdo/JDOFatalException.java
+++ /dev/null
@@ -1,95 +0,0 @@
-/*
- * Copyright 2005 The Apache Software Foundation.
- *
- * Licensed 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.
- */
-
-/*
- * JDOFatalException.java
- *
- */
-
-package javax.jdo;
-
-/** This class represents exceptions that are fatal; that is, the condition
- * that caused it cannot be bypassed even if the operation is retried.
- *
- * @version 1.0
- */
-public class JDOFatalException extends JDOException {
-
- /**
- * Constructs a new <code>JDOFatalException</code> without a detail message.
- */
- public JDOFatalException() {
- }
-
-
- /**
- * Constructs a new <code>JDOFatalException</code> with the specified detail message.
- * @param msg the detail message.
- */
- public JDOFatalException(String msg) {
- super(msg);
- }
-
- /**
- * Constructs a new <code>JDOFatalException</code> with the specified detail
- * message and nested <code>Throwable</code>s.
- * @param msg the detail message.
- * @param nested the nested <code>Throwable[]</code>.
- */
- public JDOFatalException(String msg, Throwable[] nested) {
- super(msg, nested);
- }
-
- /**
- * Constructs a new <code>JDOFatalException</code> with the specified detail
- * message and nested <code>Throwable</code>s.
- * @param msg the detail message.
- * @param nested the nested <code>Throwable</code>.
- */
- public JDOFatalException(String msg, Throwable nested) {
- super(msg, nested);
- }
-
- /** Constructs a new <code>JDOFatalException</code> with the specified detail message
- * and failed object.
- * @param msg the detail message.
- * @param failed the failed object.
- */
- public JDOFatalException(String msg, Object failed) {
- super(msg, failed);
- }
-
- /** Constructs a new <code>JDOFatalException</code> with the specified detail message,
- * nested <code>Throwable</code>s, and failed object.
- * @param msg the detail message.
- * @param nested the nested <code>Throwable[]</code>.
- * @param failed the failed object.
- */
- public JDOFatalException(String msg, Throwable[] nested, Object failed) {
- super(msg, nested, failed);
-
- }
- /** Constructs a new <code>JDOFatalException</code> with the specified detail message,
- * nested <code>Throwable</code>s, and failed object.
- * @param msg the detail message.
- * @param nested the nested <code>Throwable</code>.
- * @param failed the failed object.
- */
- public JDOFatalException(String msg, Throwable nested, Object failed) {
- super(msg, nested, failed);
- }
-}
-
diff --git a/api20/src/java/javax/jdo/JDOFatalInternalException.java b/api20/src/java/javax/jdo/JDOFatalInternalException.java
deleted file mode 100644
index 264ee4c..0000000
--- a/api20/src/java/javax/jdo/JDOFatalInternalException.java
+++ /dev/null
@@ -1,67 +0,0 @@
-/*
- * Copyright 2005 The Apache Software Foundation.
- *
- * Licensed 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.
- */
-
-/*
- * JDOFatalInternalException.java
- *
- */
-
-package javax.jdo;
-
-/** This class represents errors in the implementation for which no user
- * error handling is possible. The error should be reported to the JDO
- * vendor for corrective action.
- *
- * @version 1.0
- */
-public class JDOFatalInternalException extends JDOFatalException {
-
- /**
- * Constructs a new <code>JDOFatalInternalException</code> without a detail message.
- */
- public JDOFatalInternalException() {
- }
-
-
- /**
- * Constructs a new <code>JDOFatalInternalException</code> with the specified detail message.
- * @param msg the detail message.
- */
- public JDOFatalInternalException(String msg) {
- super(msg);
- }
-
- /**
- * Constructs a new <code>JDOFatalInternalException</code> with the specified
- * detail message and nested <code>Throwable</code>s.
- * @param msg the detail message.
- * @param nested the nested <code>Throwable[]</code>.
- */
- public JDOFatalInternalException(String msg, Throwable[] nested) {
- super(msg, nested);
- }
-
- /**
- * Constructs a new <code>JDOFatalInternalException</code> with the specified
- * detail message and nested <code>Throwable</code>s.
- * @param msg the detail message.
- * @param nested the nested <code>Throwable</code>.
- */
- public JDOFatalInternalException(String msg, Throwable nested) {
- super(msg, nested);
- }
-}
-
diff --git a/api20/src/java/javax/jdo/JDOFatalUserException.java b/api20/src/java/javax/jdo/JDOFatalUserException.java
deleted file mode 100644
index c704730..0000000
--- a/api20/src/java/javax/jdo/JDOFatalUserException.java
+++ /dev/null
@@ -1,94 +0,0 @@
-/*
- * Copyright 2005 The Apache Software Foundation.
- *
- * Licensed 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.
- */
-
-/*
- * JDOUserException.java
- *
- */
-
-package javax.jdo;
-
-/** This class represents user errors that cannot be retried.
- *
- * @version 1.0
- */
-public class JDOFatalUserException extends JDOFatalException {
-
- /**
- * Constructs a new <code>JDOFatalUserException</code> without a detail message.
- */
- public JDOFatalUserException() {
- }
-
-
- /**
- * Constructs a new <code>JDOFatalUserException</code> with the specified detail message.
- * @param msg the detail message.
- */
- public JDOFatalUserException(String msg) {
- super(msg);
- }
-
- /**
- * Constructs a new <code>JDOFatalUserException</code> with the specified
- * detail message and nested <code>Throwable</code>s.
- * @param msg the detail message.
- * @param nested the nested <code>Throwable[]</code>.
- */
- public JDOFatalUserException(String msg, Throwable[] nested) {
- super(msg, nested);
- }
-
- /**
- * Constructs a new <code>JDOFatalUserException</code> with the specified
- * detail message and nested <code>Throwable</code>s.
- * @param msg the detail message.
- * @param nested the nested <code>Throwable</code>.
- */
- public JDOFatalUserException(String msg, Throwable nested) {
- super(msg, nested);
- }
-
- /** Constructs a new <code>JDOFatalUserException</code> with the specified
- * detail message and failed object.
- * @param msg the detail message.
- * @param failed the failed object.
- */
- public JDOFatalUserException(String msg, Object failed) {
- super(msg, failed);
- }
-
- /** Constructs a new <code>JDOFatalUserException</code> with the specified
- * detail message, nested <code>Throwable</code>s, and failed object.
- * @param msg the detail message.
- * @param nested the nested <code>Throwable[]</code>.
- * @param failed the failed object.
- */
- public JDOFatalUserException(String msg, Throwable[] nested, Object failed) {
- super(msg, nested, failed);
- }
-
- /** Constructs a new <code>JDOFatalUserException</code> with the specified
- * detail message, nested <code>Throwable</code>s, and failed object.
- * @param msg the detail message.
- * @param nested the nested <code>Throwable</code>.
- * @param failed the failed object.
- */
- public JDOFatalUserException(String msg, Throwable nested, Object failed) {
- super(msg, nested, failed);
- }
-}
-
diff --git a/api20/src/java/javax/jdo/JDOHelper.java b/api20/src/java/javax/jdo/JDOHelper.java
deleted file mode 100644
index 44d0622..0000000
--- a/api20/src/java/javax/jdo/JDOHelper.java
+++ /dev/null
@@ -1,835 +0,0 @@
-/*
- * Copyright 2005 The Apache Software Foundation.
- *
- * Licensed 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.
- */
-
-/*
- * JDOHelper.java
- *
- */
-
-package javax.jdo;
-
-import java.io.File;
-import java.io.FileInputStream;
-import java.io.FileNotFoundException;
-import java.io.InputStream;
-import java.io.IOException;
-
-import java.lang.reflect.Method;
-import java.lang.reflect.InvocationTargetException;
-
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.Iterator;
-import java.util.Map;
-import java.util.Properties;
-
-import java.security.AccessController;
-import java.security.PrivilegedAction;
-
-import javax.jdo.spi.I18NHelper;
-import javax.jdo.spi.JDOImplHelper;
-import javax.jdo.spi.JDOImplHelper.StateInterrogationBooleanReturn;
-import javax.jdo.spi.JDOImplHelper.StateInterrogationObjectReturn;
-import javax.jdo.spi.PersistenceCapable;
-import javax.jdo.spi.StateInterrogation;
-
-import javax.naming.Context;
-import javax.naming.InitialContext;
-import javax.naming.NamingException;
-
-import javax.rmi.PortableRemoteObject;
-
-
-/**
- * This class can be used by a JDO-aware application to call the JDO behavior
- * of <code>PersistenceCapable</code> instances without declaring them to be
- * <code>PersistenceCapable</code>.
- * <P>It is also used to acquire a <code>PersistenceManagerFactory</code> via
- * various methods.
- * <P>This helper class defines static methods that allow a JDO-aware
- * application to examine the runtime state of instances. For example,
- * an application can discover whether the instance is persistent,
- * transactional, dirty, new, deleted, or detached; and to get its associated
- * <code>PersistenceManager</code> if it has one.
- *
- * @version 2.0
- */
-public class JDOHelper extends Object {
-
- /** The Internationalization message helper.
- */
- private final static I18NHelper msg =
- I18NHelper.getInstance ("javax.jdo.Bundle"); //NOI18N
-
- /** The JDOImplHelper instance used for handling non-binary-compatible
- * implementations.
- */
- private static JDOImplHelper implHelper = (JDOImplHelper)
- AccessController.doPrivileged(
- new PrivilegedAction () {
- public Object run () {
- return JDOImplHelper.getInstance();
- }
- }
- );
-
- /** The stateless instance used for handling non-binary-compatible
- * implementations of getPersistenceManager.
- */
- static StateInterrogationObjectReturn getPersistenceManager =
- new StateInterrogationObjectReturn() {
- public Object get(Object pc, StateInterrogation si) {
- return si.getPersistenceManager(pc);
- }
- };
-
- /** The stateless instance used for handling non-binary-compatible
- * implementations of getObjectId.
- */
- static StateInterrogationObjectReturn getObjectId =
- new StateInterrogationObjectReturn() {
- public Object get(Object pc, StateInterrogation si) {
- return si.getObjectId(pc);
- }
- };
-
- /** The stateless instance used for handling non-binary-compatible
- * implementations of getTransactionalObjectId.
- */
- static StateInterrogationObjectReturn getTransactionalObjectId =
- new StateInterrogationObjectReturn() {
- public Object get(Object pc, StateInterrogation si) {
- return si.getTransactionalObjectId(pc);
- }
- };
-
- /** The stateless instance used for handling non-binary-compatible
- * implementations of getVersion.
- */
- static StateInterrogationObjectReturn getVersion =
- new StateInterrogationObjectReturn() {
- public Object get(Object pc, StateInterrogation si) {
- return si.getVersion(pc);
- }
- };
-
- /** The stateless instance used for handling non-binary-compatible
- * implementations of isPersistent.
- */
- static StateInterrogationBooleanReturn isPersistent =
- new StateInterrogationBooleanReturn() {
- public Boolean is(Object pc, StateInterrogation si) {
- return si.isPersistent(pc);
- }
- };
-
- /** The stateless instance used for handling non-binary-compatible
- * implementations of isTransactional.
- */
- static StateInterrogationBooleanReturn isTransactional =
- new StateInterrogationBooleanReturn() {
- public Boolean is(Object pc, StateInterrogation si) {
- return si.isTransactional(pc);
- }
- };
-
- /** The stateless instance used for handling non-binary-compatible
- * implementations of isDirty.
- */
- static StateInterrogationBooleanReturn isDirty =
- new StateInterrogationBooleanReturn() {
- public Boolean is(Object pc, StateInterrogation si) {
- return si.isDirty(pc);
- }
- };
-
- /** The stateless instance used for handling non-binary-compatible
- * implementations of isNew.
- */
- static StateInterrogationBooleanReturn isNew =
- new StateInterrogationBooleanReturn() {
- public Boolean is(Object pc, StateInterrogation si) {
- return si.isNew(pc);
- }
- };
-
- /** The stateless instance used for handling non-binary-compatible
- * implementations of isDeleted.
- */
- static StateInterrogationBooleanReturn isDeleted =
- new StateInterrogationBooleanReturn() {
- public Boolean is(Object pc, StateInterrogation si) {
- return si.isDeleted(pc);
- }
- };
-
- /** The stateless instance used for handling non-binary-compatible
- * implementations of isDetached.
- */
- static StateInterrogationBooleanReturn isDetached =
- new StateInterrogationBooleanReturn() {
- public Boolean is(Object pc, StateInterrogation si) {
- return si.isDetached(pc);
- }
- };
-
- /** Return the associated <code>PersistenceManager</code> if there is one.
- * Transactional and persistent instances return the associated
- * <code>PersistenceManager</code>.
- *
- * <P>Transient non-transactional instances and instances of classes
- * that do not implement <code>PersistenceCapable</code> return
- * <code>null</code>.
- * @see PersistenceCapable#jdoGetPersistenceManager()
- * @param pc the <code>PersistenceCapable</code> instance.
- * @return the <code>PersistenceManager</code> associated with the parameter
- * instance.
- */
- public static PersistenceManager getPersistenceManager(Object pc) {
- if (pc instanceof PersistenceCapable) {
- return ((PersistenceCapable)pc).jdoGetPersistenceManager();
- } else {
- return (PersistenceManager)
- implHelper.nonBinaryCompatibleGet(pc, getPersistenceManager);
- }
- }
-
- /** Explicitly mark the parameter instance and field dirty.
- * Normally, <code>PersistenceCapable</code> classes are able to detect
- * changes made to their fields. However, if a reference to an array is
- * given to a method outside the class, and the array is modified, then the
- * persistent instance is not aware of the change. This API allows the
- * application to notify the instance that a change was made to a field.
- *
- * <P>Transient instances and instances of classes
- * that do not implement <code>PersistenceCapable</code> ignore this method.
- * @see PersistenceCapable#jdoMakeDirty(String fieldName)
- * @param pc the <code>PersistenceCapable</code> instance.
- * @param fieldName the name of the field to be marked dirty.
- */
- public static void makeDirty(Object pc, String fieldName) {
- if (pc instanceof PersistenceCapable) {
- ((PersistenceCapable)pc).jdoMakeDirty(fieldName);
- } else {
- implHelper.nonBinaryCompatibleMakeDirty(pc, fieldName);
- }
- }
-
- /** Return a copy of the JDO identity associated with the parameter
- * instance.
- *
- * <P>Persistent instances of <code>PersistenceCapable</code> classes have a
- * JDO identity managed by the <code>PersistenceManager</code>. This method
- * returns a copy of the ObjectId that represents the JDO identity.
- *
- * <P>Transient instances and instances of classes that do not implement
- * <code>PersistenceCapable</code> return <code>null</code>.
- *
- * <P>The ObjectId may be serialized
- * and later restored, and used with a <code>PersistenceManager</code> from
- * the same JDO implementation to locate a persistent instance with the same
- * data store identity.
- *
- * <P>If the JDO identity is managed by the application, then the ObjectId
- * may be used with a <code>PersistenceManager</code> from any JDO
- * implementation that supports the <code>PersistenceCapable</code> class.
- *
- * <P>If the JDO identity is not managed by the application or the data
- * store, then the ObjectId returned is only valid within the current
- * transaction.
- *<P>
- * @see PersistenceManager#getObjectId(Object pc)
- * @see PersistenceCapable#jdoGetObjectId()
- * @see PersistenceManager#getObjectById(Object oid, boolean validate)
- * @param pc the PersistenceCapable instance.
- * @return a copy of the ObjectId of the parameter instance as of the
- * beginning of the transaction.
- */
- public static Object getObjectId(Object pc) {
- if (pc instanceof PersistenceCapable) {
- return ((PersistenceCapable)pc).jdoGetObjectId();
- } else {
- return implHelper.nonBinaryCompatibleGet(pc, getObjectId);
- }
- }
-
- /** Get object ids for a collection of instances. For each instance
- * in the parameter, the getObjectId method is called. This method
- * returns one identity instance for each element
- * in the parameter. The order of iteration of the returned
- * Collection exactly matches the order of iteration of the
- * parameter Collection.
- * @param pcs the persistence-capable instances
- * @return the object ids of the parameters
- * @see #getObjectId(Object pc)
- * @see #getObjectIds(Object[] pcs)
- * @since 2.0
- */
- public static Collection getObjectIds(Collection pcs) {
- ArrayList result = new ArrayList();
- for (Iterator it = pcs.iterator(); it.hasNext();) {
- result.add(getObjectId(it.next()));
- }
- return result;
- }
-
- /** Get object ids for an array of instances. For each instance
- * in the parameter, the getObjectId method is called. This method
- * returns one identity instance for each element
- * in the parameter. The order of instances of the returned
- * array exactly matches the order of instances of the
- * parameter array.
- * @param pcs the persistence-capable instances
- * @return the object ids of the parameters
- * @see #getObjectId(Object pc)
- * @see #getObjectIds(Collection pcs)
- * @since 2.0
- */
- public static Object[] getObjectIds(Object[] pcs) {
- Object[] result = new Object[pcs.length];
- for (int i = 0; i < pcs.length; ++i) {
- result[i] = getObjectId(pcs[i]);
- }
- return result;
- }
-
- /** Return a copy of the JDO identity associated with the parameter
- * instance.
- *
- * @see PersistenceCapable#jdoGetTransactionalObjectId()
- * @see PersistenceManager#getObjectById(Object oid, boolean validate)
- * @param pc the <code>PersistenceCapable</code> instance.
- * @return a copy of the ObjectId of the parameter instance as modified in
- * this transaction.
- */
- public static Object getTransactionalObjectId(Object pc) {
- if (pc instanceof PersistenceCapable) {
- return ((PersistenceCapable)pc).jdoGetTransactionalObjectId();
- } else {
- return implHelper.nonBinaryCompatibleGet(
- pc, getTransactionalObjectId);
- }
- }
-
- /**
- * Return the version of the instance.
- * @since 2.0
- * @param pc the instance
- * @return the version of the instance
- */
- public static Object getVersion (Object pc) {
- if (pc instanceof PersistenceCapable) {
- return ((PersistenceCapable)pc).jdoGetVersion();
- } else {
- return implHelper.nonBinaryCompatibleGet(pc, getVersion);
- }
- }
- /** Tests whether the parameter instance is dirty.
- *
- * Instances that have been modified, deleted, or newly
- * made persistent in the current transaction return <code>true</code>.
- *
- *<P>Transient instances and instances of classes that do not implement
- * <code>PersistenceCapable</code> return <code>false</code>.
- *<P>
- * @see javax.jdo.spi.StateManager#makeDirty(PersistenceCapable pc,
- * String fieldName)
- * @see PersistenceCapable#jdoIsDirty()
- * @param pc the <code>PersistenceCapable</code> instance.
- * @return <code>true</code> if the parameter instance has been modified in
- * the current transaction.
- */
- public static boolean isDirty(Object pc) {
- if (pc instanceof PersistenceCapable) {
- return ((PersistenceCapable)pc).jdoIsDirty();
- } else {
- return implHelper.nonBinaryCompatibleIs(pc, isDirty);
- }
- }
-
- /** Tests whether the parameter instance is transactional.
- *
- * Instances whose state is associated with the current transaction
- * return true.
- *
- *<P>Transient instances and instances of classes that do not implement
- * <code>PersistenceCapable</code> return <code>false</code>.
- * @see PersistenceCapable#jdoIsTransactional()
- * @param pc the <code>PersistenceCapable</code> instance.
- * @return <code>true</code> if the parameter instance is transactional.
- */
- public static boolean isTransactional(Object pc) {
- if (pc instanceof PersistenceCapable) {
- return ((PersistenceCapable)pc).jdoIsTransactional();
- } else {
- return implHelper.nonBinaryCompatibleIs(pc, isTransactional);
- }
- }
-
- /** Tests whether the parameter instance is persistent.
- *
- * Instances that represent persistent objects in the data store
- * return <code>true</code>.
- *
- *<P>Transient instances and instances of classes that do not implement
- * <code>PersistenceCapable</code> return <code>false</code>.
- *<P>
- * @see PersistenceManager#makePersistent(Object pc)
- * @see PersistenceCapable#jdoIsPersistent()
- * @param pc the <code>PersistenceCapable</code> instance.
- * @return <code>true</code> if the parameter instance is persistent.
- */
- public static boolean isPersistent(Object pc) {
- if (pc instanceof PersistenceCapable) {
- return ((PersistenceCapable)pc).jdoIsPersistent();
- } else {
- return implHelper.nonBinaryCompatibleIs(pc, isPersistent);
- }
- }
-
- /** Tests whether the parameter instance has been newly made persistent.
- *
- * Instances that have been made persistent in the current transaction
- * return <code>true</code>.
- *
- *<P>Transient instances and instances of classes that do not implement
- * <code>PersistenceCapable</code> return <code>false</code>.
- *<P>
- * @see PersistenceManager#makePersistent(Object pc)
- * @see PersistenceCapable#jdoIsNew()
- * @param pc the <code>PersistenceCapable</code> instance.
- * @return <code>true</code> if the parameter instance was made persistent
- * in the current transaction.
- */
- public static boolean isNew(Object pc) {
- if (pc instanceof PersistenceCapable) {
- return ((PersistenceCapable)pc).jdoIsNew();
- } else {
- return implHelper.nonBinaryCompatibleIs(pc, isNew);
- }
- }
-
- /** Tests whether the parameter instance has been deleted.
- *
- * Instances that have been deleted in the current transaction return
- * <code>true</code>.
- *
- *<P>Transient instances and instances of classes that do not implement
- * <code>PersistenceCapable</code> return <code>false</code>.
- *<P>
- * @see PersistenceManager#deletePersistent(Object pc)
- * @see PersistenceCapable#jdoIsDeleted()
- * @param pc the <code>PersistenceCapable</code> instance.
- * @return <code>true</code> if the parameter instance was deleted
- * in the current transaction.
- */
- public static boolean isDeleted(Object pc) {
- if (pc instanceof PersistenceCapable) {
- return ((PersistenceCapable)pc).jdoIsDeleted();
- } else {
- return implHelper.nonBinaryCompatibleIs(pc, isDeleted);
- }
- }
-
- /**
- * Tests whether the parameter instance has been detached.
- *
- * Instances that have been detached return true.
- *
- * <P>Transient instances return false.
- * <P>
- * @see PersistenceCapable#jdoIsDetached()
- * @return <code>true</code> if this instance is detached.
- * @since 2.0
- * @param pc the instance
- */
- public static boolean isDetached(Object pc) {
- if (pc instanceof PersistenceCapable) {
- return ((PersistenceCapable)pc).jdoIsDetached();
- } else {
- return implHelper.nonBinaryCompatibleIs(pc, isDetached);
- }
- }
-
- /** Get a <code>PersistenceManagerFactory</code> based on a <code>Properties</code>
- * instance, using the current thread's context class loader to locate the
- * <code>PersistenceManagerFactory</code> class.
- * @return the <code>PersistenceManagerFactory</code>.
- * @param props a <code>Properties</code> instance with properties of the
- * <code>PersistenceManagerFactory</code>.
- * @see #getPersistenceManagerFactory(Map,ClassLoader)
- */
- public static PersistenceManagerFactory getPersistenceManagerFactory
- (Map props) {
- ClassLoader cl = getContextClassLoader();
- return getPersistenceManagerFactory (props, cl);
- }
-
- /**
- * Get a <code>PersistenceManagerFactory</code> based on a
- * <code>Properties</code> instance and a class loader.
- * The following are standard key values:
- * <BR><code>"javax.jdo.PersistenceManagerFactoryClass"
- * <BR>"javax.jdo.option.Optimistic",
- * <BR>"javax.jdo.option.RetainValues",
- * <BR>"javax.jdo.option.RestoreValues",
- * <BR>"javax.jdo.option.IgnoreCache",
- * <BR>"javax.jdo.option.NontransactionalRead",
- * <BR>"javax.jdo.option.NontransactionalWrite",
- * <BR>"javax.jdo.option.Multithreaded",
- * <BR>"javax.jdo.option.ConnectionUserName",
- * <BR>"javax.jdo.option.ConnectionPassword",
- * <BR>"javax.jdo.option.ConnectionURL",
- * <BR>"javax.jdo.option.ConnectionFactoryName",
- * <BR>"javax.jdo.option.ConnectionFactory2Name",
- * <BR>"javax.jdo.option.Mapping",
- * <BR>"javax.jdo.mapping.Catalog",
- * <BR>"javax.jdo.mapping.Schema".
- * </code><P>JDO implementations
- * are permitted to define key values of their own. Any key values not
- * recognized by the implementation must be ignored. Key values that are
- * recognized but not supported by an implementation must result in a
- * <code>JDOFatalUserException</code> thrown by the method.
- * <P>The returned <code>PersistenceManagerFactory</code> is not
- * configurable (the <code>set<I>XXX</I></code> methods will throw an
- * exception).
- * <P>JDO implementations might manage a map of instantiated
- * <code>PersistenceManagerFactory</code> instances based on specified
- * property key values, and return a previously instantiated
- * <code>PersistenceManagerFactory</code> instance. In this case, the
- * properties of the returned instance must exactly match the requested
- * properties.
- * @return the <code>PersistenceManagerFactory</code>.
- * @param props a <code>Properties</code> instance with properties of the
- * <code>PersistenceManagerFactory</code>.
- * @param cl the class loader to use to load the
- * <code>PersistenceManagerFactory</code> class
- */
- public static PersistenceManagerFactory getPersistenceManagerFactory
- (Map props, ClassLoader cl) {
- String pmfClassName = (String) props.get (
- "javax.jdo.PersistenceManagerFactoryClass"); //NOI18N
- if (pmfClassName == null) {
- throw new JDOFatalUserException (msg.msg(
- "EXC_GetPMFNoClassNameProperty")); // NOI18N
- }
- try {
- Class pmfClass = cl.loadClass (pmfClassName);
- Method pmfMethod = pmfClass.getMethod(
- "getPersistenceManagerFactory", //NOI18N
- new Class[] {Map.class});
- return (PersistenceManagerFactory) pmfMethod.invoke (
- null, new Object[] {props});
- } catch (ClassNotFoundException cnfe) {
- throw new JDOFatalUserException (msg.msg(
- "EXC_GetPMFClassNotFound", pmfClassName), cnfe); //NOI18N
- } catch (IllegalAccessException iae) {
- throw new JDOFatalUserException (msg.msg(
- "EXC_GetPMFIllegalAccess", pmfClassName), iae); //NOI18N
- } catch (NoSuchMethodException nsme) {
- throw new JDOFatalInternalException (msg.msg(
- "EXC_GetPMFNoSuchMethod"), nsme); //NOI18N
- } catch (InvocationTargetException ite) {
- Throwable nested = ite.getTargetException();
- if (nested instanceof JDOException) {
- throw (JDOException)nested;
- } else throw new JDOFatalInternalException (msg.msg(
- "EXC_GetPMFUnexpectedException"), ite); //NOI18N
- } catch (NullPointerException e) {
- throw new JDOFatalInternalException (msg.msg(
- "EXC_GetPMFNullPointerException", pmfClassName), e); //NOI18N
- } catch (ClassCastException e) {
- throw new JDOFatalInternalException (msg.msg(
- "EXC_GetPMFClassCastException", pmfClassName), e); //NOI18N
- } catch (Exception e) {
- throw new JDOFatalInternalException (msg.msg(
- "EXC_GetPMFUnexpectedException"), e); //NOI18N
- }
- }
-
- /**
- * Returns a {@link PersistenceManagerFactory} configured based
- * on the properties stored in the resource at
- * <code>propsResource</code>. This method is equivalent to
- * invoking {@link
- * #getPersistenceManagerFactory(String,ClassLoader)} with
- * <code>Thread.currentThread().getContextClassLoader()</code> as
- * the <code>loader</code> argument.
- * @since 2.0
- * @param propsResource the resource containing the Properties
- * @return the PersistenceManagerFactory
- */
- public static PersistenceManagerFactory getPersistenceManagerFactory
- (String propsResource) {
- return getPersistenceManagerFactory (propsResource,
- getContextClassLoader());
- }
-
- /**
- * Returns a {@link PersistenceManagerFactory} configured based
- * on the properties stored in the resource at
- * <code>propsResource</code>. Loads the resource via
- * <code>loader</code>, and creates a {@link
- * PersistenceManagerFactory} with <code>loader</code>. Any
- * <code>IOException</code>s thrown during resource loading will
- * be wrapped in a {@link JDOFatalUserException}.
- * @since 2.0
- * @param propsResource the resource containing the Properties
- * @param loader the class loader to use to load both the propsResource and
- * the <code>PersistenceManagerFactory</code> class
- * @return the PersistenceManagerFactory
- */
- public static PersistenceManagerFactory getPersistenceManagerFactory
- (String propsResource, ClassLoader loader) {
- return getPersistenceManagerFactory(propsResource, loader, loader);
- }
-
- /**
- * Returns a {@link PersistenceManagerFactory} configured based
- * on the properties stored in the resource at
- * <code>propsResource</code>. Loads the Properties via
- * <code>propsLoader</code>, and creates a {@link
- * PersistenceManagerFactory} with <code>pmfLoader</code>. Any
- * <code>IOException</code>s thrown during resource loading will
- * be wrapped in a {@link JDOFatalUserException}.
- * @since 2.0
- * @param propsResource the resource containing the Properties
- * @param propsLoader the class loader to use to load the propsResource
- * @param pmfLoader the class loader to use to load the
- * <code>PersistenceManagerFactory</code> class
- * @return the PersistenceManagerFactory
- */
- public static PersistenceManagerFactory getPersistenceManagerFactory
- (String propsResource, ClassLoader propsLoader, ClassLoader pmfLoader) {
-
- if (propsResource == null)
- throw new JDOFatalUserException (msg.msg (
- "EXC_GetPMFNullResource")); //NOI18N
- if (propsLoader == null)
- throw new JDOFatalUserException (msg.msg (
- "EXC_GetPMFNullPropsLoader")); //NOI18N
- if (pmfLoader == null)
- throw new JDOFatalUserException (msg.msg (
- "EXC_GetPMFNullPMFLoader")); //NOI18N
-
- Properties props = new Properties ();
- InputStream in = null;
- try {
- in = propsLoader.getResourceAsStream (propsResource);
- if (in == null)
- throw new JDOFatalUserException (msg.msg (
- "EXC_GetPMFNoResource", propsResource, propsLoader)); //NOI18N
- props.load (in);
- } catch (IOException ioe) {
- throw new JDOFatalUserException (msg.msg (
- "EXC_GetPMFIOExceptionRsrc", propsResource), ioe); //NOI18N
- }
- finally {
- if (in != null)
- try {
- in.close ();
- } catch (IOException ioe) { }
- }
-
- return getPersistenceManagerFactory (props, pmfLoader);
- }
-
-
- /**
- * Returns a {@link PersistenceManagerFactory} configured based
- * on the properties stored in the file at
- * <code>propsFile</code>. This method is equivalent to
- * invoking {@link
- * #getPersistenceManagerFactory(File,ClassLoader)} with
- * <code>Thread.currentThread().getContextClassLoader()</code> as
- * the <code>loader</code> argument.
- * @since 2.0
- * @param propsFile the file containing the Properties
- * @return the PersistenceManagerFactory
- */
- public static PersistenceManagerFactory getPersistenceManagerFactory
- (File propsFile) {
- return getPersistenceManagerFactory (propsFile,
- getContextClassLoader());
- }
-
- /**
- * Returns a {@link PersistenceManagerFactory} configured based
- * on the properties stored in the file at
- * <code>propsFile</code>. Creates a {@link
- * PersistenceManagerFactory} with <code>loader</code>. Any
- * <code>IOException</code>s or
- * <code>FileNotFoundException</code>s thrown during resource
- * loading will be wrapped in a {@link JDOFatalUserException}.
- * @since 2.0
- * @param propsFile the file containing the Properties
- * @param loader the class loader to use to load the
- * <code>PersistenceManagerFactory</code> class
- * @return the PersistenceManagerFactory
- */
- public static PersistenceManagerFactory getPersistenceManagerFactory
- (File propsFile, ClassLoader loader) {
- if (propsFile == null)
- throw new JDOFatalUserException (msg.msg (
- "EXC_GetPMFNullFile")); //NOI18N
- if (loader == null)
- throw new JDOFatalUserException (msg.msg (
- "EXC_GetPMFNullLoader")); //NOI18N
- Properties props = new Properties ();
- InputStream in = null;
- try {
- in = new FileInputStream (propsFile);
- props.load (in);
- } catch (FileNotFoundException fnfe) {
- throw new JDOFatalUserException (msg.msg (
- "EXC_GetPMFNoFile", propsFile, loader), fnfe); //NOI18N
- } catch (IOException ioe) {
- throw new JDOFatalUserException (msg.msg (
- "EXC_GetPMFIOExceptionFile", propsFile), ioe); //NOI18N
- } finally {
- if (in != null)
- try {
- in.close ();
- } catch (IOException ioe) { }
- }
- return getPersistenceManagerFactory (props, loader);
- }
-
- /**
- * Returns a {@link PersistenceManagerFactory} at the JNDI
- * location specified by <code>jndiLocation</code> in the context
- * <code>context</code>. If <code>context</code> is
- * <code>null</code>, <code>new InitialContext()</code> will be
- * used. This method is equivalent to invoking {@link
- * #getPersistenceManagerFactory(String,Context,ClassLoader)}
- * with <code>Thread.currentThread().getContextClassLoader()</code> as
- * the <code>loader</code> argument.
- * @since 2.0
- * @param jndiLocation the JNDI location containing the
- * PersistenceManagerFactory
- * @param context the context in which to find the named
- * PersistenceManagerFactory
- * @return the PersistenceManagerFactory
- */
- public static PersistenceManagerFactory getPersistenceManagerFactory
- (String jndiLocation, Context context) {
- return getPersistenceManagerFactory (jndiLocation, context,
- getContextClassLoader());
- }
-
-
- /**
- * Returns a {@link PersistenceManagerFactory} at the JNDI
- * location specified by <code>jndiLocation</code> in the context
- * <code>context</code>. If <code>context</code> is
- * <code>null</code>, <code>new InitialContext()</code> will be
- * used. Creates a {@link PersistenceManagerFactory} with
- * <code>loader</code>. Any <code>NamingException</code>s thrown
- * will be wrapped in a {@link JDOFatalUserException}.
- * @since 2.0
- * @param jndiLocation the JNDI location containing the
- * PersistenceManagerFactory
- * @param context the context in which to find the named
- * PersistenceManagerFactory
- * @param loader the class loader to use to load the
- * <code>PersistenceManagerFactory</code> class
- * @return the PersistenceManagerFactory
- */
- public static PersistenceManagerFactory getPersistenceManagerFactory
- (String jndiLocation, Context context, ClassLoader loader) {
- if (jndiLocation == null)
- throw new JDOFatalUserException (msg.msg (
- "EXC_GetPMFNullJndiLoc")); //NOI18N
- if (loader == null)
- throw new JDOFatalUserException (msg.msg (
- "EXC_GetPMFNullLoader")); //NOI18N
- try {
- if (context == null)
- context = new InitialContext ();
-
- Object o = context.lookup (jndiLocation);
- return (PersistenceManagerFactory) PortableRemoteObject.narrow
- (o, PersistenceManagerFactory.class);
- } catch (NamingException ne) {
- throw new JDOFatalUserException (msg.msg (
- "EXC_GetPMFNamingException", jndiLocation, loader), ne); //NOI18N
- }
- }
-
- /**
- * Returns a {@link PersistenceManagerFactory} configured based
- * on the Properties stored in the input stream at
- * <code>stream</code>. This method is equivalent to
- * invoking {@link
- * #getPersistenceManagerFactory(InputStream,ClassLoader)} with
- * <code>Thread.currentThread().getContextClassLoader()</code> as
- * the <code>loader</code> argument.
- * @since 2.0
- * @param stream the stream containing the Properties
- * @return the PersistenceManagerFactory
- */
- public static PersistenceManagerFactory getPersistenceManagerFactory
- (InputStream stream) {
- return getPersistenceManagerFactory (stream,
- getContextClassLoader());
- }
-
- /**
- * Returns a {@link PersistenceManagerFactory} configured based
- * on the Properties stored in the input stream at
- * <code>stream</code>. Creates a {@link
- * PersistenceManagerFactory} with <code>loader</code>. Any
- * <code>IOException</code>s thrown during resource
- * loading will be wrapped in a {@link JDOFatalUserException}.
- * @since 2.0
- * @param stream the stream containing the Properties
- * @param loader the class loader to use to load the
- * <code>PersistenceManagerFactory</code> class
- * @return the PersistenceManagerFactory
- */
- public static PersistenceManagerFactory getPersistenceManagerFactory
- (InputStream stream, ClassLoader loader) {
- if (stream == null)
- throw new JDOFatalUserException (msg.msg (
- "EXC_GetPMFNullStream")); //NOI18N
- if (loader == null)
- throw new JDOFatalUserException (msg.msg (
- "EXC_GetPMFNullLoader")); //NOI18N
- Properties props = new Properties ();
- try {
- props.load (stream);
- } catch (IOException ioe) {
- throw new JDOFatalUserException
- (msg.msg ("EXC_GetPMFIOExceptionStream"), ioe); //NOI18N
- }
- return getPersistenceManagerFactory (props, loader);
- }
-
- /** Get the context class loader associated with the current thread.
- * This is done in a doPrivileged block because it is a secure method.
- * @return the current thread's context class loader.
- * @since 2.0
- */
- private static ClassLoader getContextClassLoader() {
- return (ClassLoader)AccessController.doPrivileged(
- new PrivilegedAction () {
- public Object run () {
- return Thread.currentThread().getContextClassLoader();
- }
- }
- );
- }
-}
diff --git a/api20/src/java/javax/jdo/JDONullIdentityException.java b/api20/src/java/javax/jdo/JDONullIdentityException.java
deleted file mode 100644
index dece60e..0000000
--- a/api20/src/java/javax/jdo/JDONullIdentityException.java
+++ /dev/null
@@ -1,77 +0,0 @@
-/*
- * Copyright 2005 The Apache Software Foundation.
- *
- * Licensed 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.
- */
-
-/*
- * JDONullIdentityException.java
- *
- */
-
-package javax.jdo;
-
-/** An instance of this class is thrown when attempting to create an object id
- * when the object id constructor parameter is null. This might occur when
- * creating an object id instance from a transient instance where an identity
- * field is null.
- *
- * @since 2.0
- * @version 2.0
- */
-public class JDONullIdentityException extends JDOUserException {
-
- /**
- * Constructs a new <code>JDONullIdentityException</code> without a detail message.
- */
- public JDONullIdentityException() {
- }
-
- /**
- * Constructs a new <code>JDONullIdentityException</code> with the specified detail message.
- * @param msg the detail message.
- */
- public JDONullIdentityException(String msg) {
- super(msg);
- }
-
- /** Constructs a new <code>JDONullIdentityException</code> with the specified detail message
- * and failed object.
- * @param msg the detail message.
- * @param failed the failed object.
- */
- public JDONullIdentityException(String msg, Object failed) {
- super(msg, failed);
- }
-
- /**
- * Constructs a new <code>JDONullIdentityException</code> with the specified
- * detail message and nested <code>Throwable</code>s.
- * @param msg the detail message.
- * @param nested the nested <code>Throwable[]</code>.
- */
- public JDONullIdentityException(String msg, Throwable[] nested) {
- super(msg, nested);
- }
-
- /**
- * Constructs a new <code>JDONullIdentityException</code> with the specified detail message
- * and nested <code>Throwable</code>s.
- * @param msg the detail message.
- * @param nested the nested <code>Throwable</code>.
- */
- public JDONullIdentityException(String msg, Throwable nested) {
- super(msg, nested);
- }
-
-}
diff --git a/api20/src/java/javax/jdo/JDOObjectNotFoundException.java b/api20/src/java/javax/jdo/JDOObjectNotFoundException.java
deleted file mode 100644
index b407e0a..0000000
--- a/api20/src/java/javax/jdo/JDOObjectNotFoundException.java
+++ /dev/null
@@ -1,69 +0,0 @@
-/*
- * Copyright 2005 The Apache Software Foundation.
- *
- * Licensed 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.
- */
-
-/*
- * JDOObjectNotFoundException.java
- *
- */
-
-package javax.jdo;
-
-/** This class represents exceptions caused by the user accessing
- * an object that does not exist in the datastore.
- *
- * @since 1.0.1
- * @version 1.0.1
- */
-public class JDOObjectNotFoundException extends JDODataStoreException {
-
- /**
- * Constructs a new <code>JDOObjectNotFoundException</code>
- * without a detail message.
- */
- public JDOObjectNotFoundException() {
- }
-
-
- /**
- * Constructs a new <code>JDOObjectNotFoundException</code>
- * with the specified detail message.
- * @param msg the detail message.
- */
- public JDOObjectNotFoundException(String msg) {
- super(msg);
- }
-
- /** Constructs a new <code>JDOObjectNotFoundException</code> with the specified detail message
- * and failed object.
- * @param msg the detail message.
- * @param failed the failed object.
- */
- public JDOObjectNotFoundException(String msg, Object failed) {
- super(msg, failed);
- }
-
- /**
- * Constructs a new <code>JDOObjectNotFoundException</code> with the
- * specified detail message and nested <code>Throwable</code>s.
- * @param msg the detail message.
- * @param nested the nested <code>Throwable[]</code>.
- */
- public JDOObjectNotFoundException(String msg, Throwable[] nested) {
- super(msg, nested);
- }
-
-}
-
diff --git a/api20/src/java/javax/jdo/JDOOptimisticVerificationException.java b/api20/src/java/javax/jdo/JDOOptimisticVerificationException.java
deleted file mode 100644
index 06d75c6..0000000
--- a/api20/src/java/javax/jdo/JDOOptimisticVerificationException.java
+++ /dev/null
@@ -1,70 +0,0 @@
-/*
- * Copyright 2005 The Apache Software Foundation.
- *
- * Licensed 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.
- */
-
-/*
- * JDOOptimisticVerificationException.java
- *
- */
-
-package javax.jdo;
-
-/** This class represents optimistic verification failures. The nested
- * exception array contains an exception for each instance that failed
- * the optimistic verification.
- *
- * @since 1.0.1
- * @version 1.0.1
- */
-public class JDOOptimisticVerificationException extends JDOFatalDataStoreException {
-
- /**
- * Constructs a new <code>JDOOptimisticVerificationException</code> without a
- * detail message.
- */
- public JDOOptimisticVerificationException() {
- }
-
-
- /**
- * Constructs a new <code>JDOOptimisticVerificationException</code> with the
- * specified detail message.
- * @param msg the detail message.
- */
- public JDOOptimisticVerificationException(String msg) {
- super(msg);
- }
-
- /** Constructs a new <code>JDOOptimisticVerificationException</code> with the
- * specified detail message and failed object.
- * @param msg the detail message.
- * @param failed the failed object.
- */
- public JDOOptimisticVerificationException(String msg, Object failed) {
- super(msg, failed);
- }
-
- /**
- * Constructs a new <code>JDOOptimisticVerificationException</code> with the
- * specified detail message and nested <code>Throwable</code>s.
- * @param msg the detail message.
- * @param nested the nested <code>Throwable[]</code>.
- */
- public JDOOptimisticVerificationException(String msg, Throwable[] nested) {
- super(msg, nested);
- }
-
-}
-
diff --git a/api20/src/java/javax/jdo/JDOUnsupportedOptionException.java b/api20/src/java/javax/jdo/JDOUnsupportedOptionException.java
deleted file mode 100644
index 9d06f31..0000000
--- a/api20/src/java/javax/jdo/JDOUnsupportedOptionException.java
+++ /dev/null
@@ -1,66 +0,0 @@
-/*
- * Copyright 2005 The Apache Software Foundation.
- *
- * Licensed 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.
- */
-
-/*
- * JDOUnsupportedOptionException.java
- *
- */
-
-package javax.jdo;
-
-/** This class represents exceptions caused by the use of optional features
- * not supported by the JDO implementation.
- *
- * @version 1.0
- */
-public class JDOUnsupportedOptionException extends JDOUserException {
-
- /**
- * Constructs a new <code>JDOUnsupportedOptionException</code> without a detail message.
- */
- public JDOUnsupportedOptionException() {
- }
-
-
- /**
- * Constructs a new <code>JDOUnsupportedOptionException</code> with the specified detail message.
- * @param msg the detail message.
- */
- public JDOUnsupportedOptionException(String msg) {
- super(msg);
- }
-
- /**
- * Constructs a new <code>JDOUnsupportedOptionException</code> with the
- * specified detail message and nested <code>Throwable</code>s.
- * @param msg the detail message.
- * @param nested the nested <code>Throwable[]</code>.
- */
- public JDOUnsupportedOptionException(String msg, Throwable[] nested) {
- super(msg, nested);
- }
-
- /**
- * Constructs a new <code>JDOUnsupportedOptionException</code> with the
- * specified detail message and nested <code>Throwable</code>s.
- * @param msg the detail message.
- * @param nested the nested <code>Throwable</code>.
- */
- public JDOUnsupportedOptionException(String msg, Throwable nested) {
- super(msg, nested);
- }
-}
-
diff --git a/api20/src/java/javax/jdo/JDOUserCallbackException.java b/api20/src/java/javax/jdo/JDOUserCallbackException.java
deleted file mode 100644
index 31b2374..0000000
--- a/api20/src/java/javax/jdo/JDOUserCallbackException.java
+++ /dev/null
@@ -1,67 +0,0 @@
-/*
- * Copyright 2005 The Apache Software Foundation.
- *
- * Licensed 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.
- */
-
-/*
- * JDOUserCallbackException.java
- *
- */
-
-package javax.jdo;
-
-/** This class represents exceptions caused by exceptions thrown
- * during execution of callbacks or listeners.
- *
- * @version 2.0
- */
-public class JDOUserCallbackException extends JDOUserException {
-
- /**
- * Constructs a new <code>JDOUserCallbackException</code>
- * without a detail message.
- */
- public JDOUserCallbackException() {
- }
-
- /**
- * Constructs a new <code>JDOUserCallbackException</code>
- * with the specified detail message.
- * @param msg the detail message.
- */
- public JDOUserCallbackException(String msg) {
- super(msg);
- }
-
- /**
- * Constructs a new <code>JDOUserCallbackException</code> with the
- * specified detail message and nested <code>Throwable</code>s.
- * @param msg the detail message.
- * @param nested the nested <code>Throwable[]</code>.
- */
- public JDOUserCallbackException(String msg, Throwable[] nested) {
- super(msg, nested);
- }
-
- /**
- * Constructs a new <code>JDOUserCallbackException</code> with the
- * specified detail message and nested <code>Throwable</code>s.
- * @param msg the detail message.
- * @param nested the nested <code>Throwable</code>.
- */
- public JDOUserCallbackException(String msg, Throwable nested) {
- super(msg, nested);
- }
-}
-
diff --git a/api20/src/java/javax/jdo/JDOUserException.java b/api20/src/java/javax/jdo/JDOUserException.java
deleted file mode 100644
index cb3e48d..0000000
--- a/api20/src/java/javax/jdo/JDOUserException.java
+++ /dev/null
@@ -1,94 +0,0 @@
-/*
- * Copyright 2005 The Apache Software Foundation.
- *
- * Licensed 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.
- */
-
-/*
- * JDOUserException.java
- *
- */
-
-package javax.jdo;
-
-/** This class represents user errors that can possibly be retried.
- *
- * @version 1.0
- */
-public class JDOUserException extends JDOCanRetryException {
-
- /**
- * Constructs a new <code>JDOUserException</code> without a detail message.
- */
- public JDOUserException() {
- }
-
-
- /**
- * Constructs a new <code>JDOUserException</code> with the specified detail message.
- * @param msg the detail message.
- */
- public JDOUserException(String msg) {
- super(msg);
- }
-
- /**
- * Constructs a new <code>JDOUserException</code> with the specified detail message
- * and nested <code>Throwable</code>s.
- * @param msg the detail message.
- * @param nested the nested <code>Throwable[]</code>.
- */
- public JDOUserException(String msg, Throwable[] nested) {
- super(msg, nested);
- }
-
- /**
- * Constructs a new <code>JDOUserException</code> with the specified detail message
- * and nested <code>Throwable</code>s.
- * @param msg the detail message.
- * @param nested the nested <code>Throwable</code>.
- */
- public JDOUserException(String msg, Throwable nested) {
- super(msg, nested);
- }
-
- /** Constructs a new <code>JDOUserException</code> with the specified detail message
- * and failed object.
- * @param msg the detail message.
- * @param failed the failed object.
- */
- public JDOUserException(String msg, Object failed) {
- super(msg, failed);
- }
-
- /** Constructs a new <code>JDOUserException</code> with the specified detail message,
- * nested <code>Throwable</code>s, and failed object.
- * @param msg the detail message.
- * @param nested the nested <code>Throwable[]</code>.
- * @param failed the failed object.
- */
- public JDOUserException(String msg, Throwable[] nested, Object failed) {
- super(msg, nested, failed);
- }
-
- /** Constructs a new <code>JDOUserException</code> with the specified detail message,
- * nested <code>Throwable</code>s, and failed object.
- * @param msg the detail message.
- * @param nested the nested <code>Throwable</code>.
- * @param failed the failed object.
- */
- public JDOUserException(String msg, Throwable nested, Object failed) {
- super(msg, nested, failed);
- }
-}
-
diff --git a/api20/src/java/javax/jdo/PersistenceManager.java b/api20/src/java/javax/jdo/PersistenceManager.java
deleted file mode 100644
index c3f84b6..0000000
--- a/api20/src/java/javax/jdo/PersistenceManager.java
+++ /dev/null
@@ -1,1086 +0,0 @@
-/*
- * Copyright 2005 The Apache Software Foundation.
- *
- * Licensed 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.
- */
-
-/*
- * PersistenceManager.java
- *
- */
-
-package javax.jdo;
-
-import java.util.Collection;
-
-import javax.jdo.datastore.JDOConnection;
-import javax.jdo.datastore.Sequence;
-
-import javax.jdo.listener.InstanceLifecycleListener;
-
-/** <code>PersistenceManager</code> is the primary interface for JDO-aware
- * application components. It is the factory for <code>Query</code> and
- * <code>Transaction</code> instances, and contains methods to manage the
- * life cycle of <code>PersistenceCapable</code> instances.
- *
- * <P>A <code>PersistenceManager</code> is obtained from the
- * {@link PersistenceManagerFactory}
- * (recommended) or by construction.
- * @version 2.0
- */
-
-public interface PersistenceManager {
- /**
- * A <code>PersistenceManager</code> instance can be used until it is
- * closed.
- * @return <code>true</code> if this <code>PersistenceManager</code> has
- * been closed.
- * @see #close()
- */
- boolean isClosed ();
-
- /** Close this <code>PersistenceManager</code> so that no further requests
- * may be made on it. A <code>PersistenceManager</code> instance can be
- * used only until it is closed.
- *
- * <P>Closing a <code>PersistenceManager</code> might release it to the pool
- * of available <code>PersistenceManager</code>s, or might be garbage
- * collected, at the option of the JDO implementation. Before being used
- * again to satisfy a <code>getPersistenceManager()</code> request, the
- * default values for options will be restored to their values as specified
- * in the <code>PersistenceManagerFactory</code>.
- *
- * <P>This method closes the <code>PersistenceManager</code>.
- */
- void close ();
-
- /** Return the <code>Transaction</code> instance associated with a
- * <code>PersistenceManager</code>. There is one <code>Transaction</code>
- * instance associated with each <code>PersistenceManager</code> instance.
- * The <code>Transaction</code> instance supports options as well as
- * transaction completion requests.
- * @return the <code>Transaction</code> associated with this
- * <code>PersistenceManager</code>.
- */
- Transaction currentTransaction();
-
- /** Mark an instance as no longer needed in the cache. Eviction is normally
- * done automatically by the <code>PersistenceManager</code> at transaction
- * completion. This method allows the application to explicitly provide a
- * hint to the <code>PersistenceManager</code> that the instance is no
- * longer needed in the cache.
- * @param pc the instance to evict from the cache.
- */
- void evict (Object pc);
-
- /** Mark an array of instances as no longer needed in the cache.
- * @see #evict(Object pc)
- * @param pcs the array of instances to evict from the cache.
- */
- void evictAll (Object[] pcs);
-
- /** Mark a <code>Collection</code> of instances as no longer needed in the
- * cache.
- * @see #evict(Object pc)
- * @param pcs the <code>Collection</code> of instances to evict from the
- * cache.
- */
- void evictAll (Collection pcs);
-
- /** Mark all persistent-nontransactional instances as no longer needed
- * in the cache. It transitions
- * all persistent-nontransactional instances to hollow. Transactional
- * instances are subject to eviction based on the RetainValues setting.
- * @see #evict(Object pc)
- */
- void evictAll ();
-
- /** Refresh the state of the instance from the data store.
- *
- * <P>In an optimistic transaction, the state of instances in the cache
- * might not match the state in the data store. This method is used to
- * reload the state of the instance from the data store so that a subsequent
- * commit is more likely to succeed.
- * <P>Outside a transaction, this method will refresh nontransactional
- * state.
- * @param pc the instance to refresh.
- */
- void refresh (Object pc);
-
- /** Refresh the state of an array of instances from the data store.
- *
- * @see #refresh(Object pc)
- * @param pcs the array of instances to refresh.
- */
- void refreshAll (Object[] pcs);
-
- /** Refresh the state of a <code>Collection</code> of instances from the
- * data store.
- *
- * @see #refresh(Object pc)
- * @param pcs the <code>Collection</code> of instances to refresh.
- */
- void refreshAll (Collection pcs);
-
- /** Refresh the state of all applicable instances from the data store.
- * <P>If called with an active transaction, all transactional instances
- * will be refreshed. If called outside an active transaction, all
- * nontransactional instances will be refreshed.
- * @see #refresh(Object pc)
- */
- void refreshAll ();
-
- /**
- * Refreshes all instances in the exception that failed verification.
- *
- * @since 2.0
- */
- void refreshAll (JDOException jdoe);
-
- /** Create a new <code>Query</code> with no elements.
- * @return the new <code>Query</code>.
- */
- Query newQuery ();
-
- /** Create a new <code>Query</code> using elements from another
- * <code>Query</code>. The other <code>Query</code> must have been created
- * by the same JDO implementation. It might be active in a different
- * <code>PersistenceManager</code> or might have been serialized and
- * restored.
- * <P>All of the settings of the other <code>Query</code> are copied to this
- * <code>Query</code>, except for the candidate <code>Collection</code> or
- * <code>Extent</code>.
- * @return the new <code>Query</code>
- * @param compiled another <code>Query</code> from the same JDO
- * implementation
- */
- Query newQuery (Object compiled);
-
- /** Create a Construct a new query instance using the specified String
- * as the single-string representation of the query.
- * @param query the single-string query
- * @return the new <code>Query</code>
- * @since 2.0
- */
- Query newQuery (String query);
-
- /** Create a new <code>Query</code> using the specified language.
- * @param language the language of the query parameter
- * @param query the query, which is of a form determined by the language
- * @return the new <code>Query</code>
- */
- Query newQuery (String language, Object query);
-
- /** Create a new <code>Query</code> specifying the <code>Class</code> of the
- * candidate instances.
- * @param cls the <code>Class</code> of the candidate instances
- * @return the new <code>Query</code>
- */
- Query newQuery (Class cls);
-
- /** Create a new <code>Query</code> with the <code>Class</code> of the
- * candidate instances and candidate <code>Extent</code>.
- * @param cln the <code>Extent</code> of candidate instances
- * @return the new <code>Query</code>
- */
- Query newQuery (Extent cln);
-
- /** Create a new <code>Query</code> with the candidate <code>Class</code>
- * and <code>Collection</code>.
- * @param cls the <code>Class</code> of results
- * @param cln the <code>Collection</code> of candidate instances
- * @return the new <code>Query</code>
- */
- Query newQuery (Class cls, Collection cln);
-
- /** Create a new <code>Query</code> with the <code>Class</code> of the
- * candidate instances and filter.
- * @param cls the <code>Class</code> of results
- * @param filter the filter for candidate instances
- * @return the new <code>Query</code>
- */
- Query newQuery (Class cls, String filter);
-
- /** Create a new <code>Query</code> with the <code>Class</code> of the
- * candidate instances,
- * candidate <code>Collection</code>, and filter.
- * @param cls the <code>Class</code> of candidate instances
- * @param cln the <code>Collection</code> of candidate instances
- * @param filter the filter for candidate instances
- * @return the new <code>Query</code>
- */
- Query newQuery (Class cls, Collection cln, String filter);
-
- /** Create a new <code>Query</code> with the
- * candidate <code>Extent</code> and filter; the class
- * is taken from the <code>Extent</code>.
- * @param cln the <code>Extent</code> of candidate instances
- * @param filter the filter for candidate instances
- * @return the new <code>Query</code>
- */
- Query newQuery (Extent cln, String filter);
-
- /**
- * Create a new <code>Query</code> with the given candidate class
- * from a named query. The query name given must be the name of a
- * query defined in metadata.
- * @param cls the <code>Class</code> of candidate instances
- * @param queryName the name of the query to look up in metadata
- * @return the new <code>Query</code>
- */
- Query newNamedQuery (Class cls, String queryName);
-
- /** The <code>PersistenceManager</code> manages a collection of instances in
- * the data store based on the class of the instances. This method returns
- * an <code>Extent</code> of instances in the data store that might be
- * iterated or given to a <code>Query</code>. The <code>Extent</code>
- * itself might not reference any instances, but only hold the class name
- * and an indicator as to whether subclasses are included in the
- * <code>Extent</code>.
- * <P>Note that the <code>Extent</code> might be very large.
- * @param persistenceCapableClass <code>Class</code> of instances
- * @param subclasses whether to include instances of subclasses
- * @return an <code>Extent</code> of the specified <code>Class</code>
- * @see Query
- */
- Extent getExtent (Class persistenceCapableClass, boolean subclasses);
-
- /**
- * Equivalent to <code>getExtent (persistenceCapableClass,
- * true)</code>.
- * @see #getExtent(Class,boolean)
- * @since 2.0
- */
- Extent getExtent (Class persistenceCapableClass);
-
- /** This method locates a persistent instance in the cache of instances
- * managed by this <code>PersistenceManager</code>.
- * The <code>getObjectById</code> method attempts
- * to find an instance in the cache with the specified JDO identity.
- * The <code>oid</code> parameter object might have been returned by an
- * earlier call to <code>getObjectId</code> or
- * <code>getTransactionalObjectId</code>, or might have been constructed by
- * the application.
- * <P>If the <code>PersistenceManager</code> is unable to resolve the
- * <code>oid</code> parameter to an ObjectId instance, then it throws a
- * <code>JDOUserException</code>.
- * <P>If the <code>validate</code> flag is <code>false</code>, and there is
- * already an instance in the cache with the same JDO identity as the
- * <code>oid</code> parameter, then this method returns it. There is no
- * change made to the state of the returned instance.
- * <P>If there is not an instance already in the cache with the same JDO
- * identity as the <code>oid</code> parameter, then this method creates an
- * instance with the specified JDO identity and returns it. If there is no
- * transaction in progress, the returned instance will be hollow or
- * persistent-nontransactional, at the choice of the implementation.
- * <P>If there is a transaction in progress, the returned instance will
- * be hollow, persistent-nontransactional, or persistent-clean, at the
- * choice of the implementation.
- * <P>It is an implementation decision whether to access the data store,
- * if required to determine the exact class. This will be the case of
- * inheritance, where multiple <code>PersistenceCapable</code> classes share
- * the same ObjectId class.
- * <P>If the validate flag is <code>false</code>, and the instance does not
- * exist in the data store, then this method might not fail. It is an
- * implementation choice whether to fail immediately with a
- * <code>JDOObjectNotFoundException</code>. But a subsequent access
- * of the fields of the
- * instance will throw a <code>JDOObjectNotFoundException</code>
- * if the instance does not
- * exist at that time. Further, if a relationship is established to this
- * instance, then the transaction in which the association was made will
- * fail.
- * <P>If the <code>validate</code> flag is <code>true</code>, and there is
- * already a transactional instance in the cache with the same JDO identity
- * as the <code>oid</code> parameter, then this method returns it. There is
- * no change made to the state of the returned instance.
- * <P>If there is an instance already in the cache with the same JDO
- * identity as the <code>oid</code> parameter, but the instance is not
- * transactional, then it must be verified in the data store. If the
- * instance does not exist in the datastore, then a
- * <code>JDOObjectNotFoundException</code> is thrown.
- * <P>If there is not an instance already in the cache with the same JDO
- * identity as the <code>oid</code> parameter, then this method creates an
- * instance with the specified JDO identity, verifies that it exists in the
- * data store, and returns it. If there is no transaction in progress, the
- * returned instance will be hollow or persistent-nontransactional,
- * at the choice of the implementation.
- * <P>If there is a data store transaction in progress, the returned
- * instance will be persistent-clean.
- * If there is an optimistic transaction in progress, the returned
- * instance will be persistent-nontransactional.
- * @see #getObjectId(Object pc)
- * @see #getTransactionalObjectId(Object pc)
- * @return the <code>PersistenceCapable</code> instance with the specified
- * ObjectId
- * @param oid an ObjectId
- * @param validate if the existence of the instance is to be validated
- */
- Object getObjectById (Object oid, boolean validate);
-
- /**
- * Looks up the instance of the given type with the given key.
- * @param cls The type of object to load
- * @param key either the string representation of the object id, or
- * an object representation of a single field identity key
- * @return the corresponding persistent instance
- * @since 2.0
- */
- Object getObjectById (Class cls, Object key);
-
- /**
- * Looks up the instance corresponding to the specified oid. This is
- * equivalent to <code>getObjectById(oid, true);
- * @param oid The object id of the object to load
- * @return the corresponding persistent instance
- */
- Object getObjectById (Object oid);
-
- /** The ObjectId returned by this method represents the JDO identity of
- * the instance. The ObjectId is a copy (clone) of the internal state
- * of the instance, and changing it does not affect the JDO identity of
- * the instance.
- * <P>The <code>getObjectId</code> method returns an ObjectId instance that
- * represents the object identity of the specified JDO instance. The
- * identity is guaranteed to be unique only in the context of the JDO
- * <code>PersistenceManager</code> that created the identity, and only for
- * two types of JDO Identity: those that are managed by the application, and
- * those that are managed by the data store.
- * <P>If the object identity is being changed in the transaction, by the
- * application modifying one or more of the application key fields,
- * then this method returns the identity as of the beginning of the
- * transaction. The value returned by <code>getObjectId</code> will be
- * different following <code>afterCompletion</code> processing for
- * successful transactions. <P>Within a transaction, the ObjectId returned
- * will compare equal to the ObjectId returned by only one among all JDO
- * instances associated with the <code>PersistenceManager</code> regardless
- * of the type of ObjectId.
- * <P>The ObjectId does not necessarily contain any internal state of the
- * instance, nor is it necessarily an instance of the class used to
- * manage identity internally. Therefore, if the application makes a
- * change to the ObjectId instance returned by this method, there is
- * no effect on the instance from which the ObjectId was obtained.
- * <P>The <code>getObjectById</code> method can be used between instances of
- * <code>PersistenceManager</code> of different JDO vendors only for
- * instances of persistence capable classes using application-managed
- * (primary key) JDO identity. If it is used for instances of classes using
- * datastore identity, the method might succeed, but there are no guarantees
- * that the parameter and return instances are related in any way.
- * @see #getTransactionalObjectId(Object pc)
- * @see #getObjectById(Object oid, boolean validate)
- * @param pc the <code>PersistenceCapable</code> instance
- * @return the ObjectId of the instance
- */
- Object getObjectId (Object pc);
-
- /** The ObjectId returned by this method represents the JDO identity of
- * the instance. The ObjectId is a copy (clone) of the internal state
- * of the instance, and changing it does not affect the JDO identity of
- * the instance.
- * <P>If the object identity is being changed in the transaction, by the
- * application modifying one or more of the application key fields,
- * then this method returns the current identity in the transaction.
- * <P>If there is no transaction in progress, or if none of the key fields
- * is being modified, then this method will return the same value as
- * <code>getObjectId</code>.
- * @see #getObjectId(Object pc)
- * @see #getObjectById(Object oid, boolean validate)
- * @param pc a <code>PersistenceCapable</code> instance
- * @return the ObjectId of the instance
- */
- Object getTransactionalObjectId (Object pc);
-
- /**
- * This method returns an object id instance corresponding to the pcClass
- * and key arguments.
- * @param pcClass the <code>Class</code> of the persistence-capable instance
- * @param key for single-field identity, the parameter for the
- * constructor; for non-single-field application identity, the result
- * of toString() on the object id instance.
- * @return an instance of the object identity class
- */
- Object newObjectIdInstance (Class pcClass, Object key);
-
- /**
- * Return the objects with the given oids.
- * @param oids the oids of the objects to return
- * @param validate if true, the existance of the objects in
- * the datastore will be validated.
- * @return the objects that were looked up, in the
- * same order as the oids parameter.
- * @see #getObjectById(Object,boolean)
- * @since 2.0
- */
- Collection getObjectsById (Collection oids, boolean validate);
-
- /**
- * Return the objects with the given oids. This method is equivalent
- * to calling {@link #getObjectsById(Collection, boolean)}
- * with the validate flag true.
- * @param oids the oids of the objects to return
- * @return the objects that were looked up, in the
- * same order as the oids parameter.
- * @see #getObjectsById(Collection,boolean)
- * @since 2.0
- */
- Collection getObjectsById (Collection oids);
-
- /**
- * Return the objects with the given oids.
- * @param oids the oids of the objects to return
- * @param validate if true, the existance of the objects in
- * the datastore will be validated.
- * @return the objects that were looked up, in the
- * same order as the oids parameter.
- * @see #getObjectById(Object,boolean)
- * @since 2.0
- */
- Object[] getObjectsById (Object[] oids, boolean validate);
-
- /**
- * Return the objects with the given oids. This method is equivalent
- * to calling {@link #getObjectsById(Object[],boolean)}
- * with the validate flag true.
- * @param oids the oids of the objects to return
- * @return the objects that were looked up, in the
- * same order as the oids parameter.
- * @see #getObjectsById(Object[],boolean)
- * @since 2.0
- */
- Object[] getObjectsById (Object[] oids);
-
- /** Make the parameter instance persistent in this
- * <code>PersistenceManager</code>.
- * This method makes transient instances persistent and applies detached
- * instance changes to the cache. It must be called in the context of
- * an active transaction, or a JDOUserException is thrown. For a transient
- * instance, it assigns an object identity to the instance and transitions
- * it to persistent-new. Any transient instances reachable from this
- * instance via persistent fields of this instance become provisionally
- * persistent, transitively. That is, they behave as persistent-new
- * instances (return true to isPersistent, isNew, and isDirty).
- * But at commit time, the reachability algorithm is run again,
- * and instances made provisionally persistent that are not then
- * reachable from persistent instances will revert to transient.
- * <P>During makePersistent of transient instances, the create life cycle
- * listener is called.
- * <P>For detached instances, it locates or instantiates a persistent
- * instance with the same JDO identity as the detached instance,
- * and merges the persistent state of the detached instance into the
- * persistent instance. Only the state of persistent fields is merged.
- * If non-persistent state needs to be copied, the application should
- * use the jdoPostAttach callback or the postAttach lifecycle event
- * listener. Any references to the detached instances from instances
- * in the closure of the parameter instances are modified to refer to
- * the corresponding persistent instance instead of to the
- * detached instance.
- * <P>During attachment of detached instances, the attach callbacks
- * and attach life cycle listeners are called.
- * <P>During application of changes of the detached state, if the JDO
- * implementation can determine that there were no changes made during
- * detachment, then the implementation is not required to mark the
- * corresponding instance dirty. If it cannot determine if changes
- * were made, then it must mark the instance dirty.
- * No consistency checking is done during makePersistent of detached
- * instances. If consistency checking is required by the application,
- * then flush or checkConsistency should be called after attaching the
- * instances.
- * <P>These methods have no effect on parameter persistent instances
- * already managed by this PersistenceManager. They will throw a
- * JDOUserException if the parameter instance is managed by a
- * different PersistenceManager.
- * If an instance is of a class whose identity type (application,
- * datastore, or none) is not supported by the JDO implementation,
- * then a JDOUserException will be thrown for that instance.
- * The return value for parameter instances in the transient or persistent
- * states is the same as the parameter value. The return value for
- * parameter instances in the detached state is the persistent instance
- * corresponding to the detached instance.
- * The return values for makePersistentAll methods correspond by position
- * to the parameter instances.
- * @param pc an instance of a <code>Class</code> that is persistent
- * capable.
- * @return the parameter instance for parameters in the transient or
- * persistent state, or the corresponding persistent instance
- * for detached parameter instances
- */
- Object makePersistent (Object pc);
-
- /** Make an array of instances persistent.
- * @param pcs an array of instances
- * @return the parameter instances for parameters in the transient or
- * persistent state, or the corresponding persistent instance
- * for detached parameter instances, in the same order as in the
- * parameter array
- * @see #makePersistent(Object pc)
- */
- Object[] makePersistentAll (Object[] pcs);
-
- /** Make a <code>Collection</code> of instances persistent.
- * @param pcs a <code>Collection</code> of instances
- * @return the parameter instance for parameters in the transient or
- * persistent state, or the corresponding persistent instance
- * for detached parameter instances, with an iteration in the same order
- * as in the parameter Collection
- * @see #makePersistent(Object pc)
- */
- Collection makePersistentAll (Collection pcs);
-
- /** Delete the persistent instance from the data store.
- * This method must be called in an active transaction.
- * The data store object will be removed at commit.
- * Unlike <code>makePersistent</code>, which makes the closure of the
- * instance persistent, the closure of the instance is not deleted from the
- * data store. This method has no effect if the instance is already deleted
- * in the current transaction.
- * This method throws <code>JDOUserException</code> if the instance is
- * transient or is managed by another <code>PersistenceManager</code>.
- *
- * @param pc a persistent instance
- */
- void deletePersistent (Object pc);
-
- /** Delete an array of instances from the data store.
- * @param pcs a <code>Collection</code> of persistent instances
- * @see #deletePersistent(Object pc)
- */
- void deletePersistentAll (Object[] pcs);
-
- /** Delete a <code>Collection</code> of instances from the data store.
- * @param pcs a <code>Collection</code> of persistent instances
- * @see #deletePersistent(Object pc)
- */
- void deletePersistentAll (Collection pcs);
-
- /** Make an instance transient, removing it from management by this
- * <code>PersistenceManager</code>.
- *
- * <P>The instance loses its JDO identity and it is no longer associated
- * with any <code>PersistenceManager</code>. The state of fields is
- * preserved unchanged.
- * @param pc the instance to make transient.
- */
- void makeTransient (Object pc);
-
- /** Make an array of instances transient, removing them from management by
- * this <code>PersistenceManager</code>.
- *
- * <P>The instances lose their JDO identity and they are no longer
- * associated with any <code>PersistenceManager</code>. The state of fields
- * is preserved unchanged.
- * @param pcs the instances to make transient.
- */
- void makeTransientAll (Object[] pcs);
-
- /** Make a <code>Collection</code> of instances transient, removing them
- * from management by this <code>PersistenceManager</code>.
- *
- * <P>The instances lose their JDO identity and they are no longer
- * associated with any <code>PersistenceManager</code>. The state of fields
- * is preserved unchanged.
- * @param pcs the instances to make transient.
- */
- void makeTransientAll (Collection pcs);
-
- /** Make an instance transient, removing it from management by this
- * <code>PersistenceManager</code>. If the useFetchPlan parameter is
- * false, this method behaves exactly as makeTransient(Object pc).
- * <P>The affected instance(s) lose their JDO identity and are no longer
- * associated with any <code>PersistenceManager</code>. The state
- * of fields is unchanged.
- * <P>If the useFetchPlan parameter is true, then the current FetchPlan
- * is applied to the pc parameter, as if detachCopy(Object) had been
- * called. After the graph of instances is loaded, the instances
- * reachable via loaded fields is made transient. The state of fields
- * in the affected instances is as specified by the FetchPlan.
- * <P>Unlike detachCopy, the instances are not detached; there is no
- * detachment information in the instances.
- * <P>The instances to be made transient do not need to
- * implement the javax.jdo.spi.Detachable interface.
- * @param pc the root instance to make transient.
- * @param useFetchPlan whether to use the current fetch plan to determine
- * which fields to load and which instances to make transient
- * @since 2.0
- */
- void makeTransient (Object pc, boolean useFetchPlan);
-
- /** Make instances transient, removing them from management
- * by this <code>PersistenceManager</code>. If the useFetchPlan parameter
- * is false, this method behaves exactly as makeTransientAll(Object[] pcs).
- * <P>The affected instance(s) lose their JDO identity and are no longer
- * associated with any <code>PersistenceManager</code>. The state
- * of fields is unchanged.
- * <P>If the useFetchPlan parameter is true, then the current FetchPlan
- * is applied to the pcs parameters and the entire graph of instances
- * reachable via loaded fields is made transient. The state of fields
- * in the affected instances is as specified by the FetchPlan.
- * <P>Unlike detachCopy, the instances are not detached; there is no
- * detachment information in the instances.
- * <P>The instances to be made transient do not need to
- * implement the javax.jdo.spi.Detachable interface.
- * @param pcs the root instances to make transient.
- * @param useFetchPlan whether to use the current fetch plan to determine
- * which fields to load and which instances to make transient
- * @since 2.0
- */
- void makeTransientAll (Object[] pcs, boolean useFetchPlan);
-
- /** Make instances transient, removing them from management
- * by this <code>PersistenceManager</code>. If the useFetchPlan parameter
- * is false, this method behaves exactly as
- * makeTransientAll(Collection pcs).
- * <P>The affected instance(s) lose their JDO identity and are no longer
- * associated with any <code>PersistenceManager</code>. The state
- * of fields is unchanged.
- * <P>If the useFetchPlan parameter is true, then the current FetchPlan
- * is applied to the pcs parameters and the entire graph of instances
- * reachable via loaded fields is made transient. The state of fields
- * in the affected instances is as specified by the FetchPlan.
- * <P>Unlike detachCopy, the instances are not detached; there is no
- * detachment information in the instances.
- * <P>The instances to be made transient do not need to
- * implement the javax.jdo.spi.Detachable interface.
- * @param pcs the root instances to make transient.
- * @param useFetchPlan whether to use the current fetch plan to determine
- * which fields to load and which instances to make transient
- * @since 2.0
- */
- void makeTransientAll (Collection pcs, boolean useFetchPlan);
-
- /** Make an instance subject to transactional boundaries.
- *
- * <P>Transient instances normally do not observe transaction boundaries.
- * This method makes transient instances sensitive to transaction
- * completion. If an instance is modified in a transaction, and the
- * transaction rolls back, the state of the instance is restored to the
- * state before the first change in the transaction.
- *
- * <P>For persistent instances read in optimistic transactions, this method
- * allows the application to make the state of the instance part of the
- * transactional state. At transaction commit, the state of the instance in
- * the cache is compared to the state of the instance in the data store. If
- * they are not the same, then an exception is thrown.
- * @param pc the instance to make transactional.
- */
- void makeTransactional (Object pc);
-
- /** Make an array of instances subject to transactional boundaries.
- * @param pcs the array of instances to make transactional.
- * @see #makeTransactional(Object pc)
- */
- void makeTransactionalAll (Object[] pcs);
-
- /** Make a <code>Collection</code> of instances subject to transactional
- * boundaries.
- * @param pcs the <code>Collection</code> of instances to make
- * transactional.
- * @see #makeTransactional(Object pc)
- */
- void makeTransactionalAll (Collection pcs);
-
- /** Make an instance non-transactional after commit.
- *
- * <P>Normally, at transaction completion, instances are evicted from the
- * cache. This method allows an application to identify an instance as
- * not being evicted from the cache at transaction completion. Instead,
- * the instance remains in the cache with nontransactional state.
- *
- * @param pc the instance to make nontransactional.
- */
- void makeNontransactional (Object pc);
-
- /** Make an array of instances non-transactional after commit.
- *
- * @param pcs the array of instances to make nontransactional.
- * @see #makeNontransactional(Object pc)
- */
- void makeNontransactionalAll (Object[] pcs);
-
- /** Make a <code>Collection</code> of instances non-transactional after
- * commit.
- *
- * @param pcs the <code>Collection</code> of instances to make
- * nontransactional.
- * @see #makeNontransactional(Object pc)
- */
- void makeNontransactionalAll (Collection pcs);
-
- /** Retrieve field values of an instance from the store. This tells
- * the <code>PersistenceManager</code> that the application intends to use
- * the instance, and its field values must be retrieved.
- * <P>The <code>PersistenceManager</code> might use policy information about
- * the class to retrieve associated instances.
- * @param pc the instance
- */
- void retrieve (Object pc);
-
- /** Retrieve field values of an instance from the store. This tells
- * the <code>PersistenceManager</code> that the application intends to use
- * the instance, and its field values must be retrieved.
- * <P>If the useFetchPlan parameter is false, this method behaves exactly
- * as the corresponding method without the useFetchPlan parameter.
- * If the useFetchPlan parameter is true, and the fetch plan has not been
- * modified from its default setting, all fields in the current fetch plan
- * are fetched, and other fields might be fetched lazily by the
- * implementation. If the useFetchPlan parameter is true, and the fetch
- * plan has been changed from its default setting, then the fields
- * specified by the fetch plan are loaded, along with related instances
- * specified by the fetch plan.
- * @param pc the instance
- * @param useFetchPlan whether to use the current fetch plan to determine
- * which fields to load and which instances to retrieve.
- * @since 2.0
- */
- void retrieve (Object pc, boolean useFetchPlan);
-
- /** Retrieve field values of instances from the store. This tells
- * the <code>PersistenceManager</code> that the application intends to use
- * the instances, and all field values must be retrieved.
- * <P>The <code>PersistenceManager</code> might use policy information about
- * the class to retrieve associated instances.
- * @param pcs the instances
- */
- void retrieveAll (Collection pcs);
-
- /** Retrieve field values of instances from the store. This tells
- * the <code>PersistenceManager</code> that the application intends to use
- * the instances, and their field values should be retrieved. The fields
- * in the current fetch group must be retrieved, and the implementation
- * might retrieve more fields than the current fetch group.
- * <P>If the useFetchPlan parameter is false, this method behaves exactly
- * as the corresponding method without the useFetchPlan parameter.
- * If the useFetchPlan parameter is true, and the fetch plan has not been
- * modified from its default setting, all fields in the current fetch plan
- * are fetched, and other fields might be fetched lazily by the
- * implementation. If the useFetchPlan parameter is true, and the fetch
- * plan has been changed from its default setting, then the fields
- * specified by the fetch plan are loaded, along with related instances
- * specified by the fetch plan.
- * @param pcs the instances
- * @param useFetchPlan whether to use the current fetch plan to determine
- * which fields to load and which instances to retrieve.
- * @since 1.0.1
- */
- void retrieveAll (Collection pcs, boolean useFetchPlan);
-
- /** Retrieve field values of instances from the store. This tells
- * the <code>PersistenceManager</code> that the application intends to use
- * the instances, and all field values must be retrieved.
- * <P>The <code>PersistenceManager</code> might use policy information about
- * the class to retrieve associated instances.
- * @param pcs the instances
- */
- void retrieveAll (Object[] pcs);
-
- /** Retrieve field values of instances from the store. This tells
- * the <code>PersistenceManager</code> that the application intends to use
- * the instances, and their field values should be retrieved. The fields
- * in the current fetch group must be retrieved, and the implementation
- * might retrieve more fields than the current fetch group.
- * <P>If the useFetchPlan parameter is false, this method behaves exactly
- * as the corresponding method without the useFetchPlan parameter.
- * If the useFetchPlan parameter is true, and the fetch plan has not been
- * modified from its default setting, all fields in the current fetch plan
- * are fetched, and other fields might be fetched lazily by the
- * implementation. If the useFetchPlan parameter is true, and the fetch
- * plan has been changed from its default setting, then the fields
- * specified by the fetch plan are loaded, along with related instances
- * specified by the fetch plan.
- * @param pcs the instances
- * @param useFetchPlan whether to use the current fetch plan to determine
- * which fields to load and which instances to retrieve.
- * @since 1.0.1
- */
- void retrieveAll (Object[] pcs, boolean useFetchPlan);
-
- /** The application can manage the <code>PersistenceManager</code> instances
- * more easily by having an application object associated with each
- * <code>PersistenceManager</code> instance.
- * @param o the user instance to be remembered by the
- * <code>PersistenceManager</code>
- * @see #getUserObject
- */
- void setUserObject (Object o);
-
- /** The application can manage the <code>PersistenceManager</code> instances
- * more easily by having an application object associated with each
- * <code>PersistenceManager</code> instance.
- * @return the user object associated with this
- * <code>PersistenceManager</code>
- * @see #setUserObject
- */
- Object getUserObject ();
-
- /** This method returns the <code>PersistenceManagerFactory</code> used to
- * create this <code>PersistenceManager</code>.
- * @return the <code>PersistenceManagerFactory</code> that created
- * this <code>PersistenceManager</code>
- */
- PersistenceManagerFactory getPersistenceManagerFactory();
-
- /** Return the <code>Class</code> that implements the JDO Identity for the
- * specified <code>PersistenceCapable</code> class. The application can use
- * the returned <code>Class</code> to construct a JDO Identity instance for
- * application identity <code>PersistenceCapable</code> classes. This JDO
- * Identity instance can then be used to get an instance of the
- * <code>PersistenceCapable</code> class for use in the application.
- *
- * <P>In order for the application to construct an instance of the ObjectId
- * class it needs to know the class being used by the JDO implementation.
- * @param cls the <code>PersistenceCapable Class</code>
- * @return the <code>Class</code> of the ObjectId of the parameter
- * @see #getObjectById
- */
- Class getObjectIdClass(Class cls);
-
- /** Set the Multithreaded flag for this <code>PersistenceManager</code>.
- * Applications that use multiple threads to invoke methods or access fields
- * from instances managed by this <code>PersistenceManager</code> must set
- * this flag to <code>true</code>.
- * Instances managed by this <code>PersistenceManager</code> include
- * persistent or transactional instances of <code>PersistenceCapable</code>
- * classes, as well as helper instances such as <code>Query</code>,
- * <code>Transaction</code>, or <code>Extent</code>.
- * @param flag the Multithreaded setting.
- */
- void setMultithreaded (boolean flag);
-
- /** Get the current Multithreaded flag for this
- * <code>PersistenceManager</code>.
- * @see #setMultithreaded
- * @return the Multithreaded setting.
- */
- boolean getMultithreaded();
-
- /** Set the ignoreCache parameter for queries.
- *
- * <P>IgnoreCache set to <code>true</code> specifies that for all
- * <code>Query</code> instances created by this
- * <code>PersistenceManager</code>, the default is the cache should be
- * ignored for queries.
- * @param flag the ignoreCache setting.
- */
- void setIgnoreCache(boolean flag);
-
- /** Get the ignoreCache setting for queries.
- *
- * <P>IgnoreCache set to <code>true</code> specifies that for all
- * <code>Query</code> instances created by this
- * <code>PersistenceManager</code>, the default is the cache should be
- * ignored for queries.
- * @return the ignoreCache setting.
- */
- boolean getIgnoreCache();
-
- /** Gets the detachAllOnCommit setting.
- * @see #setDetachAllOnCommit(boolean)
- * @since 2.0
- * @return the detachAllOnCommit setting.
- */
- boolean getDetachAllOnCommit();
-
- /** Sets the detachAllOnCommit setting.
- *
- * <P>DetachAllOnCommit set to <code>false</code> specifies that the
- * state of persistent instances in the cache after commit is defined
- * by the <code>retainValues</code> flag. With this flag set to true,
- * during beforeCompletion all cached instances are prepared for
- * detachment according to the fetch plan in effect at commit. Loading
- * fields and unloading fields required by the fetch plan is done after
- * calling the user's <code>beforeCompletion</code> callback. During
- * <code>afterCompletion</code>, before calling the user's
- * <code>afterCompletion</code> callback, all detachable persistent
- * instances in the cache transition to detached; non-detachable
- * persistent instances transition to transient; and detachable
- * instances can be serialized as detached instances. Transient
- * transactional instances are unaffected by this flag.
- *
- * @see #getDetachAllOnCommit()
- * @since 2.0
- */
- void setDetachAllOnCommit(boolean flag);
-
- /**
- * Detach the specified instance from the <code>PersistenceManager</code>.
- * The flags for detachment (DETACH_LOAD_FIELDS and DETACH_UNLOAD_FIELDS)
- * and the active fetch groups determine the scope of fetching for the
- * graph of instances reachable from the pc parameter. The state of fields
- * in the affected instances is as specified by the FetchPlan.
- * @param pc the instance to detach
- * @return the detached instance
- * @see #detachCopyAll(Object[])
- * @since 2.0
- */
- Object detachCopy (Object pc);
-
- /**
- * Detach the specified instances from the <code>PersistenceManager</code>.
- * The flags for detachment (DETACH_LOAD_FIELDS and DETACH_UNLOAD_FIELDS)
- * and the active fetch groups determine the scope of fetching for the
- * graph of instances reachable from the pcs parameter. The state of fields
- * in the affected instances is as specified by the FetchPlan.
- * @param pcs the instances to detach
- * @return the detached instances
- * @see #detachCopyAll(Object[])
- * @since 2.0
- */
- Collection detachCopyAll (Collection pcs);
-
- /**
- * Detach the specified instances from the <code>PersistenceManager</code>.
- * The flags for detachment (DETACH_LOAD_FIELDS and DETACH_UNLOAD_FIELDS)
- * and the active fetch groups determine the scope of fetching for the
- * graph of instances reachable from the pcs parameter. The state of fields
- * in the affected instances is as specified by the FetchPlan.
- * The objects returned can be manipulated and re-attached with
- * {@link #makePersistentAll(Object[])}.
- * The detached instances will be
- * unmanaged copies of the specified parameters, and are suitable
- * for serialization and manipulation outside of a JDO
- * environment. When detaching instances, only fields in the
- * current {@link FetchPlan} will be traversed. Thus, to detach a
- * graph of objects, relations to other persistent instances must
- * either be in the <code>default-fetch-group</code>, or in the
- * current custom {@link FetchPlan}.
- * @param pcs the instances to detach
- * @return the detached instances
- * @throws JDOUserException if any of the instances to be detached do not
- * implement the javax.jdo.spi.Detachable interface.
- * @see #makePersistentAll(Object[])
- * @see #getFetchPlan
- * @since 2.0
- */
- Object[] detachCopyAll (Object [] pcs);
-
- /**
- * Put the specified key-value pair into the map of user objects.
- * @since 2.0
- */
- Object putUserObject (Object key, Object val);
-
- /**
- * Get the value for the specified key from the map of user objects.
- * @param key the key of the object to be returned
- * @return the object
- * @since 2.0
- */
- Object getUserObject (Object key);
-
- /**
- * Remove the specified key and its value from the map of user objects.
- * @param key the key of the object to be removed
- * @since 2.0
- */
- Object removeUserObject (Object key);
-
- /**
- * Flushes all dirty, new, and deleted instances to the data
- * store. It has no effect if a transaction is not active.
- * <p>If a datastore transaction is active, this method
- * synchronizes the cache with the datastore and reports any
- * exceptions.</p>
- * <p>If an optimistic transaction is active, this method obtains
- * a datastore connection, synchronizes the cache with the
- * datastore using this connection and reports any
- * exceptions. The connection obtained by this method is held
- * until the end of the transaction.</p>
- * <p>If exceptions occur during flush, the implementation will
- * set the current transaction's <code>RollbackOnly</code> flag
- * (see {@link Transaction#setRollbackOnly}).</p>
- * @since 2.0
- */
- void flush ();
-
- /**
- * Validates the <code>PersistenceManager</code> cache with the
- * datastore. This method has no effect if a transaction is not
- * active.
- * <p>If a datastore transaction is active, this method verifies
- * the consistency of instances in the cache against the
- * datastore. An implementation might flush instances as if
- * {@link #flush} were called, but it is not required to do
- * so.</p>
- * <p>If an optimistic transaction is active, this method obtains
- * a datastore connection and verifies the consistency of the
- * instances in the cache against the datastore. If any
- * inconsistencies are detected, a {@link
- * JDOOptimisticVerificationException} is thrown. This exception
- * contains a nested {@link JDOOptimisticVerificationException}
- * for each object that failed the consistency check. No
- * datastore resources acquired during the execution of this
- * method are held beyond the scope of this method.</p>
- * @since 2.0
- */
- void checkConsistency ();
-
- /**
- * Returns the <code>FetchPlan</code> used by this
- * <code>PersistenceManager</code>.
- * @return the FetchPlan
- * @since 2.0
- */
- FetchPlan getFetchPlan ();
-
- /**
- * Creates an instance of a persistence-capable interface,
- * or of a concrete or abstract class.
- * The returned instance is transient.
- * @param pcClass Must be a persistence-capable interface,
- * or a concrete or abstract class that is declared in the metadata.
- * @return the created instance
- * @since 2.0
- */
- Object newInstance (Class pcClass);
-
- /**
- * Returns the sequence identified by <code>name</code>.
- * @param name the name of the Sequence
- * @return the Sequence
- * @since 2.0
- */
- Sequence getSequence (String name);
-
- /**
- * If this method is called while a datastore transaction is
- * active, the object returned will be enlisted in the current
- * transaction. If called in an optimistic transaction or outside
- * an active transaction, the object returned will not be
- * enlisted in any transaction.
- * @return the JDOConnection instance
- * @since 2.0
- */
- JDOConnection getDataStoreConnection ();
-
- /**
- * Adds the listener instance to the list of lifecycle event
- * listeners. The <code>classes</code> parameter identifies all
- * of the classes of interest. If the <code>classes</code>
- * parameter is specified as <code>null</code>, events for all
- * persistent classes and interfaces will be sent to
- * <code>listenerInstance</code>.
- * <p>The listenerInstance will be called for each event for which it
- * implements the corresponding listenerInstance interface.</p>
- * @param listener the lifecycle listener
- * @param classes the classes of interest to the listener
- * @since 2.0
- */
- void addInstanceLifecycleListener (InstanceLifecycleListener listener,
- Class[] classes);
-
- /**
- * Removes the listener instance from the list of lifecycle event listeners.
- * @param listener the listener instance to be removed
- * @since 2.0
- */
- void removeInstanceLifecycleListener (InstanceLifecycleListener listener);
-}
diff --git a/api20/src/java/javax/jdo/PersistenceManagerFactory.java b/api20/src/java/javax/jdo/PersistenceManagerFactory.java
deleted file mode 100644
index f921fde..0000000
--- a/api20/src/java/javax/jdo/PersistenceManagerFactory.java
+++ /dev/null
@@ -1,432 +0,0 @@
-/*
- * Copyright 2005 The Apache Software Foundation.
- *
- * Licensed 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.
- */
-
-/*
- * PersistenceManagerFactory.java
- *
- */
-
-package javax.jdo;
-
-import java.util.Properties;
-import java.util.Collection;
-
-import javax.jdo.datastore.DataStoreCache;
-
-import javax.jdo.listener.InstanceLifecycleListener;
-
-/** The <code>PersistenceManagerFactory</code> is the interface to use to obtain
- * <code>PersistenceManager</code> instances.
- * All <code>PersistenceManager</code> instances obtained from the same
- * <code>PersistenceManagerFactory</code> will have the same default properties.
- *
- * <P><code>PersistenceManagerFactory</code> instances may be configured and
- * serialized for later use. They may be stored via JNDI and looked up
- * and used later. Any properties configured will be saved and restored.
- *
- * <P>Once the first <code>PersistenceManager</code> is obtained from the
- * <code>PersistenceManagerFactory</code>, the factory can no longer be
- * configured.
- * <P>If the <code>ConnectionFactory</code> property is set
- * (non-<code>null</code>) then all other Connection properties including
- * <code>ConnectionFactoryName</code> are ignored;
- * otherwise, if <code>ConnectionFactoryName</code> is set
- * (non-<code>null</code>) then all other Connection properties are ignored.
- * Similarly, if the <code>ConnectionFactory2</code> property is set
- * (non-<code>null</code>) then <code>ConnectionFactory2Name</code> is ignored.
- * <P>Operational state (<code>PersistenceManager</code> pooling, connection
- * pooling, operational parameters) must not be serialized.
- *
- * @version 2.0
- */
-
-public interface PersistenceManagerFactory extends java.io.Serializable {
-
- /** Close this PersistenceManagerFactory. Check for
- * JDOPermission("closePersistenceManagerFactory") and if not authorized,
- * throw SecurityException.
- * <P>If the authorization check succeeds, check to see that all
- * PersistenceManager instances obtained from this PersistenceManagerFactory
- * have no active transactions. If any PersistenceManager instances have
- * an active transaction, throw a JDOUserException, with one nested
- * JDOUserException for each PersistenceManager with an active Transaction.
- * <P>If there are no active transactions, then close all PersistenceManager
- * instances obtained from this PersistenceManagerFactory, mark this
- * PersistenceManagerFactory as closed, disallow getPersistenceManager
- * methods, and allow all other get methods. If a set method or
- * getPersistenceManager method is called after close, then
- * JDOUserException is thrown.
- * @since 1.0.1
- */
- void close();
-
- /**
- * A <code>PersistenceManagerFactory</code> instance can be used
- * until it is closed.
- * @return <code>true</code> if this <code>PersistenceManagerFactory</code>
- * has been closed.
- * @see #close()
- * @since 2.0
- */
- boolean isClosed();
-
- /** Get an instance of <code>PersistenceManager</code> from this factory.
- * The instance has default values for options.
- *
- * <P>After the first use of <code>getPersistenceManager</code>, no "set"
- * methods will succeed.
- *
- * @return a <code>PersistenceManager</code> instance with default options.
- */
- PersistenceManager getPersistenceManager();
-
- /** Get an instance of <code>PersistenceManager</code> from this factory.
- * The instance has default values for options.
- * The parameters <code>userid</code> and <code>password</code> are used
- * when obtaining datastore connections from the connection pool.
- *
- * <P>After the first use of <code>getPersistenceManager</code>, no "set"
- * methods will succeed.
- *
- * @return a <code>PersistenceManager</code> instance with default options.
- * @param userid the userid for the connection
- * @param password the password for the connection
- */
- PersistenceManager getPersistenceManager(String userid, String password);
-
- /** Set the user name for the data store connection.
- * @param userName the user name for the data store connection.
- */
- void setConnectionUserName(String userName);
-
- /** Get the user name for the data store connection.
- * @return the user name for the data store connection.
- */
- String getConnectionUserName ();
-
- /** Set the password for the data store connection.
- * @param password the password for the data store connection.
- */
- void setConnectionPassword (String password);
-
- /** Set the URL for the data store connection.
- * @param url the URL for the data store connection.
- */
- void setConnectionURL (String url);
-
- /** Get the URL for the data store connection.
- * @return the URL for the data store connection.
- */
- String getConnectionURL ();
-
- /** Set the driver name for the data store connection.
- * @param driverName the driver name for the data store connection.
- */
- void setConnectionDriverName (String driverName);
-
- /** Get the driver name for the data store connection.
- * @return the driver name for the data store connection.
- */
- String getConnectionDriverName ();
-
- /** Set the name for the data store connection factory.
- * @param connectionFactoryName the name of the data store connection
- * factory.
- */
- void setConnectionFactoryName (String connectionFactoryName);
-
- /** Get the name for the data store connection factory.
- * @return the name of the data store connection factory.
- */
- String getConnectionFactoryName ();
-
- /** Set the data store connection factory. JDO implementations
- * will support specific connection factories. The connection
- * factory interfaces are not part of the JDO specification.
- * @param connectionFactory the data store connection factory.
- */
- void setConnectionFactory (Object connectionFactory);
-
- /** Get the data store connection factory.
- * @return the data store connection factory.
- */
- Object getConnectionFactory ();
-
- /** Set the name for the second data store connection factory. This is
- * needed for managed environments to get nontransactional connections for
- * optimistic transactions.
- * @param connectionFactoryName the name of the data store connection
- * factory.
- */
- void setConnectionFactory2Name (String connectionFactoryName);
-
- /** Get the name for the second data store connection factory. This is
- * needed for managed environments to get nontransactional connections for
- * optimistic transactions.
- * @return the name of the data store connection factory.
- */
- String getConnectionFactory2Name ();
-
- /** Set the second data store connection factory. This is
- * needed for managed environments to get nontransactional connections for
- * optimistic transactions. JDO implementations
- * will support specific connection factories. The connection
- * factory interfaces are not part of the JDO specification.
- * @param connectionFactory the data store connection factory.
- */
- void setConnectionFactory2 (Object connectionFactory);
-
- /** Get the second data store connection factory. This is
- * needed for managed environments to get nontransactional connections for
- * optimistic transactions.
- * @return the data store connection factory.
- */
- Object getConnectionFactory2 ();
-
- /** Set the default Multithreaded setting for all
- * <code>PersistenceManager</code> instances obtained from this factory.
- *
- * @param flag the default Multithreaded setting.
- */
- void setMultithreaded (boolean flag);
-
- /** Get the default Multithreaded setting for all
- * <code>PersistenceManager</code> instances obtained from this factory.
- *
- * @return the default Multithreaded setting.
- */
- boolean getMultithreaded();
-
- /** Set the Mapping setting for this factory. This is used to find the
- * object-datastore mapping file(s).
- *
- * @param mapping the Mapping setting.
- */
- void setMapping (String mapping);
-
- /** Get the Mapping setting for this factory. This is used to find the
- * object-datastore mapping file(s).
- *
- * @return the Mapping setting.
- */
- String getMapping ();
-
- /** Set the default Optimistic setting for all
- * <code>PersistenceManager</code> instances obtained from this factory.
- *
- * @param flag the default Optimistic setting.
- */
- void setOptimistic (boolean flag);
-
- /** Get the default Optimistic setting for all
- * <code>PersistenceManager</code> instances obtained from this factory.
- *
- * @return the default Optimistic setting.
- */
- boolean getOptimistic();
-
- /** Set the default RetainValues setting for all
- * <code>PersistenceManager</code> instances obtained from this factory.
- *
- * @param flag the default RetainValues setting.
- */
- void setRetainValues (boolean flag);
-
- /** Get the default RetainValues setting for all
- * <code>PersistenceManager</code> instances obtained from this factory.
- *
- * @return the default RetainValues setting.
- */
- boolean getRetainValues ();
-
- /** Set the default value for the RestoreValues property.
- * If <code>true</code>, at rollback, fields of newly persistent instances
- * are restored to
- * their values as of the beginning of the transaction, and the instances
- * revert to transient. Additionally, fields of modified
- * instances of primitive types and immutable reference types
- * are restored to their values as of the beginning of the
- * transaction.
- * <P>If <code>false</code>, at rollback, the values of fields of
- * newly persistent instances are unchanged and the instances revert to
- * transient. Additionally, dirty instances transition to hollow.
- * If an implementation does not support this option, a
- * <code>JDOUnsupportedOptionException</code> is thrown.
- * @param restoreValues the value of the restoreValues property
- */
- void setRestoreValues(boolean restoreValues);
-
- /** Get the default value for the RestoreValues property.
- * @return the value of the restoreValues property
- */
- boolean getRestoreValues();
-
- /** Set the default NontransactionalRead setting for all
- * <code>PersistenceManager</code> instances obtained from this factory.
- *
- * @param flag the default NontransactionalRead setting.
- */
- void setNontransactionalRead (boolean flag);
-
- /** Get the default NontransactionalRead setting for all
- * <code>PersistenceManager</code> instances obtained from this factory.
- *
- * @return the default NontransactionalRead setting.
- */
- boolean getNontransactionalRead ();
-
- /** Set the default NontransactionalWrite setting for all
- * <code>PersistenceManager</code> instances obtained from this factory.
- *
- * @param flag the default NontransactionalWrite setting.
- */
- void setNontransactionalWrite (boolean flag);
-
- /** Get the default NontransactionalWrite setting for all
- * <code>PersistenceManager</code> instances obtained from this factory.
- *
- * @return the default NontransactionalWrite setting.
- */
- boolean getNontransactionalWrite ();
-
- /** Set the default IgnoreCache setting for all
- * <code>PersistenceManager</code> instances obtained from this factory.
- *
- * @param flag the default IgnoreCache setting.
- */
- void setIgnoreCache (boolean flag);
-
- /** Get the default IgnoreCache setting for all
- * <code>PersistenceManager</code> instances obtained from this factory.
- *
- * @return the default IngoreCache setting.
- */
- boolean getIgnoreCache ();
-
- /** Gets the detachAllOnCommit setting.
- * @see #setDetachAllOnCommit(boolean)
- * @since 2.0
- * @return the default detachAllOnCommit setting.
- */
- boolean getDetachAllOnCommit();
-
- /** Sets the default detachAllOnCommit setting for all
- * <code>PersistenceManager</code> instances obtained from this
- * factory.
- * @see #getDetachAllOnCommit()
- * @since 2.0
- */
- void setDetachAllOnCommit(boolean flag);
-
- /** Return non-configurable properties of this
- * <code>PersistenceManagerFactory</code>.
- * Properties with keys <code>VendorName</code> and
- * <code>VersionNumber</code> are required. Other keys are optional.
- * @return the non-configurable properties of this
- * <code>PersistenceManagerFactory</code>.
- */
- Properties getProperties();
-
- /** The application can determine from the results of this
- * method which optional features, and which query languages
- * are supported by the JDO implementation.
- * <P>Each supported JDO optional feature is represented by a
- * <code>String</code> with one of the following values:
- *
- * <P><code>javax.jdo.option.TransientTransactional
- * <BR>javax.jdo.option.NontransactionalRead
- * <BR>javax.jdo.option.NontransactionalWrite
- * <BR>javax.jdo.option.RetainValues
- * <BR>javax.jdo.option.Optimistic
- * <BR>javax.jdo.option.ApplicationIdentity
- * <BR>javax.jdo.option.DatastoreIdentity
- * <BR>javax.jdo.option.NonDatastoreIdentity
- * <BR>javax.jdo.option.ArrayList
- * <BR>javax.jdo.option.HashMap
- * <BR>javax.jdo.option.Hashtable
- * <BR>javax.jdo.option.LinkedList
- * <BR>javax.jdo.option.TreeMap
- * <BR>javax.jdo.option.TreeSet
- * <BR>javax.jdo.option.Vector
- * <BR>javax.jdo.option.Map
- * <BR>javax.jdo.option.List
- * <BR>javax.jdo.option.Array
- * <BR>javax.jdo.option.NullCollection
- * <BR>javax.jdo.option.ChangeApplicationIdentity
- * <BR>javax.jdo.option.BinaryCompatibility
- * <BR>javax.jdo.option.GetDataStoreConnection
- * <BR>javax.jdo.option.UnconstrainedQueryVariables
- * <BR>javax.jdo.query.SQL
- * <BR>javax.jdo.query.JDOQL
- * </code>
- *
- *<P>The standard JDO query language is represented by a
- * <code>String</code>:
- *<P><code>javax.jdo.query.JDOQL</code>
- * @return the <code>Collection</code> of <code>String</code>s representing
- * the supported options.
- */
- Collection supportedOptions();
-
- /**
- * Return the {@link DataStoreCache} that this factory uses for
- * controlling a second-level cache. If this factory does not use
- * a second-level cache, the returned instance does nothing. This
- * method never returns <code>null</code>.
- * @since 2.0
- */
- DataStoreCache getDataStoreCache ();
-
- /**
- * Add the parameter listener to the list of
- * instance lifecycle event listeners set as the initial listeners
- * for each PersistenceManager created by this PersistenceManagerFactory.
- * The <code>addInstanceLifecycleListener</code> and
- * <code>removeInstanceLifecycleListener</code>
- * methods are considered to be configuration methods and
- * can only be called when the PersistenceManagerFactory
- * is configurable (before the first time {@link #getPersistenceManager}
- * is called).
- * <p>The <code>classes</code> parameter identifies all
- * of the classes of interest. If the <code>classes</code>
- * parameter is specified as <code>null</code>, events for all
- * persistent classes and interfaces will be sent to the listener.</p>
- * <p>The listener will be called for each event for which it
- * implements the corresponding {@link InstanceLifecycleListener}
- * interface.</p>
- * @param listener the lifecycle listener
- * @param classes the classes of interest to the listener
- * @since 2.0
- */
- void addInstanceLifecycleListener (InstanceLifecycleListener listener,
- Class[] classes);
-
- /**
- * Remove the parameter listener instance from the list of
- * instance lifecycle event listeners set as the initial listeners
- * for each PersistenceManager created by this PersistenceManagerFactory.
- * The <code>addInstanceLifecycleListener</code> and
- * <code>removeInstanceLifecycleListener</code>
- * methods are considered to be configuration methods and
- * can only be called when the PersistenceManagerFactory
- * is configurable (before the first time {@link #getPersistenceManager}
- * is called).
- * @param listener the listener instance to be removed
- * @since 2.0
- */
- void removeInstanceLifecycleListener (InstanceLifecycleListener listener);
-
-}
diff --git a/api20/src/java/javax/jdo/Query.java b/api20/src/java/javax/jdo/Query.java
deleted file mode 100644
index e206f3e..0000000
--- a/api20/src/java/javax/jdo/Query.java
+++ /dev/null
@@ -1,586 +0,0 @@
-/*
- * Copyright 2005 The Apache Software Foundation.
- *
- * Licensed 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.
- */
-
-/*
- * Query.java
- *
- */
-
-package javax.jdo;
-import java.io.Serializable;
-import java.util.Collection;
-import java.util.Map;
-
-/** The <code>Query</code> interface allows applications to obtain persistent
- * instances, values, and aggregate data
- * from the data store.
- *
- * The {@link PersistenceManager} is the factory for <code>Query</code>
- * instances. There may be many <code>Query</code> instances associated with a
- * <code>PersistenceManager</code>. Multiple queries might be executed
- * simultaneously by different threads, but the implementation might choose to
- * execute them serially. In either case, the implementation must be thread
- * safe.
- *
- * <P>There are three required elements in a <code>Query</code>: the class of
- * the results, the candidate collection of instances, and the filter.
- *
- * <P>There are optional elements: parameter declarations, variable
- * declarations, import statements, ordering and grouping specifications,
- * result and result class, the range of results,
- * and flags indicating whether the query result
- * is unique and whether the query can be modified.
- * <P>The query namespace is modeled after methods in Java:
- * <ul>
- * <li><code>setClass</code> corresponds to the class definition
- * <li><code>declareParameters</code> corresponds to formal parameters of a
- * method
- * <li><code>declareVariables</code> corresponds to local variables of a method
- * <li><code>setFilter</code> and <code>setOrdering</code> correspond to the
- * method body
- * </ul>
- * <P>There are two namespaces in queries. Type names have their own
- * namespace that is separate from the namespace for fields, variables
- * and parameters.
- * <P>The method <code>setClass</code> introduces the name of the candidate
- * class in the type namespace. The method <code>declareImports</code>
- * introduces the names of the imported class or interface types in the type
- * namespace. Imported type names must be unique. When used (e.g. in a parameter
- * declaration, cast expression, etc.) a type name must be the name of the
- * candidate class, the name of a class or interface imported by method
- * <code>declareImports</code>, or denote a class or interface from the same
- * package as the candidate class.
- * <P>The method <code>setClass</code> introduces the names of the candidate
- * class fields.
- * <P>The method <code>declareParameters</code> introduces the names of the
- * parameters. A name introduced by <code>declareParameters</code> hides the
- * name of a candidate class field of the same name. Parameter names must be
- * unique.
- * <P>The method <code>declareVariables</code> introduces the names of the
- * variables. A name introduced by <code>declareVariables</code> hides the name
- * of a candidate class field if equal. Variable names must be unique and must
- * not conflict with parameter names.
- * <P>The result of the query by default is a list of result class instances,
- * but might be specified via <code>setResult</code>. The class of the result
- * by default is the candidate class, but might be specified via
- * <code>setResultClass</code>.
- * <P>A hidden field may be accessed using the 'this' qualifier:
- * <code>this.fieldName</code>.
- * <P>The <code>Query</code> interface provides methods which execute the query
- * based on the parameters given. They return a single instance or a
- * <code>List</code> of result class instances which the
- * user can iterate to get results. The signature
- * of the <code>execute</code> methods specifies that they return an
- * <code>Object</code> which must be cast to the appropriate result by the user.
- * <P>Any parameters passed to the <code>execute</code> methods are used only
- * for this execution, and are not remembered for future execution.
- * @version 2.0
- */
-
-public interface Query extends Serializable {
-
- /**
- * The string constant used as the first argument to
- * {@link PersistenceManager#newQuery(String,Object)} to identify that the
- * created query should obey the JDOQL syntax and semantic rules.
- * <p>This is the default query language used when creating a query with any
- * of the other {@link PersistenceManager#newQuery} methods, except
- * {@link PersistenceManager#newQuery(Object)}, which uses the query
- * language of the compiled query template object passed to that method.</p>
- * @since 2.0
- */
- String JDOQL = "javax.jdo.query.JDOQL";
-
- /**
- * The string constant used as the first argument to {@link
- * PersistenceManager#newQuery(String,Object)} to identify that
- * the created query should use SQL semantics. This is only
- * meaningful for relational JDO implementations.
- * <p>If this is used, the <code>Object</code> argument to the
- * {@link PersistenceManager#newQuery(String,Object)} method
- * should be a <code>String</code> containing a SQL
- * <code>SELECT</code> statement.</p>
- * @since 2.0
- */
- String SQL = "javax.jdo.query.SQL";
-
- /** Set the class of the candidate instances of the query.
- * <P>The class specifies the class
- * of the candidates of the query. Elements of the candidate collection
- * that are of the specified class are filtered before being
- * put into the result <code>Collection</code>.
- *
- * @param cls the <code>Class</code> of the candidate instances.
- */
- void setClass(Class cls);
-
- /** Set the candidate <code>Extent</code> to query.
- * @param pcs the candidate <code>Extent</code>.
- */
- void setCandidates(Extent pcs);
-
- /** Set the candidate <code>Collection</code> to query.
- * @param pcs the candidate <code>Collection</code>.
- */
- void setCandidates(Collection pcs);
-
- /** Set the filter for the query.
- *
- * <P>The filter specification is a <code>String</code> containing a Boolean
- * expression that is to be evaluated for each of the instances
- * in the candidate collection. If the filter is not specified,
- * then it defaults to "true", which has the effect of filtering
- * the input <code>Collection</code> only for class type.
- * <P>An element of the candidate collection is returned in the result if:
- * <ul><li>it is assignment compatible to the candidate <code>Class</code>
- * of the <code>Query</code>; and
- * <li>for all variables there exists a value for which the filter
- * expression evaluates to <code>true</code>.
- * </ul>
- * <P>The user may denote uniqueness in the filter expression by
- * explicitly declaring an expression (for example, <code>e1 != e2</code>).
- * <P>Rules for constructing valid expressions follow the Java
- * language, except for these differences:
- * <ul>
- * <li>Equality and ordering comparisons between primitives and instances
- * of wrapper classes are valid.
- * <li>Equality and ordering comparisons of <code>Date</code> fields and
- * <code>Date</code> parameters are valid.
- * <li>White space (non-printing characters space, tab, carriage
- * return, and line feed) is a separator and is otherwise ignored.
- * <li>The assignment operators <code>=</code>, <code>+=</code>, etc. and
- * pre- and post-increment and -decrement are not supported. Therefore,
- * there are no side effects from evaluation of any expressions.
- * <li>Methods, including object construction, are not supported, except
- * for <code>Collection.contains(Object o)</code>,
- * <code>Collection.isEmpty()</code>,
- * <code>String.startsWith(String s)</code>, and
- * <code>String.endsWith(String e)</code>. Implementations might choose to
- * support non-mutating method calls as non-standard extensions.
- * <li>Navigation through a <code>null</code>-valued field, which would
- * throw <code>NullPointerException</code>, is treated as if the filter
- * expression returned <code>false</code> for the evaluation of the current
- * set of variable values. Other values for variables might still qualify
- * the candidate instance for inclusion in the result set.
- * <li>Navigation through multi-valued fields (<code>Collection</code>
- * types) is specified using a variable declaration and the
- * <code>Collection.contains(Object o)</code> method.
- * </ul>
- * <P>Identifiers in the expression are considered to be in the name
- * space of the specified class, with the addition of declared imports,
- * parameters and variables. As in the Java language, <code>this</code> is a
- * reserved word which means the element of the collection being evaluated.
- * <P>Navigation through single-valued fields is specified by the Java
- * language syntax of <code>field_name.field_name....field_name</code>.
- * <P>A JDO implementation is allowed to reorder the filter expression
- * for optimization purposes.
- * @param filter the query filter.
- */
- void setFilter(String filter);
-
- /** Set the import statements to be used to identify the fully qualified
- * name of variables or parameters. Parameters and unbound variables might
- * come from a different class from the candidate class, and the names
- * need to be declared in an import statement to eliminate ambiguity.
- * Import statements are specified as a <code>String</code> with
- * semicolon-separated statements.
- * <P>The <code>String</code> parameter to this method follows the syntax of
- * the import statement of the Java language.
- * @param imports import statements separated by semicolons.
- */
- void declareImports(String imports);
-
- /** Declare the list of parameters query execution.
- *
- * The parameter declaration is a <code>String</code> containing one or more
- * query parameter declarations separated with commas. Each parameter named
- * in the parameter declaration must be bound to a value when
- * the query is executed.
- * <P>The <code>String</code> parameter to this method follows the syntax
- * for formal parameters in the Java language.
- * @param parameters the list of parameters separated by commas.
- */
- void declareParameters(String parameters);
-
- /** Declare the unbound variables to be used in the query. Variables
- * might be used in the filter, and these variables must be declared
- * with their type. The unbound variable declaration is a
- * <code>String</code> containing one or more unbound variable declarations
- * separated with semicolons. It follows the syntax for local variables in
- * the Java language.
- * @param variables the variables separated by semicolons.
- */
- void declareVariables(String variables);
-
- /** Set the ordering specification for the result <code>Collection</code>.
- * The ordering specification is a <code>String</code> containing one or
- * more ordering declarations separated by commas.
- *
- * <P>Each ordering declaration is the name of the field on which
- * to order the results followed by one of the following words:
- * "<code>ascending</code>" or "<code>descending</code>".
- *
- *<P>The field must be declared in the candidate class or must be
- * a navigation expression starting with a field in the candidate class.
- *
- *<P>Valid field types are primitive types except <code>boolean</code>;
- * wrapper types except <code>Boolean</code>; <code>BigDecimal</code>;
- * <code>BigInteger</code>; <code>String</code>; and <code>Date</code>.
- * @param ordering the ordering specification.
- */
- void setOrdering(String ordering);
-
- /** Set the ignoreCache option. The default value for this option was
- * set by the <code>PersistenceManagerFactory</code> or the
- * <code>PersistenceManager</code> used to create this <code>Query</code>.
- *
- * The ignoreCache option setting specifies whether the query should execute
- * entirely in the back end, instead of in the cache. If this flag is set
- * to <code>true</code>, an implementation might be able to optimize the
- * query execution by ignoring changed values in the cache. For optimistic
- * transactions, this can dramatically improve query response times.
- * @param ignoreCache the setting of the ignoreCache option.
- */
- void setIgnoreCache(boolean ignoreCache);
-
- /** Get the ignoreCache option setting.
- * @return the ignoreCache option setting.
- * @see #setIgnoreCache
- */
- boolean getIgnoreCache();
-
- /** Verify the elements of the query and provide a hint to the query to
- * prepare and optimize an execution plan.
- */
- void compile();
-
- /** Execute the query and return the filtered Collection.
- * @return the filtered <code>Collection</code>.
- * @see #executeWithArray(Object[] parameters)
- */
- Object execute();
-
- /** Execute the query and return the filtered <code>Collection</code>.
- * @return the filtered <code>Collection</code>.
- * @see #executeWithArray(Object[] parameters)
- * @param p1 the value of the first parameter declared.
- */
- Object execute(Object p1);
-
- /** Execute the query and return the filtered <code>Collection</code>.
- * @return the filtered <code>Collection</code>.
- * @see #executeWithArray(Object[] parameters)
- * @param p1 the value of the first parameter declared.
- * @param p2 the value of the second parameter declared.
- */
- Object execute(Object p1, Object p2);
-
- /** Execute the query and return the filtered <code>Collection</code>.
- * @return the filtered <code>Collection</code>.
- * @see #executeWithArray(Object[] parameters)
- * @param p1 the value of the first parameter declared.
- * @param p2 the value of the second parameter declared.
- * @param p3 the value of the third parameter declared.
- */
- Object execute(Object p1, Object p2, Object p3);
-
- /** Execute the query and return the filtered <code>Collection</code>. The
- * query is executed with the parameters set by the <code>Map</code> values.
- * Each <code>Map</code> entry consists of a key which is the name of the
- * parameter in the <code>declareParameters</code> method, and a value which
- * is the value used in the <code>execute</code> method. The keys in the
- * <code>Map</code> and the declared parameters must exactly match or a
- * <code>JDOUserException</code> is thrown.
- * @return the filtered <code>Collection</code>.
- * @see #executeWithArray(Object[] parameters)
- * @param parameters the <code>Map</code> containing all of the parameters.
- */
- Object executeWithMap (Map parameters);
-
- /** Execute the query and return the filtered <code>Collection</code>.
- *
- * <P>The execution of the query obtains the values of the parameters and
- * matches them against the declared parameters in order. The names
- * of the declared parameters are ignored. The type of
- * the declared parameters must match the type of the passed parameters,
- * except that the passed parameters might need to be unwrapped to get
- * their primitive values.
- *
- * <P>The filter, import, declared parameters, declared variables, and
- * ordering statements are verified for consistency.
- *
- * <P>Each element in the candidate <code>Collection</code> is examined to
- * see that it is assignment compatible to the <code>Class</code> of the
- * query. It is then evaluated by the Boolean expression of the filter.
- * The element passes the filter if there exist unique values for all
- * variables for which the filter expression evaluates to <code>true</code>.
- * @return the filtered <code>Collection</code>.
- * @param parameters the <code>Object</code> array with all of the
- * parameters.
- */
- Object executeWithArray (Object[] parameters);
-
- /** Get the <code>PersistenceManager</code> associated with this
- * <code>Query</code>.
- *
- * <P>If this <code>Query</code> was restored from a serialized form, it has
- * no <code>PersistenceManager</code>, and this method returns
- * <code>null</code>.
- * @return the <code>PersistenceManager</code> associated with this
- * <code>Query</code>.
- */
- PersistenceManager getPersistenceManager();
-
- /** Close a query result and release any resources associated with it. The
- * parameter is the return from <code>execute(...)</code> and might have
- * iterators open on it. Iterators associated with the query result are
- * invalidated: they return <code>false</code> to <code>hasNext()</code>
- * and throw <code>NoSuchElementException</code> to <code>next()</code>.
- * @param queryResult the result of <code>execute(...)</code> on this
- * <code>Query</code> instance.
- */
- void close (Object queryResult);
-
- /** Close all query results associated with this <code>Query</code>
- * instance, and release all resources associated with them. The query
- * results might have iterators open on them. Iterators associated with the
- * query results are invalidated:
- * they return <code>false</code> to <code>hasNext()</code> and throw
- * <code>NoSuchElementException</code> to <code>next()</code>.
- */
- void closeAll ();
-
- /**
- * Set the grouping expressions, optionally including a "having"
- * clause. When grouping is specified, each result expression
- * must either be an expression contained in the grouping, or an
- * aggregate evaluated once per group.
- *
- * @param group a comma-delimited list of expressions, optionally
- * followed by the "having" keyword and a boolean expression
- * @since 2.0
- */
- void setGrouping (String group);
-
- /**
- * Specify that only the first result of the query should be
- * returned, rather than a collection. The execute method will
- * return null if the query result size is 0.
- * @since 2.0
- * @param unique if true, only one element is returned
- */
- void setUnique (boolean unique);
-
- /**
- * Specifies what type of data this query should return. If this
- * is unset or set to <code>null</code>, this query returns
- * instances of the query's candidate class. If set, this query
- * will return expressions, including field values (projections) and
- * aggregate function results.
- * @param data a comma-delimited list of expressions
- * (fields, functions on fields, or aggregate functions)
- * to return from this query
- * @since 2.0
- */
- void setResult (String data);
-
- /**
- * Specify the type of object in which to return each element of
- * the result of invoking {@link #execute} or one of its siblings.
- * If the result is not set or set to null, the result class defaults
- * to the candidate class of the query. If the result consists of one
- * expression, the result class defaults to the type of that expression.
- * If the result consists of more than one expression, the result class
- * defaults to Object[].
- * The result class may be specified to be one of the java.lang classes
- * Character, Boolean, Byte, Short, Integer, Long, Float, Double, String,
- * or Object[]; or one of the java.math classes BigInteger or BigDecimal;
- * or the java.util class Date; or one of the java.sql classes Date,
- * Time, or Timestamp; or a user-defined class.
- * <P>If there are multiple result expressions, the result class
- * must be able to hold all elements of the result specification
- * or a JDOUserException is thrown.
- *<P>If there is only one result expression, the result class must be
- * assignable from the type of the result expression or must be able
- * to hold all elements of the result specification. A single value
- * must be able to be coerced into the specified result class
- * (treating wrapper classes as equivalent to their unwrapped
- * primitive types) or by matching. If the result class does not satisfy
- * these conditions, a JDOUserException is thrown.
- *<P>A constructor of a result class specified in the setResult method
- * will be used if the results specification matches the parameters
- * of the constructor by position and type. If more than one constructor
- * satisfies the requirements, the JDO implementation chooses one of them.
- * If no constructor satisfies the results requirements, or if the result
- * class is specified via the setResultClass method, the following
- * requirements apply:
- * <ul>
- * <li>A user-defined result class must have a no-args constructor and
- * one or more public <code>set</code> or <code>put</code> methods or
- * fields.
- * <li>Each result expression must match one of:
- * <ul>
- * <li>a public field that matches the name of the result expression
- * and is of the type (treating wrapper types equivalent to primitive
- * types) of the result expression;
- * <li>or if no public field matches the name and type, a public
- * <code>set</code method that returns void and matches the name of the
- * result expression and takes a single parameter which is the
- * exact type of the result expression;
- * <li>or if neither of the above applies,a public method must be found
- * with the signature <code>void put(Object, Object)</code>.
- * During processing of the results,
- * the first argument is the name of the result expression and
- * the second argument is the value from the query result.
- * </ul>
- * </ul>
- * Portable result classes do not invoke any persistence behavior
- * during their no-args constructor or <code>set</code methods.
- * @param cls the result class
- * @since 2.0
- */
- void setResultClass (Class cls);
-
- /**
- * Set the range of results to return. The execution of the query is
- * modified to return only a subset of results. If the filter would
- * normally return 100 instances, and fromIncl is set to 50, and
- * toExcl is set to 70, then the first 50 results that would have
- * been returned are skipped, the next 20 results are returned and the
- * remaining 30 results are ignored. An implementation should execute
- * the query such that the range algorithm is done at the data store.
- * @param fromIncl 0-based inclusive start index
- * @param toExcl 0-based exclusive end index, or
- * {@link Long#MAX_VALUE} for no limit.
- * @since 2.0
- */
- void setRange (long fromIncl, long toExcl);
-
- /**
- * Set the range of results to return. The parameter is a String
- * containing a comma-separated fromIncl and toExcl. The fromIncl and
- * toExcl can be either String representations of long values, or can
- * be parameters identified with a leading ":". For example,
- * <code>setRange("50, 70");</code> or
- * <code>setRange(":from, :to");</code> or
- * <code>setRange("50, :to");</code>.
- * The execution of the query is
- * modified to return only a subset of results. If the filter would
- * normally return 100 instances, and fromIncl is set to 50, and
- * toExcl is set to 70, then the first 50 results that would have
- * been returned are skipped, the next 20 results are returned and the
- * remaining 30 results are ignored. An implementation should execute
- * the query such that the range algorithm is done at the data store.
- * @param fromInclToExcl comma-separated fromIncl and toExcl values
- * @see #setRange(long, long)
- * @since 2.0
- */
- void setRange (String fromInclToExcl);
-
- /**
- * Add a vendor-specific extension to this query. The key and value
- * are not standard.
- * An implementation must ignore keys that are not recognized.
- * @param key the key of the extension
- * @param value the value of the extension
- * @since 2.0
- */
- void addExtension (String key, Object value);
-
- /**
- * Set multiple extensions, or use null to clear all extensions.
- * Map keys and values are not standard.
- * An implementation must ignore entries that are not recognized.
- * @param extensions the map of extensions
- * @see #addExtension
- * @since 2.0
- */
- void setExtensions (Map extensions);
-
- /**
- * Returns the <code>FetchPlan</code> used by this
- * <code>Query</code>. Modifications of the returned fetch plan will not
- * cause this query's owning <code>PersistenceManager</code>'s
- * <code>FetchPlan</code> to be modified.
- * @since 2.0
- * @return the fetch plan used by this query
- */
- FetchPlan getFetchPlan ();
-
- /**
- * Deletes all the instances of the candidate class that pass the
- * filter.
- * @see #deletePersistentAll()
- * @param parameters for the query
- * @return the number of instances of the candidate class that were deleted
- * @since 2.0
- */
- long deletePersistentAll (Object[] parameters);
-
- /**
- * Deletes all the instances of the candidate class that pass the
- * filter.
- * @see #deletePersistentAll()
- * @param parameters for the query
- * @return the number of instances of the candidate class that were deleted
- * @since 2.0
- */
- long deletePersistentAll (Map parameters);
-
- /**
- * Deletes all the instances of the candidate class that pass the
- * filter. Returns the number of instances of the candidate
- * class that were deleted, specifically not including the number
- * of dependent and embedded instances.
- * <P>Dirty instances of affected classes in the cache are first
- * flushed to the datastore. Instances in the cache or brought into
- * the cache as a result of executing one of the
- * <code>deletePersistentAll</code>
- * methods undergo life cycle changes as if <code>deletePersistent</code>
- * were called on them.
- * <P>Specifically, if the class of deleted instances implements the
- * delete callback interface, the corresponding callback methods
- * are called on the deleted instances. Similarly, if there are
- * lifecycle listeners registered for delete events on affected
- * classes, the listener is called for each appropriate deleted instance.
- * <P>Before returning control to the application, instances of affected
- * classes in the cache are refreshed to reflect whether they were
- * deleted from the datastore.
- *
- * @return the number of instances of the candidate class that were deleted
- * @since 2.0
- */
- long deletePersistentAll ();
-
- /**
- * The unmodifiable flag, when set, disallows further
- * modification of the query, except for specifying the range,
- * result class, and ignoreCache option.
- * The unmodifiable flag can also be set in metadata.
- * @since 2.0
- */
- void setUnmodifiable();
-
- /**
- * The unmodifiable flag, when set, disallows further
- * modification of the query, except for specifying the range,
- * result class, and ignoreCache option.
- * @return the current setting of the flag
- * @since 2.0
- */
- boolean isUnmodifiable();
-
-}
diff --git a/api20/src/java/javax/jdo/Transaction.java b/api20/src/java/javax/jdo/Transaction.java
deleted file mode 100644
index 808a254..0000000
--- a/api20/src/java/javax/jdo/Transaction.java
+++ /dev/null
@@ -1,198 +0,0 @@
-/*
- * Copyright 2005 The Apache Software Foundation.
- *
- * Licensed 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.
- */
-
-/*
- * Transaction.java
- *
- */
-
-package javax.jdo;
-import javax.transaction.Synchronization;
-
-/** The JDO <code>Transaction</code> interface provides for initiation and
- * completion of transactions under user control.
- * It is a sub-interface of the {@link PersistenceManager}
- * that deals with options and transaction demarcation.
- * <P>Transaction options include whether optimistic concurrency
- * control should be used for the current transaction, whether instances
- * may hold values in the cache outside transactions, and whether
- * values should be retained in the cache after transaction completion. These
- * options are valid for both managed and non-managed transactions.
- *
- * <P>Transaction initiation and completion methods have similar semantics to
- * <code>javax.transaction.UserTransaction</code> when used outside a managed
- * environment. When used in a managed environment, transaction initiation
- * and completion methods may only be used with bean-managed transaction
- * semantics.
- * @version 2.0
- */
-
-public interface Transaction
-{
- /** Begin a transaction. The type of transaction is determined by the
- * setting of the Optimistic flag.
- * @see #setOptimistic
- * @see #getOptimistic
- * @throws JDOUserException if transactions are managed by a container
- * in the managed environment, or if the transaction is already active.
- */
- void begin();
-
- /** Commit the current transaction.
- * @throws JDOUserException if transactions are managed by a container
- * in the managed environment, or if the transaction is not active.
- */
- void commit();
-
- /** Roll back the current transaction.
- * @throws JDOUserException if transactions are managed by a container
- * in the managed environment, or if the transaction is not active.
- */
- void rollback();
-
- /** Returns whether there is a transaction currently active.
- * @return <code>true</code> if the transaction is active.
- */
- boolean isActive();
-
- /**
- * Returns the rollback-only status of the transaction. When
- * begun, the rollback-only status is false. Either the
- * application or the JDO implementation may set this flag
- * using setRollbackOnly.
- * @return <code>true</code> if the transaction has been
- * marked for rollback.
- * @since 2.0
- */
- boolean getRollbackOnly();
-
- /**
- * Sets the rollback-only status of the transaction to <code>true</code>.
- * After this flag is set to <code>true</code>, the transaction
- * can no longer be committed, and any attempt to commit the
- * transaction will throw <code>JDOUserException<code>.
- * @since 2.0
- */
- void setRollbackOnly();
-
- /** If <code>true</code>, allow persistent instances to be read without
- * a transaction active.
- * If an implementation does not support this option, a
- * <code>JDOUnsupportedOptionException</code> is thrown.
- * @param nontransactionalRead the value of the nontransactionalRead
- * property
- */
- void setNontransactionalRead (boolean nontransactionalRead);
-
- /** If <code>true</code>, allows persistent instances to be read without
- * a transaction active.
- * @return the value of the nontransactionalRead property
- */
- boolean getNontransactionalRead ();
-
- /** If <code>true</code>, allow persistent instances to be written without
- * a transaction active.
- * If an implementation does not support this option, a
- * <code>JDOUnsupportedOptionException</code> is thrown.
- * @param nontransactionalWrite the value of the nontransactionalRead
- * property
- */
- void setNontransactionalWrite (boolean nontransactionalWrite);
-
- /** If <code>true</code>, allows persistent instances to be written without
- * a transaction active.
- * @return the value of the nontransactionalWrite property
- */
- boolean getNontransactionalWrite ();
-
- /** If <code>true</code>, at commit instances retain their values and the
- * instances transition to persistent-nontransactional.
- * If an implementation does not support this option, a
- * <code>JDOUnsupportedOptionException</code> is thrown.
- * @param retainValues the value of the retainValues property
- */
- void setRetainValues(boolean retainValues);
-
- /** If <code>true</code>, at commit time instances retain their field
- * values.
- * @return the value of the retainValues property
- */
- boolean getRetainValues();
-
- /** If <code>true</code>, at rollback, fields of newly persistent instances
- * are restored to
- * their values as of the beginning of the transaction, and the instances
- * revert to transient. Additionally, fields of modified
- * instances of primitive types and immutable reference types
- * are restored to their values as of the beginning of the
- * transaction.
- * <P>If <code>false</code>, at rollback, the values of fields of
- * newly persistent instances are unchanged and the instances revert to
- * transient. Additionally, dirty instances transition to hollow.
- * If an implementation does not support this option, a
- * <code>JDOUnsupportedOptionException</code> is thrown.
- * @param restoreValues the value of the restoreValues property
- */
- void setRestoreValues(boolean restoreValues);
-
- /** Return the current value of the restoreValues property.
- * @return the value of the restoreValues property
- */
- boolean getRestoreValues();
-
- /** Optimistic transactions do not hold data store locks until commit time.
- * If an implementation does not support this option, a
- * <code>JDOUnsupportedOptionException</code> is thrown.
- * @param optimistic the value of the Optimistic flag.
- */
- void setOptimistic(boolean optimistic);
-
- /** Optimistic transactions do not hold data store locks until commit time.
- * @return the value of the Optimistic property.
- */
- boolean getOptimistic();
-
- /** The user can specify a <code>Synchronization</code> instance to be
- * notified on transaction completions. The <code>beforeCompletion</code>
- * method is called prior to flushing instances to the data store.
- *
- * <P>The <code>afterCompletion</code> method is called after performing
- * state transitions of persistent and transactional instances, following
- * the data store commit or rollback operation.
- * <P>Only one <code>Synchronization</code> instance can be registered with
- * the <code>Transaction</code>. If the application requires more than one
- * instance to receive synchronization callbacks, then the single
- * application instance is responsible for managing them, and forwarding
- * callbacks to them.
- * @param sync the <code>Synchronization</code> instance to be notified;
- * <code>null</code> for none
- */
- void setSynchronization(Synchronization sync);
-
- /** The user-specified <code>Synchronization</code> instance for this
- * <code>Transaction</code> instance.
- * @return the user-specified <code>Synchronization</code> instance.
- */
- Synchronization getSynchronization();
-
- /** The <code>Transaction</code> instance is always associated with exactly
- * one <code>PersistenceManager</code>.
- *
- * @return the <code>PersistenceManager</code> for this
- * <code>Transaction</code> instance
- */
- PersistenceManager getPersistenceManager();
-}
diff --git a/api20/src/java/javax/jdo/datastore/DataStoreCache.java b/api20/src/java/javax/jdo/datastore/DataStoreCache.java
deleted file mode 100644
index 6531b66..0000000
--- a/api20/src/java/javax/jdo/datastore/DataStoreCache.java
+++ /dev/null
@@ -1,169 +0,0 @@
-/*
- * Copyright 2005 The Apache Software Foundation.
- *
- * Licensed 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.
- */
-
-/*
- * DataStoreCache.java
- *
- */
-
-package javax.jdo.datastore;
-
-import java.util.Collection;
-
-
-/**
- * Many JDO implementations allow instances to be cached in a
- * second-level cache, and allow direct management of the cache by
- * knowledgeable applications. This interface standardizes this
- * behavior.
- * @since 2.0
- * @version 2.0
- */
-public interface DataStoreCache {
-
- /** Evict the parameter instance from the second-level cache.
- * @param oid the object id of the instance to evict.
- * @since 2.0
- */
- void evict (Object oid);
-
- /** Evict the parameter instances from the second-level cache.
- * All instances in the PersistenceManager's cache are evicted
- * from the second-level cache.
- * @since 2.0
- */
- void evictAll ();
-
- /** Evict the parameter instances from the second-level cache.
- * @param oids the object ids of the instance to evict.
- * @since 2.0
- */
- void evictAll (Object[] oids);
-
- /** Evict the parameter instances from the second-level cache.
- * @param oids the object ids of the instance to evict.
- * @since 2.0
- */
- void evictAll (Collection oids);
-
- /** Evict the parameter instances from the second-level cache.
- * @param pcClass the class of instances to evict
- * @param subclasses if true, evict instances of subclasses also
- * @since 2.0
- */
- void evictAll (Class pcClass, boolean subclasses);
-
- /** Pin the parameter instance in the second-level cache.
- * @param oid the object id of the instance to pin.
- * @since 2.0
- */
- void pin (Object oid);
-
- /** Pin the parameter instances in the second-level cache.
- * @param oids the object ids of the instances to pin.
- * @since 2.0
- */
- void pinAll (Collection oids);
-
- /** Pin the parameter instances in the second-level cache.
- * @param oids the object ids of the instances to pin.
- * @since 2.0
- */
- void pinAll (Object[] oids);
-
- /** Pin instances in the second-level cache.
- * @param pcClass the class of instances to pin
- * @param subclasses if true, pin instances of subclasses also
- * @since 2.0
- */
- void pinAll (Class pcClass, boolean subclasses);
-
- /** Unpin the parameter instance from the second-level cache.
- * @param oid the object id of the instance to unpin.
- * @since 2.0
- */
- void unpin(Object oid);
-
- /** Unpin the parameter instances from the second-level cache.
- * @param oids the object ids of the instance to evict.
- * @since 2.0
- */
- void unpinAll(Collection oids);
-
- /** Unpin the parameter instance from the second-level cache.
- * @param oids the object id of the instance to evict.
- * @since 2.0
- */
- void unpinAll(Object[] oids);
-
- /** Unpin instances from the second-level cache.
- * @param pcClass the class of instances to unpin
- * @param subclasses if true, unpin instances of subclasses also
- * @since 2.0
- */
- void unpinAll(Class pcClass, boolean subclasses);
-
- /**
- * This class is an empty implementation of the DataStoreCache
- * interface. It can be used by an implementation that does not
- * support a second-level cache.
- * @since 2.0
- */
- public class EmptyDataStoreCache implements DataStoreCache {
-
- public EmptyDataStoreCache() {
- }
-
- public void evict(Object oid) {
- }
-
- public void evictAll() {
- }
-
- public void evictAll(Object[] oids) {
- }
-
- public void evictAll(Collection oids) {
- }
-
- public void evictAll(Class pcClass, boolean subclasses) {
- }
-
- public void pin(Object oid) {
- }
-
- public void pinAll(Object[] oids) {
- }
-
- public void pinAll(Collection oids) {
- }
-
- public void pinAll(Class pcClass, boolean subclasses) {
- }
-
- public void unpin(Object oid) {
- }
-
- public void unpinAll(Object[] oids) {
- }
-
- public void unpinAll(Collection oids) {
- }
-
- public void unpinAll(Class pcClass, boolean subclasses) {
- }
- }
-}
diff --git a/api20/src/java/javax/jdo/datastore/JDOConnection.java b/api20/src/java/javax/jdo/datastore/JDOConnection.java
deleted file mode 100644
index fa0d09b..0000000
--- a/api20/src/java/javax/jdo/datastore/JDOConnection.java
+++ /dev/null
@@ -1,55 +0,0 @@
-/*
- * Copyright 2005 The Apache Software Foundation.
- *
- * Licensed 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.
- */
-
-/*
- * JDOConnection.java
- *
- */
-
-package javax.jdo.datastore;
-
-/**
- * The underlying connection that is being used by a
- * {@link javax.jdo.PersistenceManager}.
- * @version 2.0
- * @since 2.0
- */
-public interface JDOConnection {
-
- /**
- * Returns the native, datastore-specific connection that this
- * connection wraps. In general, it is not recommended that this
- * native connection be used directly, since the JDO
- * implementation has no way to intercept calls to it, so it is
- * quite possible to put the <code>PersistenceManager</code>'s
- * connection into an invalid state.
- * @return the native connection
- * @since 2.0
- */
- Object getNativeConnection ();
-
- /**
- * Returns this connection to the JDO implementation.
- * The object must be returned to the JDO implementation prior to
- * calling any JDO method or performing any action on any persistent
- * instance that might require the JDO implementation to use a
- * connection. If the object has not been returned and the JDO
- * implementation needs a connection, a <code>JDOUserException</code>
- * is thrown.
- * @since 2.0
- */
- void close();
-}
diff --git a/api20/src/java/javax/jdo/datastore/Sequence.java b/api20/src/java/javax/jdo/datastore/Sequence.java
deleted file mode 100644
index 3c03d5b..0000000
--- a/api20/src/java/javax/jdo/datastore/Sequence.java
+++ /dev/null
@@ -1,82 +0,0 @@
-/*
- * Copyright 2005 The Apache Software Foundation.
- *
- * Licensed 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.
- */
-
-/*
- * Sequence.java
- *
- */
-
-package javax.jdo.datastore;
-
-
-/**
- * Implementations of this interface can be used to obtain
- * sequences. The behavior with regard to the transaction and
- * rollover behavior are defined in the metadata.
- *
- * @version 2.0
- * @since 2.0
- */
-public interface Sequence {
-
- /**
- * Returns the fully qualified name of the <code>Sequence</code>.
- * @return the name of the sequence
- */
- String getName ();
-
- /**
- * Returns the next sequence value as an Object. If the next
- * sequence value is not available, throw JDODataStoreException.
- * @return the next value
- */
- Object next ();
-
- /**
- * Provides a hint to the implementation that the application
- * will need <code>additional</code> sequence value objects in
- * short order. There is no externally visible behavior of this
- * method. It is used to potentially improve the efficiency of
- * the algorithm of obtaining additional sequence value objects.
- * @param additional the number of additional values to allocate
- */
- void allocate (int additional);
-
- /**
- * Returns the current sequence value object if it is
- * available. It is intended to return a sequence value object
- * previously used. If the current sequence value is not available,
- * throw JDODataStoreException.
- * @return the current value
- */
- Object current ();
-
- /**
- * Returns the next sequence value as a long. If the next
- * sequence value is not available or is not numeric, throw
- * JDODataStoreException.
- * @return the next value
- */
- long nextValue();
-
- /**
- * Returns the current sequence value as a long. If the current
- * sequence value is not available or is not numeric, throw
- * JDODataStoreException.
- * @return the current value
- */
- long currentValue();
-}
diff --git a/api20/src/java/javax/jdo/datastore/package.html b/api20/src/java/javax/jdo/datastore/package.html
deleted file mode 100644
index 97453e2..0000000
--- a/api20/src/java/javax/jdo/datastore/package.html
+++ /dev/null
@@ -1,26 +0,0 @@
-<!--
- Copyright 2005 The Apache Software Foundation.
-
- Licensed 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.
--->
-
-<html>
-<head>
-<title>Datastore package</title>
-<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
-</head>
-
-<body bgcolor="#FFFFFF">
-This package contains the JDO specification datastore interfaces.
-</body>
-</html>
diff --git a/api20/src/java/javax/jdo/identity/ByteIdentity.java b/api20/src/java/javax/jdo/identity/ByteIdentity.java
deleted file mode 100644
index da47cdf..0000000
--- a/api20/src/java/javax/jdo/identity/ByteIdentity.java
+++ /dev/null
@@ -1,131 +0,0 @@
-/*
- * Copyright 2005 The Apache Software Foundation.
- *
- * Licensed 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.
- */
-
-/*
- * ByteIdentity.java
- *
- */
-
-package javax.jdo.identity;
-
-import java.io.IOException;
-import java.io.ObjectInput;
-import java.io.ObjectOutput;
-
-/** This class is for identity with a single byte field.
- * @version 2.0
- */
-public class ByteIdentity extends SingleFieldIdentity {
-
- /** The key.
- */
- private byte key;
-
- /** Construct this instance with the key value.
- */
- private void construct(byte key) {
- this.key = key;
- hashCode = super.hashClassName() ^ key;
- }
-
- /** Constructor with class and key.
- * @param pcClass the target class
- * @param key the key
- */
- public ByteIdentity(Class pcClass, byte key) {
- super(pcClass);
- construct(key);
- }
-
- /** Constructor with class and key.
- * @param pcClass the target class
- * @param key the key
- */
- public ByteIdentity(Class pcClass, Byte key) {
- super(pcClass);
- setKeyAsObject(key);
- construct(key.byteValue());
- }
-
- /** Constructor with class and key.
- * @param pcClass the target class
- * @param str the key
- */
- public ByteIdentity(Class pcClass, String str) {
- super(pcClass);
- assertKeyNotNull(str);
- construct(Byte.parseByte(str));
- }
-
- /** Constructor only for Externalizable.
- */
- public ByteIdentity() {
- }
-
- /** Return the key.
- * @return the key
- */
- public byte getKey() {
- return key;
- }
-
- /** Return the String version of the key.
- * @return the key.
- */
- public String toString() {
- return Byte.toString(key);
- }
-
- /** Determine if the other object represents the same object id.
- * @param obj the other object
- * @return true if both objects represent the same object id
- */
- public boolean equals(Object obj) {
- if (this == obj) {
- return true;
- } else if (!super.equals (obj)) {
- return false;
- } else {
- ByteIdentity other = (ByteIdentity)obj;
- return key == other.key;
- }
- }
-
- /** Create the key as an Object.
- * @return the key as an Object
- * @since 2.0
- */
- protected Object createKeyAsObject() {
- return new Byte(key);
- }
-
- /** Write this object. Write the superclass first.
- * @param out the output
- */
- public void writeExternal(ObjectOutput out) throws IOException {
- super.writeExternal (out);
- out.writeByte (key);
- }
-
- /** Read this object. Read the superclass first.
- * @param in the input
- */
- public void readExternal(ObjectInput in)
- throws IOException, ClassNotFoundException {
- super.readExternal (in);
- key = in.readByte ();
- }
-}
diff --git a/api20/src/java/javax/jdo/identity/CharIdentity.java b/api20/src/java/javax/jdo/identity/CharIdentity.java
deleted file mode 100644
index de5755f..0000000
--- a/api20/src/java/javax/jdo/identity/CharIdentity.java
+++ /dev/null
@@ -1,143 +0,0 @@
-/*
- * Copyright 2005 The Apache Software Foundation.
- *
- * Licensed 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.
- */
-
-/*
- * CharIdentity.java
- *
- */
-
-package javax.jdo.identity;
-
-import java.io.IOException;
-import java.io.ObjectInput;
-import java.io.ObjectOutput;
-
-import javax.jdo.spi.I18NHelper;
-
-/** This class is for identity with a single character field.
- * @version 2.0
- */
-public class CharIdentity extends SingleFieldIdentity {
-
- /** The Internationalization message helper.
- */
- private static I18NHelper msg = I18NHelper.getInstance ("javax.jdo.Bundle"); //NOI18N
-
- /** The key.
- */
- private char key;
-
- private void construct(char key) {
- this.key = key;
- hashCode = hashClassName() ^ key;
- }
-
- /** Constructor with class and key.
- * @param pcClass the target class
- * @param key the key
- */
- public CharIdentity (Class pcClass, char key) {
- super (pcClass);
- construct(key);
- }
-
- /** Constructor with class and key.
- * @param pcClass the target class
- * @param key the key
- */
- public CharIdentity (Class pcClass, Character key) {
- super (pcClass);
- setKeyAsObject(key);
- construct(key.charValue());
- }
-
- /** Constructor with class and key. The String must have exactly one
- * character.
- * @param pcClass the target class
- * @param str the key
- */
- public CharIdentity (Class pcClass, String str) {
- super(pcClass);
- assertKeyNotNull(str);
- if (str.length() != 1)
- throw new IllegalArgumentException(
- msg.msg("EXC_StringWrongLength")); //NOI18N
- construct(str.charAt(0));
- }
-
- /** Constructor only for Externalizable.
- */
- public CharIdentity () {
- }
-
- /** Return the key.
- * @return the key
- */
- public char getKey () {
- return key;
- }
-
- /** Return the String form of the key.
- * @return the String form of the key
- */
- public String toString () {
- return String.valueOf(key);
- }
-
- /** Determine if the other object represents the same object id.
- * @param obj the other object
- * @return true if both objects represent the same object id
- */
- public boolean equals (Object obj) {
- if (this == obj) {
- return true;
- } else if (!super.equals (obj)) {
- return false;
- } else {
- CharIdentity other = (CharIdentity) obj;
- return key == other.key;
- }
- }
-
- /** Create the key as an Object.
- * @return the key as an Object
- * @since 2.0
- */
- protected Object createKeyAsObject() {
- return new Character(key);
- }
-
- /** Write this object. Write the superclass first.
- * @param out the output
- */
- public void writeExternal(ObjectOutput out) throws IOException {
- super.writeExternal (out);
- out.writeChar(key);
- }
-
- /** Read this object. Read the superclass first.
- * @param in the input
- */
- public void readExternal(ObjectInput in)
- throws IOException, ClassNotFoundException {
- super.readExternal (in);
- key = in.readChar();
- }
-
- private void computeHashCode() {
- hashCode = hashClassName() ^ key;
- }
-}
diff --git a/api20/src/java/javax/jdo/identity/IntIdentity.java b/api20/src/java/javax/jdo/identity/IntIdentity.java
deleted file mode 100644
index 7246279..0000000
--- a/api20/src/java/javax/jdo/identity/IntIdentity.java
+++ /dev/null
@@ -1,128 +0,0 @@
-/*
- * Copyright 2005 The Apache Software Foundation.
- *
- * Licensed 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.
- */
-
-/*
- * IntIdentity.java
- *
- */
-
-package javax.jdo.identity;
-
-import java.io.IOException;
-import java.io.ObjectInput;
-import java.io.ObjectOutput;
-
-/** This class is for identity with a single int field.
- * @version 2.0
- */
-public class IntIdentity extends SingleFieldIdentity {
-
- private int key;
-
- private void construct(int key) {
- this.key = key;
- hashCode = hashClassName() ^ key;
- }
-
- /** Constructor with class and key.
- * @param pcClass the class
- * @param key the key
- */
- public IntIdentity (Class pcClass, int key) {
- super(pcClass);
- construct(key);
- }
-
- /** Constructor with class and key.
- * @param pcClass the class
- * @param key the key
- */
- public IntIdentity (Class pcClass, Integer key) {
- super(pcClass);
- setKeyAsObject(key);
- construct(key.intValue ());
- }
-
-
- /** Constructor with class and key.
- * @param pcClass the class
- * @param str the key
- */
- public IntIdentity (Class pcClass, String str) {
- super(pcClass);
- assertKeyNotNull(str);
- construct(Integer.parseInt(str));
- }
-
- /** Constructor only for Externalizable.
- */
- public IntIdentity () {
- }
-
- /** Return the key.
- * @return the key
- */
- public int getKey () {
- return key;
- }
-
- /** Return the String form of the key.
- * @return the String form of the key
- */
- public String toString () {
- return Integer.toString(key);
- }
-
- /** Determine if the other object represents the same object id.
- * @param obj the other object
- * @return true if both objects represent the same object id
- */
- public boolean equals (Object obj) {
- if (this == obj) {
- return true;
- } else if (!super.equals (obj)) {
- return false;
- } else {
- IntIdentity other = (IntIdentity) obj;
- return key == other.key;
- }
- }
-
- /** Create the key as an Object.
- * @return the key as an Object
- * @since 2.0
- */
- protected Object createKeyAsObject() {
- return new Integer(key);
- }
-
- /** Write this object. Write the superclass first.
- * @param out the output
- */
- public void writeExternal(ObjectOutput out) throws IOException {
- super.writeExternal (out);
- out.writeInt(key);
- }
-
- /** Read this object. Read the superclass first.
- * @param in the input
- */
- public void readExternal(ObjectInput in)
- throws IOException, ClassNotFoundException {
- super.readExternal (in);
- key = in.readInt();
- }
-}
diff --git a/api20/src/java/javax/jdo/identity/LongIdentity.java b/api20/src/java/javax/jdo/identity/LongIdentity.java
deleted file mode 100644
index 2bc44d4..0000000
--- a/api20/src/java/javax/jdo/identity/LongIdentity.java
+++ /dev/null
@@ -1,130 +0,0 @@
-/*
- * Copyright 2005 The Apache Software Foundation.
- *
- * Licensed 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.
- */
-
-/*
- * LongIdentity.java
- *
- */
-
-package javax.jdo.identity;
-
-import java.io.IOException;
-import java.io.ObjectInput;
-import java.io.ObjectOutput;
-
-/** This class is for identity with a single long field.
- * @version 2.0
- */
-public class LongIdentity extends SingleFieldIdentity {
-
- /** The key.
- */
- private long key;
-
- private void construct(long key) {
- this.key = key;
- hashCode = hashClassName() ^ (int)key;
- }
-
- /** Constructor with class and key.
- * @param pcClass the class
- * @param key the key
- */
- public LongIdentity (Class pcClass, long key) {
- super (pcClass);
- construct(key);
- }
-
- /** Constructor with class and key.
- * @param pcClass the class
- * @param key the key
- */
- public LongIdentity (Class pcClass, Long key) {
- super(pcClass);
- setKeyAsObject(key);
- construct(key.longValue());
- }
-
- /** Constructor with class and key.
- * @param pcClass the class
- * @param str the key
- */
- public LongIdentity (Class pcClass, String str) {
- super(pcClass);
- assertKeyNotNull(str);
- construct(Long.parseLong(str));
- }
-
- /** Constructor only for Externalizable.
- */
- public LongIdentity () {
- }
-
- /** Return the key.
- * @return the key
- */
- public long getKey () {
- return key;
- }
-
- /** Return the String form of the key.
- * @return the String form of the key
- */
- public String toString () {
- return Long.toString(key);
- }
-
- /** Determine if the other object represents the same object id.
- * @param obj the other object
- * @return true if both objects represent the same object id
- */
- public boolean equals (Object obj) {
- if (this == obj) {
- return true;
- } else if (!super.equals (obj)) {
- return false;
- } else {
- LongIdentity other = (LongIdentity) obj;
- return key == other.key;
- }
- }
-
- /** Create the key as an Object.
- * @return the key as an Object
- * @since 2.0
- */
- protected Object createKeyAsObject() {
- return new Long(key);
- }
-
- /** Write this object. Write the superclass first.
- * @param out the output
- */
- public void writeExternal(ObjectOutput out) throws IOException {
- super.writeExternal (out);
- out.writeLong(key);
- }
-
- /** Read this object. Read the superclass first.
- * @param in the input
- */
- public void readExternal(ObjectInput in)
- throws IOException, ClassNotFoundException {
- super.readExternal (in);
- key = in.readLong();
- }
-
-}
diff --git a/api20/src/java/javax/jdo/identity/ObjectIdentity.java b/api20/src/java/javax/jdo/identity/ObjectIdentity.java
deleted file mode 100644
index 9a132be..0000000
--- a/api20/src/java/javax/jdo/identity/ObjectIdentity.java
+++ /dev/null
@@ -1,152 +0,0 @@
-/*
- * Copyright 2005 The Apache Software Foundation.
- *
- * Licensed 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.
- */
-
-/*
- * ObjectIdentity.java
- *
- */
-
-package javax.jdo.identity;
-
-import java.io.IOException;
-import java.io.ObjectInput;
-import java.io.ObjectOutput;
-
-import java.security.AccessController;
-import java.security.PrivilegedAction;
-
-import javax.jdo.JDOUserException;
-
-import javax.jdo.spi.JDOImplHelper;
-
-/** This class is for identity with a single Object type field.
- * @version 2.0
- */
-public class ObjectIdentity extends SingleFieldIdentity {
-
- /** The key is stored in the superclass field keyAsObject.
- */
-
- /** The JDOImplHelper instance used for parsing the String to an Object.
- */
- private static JDOImplHelper helper = (JDOImplHelper)
- AccessController.doPrivileged(
- new PrivilegedAction () {
- public Object run () {
- return JDOImplHelper.getInstance();
- }
- }
- );
-
- /** The delimiter for String constructor.
- */
- private static final String STRING_DELIMITER = ":"; //NOI18N
-
- /** Constructor with class and key.
- * @param pcClass the class
- * @param param the key
- */
- public ObjectIdentity (Class pcClass, Object param) {
- super (pcClass);
- assertKeyNotNull(param);
- String paramString = null;
- String keyString = null;
- String className = null;
- if (param instanceof String) {
- /* The paramString is of the form "<className>:<keyString>" */
- paramString = (String)param;
- if (paramString.length() < 3) {
- throw new JDOUserException(
- msg.msg("EXC_ObjectIdentityStringConstructionTooShort") + //NOI18N
- msg.msg("EXC_ObjectIdentityStringConstructionUsage", //NOI18N
- paramString));
- }
- int indexOfDelimiter = paramString.indexOf(STRING_DELIMITER);
- if (indexOfDelimiter < 0) {
- throw new JDOUserException(
- msg.msg("EXC_ObjectIdentityStringConstructionNoDelimiter") + //NOI18N
- msg.msg("EXC_ObjectIdentityStringConstructionUsage", //NOI18N
- paramString));
- }
- keyString = paramString.substring(indexOfDelimiter+1);
- className = paramString.substring(0, indexOfDelimiter);
- keyAsObject = helper.construct(className, keyString);
- } else {
- keyAsObject = param;
- }
- hashCode = hashClassName() ^ keyAsObject.hashCode();
- }
-
- /** Constructor only for Externalizable.
- */
- public ObjectIdentity () {
- }
-
- /** Return the key.
- * @return the key
- */
- public Object getKey () {
- return keyAsObject;
- }
-
- /** Return the String form of the object id. The class of the
- * object id is written as the first part of the result so that
- * the class can be reconstructed later. Then the toString
- * of the key instance is appended. During construction,
- * this process is reversed. The class is extracted from
- * the first part of the String, and the String constructor
- * of the key is used to construct the key itself.
- * @return the String form of the key
- */
- public String toString () {
- return keyAsObject.getClass().getName()
- + STRING_DELIMITER
- + keyAsObject.toString();
- }
-
- /** Determine if the other object represents the same object id.
- * @param obj the other object
- * @return true if both objects represent the same object id
- */
- public boolean equals (Object obj) {
- if (this == obj) {
- return true;
- } else if (!super.equals (obj)) {
- return false;
- } else {
- ObjectIdentity other = (ObjectIdentity) obj;
- return keyAsObject.equals(other.keyAsObject);
- }
- }
-
- /** Write this object. Write the superclass first.
- * @param out the output
- */
- public void writeExternal(ObjectOutput out) throws IOException {
- super.writeExternal (out);
- out.writeObject(keyAsObject);
- }
-
- /** Read this object. Read the superclass first.
- * @param in the input
- */
- public void readExternal(ObjectInput in)
- throws IOException, ClassNotFoundException {
- super.readExternal (in);
- keyAsObject = in.readObject();
- }
-
-}
diff --git a/api20/src/java/javax/jdo/identity/ShortIdentity.java b/api20/src/java/javax/jdo/identity/ShortIdentity.java
deleted file mode 100644
index 69a3cc0..0000000
--- a/api20/src/java/javax/jdo/identity/ShortIdentity.java
+++ /dev/null
@@ -1,128 +0,0 @@
-/*
- * Copyright 2005 The Apache Software Foundation.
- *
- * Licensed 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.
- */
-
-/*
- * ShortIdentity.java
- *
- */
-
-package javax.jdo.identity;
-
-import java.io.IOException;
-import java.io.ObjectInput;
-import java.io.ObjectOutput;
-
-/** This class is for identity with a single short field.
- * @version 2.0
- */
-public class ShortIdentity
- extends SingleFieldIdentity
-{
- private short key;
-
- private void construct(short key) {
- this.key = key;
- hashCode = hashClassName() ^ key;
- }
-
- /** Constructor with class and key.
- * @param pcClass the class
- * @param key the key
- */
- public ShortIdentity (Class pcClass, short key) {
- super(pcClass);
- construct(key);
- }
-
- /** Constructor with class and key.
- * @param pcClass the class
- * @param key the key
- */
- public ShortIdentity (Class pcClass, Short key) {
- super(pcClass);
- setKeyAsObject(key);
- construct(key.shortValue());
- }
-
- /** Constructor with class and key.
- * @param pcClass the class
- * @param str the key
- */
- public ShortIdentity (Class pcClass, String str) {
- super(pcClass);
- assertKeyNotNull(str);
- construct(Short.parseShort (str));
- }
-
- /** Constructor only for Externalizable.
- */
- public ShortIdentity () {
- }
-
- /** Return the key.
- * @return the key
- */
- public short getKey () {
- return key;
- }
-
- /** Return the String form of the key.
- * @return the String form of the key
- */
- public String toString () {
- return Short.toString(key);
- }
-
- /** Determine if the other object represents the same object id.
- * @param obj the other object
- * @return true if both objects represent the same object id
- */
- public boolean equals (Object obj) {
- if (this == obj) {
- return true;
- } else if (!super.equals (obj)) {
- return false;
- } else {
- ShortIdentity other = (ShortIdentity) obj;
- return key == other.key;
- }
- }
-
- /** Create the key as an Object.
- * @return the key as an Object
- * @since 2.0
- */
- protected Object createKeyAsObject() {
- return new Short(key);
- }
-
- /** Write this object. Write the superclass first.
- * @param out the output
- */
- public void writeExternal(ObjectOutput out) throws IOException {
- super.writeExternal (out);
- out.writeShort(key);
- }
-
- /** Read this object. Read the superclass first.
- * @param in the input
- */
- public void readExternal(ObjectInput in)
- throws IOException, ClassNotFoundException {
- super.readExternal (in);
- key = in.readShort();
- }
-}
diff --git a/api20/src/java/javax/jdo/identity/SingleFieldIdentity.java b/api20/src/java/javax/jdo/identity/SingleFieldIdentity.java
deleted file mode 100644
index 77056a2..0000000
--- a/api20/src/java/javax/jdo/identity/SingleFieldIdentity.java
+++ /dev/null
@@ -1,188 +0,0 @@
-/*
- * Copyright 2005 The Apache Software Foundation.
- *
- * Licensed 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.
- */
-
-/*
- * SingleFieldIdentity.java
- *
- */
-
-package javax.jdo.identity;
-
-import java.io.Externalizable;
-import java.io.IOException;
-import java.io.ObjectInput;
-import java.io.ObjectOutput;
-
-import javax.jdo.JDOFatalInternalException;
-import javax.jdo.JDONullIdentityException;
-
-import javax.jdo.spi.I18NHelper;
-
-/** This class is the abstract base class for all single field identity
- * classes. A common case of application identity uses exactly one
- * persistent field in the class to represent identity. In this case,
- * the application can use a standard JDO class instead of creating
- * a new user-defined class for the purpose.
- * @version 2.0
- */
-public abstract class SingleFieldIdentity
- implements Externalizable {
-
- /** The Internationalization message helper.
- */
- protected static I18NHelper msg = I18NHelper.getInstance ("javax.jdo.Bundle"); //NOI18N
-
- /** The class of the target object.
- */
- transient private Class targetClass;
-
- /** The name of the class of the target object.
- */
- private String targetClassName;
-
- /** The hashCode.
- */
- protected int hashCode;
-
- /** The key as an Object.
- */
- protected Object keyAsObject;
-
- /** Constructor with target class.
- * @param pcClass the class of the target
- * @since 2.0
- */
- protected SingleFieldIdentity(Class pcClass) {
- if (pcClass == null)
- throw new NullPointerException();
- targetClass = pcClass;
- targetClassName = pcClass.getName();
- }
-
- /** Constructor only for Externalizable.
- * @since 2.0
- */
- public SingleFieldIdentity () {
- }
-
- /** Set the given key as the key for this instance.
- * Compute the hash code for the instance.
- * @since 2.0
- */
- protected void setKeyAsObject(Object key) {
- assertKeyNotNull(key);
- keyAsObject = key;
- }
-
- /** Assert that the key is not null. Throw a JDONullIdentityException
- * if the given key is null.
- * @since 2.0
- */
- protected void assertKeyNotNull(Object key) {
- if (key == null) {
- throw new JDONullIdentityException(
- msg.msg("EXC_SingleFieldIdentityNullParameter")); //NOI18N
- }
- }
-
- /** Return the target class.
- * @return the target class.
- * @since 2.0
- */
- public Class getTargetClass() {
- return targetClass;
- }
-
- /** Return the target class name.
- * @return the target class name.
- * @since 2.0
- */
- public String getTargetClassName() {
- return targetClassName;
- }
-
- /** Return the key as an Object. The method is synchronized to avoid
- * race conditions in multi-threaded environments.
- * @return the key as an Object.
- * @since 2.0
- */
- public synchronized Object getKeyAsObject() {
- if (keyAsObject == null) {
- keyAsObject = createKeyAsObject();
- }
- return keyAsObject;
- }
-
- /** Create the key as an Object.
- * @return the key as an Object;
- * @since 2.0
- */
- protected Object createKeyAsObject() {
- throw new JDOFatalInternalException
- (msg.msg("EXC_CreateKeyAsObjectMustNotBeCalled"));
- }
-
- /** Check the class and class name and object type. If restored
- * from serialization, class will be null so compare class name.
- * @param obj the other object
- * @return true if the class or class name is the same
- */
- public boolean equals(Object obj) {
- if (this == obj) {
- return true;
- } else if (obj == null || this.getClass() != obj.getClass()) {
- return false;
- } else {
- SingleFieldIdentity other = (SingleFieldIdentity) obj;
- if (targetClass != null && targetClass == other.targetClass)
- return true;
- return targetClassName.equals (other.targetClassName);
- }
- }
-
- /** Return the hash code of the class name.
- * @return the hash code of the class name
- * @since 2.0
- */
- protected int hashClassName() {
- return targetClassName.hashCode();
- }
-
- /** Return the cached hash code.
- * @return the cached hash code.
- */
- public int hashCode() {
- return hashCode;
- }
-
- /** Write to the output stream.
- * @param out the stream
- */
- public void writeExternal(ObjectOutput out) throws IOException {
- out.writeObject(targetClassName);
- out.writeInt(hashCode);
- }
-
- /** Read from the input stream.
- * Creates a new instance with the target class name set
- */
- public void readExternal(ObjectInput in)
- throws IOException, ClassNotFoundException {
- targetClass = null;
- targetClassName = (String)in.readObject();
- hashCode = in.readInt();
- }
-}
diff --git a/api20/src/java/javax/jdo/identity/StringIdentity.java b/api20/src/java/javax/jdo/identity/StringIdentity.java
deleted file mode 100644
index 87e6c52..0000000
--- a/api20/src/java/javax/jdo/identity/StringIdentity.java
+++ /dev/null
@@ -1,96 +0,0 @@
-/*
- * Copyright 2005 The Apache Software Foundation.
- *
- * Licensed 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.
- */
-
-/*
- * StringIdentity.java
- *
- */
-
-package javax.jdo.identity;
-
-import java.io.IOException;
-import java.io.ObjectInput;
-import java.io.ObjectOutput;
-
-/** This class is for identity with a single String field.
- * @version 2.0
- */
-public class StringIdentity extends SingleFieldIdentity {
-
- /** The key is stored in the superclass field keyAsObject.
- */
-
- /** Constructor with class and key.
- * @param pcClass the class
- * @param key the key
- */
- public StringIdentity (Class pcClass, String key) {
- super (pcClass);
- setKeyAsObject(key);
- hashCode = hashClassName() ^ key.hashCode();
- }
-
- /** Constructor only for Externalizable.
- */
- public StringIdentity () {
- }
-
- /** Return the key.
- * @return the key
- */
- public String getKey () {
- return (String)keyAsObject;
- }
-
- /** Return the String form of the key.
- * @return the String form of the key
- */
- public String toString () {
- return (String)keyAsObject;
- }
-
- /** Determine if the other object represents the same object id.
- * @param obj the other object
- * @return true if both objects represent the same object id
- */
- public boolean equals (Object obj) {
- if (this == obj) {
- return true;
- } else if (!super.equals (obj)) {
- return false;
- } else {
- StringIdentity other = (StringIdentity) obj;
- return keyAsObject.equals(other.keyAsObject);
- }
- }
-
- /** Write this object. Write the superclass first.
- * @param out the output
- */
- public void writeExternal(ObjectOutput out) throws IOException {
- super.writeExternal (out);
- out.writeObject(keyAsObject);
- }
-
- /** Read this object. Read the superclass first.
- * @param in the input
- */
- public void readExternal(ObjectInput in)
- throws IOException, ClassNotFoundException {
- super.readExternal (in);
- keyAsObject = (String)in.readObject();
- }
-}
diff --git a/api20/src/java/javax/jdo/identity/package.html b/api20/src/java/javax/jdo/identity/package.html
deleted file mode 100644
index fd59884..0000000
--- a/api20/src/java/javax/jdo/identity/package.html
+++ /dev/null
@@ -1,26 +0,0 @@
-<!--
- Copyright 2005 The Apache Software Foundation.
-
- Licensed 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.
--->
-
-<html>
-<head>
-<title>Identity package</title>
-<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
-</head>
-
-<body bgcolor="#FFFFFF">
-This package contains the JDO specification identity interfaces and classes.
-</body>
-</html>
diff --git a/api20/src/java/javax/jdo/listener/AttachCallback.java b/api20/src/java/javax/jdo/listener/AttachCallback.java
deleted file mode 100644
index 01eb168..0000000
--- a/api20/src/java/javax/jdo/listener/AttachCallback.java
+++ /dev/null
@@ -1,49 +0,0 @@
-/*
- * Copyright 2005 The Apache Software Foundation.
- *
- * Licensed 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.
- */
-
-/*
- * AttachCallback.java
- *
- */
-
-package javax.jdo.listener;
-
-/**
- * This interface is used to notify instances of attach events.
- * @version 2.0
- * @since 2.0
- */
-public interface AttachCallback {
-
- /**
- * This method is called during the execution of
- * {@link javax.jdo.PersistenceManager#makePersistent} on the detached
- * instance before the copy is made.
- * @since 2.0
- */
- public void jdoPreAttach();
-
- /**
- * This method is called during the execution of
- * {@link javax.jdo.PersistenceManager#makePersistent} on the persistent
- * instance after the copy is made.
- * @param attached The corresponding (non-attached) instance that was
- * attached in the call to
- * {@link javax.jdo.PersistenceManager#makePersistent}.
- * @since 2.0
- */
- public void jdoPostAttach(Object attached);
-}
diff --git a/api20/src/java/javax/jdo/listener/AttachLifecycleListener.java b/api20/src/java/javax/jdo/listener/AttachLifecycleListener.java
deleted file mode 100644
index 2ea59dc..0000000
--- a/api20/src/java/javax/jdo/listener/AttachLifecycleListener.java
+++ /dev/null
@@ -1,55 +0,0 @@
-/*
- * Copyright 2005 The Apache Software Foundation.
- *
- * Licensed 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.
- */
-
-/*
- * AttachLifecycleListener.java
- *
- */
-
-package javax.jdo.listener;
-
-/**
- * This interface is implemented by listeners to be notified of
- * attach events.
- * @version 2.0
- * @since 2.0
- */
-public interface AttachLifecycleListener
- extends InstanceLifecycleListener {
-
- /**
- * This method is called before a detached instance is attached, via the
- * {@link javax.jdo.PersistenceManager#makePersistent} method. The source
- * instance is the detached instance. This method is called before the
- * corresponding {@link AttachCallback#jdoPreAttach} on the detached
- * instance.
- * @param event the attach event.
- * @since 2.0
- */
- void preAttach (InstanceLifecycleEvent event);
-
- /**
- * This method is called after a detached instance is attached, via the
- * {@link javax.jdo.PersistenceManager#makePersistent} method. The source
- * instance is the corresponding persistent instance in the cache; the
- * target instance is the detached instance. This method is called after
- * the corresponding {@link AttachCallback#jdoPostAttach} on the
- * persistent instance.
- * @param event the attach event.
- * @since 2.0
- */
- void postAttach (InstanceLifecycleEvent event);
-}
diff --git a/api20/src/java/javax/jdo/listener/ClearCallback.java b/api20/src/java/javax/jdo/listener/ClearCallback.java
deleted file mode 100644
index 78e20b8..0000000
--- a/api20/src/java/javax/jdo/listener/ClearCallback.java
+++ /dev/null
@@ -1,42 +0,0 @@
-/*
- * Copyright 2005 The Apache Software Foundation.
- *
- * Licensed 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.
- */
-
-/*
- * ClearCallback.java
- *
- */
-
-package javax.jdo.listener;
-
-
-/**
- * This interface is used to notify instances of clear events.
- * @version 2.0
- * @since 2.0
- */
-public interface ClearCallback {
-
- /**
- * Called before the values in the instance are cleared.
- *
- * <P>Transient fields should be cleared in this method.
- * Associations between this
- * instance and others in the runtime environment should be cleared.
- *
- * <P>This method is not modified by the enhancer.
- */
- void jdoPreClear();
-}
diff --git a/api20/src/java/javax/jdo/listener/ClearLifecycleListener.java b/api20/src/java/javax/jdo/listener/ClearLifecycleListener.java
deleted file mode 100644
index 3a43dcc..0000000
--- a/api20/src/java/javax/jdo/listener/ClearLifecycleListener.java
+++ /dev/null
@@ -1,58 +0,0 @@
-/*
- * Copyright 2005 The Apache Software Foundation.
- *
- * Licensed 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.
- */
-
-/*
- * ClearLifecycleListener.java
- *
- */
-
-package javax.jdo.listener;
-
-/**
- * This interface is implemented by listeners to be notified of
- * clear events.
- * @version 2.0
- * @since 2.0
- */
-public interface ClearLifecycleListener
- extends InstanceLifecycleListener {
-
- /**
- * This method is called before the implementation calls the instance
- * method {@link ClearCallback#jdoPreClear} and before it clears the values
- * in the instance to their Java default values. This happens during
- * an application call to evict, and in afterCompletion for commit
- * with RetainValues false and rollback with RestoreValues false.
- * <P>The method is called during any state transition to hollow.
- * Non-persistent, non-transactional fields should be cleared
- * in this method. Associations between this instance and others
- * in the runtime environment should be cleared.
- * <P>This method is not modified by the enhancer, so access to fields
- * is not mediated.
- * @param event the clear event.
- * @since 2.0
- */
- void preClear (InstanceLifecycleEvent event);
-
- /**
- * This method is called after the {@link ClearCallback#jdoPreClear}
- * method is invoked on the instance and the fields have been cleared
- * by the JDO implementation.
- * @param event the clear event.
- * @since 2.0
- */
- void postClear (InstanceLifecycleEvent event);
-}
diff --git a/api20/src/java/javax/jdo/listener/CreateLifecycleListener.java b/api20/src/java/javax/jdo/listener/CreateLifecycleListener.java
deleted file mode 100644
index c2535b0..0000000
--- a/api20/src/java/javax/jdo/listener/CreateLifecycleListener.java
+++ /dev/null
@@ -1,41 +0,0 @@
-/*
- * Copyright 2005 The Apache Software Foundation.
- *
- * Licensed 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.
- */
-
-/*
- * CreateLifecycleListener.java
- *
- */
-
-package javax.jdo.listener;
-
-/**
- * This interface is implemented by listeners to be notified of
- * create events.
- * @version 2.0
- * @since 2.0
- */
-public interface CreateLifecycleListener
- extends InstanceLifecycleListener {
-
- /**
- * Invoked whenever an instance is made persistent via a
- * call to {@link javax.jdo.PersistenceManager#makePersistent} or during
- * persistence by reachability.
- * @param event the create event.
- * @since 2.0
- */
- void postCreate (InstanceLifecycleEvent event);
-}
diff --git a/api20/src/java/javax/jdo/listener/DeleteCallback.java b/api20/src/java/javax/jdo/listener/DeleteCallback.java
deleted file mode 100644
index 179017a..0000000
--- a/api20/src/java/javax/jdo/listener/DeleteCallback.java
+++ /dev/null
@@ -1,41 +0,0 @@
-/*
- * Copyright 2005 The Apache Software Foundation.
- *
- * Licensed 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.
- */
-
-/*
- * DeleteCallback.java
- *
- */
-
-package javax.jdo.listener;
-
-
-/**
- * This interface is used to notify instances of delete events.
- * @version 2.0
- * @since 2.0
- */
-public interface DeleteCallback
-{
- /**
- * Called before the instance is deleted.
- * This method is called before the state transition to persistent-deleted
- * or persistent-new-deleted. Access to field values within this call
- * are valid. Access to field values after this call are disallowed.
- * <P>This method is modified by the enhancer so that fields referenced
- * can be used in the business logic of the method.
- */
- void jdoPreDelete();
-}
diff --git a/api20/src/java/javax/jdo/listener/DeleteLifecycleListener.java b/api20/src/java/javax/jdo/listener/DeleteLifecycleListener.java
deleted file mode 100644
index fc931eb..0000000
--- a/api20/src/java/javax/jdo/listener/DeleteLifecycleListener.java
+++ /dev/null
@@ -1,53 +0,0 @@
-/*
- * Copyright 2005 The Apache Software Foundation.
- *
- * Licensed 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.
- */
-
-/*
- * DeleteLifecycleListener.java
- *
- */
-
-package javax.jdo.listener;
-
-/**
- * This interface is implemented by listeners to be notified of
- * delete events.
- * @version 2.0
- * @since 2.0
- */
-public interface DeleteLifecycleListener
- extends InstanceLifecycleListener {
-
- /**
- * Invoked whenever a persistent instance is deleted, for example
- * during {@link javax.jdo.PersistenceManager#deletePersistent}.
- * Access to field values within this call are permitted.
- * <P>This method is called before the instance callback
- * {@link DeleteCallback#jdoPreDelete}.
- * @param event the delete event.
- * @since 2.0
- */
- void preDelete (InstanceLifecycleEvent event);
-
- /**
- * Invoked whenever a persistent instance is deleted, for example
- * during {@link javax.jdo.PersistenceManager#deletePersistent}.
- * <P>This method is called after the instance transitions
- * to persistent-deleted. Access to field values is not permitted.
- * @param event the delete event.
- * @since 2.0
- */
- void postDelete (InstanceLifecycleEvent event);
-}
diff --git a/api20/src/java/javax/jdo/listener/DetachCallback.java b/api20/src/java/javax/jdo/listener/DetachCallback.java
deleted file mode 100644
index b984a4d..0000000
--- a/api20/src/java/javax/jdo/listener/DetachCallback.java
+++ /dev/null
@@ -1,47 +0,0 @@
-/*
- * Copyright 2005 The Apache Software Foundation.
- *
- * Licensed 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.
- */
-
-/*
- * DetachCallback.java
- *
- */
-
-package javax.jdo.listener;
-
-/**
- * This interface is used to notify instances of detach events.
- * @version 2.0
- * @since 2.0
- */
-public interface DetachCallback {
-
- /**
- * This method is called during the execution of
- * {@link javax.jdo.PersistenceManager#detachCopy} on the
- * persistent instance before the copy is made.
- * @since 2.0
- */
- public void jdoPreDetach();
-
- /**
- * This method is called during the execution of
- * {@link javax.jdo.PersistenceManager#detachCopy} on the
- * detached instance after the copy is made.
- * @param detached The corresponding (attached) persistent instance.
- * @since 2.0
- */
- public void jdoPostDetach(Object detached);
-}
diff --git a/api20/src/java/javax/jdo/listener/DetachLifecycleListener.java b/api20/src/java/javax/jdo/listener/DetachLifecycleListener.java
deleted file mode 100644
index 09131bf..0000000
--- a/api20/src/java/javax/jdo/listener/DetachLifecycleListener.java
+++ /dev/null
@@ -1,54 +0,0 @@
-/*
- * Copyright 2005 The Apache Software Foundation.
- *
- * Licensed 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.
- */
-
-/*
- * DetachLifecycleListener.java
- *
- */
-
-package javax.jdo.listener;
-
-/**
- * This interface is implemented by listeners to be notified of
- * detach events.
- * @version 2.0
- * @since 2.0
- */
-public interface DetachLifecycleListener
- extends InstanceLifecycleListener {
-
- /**
- * This method is called during the execution of
- * {@link javax.jdo.PersistenceManager#detachCopy} before the
- * detached copy is made. It is called before the method
- * {@link DetachCallback#jdoPreDetach} is called on the
- * instance to be detached.
- * @param event the detach event.
- * @since 2.0
- */
- void preDetach (InstanceLifecycleEvent event);
-
- /**
- * This method is called during the execution of
- * {@link javax.jdo.PersistenceManager#detachCopy} after the
- * detached copy is made. It is called after the method
- * {@link DetachCallback#jdoPreDetach} is called on
- * the detached instance.
- * @param event the detach event.
- * @since 2.0
- */
- void postDetach (InstanceLifecycleEvent event);
-}
diff --git a/api20/src/java/javax/jdo/listener/DirtyLifecycleListener.java b/api20/src/java/javax/jdo/listener/DirtyLifecycleListener.java
deleted file mode 100644
index 2a450cf..0000000
--- a/api20/src/java/javax/jdo/listener/DirtyLifecycleListener.java
+++ /dev/null
@@ -1,48 +0,0 @@
-/*
- * Copyright 2005 The Apache Software Foundation.
- *
- * Licensed 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.
- */
-
-/*
- * DirtyLifecycleListener.java
- *
- */
-
-package javax.jdo.listener;
-
-/**
- * This interface is implemented by listeners to be notified of
- * dirty events.
- * @version 2.0
- * @since 2.0
- */
-public interface DirtyLifecycleListener
- extends InstanceLifecycleListener {
-
- /**
- * Invoked whenever a persistent instance is first made dirty,
- * during an operation that modifies the value of a persistent or
- * transactional field. Called before the value is changed.
- * @since 2.0
- */
- void preDirty (InstanceLifecycleEvent event);
-
- /**
- * Invoked whenever a persistent instance is first made dirty,
- * during an operation that modifies the value of a persistent or
- * transactional field. Called after the value is changed.
- * @since 2.0
- */
- void postDirty (InstanceLifecycleEvent event);
-}
diff --git a/api20/src/java/javax/jdo/listener/InstanceLifecycleEvent.java b/api20/src/java/javax/jdo/listener/InstanceLifecycleEvent.java
deleted file mode 100644
index b625c23..0000000
--- a/api20/src/java/javax/jdo/listener/InstanceLifecycleEvent.java
+++ /dev/null
@@ -1,190 +0,0 @@
-/*
- * Copyright 2005 The Apache Software Foundation.
- *
- * Licensed 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.
- */
-
-/*
- * InstanceLifecycleEvent.java
- *
- */
-
-package javax.jdo.listener;
-
-import javax.jdo.spi.I18NHelper;
-
-/**
- * This is the event class used in life cycle event notifications.
- * <P>Note that although InstanceLifecycleEvent inherits Serializable interface
- * from EventObject, it is not intended to be Serializable. Appropriate
- * serialization methods are implemented to throw NotSerializableException.
- * @version 2.0
- * @since 2.0
- */
-public class InstanceLifecycleEvent
- extends java.util.EventObject {
-
- private static final int FIRST_EVENT_TYPE = 0;
- public static final int CREATE = 0;
- public static final int LOAD = 1;
- public static final int STORE = 2;
- public static final int CLEAR = 3;
- public static final int DELETE = 4;
- public static final int DIRTY = 5;
- public static final int DETACH = 6;
- public static final int ATTACH = 7;
- private static final int LAST_EVENT_TYPE = 7;
-
- /** The Internationalization message helper.
- */
- private final static I18NHelper msg = I18NHelper.getInstance ("javax.jdo.Bundle"); //NOI18N
-
- /**
- * The event type that triggered the construction of this event object.
- */
- private final int eventType;
-
- /**
- * The "other" object associated with the event.
- */
- private final Object target;
-
- /**
- * Creates a new event object with the specified
- * <code>source</code> and <code>type</code>.
- * @param source the instance that triggered the event
- * @param type the event type
- * @since 2.0
- */
- public InstanceLifecycleEvent (Object source, int type) {
- this(source, type, null);
- }
-
- /**
- * Creates a new event object with the specified
- * <code>source</code>, <code>type</code>, and <code>target</code>.
- * @param source the instance that triggered the event
- * @param type the event type
- * @param target the "other" instance
- * @since 2.0
- */
- public InstanceLifecycleEvent (Object source, int type, Object target) {
- super (source);
- if (type < FIRST_EVENT_TYPE || type > LAST_EVENT_TYPE) {
- throw new IllegalArgumentException(msg.msg("EXC_IllegalEventType"));
- }
- eventType = type;
- this.target = target;
- }
-
- /**
- * Returns the event type that triggered this event.
- * @return the event type
- * @since 2.0
- */
- public int getEventType () {
- return eventType;
- }
-
- /**
- * The source object of the Event. Although not deprecated,
- * it is recommended that the the methods
- * <code>getPersistentInstance()</code> and
- * <code>getDetachedInstance()</code> be used instead.
- *
- * @return The persistent instance on any pre- callback except preAttach,
- * or the detached instance for a postDetach or preAttach callback.
- *
- * @see #getPersistentInstance()
- * @see #getDetachedInstance()
- * @see "Section 12.15, Java Data Objects 2.0 Specification"
- */
- public Object getSource() {
- return super.getSource();
- }
-
- /**
- * The target object of the Event. Although not deprecated,
- * it is recommended that the the methods
- * <code>getPersistentInstance()</code> and
- * <code>getDetachedInstance()</code> be used instead.
- *
- * @return The detached instance for preDetach and postAttach,
- * the persistent instance otherwise.
- *
- * @since 2.0
- * @see #getPersistentInstance()
- * @see #getDetachedInstance()
- * @see "Section 12.15, Java Data Objects 2.0 Specification"
- */
- public Object getTarget () {
- return target;
- }
-
- /**
- * Returns the persistent instance involved in the event.
- *
- * @return The persistent instance involved in the event, or null if there
- * was none.
- *
- * @see "Section 12.15, Java Data Objects 2.0 Specification"
- */
- public Object getPersistentInstance() {
- switch (getEventType()) {
- case DETACH:
- return target == null
- ? getSource() // preDetach: source is persistent instance
- : getTarget(); // postDetach: target is persistent instance
- case ATTACH:
- return target == null
- ? null // preAttach: no persistent instance yet
- : getSource(); // postAttach: source is persistent instance
- }
-
- // for all other events, source is persistent instance
- return getSource();
- }
-
- /**
- * Returns the detached instance involved in the event.
- *
- * @return The detached instance involved in the event, or null if there was none.
- *
- * @see "Section 12.15, Java Data Objects 2.0 Specification"
- */
- public Object getDetachedInstance() {
- switch (getEventType()) {
- case DETACH:
- return target == null
- ? null // preDetach: no detached instance yet
- : getSource(); // postDetach: source is detached instance
- case ATTACH:
- return target == null
- ? getSource() // preAttach: source is detached instance
- : getTarget(); // postAttach: target is detached instance
- }
-
- // for all other events, there is no detached instance
- return null;
- }
-
- /**
- * Serialization is not supported for InstanceLifecycleEvents.
- * param out the output stream
- * @since 2.0
- */
- private void writeObject(java.io.ObjectOutputStream out)
- throws java.io.IOException {
- throw new java.io.NotSerializableException();
- }
-}
diff --git a/api20/src/java/javax/jdo/listener/InstanceLifecycleListener.java b/api20/src/java/javax/jdo/listener/InstanceLifecycleListener.java
deleted file mode 100644
index 4067e86..0000000
--- a/api20/src/java/javax/jdo/listener/InstanceLifecycleListener.java
+++ /dev/null
@@ -1,34 +0,0 @@
-/*
- * Copyright 2005 The Apache Software Foundation.
- *
- * Licensed 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.
- */
-
-/*
- * InstanceLifecycleListener.java
- *
- */
-
-package javax.jdo.listener;
-
-/**
- * All lifecycle listeners extend from this base interface.
- * In order to minimize the impact on domain classes, instance callbacks
- * can be defined to use a life-cycle listener pattern instead of
- * having the domain class implement the callback interface(s).
- *
- * @version 2.0
- * @since 2.0
- */
-public interface InstanceLifecycleListener {
-}
diff --git a/api20/src/java/javax/jdo/listener/LoadCallback.java b/api20/src/java/javax/jdo/listener/LoadCallback.java
deleted file mode 100644
index d76dfa1..0000000
--- a/api20/src/java/javax/jdo/listener/LoadCallback.java
+++ /dev/null
@@ -1,41 +0,0 @@
-/*
- * Copyright 2005 The Apache Software Foundation.
- *
- * Licensed 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.
- */
-
-/*
- * LoadCallback.java
- *
- */
-
-package javax.jdo.listener;
-
-/**
- * This interface is used to notify instances of load events.
- * @version 2.0
- * @since 2.0
- */
-public interface LoadCallback {
-
- /**
- * Called after the values are loaded from the data store into
- * this instance.
- *
- * <P>This method is not modified by the enhancer.
- * <P>Derived fields should be initialized in this method.
- * The context in which this call is made does not allow access to
- * other persistent JDO instances.
- */
- void jdoPostLoad();
-}
diff --git a/api20/src/java/javax/jdo/listener/LoadLifecycleListener.java b/api20/src/java/javax/jdo/listener/LoadLifecycleListener.java
deleted file mode 100644
index 2e6b87c..0000000
--- a/api20/src/java/javax/jdo/listener/LoadLifecycleListener.java
+++ /dev/null
@@ -1,41 +0,0 @@
-/*
- * Copyright 2005 The Apache Software Foundation.
- *
- * Licensed 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.
- */
-
-/*
- * LoadLifecycleListener.java
- *
- */
-
-package javax.jdo.listener;
-
-/**
- * This interface is implemented by listeners to be notified of
- * load events.
- * @version 2.0
- * @since 2.0
- */
-public interface LoadLifecycleListener
- extends InstanceLifecycleListener {
-
- /**
- * Invoked whenever a persistent instance is loaded from the data
- * store. It is called after the method {@link LoadCallback#jdoPostLoad}
- * is invoked on the persistent instance.
- * @param event the load event.
- * @since 2.0
- */
- void postLoad (InstanceLifecycleEvent event);
-}
diff --git a/api20/src/java/javax/jdo/listener/StoreCallback.java b/api20/src/java/javax/jdo/listener/StoreCallback.java
deleted file mode 100644
index efdeda1..0000000
--- a/api20/src/java/javax/jdo/listener/StoreCallback.java
+++ /dev/null
@@ -1,44 +0,0 @@
-/*
- * Copyright 2005 The Apache Software Foundation.
- *
- * Licensed 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.
- */
-
-/*
- * StoreCallback.java
- *
- */
-
-package javax.jdo.listener;
-
-/**
- * This interface is used to notify instances of store events.
- * @version 2.0
- * @since 2.0
- */
-public interface StoreCallback {
-
- /**
- * Called before the values are stored from this instance to the
- * data store.
- *
- * <P>Data store fields that might have been affected by modified
- * non-persistent fields should be updated in this method.
- *
- * <P>This method is modified by the enhancer so that changes to
- * persistent fields will be reflected in the data store.
- * The context in which this call is made allows access to the
- * <code>PersistenceManager</code> and other persistent JDO instances.
- */
- void jdoPreStore();
-}
diff --git a/api20/src/java/javax/jdo/listener/StoreLifecycleListener.java b/api20/src/java/javax/jdo/listener/StoreLifecycleListener.java
deleted file mode 100644
index 4e88065..0000000
--- a/api20/src/java/javax/jdo/listener/StoreLifecycleListener.java
+++ /dev/null
@@ -1,52 +0,0 @@
-/*
- * Copyright 2005 The Apache Software Foundation.
- *
- * Licensed 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.
- */
-
-/*
- * StoreLifecycleListener.java
- *
- */
-
-package javax.jdo.listener;
-
-/**
- * This interface is implemented by listeners to be notified of
- * store events.
- * @version 2.0
- * @since 2.0
- */
-public interface StoreLifecycleListener
- extends InstanceLifecycleListener {
-
- /**
- * Invoked whenever a persistent instance is stored, for example during
- * {@link javax.jdo.PersistenceManager#flush} or
- * {@link javax.jdo.Transaction#commit}. It is called before the
- * method {@link StoreCallback#jdoPreStore} is invoked.
- * @param event the store event.
- * @since 2.0
- */
- void preStore (InstanceLifecycleEvent event);
-
- /**
- * Invoked whenever a persistent instance is stored, for example during
- * {@link javax.jdo.PersistenceManager#flush} or
- * {@link javax.jdo.Transaction#commit}. It is called after the
- * field values have been stored.
- * @param event the store event.
- * @since 2.0
- */
- void postStore (InstanceLifecycleEvent event);
-}
diff --git a/api20/src/java/javax/jdo/listener/package.html b/api20/src/java/javax/jdo/listener/package.html
deleted file mode 100644
index c325c2c..0000000
--- a/api20/src/java/javax/jdo/listener/package.html
+++ /dev/null
@@ -1,54 +0,0 @@
-<!--
- Copyright 2005 The Apache Software Foundation.
-
- Licensed 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.
--->
-
-<html>
-<head>
-<title>Listener package</title>
-<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
-</head>
-
-<body bgcolor="#FFFFFF">
-This package contains the JDO specification listener interfaces and classes.
-<P>There are two kinds of interfaces defined to allow an application to
-manage life cycle changes to persistent objects.
-<P>The first kind is defined
-on the persistent domain class itself. This allows methods in the domain class
-to be called during life cycle events. The domain class implements one or more
-of the interfaces
-{@link javax.jdo.listener.AttachCallback},
-{@link javax.jdo.listener.ClearCallback},
-{@link javax.jdo.listener.DeleteCallback},
-{@link javax.jdo.listener.DetachCallback},
-{@link javax.jdo.listener.LoadCallback}, or
-{@link javax.jdo.listener.StoreCallback}.
-The methods in the interfaces
-are called during life cycle events.
-<P>The second kind is defined on an external class using the listener pattern.
-Instances of classes that implement one or more of the listener interfaces
-{@link javax.jdo.listener.AttachLifecycleListener},
-{@link javax.jdo.listener.ClearLifecycleListener},
-{@link javax.jdo.listener.CreateLifecycleListener},
-{@link javax.jdo.listener.DeleteLifecycleListener},
-{@link javax.jdo.listener.DetachLifecycleListener},
-{@link javax.jdo.listener.DirtyLifecycleListener},
-{@link javax.jdo.listener.LoadLifecycleListener}, or
-{@link javax.jdo.listener.StoreLifecycleListener}
-are registered
-with the PersistenceManager or PersistenceManagerFactory
-and receive callbacks during life cycle events
-of the persistent instances of interest.
-</body>
-</html>
diff --git a/api20/src/java/javax/jdo/package.html b/api20/src/java/javax/jdo/package.html
deleted file mode 100644
index 3cc37f0..0000000
--- a/api20/src/java/javax/jdo/package.html
+++ /dev/null
@@ -1,90 +0,0 @@
-<!--
- Copyright 2005 The Apache Software Foundation.
-
- Licensed 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.
--->
-
-<html>
-<head>
-<title>JDO package</title>
-<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
-</head>
-
-<body bgcolor="#FFFFFF">
-This package contains the JDO specification interfaces and classes.
-<P>There are two major objectives of the JDO architecture:
-first, to provide application programmers a transparent,
-Java-centric view of persistent information, including enterprise data
-and locally stored data; and second, to enable pluggable implementations
-of data stores into
-application servers. Data stored in data stores is presented as
-instances of persistence-capable classes.
-<P>JDO defines interfaces and classes to be used by application programmers
-when using classes whose instances are to be stored in persistent storage
-(persistence-capable classes), and specifies the contracts between
-suppliers of persistence-capable classes and the
-runtime environment (which is part of the JDO implementation).
-<P>The JDO architecture defines a standard set of contracts between an
-application programmer and an JDO vendor. These contracts focus on the
-view of the Java instances of persistence capable classes.
-<P>The JDO PersistenceManagerFactory is the boostrap class for a JDO
-application. The application gets an instance of the
-PersistenceManagerFactory by construction or via JDNI lookup.
-<P>The application acquires an instance of the JDO PersistenceManager by
-calling the getPersistenceManager method on an instance of JDO
-PersistenceManagerFactory.
-<P>The JDO PersistenceManager is the primary interface for JDO-aware
-application components:
-<ul>
-<li>it gives access to the current Transaction interface;
-<li>it is the factory for the Query interface;
-<li>it contains methods for managing the life cycle of persistent instances.
-</ul>
-<P>A JDO PersistenceManager instance supports any number of JDO instances
-at a time. It is responsible for managing the identity of its
-associated JDO instances. A JDO instance is associated with either
-zero or one JDO PersistenceManager. It will be zero if and only if the
-JDO instance is transient nontransactional. As soon as the instance is made persistent
-or transactional, it will be associated with exactly one JDO PersistenceManager.
-<P>A JDO PersistenceManager instance supports one transaction at a time,
-and uses one connection to the underlying data source at a time. The JDO
-PersistenceManager instance might use multiple transactions serially,
-and might use multiple connections serially.
-<P>Normally, cache management is automatic and transparent. When instances
-are queried, navigated to, or modified, instantiation of instances and
-their fields and garbage collection of unreferenced instances occurs
-without any explicit control. When the transaction in which persistent
-instances are created, deleted, or modified commits, eviction is
-automatically done by the transaction completion mechanisms.
-<P>Operations on persistent JDO instances at the user's choice might be
-performed in the context of a transaction. That is, the view of data
-in the data store is transactionally consistent, according to the
-standard definition of ACID transactions.
-<P>The Transaction interface is used to mark the beginning and end of a
-application-defined unit of work. The PersistenceManager allows the
-application to get the instance that manages these transactional
-boundaries via the currentTransaction method.
-<P>The persistent manager instance is a factory for query instances,
-and queries are executed in the context of the persistent manager instance.
-The actual query execution might be performed by the JDO PersistenceManager
-or might be delegated by the JDO PersistenceManager to its data store.
-The actual query executed thus might be implemented in a very different
-language from Java, and might be optimized to take advantage of particular
-query language implementations.
-<P>Extents are collections of data store objects managed by the data store,
-not by explicit user operations on collections. Extent capability is a
-boolean property of classes that are persistence capable. If an instance
-of a class that has a managed extent is made persistent via reachability,
-the instance is put into the extent implicitly.
-</body>
-</html>
diff --git a/api20/src/java/javax/jdo/spi/Detachable.java b/api20/src/java/javax/jdo/spi/Detachable.java
deleted file mode 100644
index 9428ff3..0000000
--- a/api20/src/java/javax/jdo/spi/Detachable.java
+++ /dev/null
@@ -1,46 +0,0 @@
-/*
- * Copyright 2005 The Apache Software Foundation.
- *
- * Licensed 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.spi;
-
-/**
- * This interface is implemented by classes that can be detached from the
- * persistence context and later attached. The interface includes the
- * contract by which the StateManager can set the object id, version,
- * BitSet of loaded fields, and BitSet of modified fields
- * so they are preserved while outside the persistence environment.
- * <P>The detached state is stored as a field in each instance of Detachable.
- * The field is serialized so as to maintain the state of the instance
- * while detached. While detached, only the BitSet of modified fields
- * will be modified. The structure of the Object[] jdoDetachedState
- * is as follows:
- * <ul><li>jdoDetachedState[0]: the Object Id of the instance
- * </li><li>jdoDetachedState[1]: the Version of the instance
- * </li><li>jdoDetachedState[2]: a BitSet of loaded fields
- * </li><li>jdoDetachedState[3]: a BitSet of modified fields
- * </li></ul>
- * @version 2.0
- */
-
-public interface Detachable {
-
- /** This method calls the StateManager with the current detached
- * state instance as a parameter and replaces the current detached
- * state instance with the value provided by the StateManager.
- * @since 2.0
- */
- public void jdoReplaceDetachedState();
-}
diff --git a/api20/src/java/javax/jdo/spi/I18NHelper.java b/api20/src/java/javax/jdo/spi/I18NHelper.java
deleted file mode 100644
index 4fc1128..0000000
--- a/api20/src/java/javax/jdo/spi/I18NHelper.java
+++ /dev/null
@@ -1,403 +0,0 @@
-/*
- * Copyright 2005 The Apache Software Foundation.
- *
- * Licensed 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.spi;
-
-import java.util.*;
-import java.text.MessageFormat;
-import java.security.AccessController;
-import java.security.PrivilegedAction;
-
-import javax.jdo.JDOFatalInternalException;
-
-/** Helper class for constructing messages from bundles. The intended usage
- * of this class is to construct a new instance bound to a bundle, as in
- * <P>
- * <code>I18NHelper msg = I18NHelper.getInstance("javax.jdo.Bundle");</code>
- * <P>
- * This call uses the class loader that loaded the I18NHelper class to find
- * the specified Bundle. The class provides two overloaded getInstance
- * methods allowing to specify a different class loader:
- * {@link #getInstance(Class cls)} looks for a bundle
- * called "Bundle.properties" located in the package of the specified class
- * object and {@link #getInstance(String bundleName,ClassLoader loader)}
- * uses the specified class loader to find the bundle.
- * <P>
- * Subsequently, instance methods can be used to format message strings
- * using the text from the bundle, as in
- * <P>
- * <code>throw new JDOFatalInternalException (msg.msg("ERR_NoMetadata",
- * cls.getName()));</code>
- * @since 1.0.1
- * @version 1.1
- */
-public class I18NHelper {
-
- /** Bundles that have already been loaded
- */
- private static Hashtable bundles = new Hashtable();
-
- /** Helper instances that have already been created
- */
- private static Hashtable helpers = new Hashtable();
-
- /** The default locale for this VM.
- */
- private static Locale locale = Locale.getDefault();
-
- /** The name of the bundle used by this instance of the helper.
- */
- private final String bundleName;
-
- /** The bundle used by this instance of the helper.
- */
- private ResourceBundle bundle = null;
-
- /** Throwable if ResourceBundle couldn't be loaded
- */
- private Throwable failure = null;
-
- /** The unqualified standard name of a bundle. */
- private static final String bundleSuffix = ".Bundle"; // NOI18N
-
- /** Constructor */
- private I18NHelper() {
- this.bundleName = null;
- }
-
- /** Constructor for an instance bound to a bundle.
- * @param bundleName the name of the resource bundle
- * @param loader the class loader from which to load the resource
- * bundle
- */
- private I18NHelper (String bundleName, ClassLoader loader) {
- this.bundleName = bundleName;
- try {
- bundle = loadBundle (bundleName, loader);
- }
- catch (Throwable e) {
- failure = e;
- }
- }
-
- /** An instance bound to a bundle. This method uses the current class
- * loader to find the bundle.
- * @param bundleName the name of the bundle
- * @return the helper instance bound to the bundle
- */
- public static I18NHelper getInstance (String bundleName) {
- return getInstance (bundleName, I18NHelper.class.getClassLoader());
- }
-
- /** An instance bound to a bundle. This method figures out the bundle name
- * for the class object's package and uses the class' class loader to
- * find the bundle. Note, the specified class object must not be
- * <code>null</code>.
- * @param cls the class object from which to load the resource bundle
- * @return the helper instance bound to the bundle
- */
- public static I18NHelper getInstance (final Class cls) {
- ClassLoader classLoader = (ClassLoader) AccessController.doPrivileged (
- new PrivilegedAction () {
- public Object run () {
- return cls.getClassLoader();
- }
- }
- );
- String bundle = getPackageName (cls.getName()) + bundleSuffix;
- return getInstance (bundle, classLoader);
- }
-
- /** An instance bound to a bundle. This method uses the specified class
- * loader to find the bundle. Note, the specified class loader must not
- * be <code>null</code>.
- * @param bundleName the name of the bundle
- * @param loader the class loader from which to load the resource
- * bundle
- * @return the helper instance bound to the bundle
- */
- public static I18NHelper getInstance (String bundleName,
- ClassLoader loader) {
- I18NHelper helper = (I18NHelper) helpers.get (bundleName);
- if (helper != null) {
- return helper;
- }
- helper = new I18NHelper(bundleName, loader);
- helpers.put (bundleName, helper);
- // if two threads simultaneously create the same helper, return the first
- // one to be put into the Hashtable. The other will be garbage collected.
- return (I18NHelper) helpers.get (bundleName);
- }
-
- /** Message formatter
- * @param messageKey the message key
- * @return the resolved message text
- */
- public String msg (String messageKey) {
- assertBundle (messageKey);
- return getMessage (bundle, messageKey);
- }
-
- /** Message formatter
- * @param messageKey the message key
- * @param arg1 the first argument
- * @return the resolved message text
- */
- public String msg (String messageKey, Object arg1) {
- assertBundle (messageKey);
- return getMessage (bundle, messageKey, arg1);
- }
-
- /** Message formatter
- * @param messageKey the message key
- * @param arg1 the first argument
- * @param arg2 the second argument
- * @return the resolved message text
- */
- public String msg (String messageKey, Object arg1, Object arg2) {
- assertBundle (messageKey);
- return getMessage (bundle, messageKey, arg1, arg2);
- }
-
- /** Message formatter
- * @param messageKey the message key
- * @param arg1 the first argument
- * @param arg2 the second argument
- * @param arg3 the third argument
- * @return the resolved message text
- */
- public String msg (String messageKey, Object arg1, Object arg2, Object arg3) {
- assertBundle (messageKey);
- return getMessage (bundle, messageKey, arg1, arg2, arg3);
- }
-
- /** Message formatter
- * @param messageKey the message key
- * @param args the array of arguments
- * @return the resolved message text
- */
- public String msg (String messageKey, Object[] args) {
- assertBundle (messageKey);
- return getMessage (bundle, messageKey, args);
- }
-
- /** Message formatter
- * @param messageKey the message key
- * @param arg the argument
- * @return the resolved message text
- */
- public String msg (String messageKey, int arg) {
- assertBundle (messageKey);
- return getMessage(bundle, messageKey, arg);
- }
-
- /** Message formatter
- * @param messageKey the message key
- * @param arg the argument
- * @return the resolved message text
- */
- public String msg (String messageKey, boolean arg) {
- assertBundle (messageKey);
- return getMessage(bundle, messageKey, arg);
- }
-
- /** Returns the resource bundle used by this I18NHelper.
- * @return the associated resource bundle
- * @since 1.1
- */
- public ResourceBundle getResourceBundle () {
- assertBundle ();
- return bundle;
- }
-
- //========= Internal helper methods ==========
-
- /**
- * Load ResourceBundle by bundle name
- * @param bundleName the name of the bundle
- * @param loader the class loader from which to load the resource bundle
- * @return the ResourceBundle
- */
- final private static ResourceBundle loadBundle(
- String bundleName, ClassLoader loader) {
- ResourceBundle messages = (ResourceBundle)bundles.get(bundleName);
-
- if (messages == null) //not found as loaded - add
- {
- if (loader != null) {
- messages = ResourceBundle.getBundle(bundleName, locale, loader);
- } else {
- // the JDO library is loaded by the boostrap class loader
- messages = ResourceBundle.getBundle(bundleName, locale,
- getSystemClassLoaderPrivileged());
- }
- bundles.put(bundleName, messages);
- }
- return messages;
- }
-
- /** Assert resources available
- * @since 1.1
- * @throws JDOFatalInternalException if the resource bundle could not
- * be loaded during construction.
- */
- private void assertBundle () {
- if (failure != null)
- throw new JDOFatalInternalException (
- "No resources could be found for bundle:\"" +
- bundle + "\" ", failure);
- }
-
- /** Assert resources available
- * @param key the message key
- * @since 1.0.2
- * @throws JDOFatalInternalException if the resource bundle could not
- * be loaded during construction.
- */
- private void assertBundle (String key) {
- if (failure != null)
- throw new JDOFatalInternalException (
- "No resources could be found to annotate error message key:\"" +
- key + "\"", failure);
- }
-
- /**
- * Returns message as <code>String</code>
- * @param messages the resource bundle
- * @param messageKey the message key
- * @return the resolved message text
- */
- final private static String getMessage(ResourceBundle messages, String messageKey)
- {
- return messages.getString(messageKey);
- }
-
- /**
- * Formats message by adding array of arguments
- * @param messages the resource bundle
- * @param messageKey the message key
- * @param msgArgs an array of arguments to substitute into the message
- * @return the resolved message text
- */
- final private static String getMessage(ResourceBundle messages,
- String messageKey, Object[] msgArgs)
- {
- for (int i=0; i<msgArgs.length; i++) {
- if (msgArgs[i] == null) msgArgs[i] = ""; // NOI18N
- }
- MessageFormat formatter = new MessageFormat(messages.getString(messageKey));
- return formatter.format(msgArgs);
- }
-
- /**
- * Formats message by adding an <code>Object</code> argument.
- * @param messages the resource bundle
- * @param messageKey the message key
- * @param arg the argument
- * @return the resolved message text
- */
- final private static String getMessage(ResourceBundle messages,
- String messageKey, Object arg)
- {
- Object []args = {arg};
- return getMessage(messages, messageKey, args);
- }
-
- /**
- * Formats message by adding two <code>Object</code> arguments.
- * @param messages the resource bundle
- * @param messageKey the message key
- * @param arg1 the first argument
- * @param arg2 the second argument
- * @return the resolved message text
- */
- final private static String getMessage(ResourceBundle messages,
- String messageKey, Object arg1, Object arg2)
- {
- Object []args = {arg1, arg2};
- return getMessage(messages, messageKey, args);
- }
-
- /**
- * Formats message by adding three <code>Object</code> arguments.
- * @param messages the resource bundle
- * @param messageKey the message key
- * @param arg1 the first argument
- * @param arg2 the second argument
- * @param arg3 the third argument
- * @return the resolved message text
- */
- final private static String getMessage(ResourceBundle messages,
- String messageKey, Object arg1, Object arg2, Object arg3)
- {
- Object []args = {arg1, arg2, arg3};
- return getMessage(messages, messageKey, args);
- }
-
- /**
- * Formats message by adding an <code>int</code> as an argument.
- * @param messages the resource bundle
- * @param messageKey the message key
- * @param arg the argument
- * @return the resolved message text
- */
- final private static String getMessage(ResourceBundle messages,
- String messageKey, int arg)
- {
- Object []args = {new Integer(arg)};
- return getMessage(messages, messageKey, args);
- }
-
- /**
- * Formats message by adding a <code>boolean</code> as an argument.
- * @param messages the resource bundle
- * @param messageKey the message key
- * @param arg the argument
- * @return the resolved message text
- */
- final private static String getMessage(ResourceBundle messages,
- String messageKey, boolean arg)
- {
- Object []args = {String.valueOf(arg)};
- return getMessage(messages, messageKey, args);
- }
-
- /**
- * Returns the package portion of the specified class.
- * @param className the name of the class from which to extract the
- * package
- * @return package portion of the specified class
- */
- final private static String getPackageName(final String className)
- {
- final int index = className.lastIndexOf('.');
- return ((index != -1) ? className.substring(0, index) : ""); // NOI18N
- }
-
- /**
- * Get the system class loader. This must be done in a doPrivileged
- * block because of security.
- */
- private static ClassLoader getSystemClassLoaderPrivileged() {
- return (ClassLoader) AccessController.doPrivileged (
- new PrivilegedAction () {
- public Object run () {
- return ClassLoader.getSystemClassLoader();
- }
- }
- );
- }
-}
diff --git a/api20/src/java/javax/jdo/spi/JDOImplHelper.java b/api20/src/java/javax/jdo/spi/JDOImplHelper.java
deleted file mode 100644
index a5ec65b..0000000
--- a/api20/src/java/javax/jdo/spi/JDOImplHelper.java
+++ /dev/null
@@ -1,935 +0,0 @@
-/*
- * Copyright 2005 The Apache Software Foundation.
- *
- * Licensed 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.
- */
-
-/*
- * JDOImplHelper.java
- *
- */
-
-package javax.jdo.spi;
-
-import java.lang.reflect.Constructor;
-
-import java.text.DateFormat;
-import java.text.ParsePosition;
-import java.text.SimpleDateFormat;
-
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.Collections;
-import java.util.Currency;
-import java.util.Date;
-import java.util.HashMap;
-import java.util.HashSet;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Locale;
-import java.util.Map;
-import java.util.WeakHashMap;
-
-import javax.jdo.JDOException;
-import javax.jdo.JDOFatalInternalException;
-import javax.jdo.JDOFatalUserException;
-import javax.jdo.JDOUserException;
-
-/** This class is a helper class for JDO implementations. It contains methods
- * to register metadata for persistence-capable classes and to perform common
- * operations needed by implementations, not by end users.
- * <P><code>JDOImplHelper</code> allows construction of instances of
- * persistence-capable classes without using reflection.
- * <P>Persistence-capable classes register themselves via a static method
- * at class load time.
- * There is no security restriction on this access. JDO implementations
- * get access to the functions provided by this class only if they are
- * authorized by the security manager. To avoid having every call go through
- * the security manager, only the call to get an instance is checked. Once an
- * implementation
- * has an instance, any of the methods can be invoked without security checks.
- * @version 1.0.2
- *
- */
-public class JDOImplHelper extends java.lang.Object {
-
- /** This synchronized <code>HashMap</code> contains a static mapping of
- * <code>PersistenceCapable</code> class to
- * metadata for the class used for constructing new instances. New entries
- * are added by the static method in each <code>PersistenceCapable</code>
- * class. Entries are never removed.
- */
- private static Map registeredClasses =
- Collections.synchronizedMap(new HashMap ());
-
- /** This Set contains all classes that have registered for setStateManager
- * permissions via authorizeStateManagerClass.
- */
- private static Map authorizedStateManagerClasses = new WeakHashMap();
-
- /** This list contains the registered listeners for
- * <code>RegisterClassEvent</code>s.
- */
- private static List listeners = new ArrayList();
-
- /** The list of registered StateInterrogation instances
- */
- private static List stateInterrogations = new ArrayList();
-
- /** The singleton <code>JDOImplHelper</code> instance.
- */
- private static JDOImplHelper jdoImplHelper = new JDOImplHelper();
-
- /** The Internationalization message helper.
- */
- private final static I18NHelper msg =
- I18NHelper.getInstance ("javax.jdo.Bundle"); //NOI18N
-
- /** The DateFormat pattern.
- */
- private static String dateFormatPattern;
-
- /** The default DateFormat instance.
- */
- private static DateFormat dateFormat;
-
- /** Register the default DateFormat instance.
- */
- static {
- jdoImplHelper.registerDateFormat(DateFormat.getDateTimeInstance());
- }
-
- /** Creates new JDOImplHelper */
- private JDOImplHelper() {
- }
-
- /** Get an instance of <code>JDOImplHelper</code>. This method
- * checks that the caller is authorized for
- * <code>JDOPermission("getMetadata")</code>, and if not, throws
- * <code>SecurityException</code>.
- * @return an instance of <code>JDOImplHelper</code>.
- * @throws SecurityException if the caller is not authorized for
- * JDOPermission("getMetadata").
- */
- public static JDOImplHelper getInstance()
- throws SecurityException {
- SecurityManager sec = System.getSecurityManager();
- if (sec != null) {
- // throws exception if caller is not authorized
- sec.checkPermission (JDOPermission.GET_METADATA);
- }
- return jdoImplHelper;
- }
-
- /** Get the field names for a <code>PersistenceCapable</code> class. The
- * order of fields is the natural ordering of the <code>String</code> class
- * (without considering localization).
- * @param pcClass the <code>PersistenceCapable</code> class.
- * @return the field names for the class.
- */
- public String[] getFieldNames (Class pcClass) {
- Meta meta = getMeta (pcClass);
- return meta.getFieldNames();
- }
-
- /** Get the field types for a <code>PersistenceCapable</code> class. The
- * order of fields is the same as for field names.
- * @param pcClass the <code>PersistenceCapable</code> class.
- * @return the field types for the class.
- */
- public Class[] getFieldTypes (Class pcClass) {
- Meta meta = getMeta (pcClass);
- return meta.getFieldTypes();
- }
-
- /** Get the field flags for a <code>PersistenceCapable</code> class. The
- * order of fields is the same as for field names.
- * @param pcClass the <code>PersistenceCapable</code> class.
- * @return the field types for the class.
- */
- public byte[] getFieldFlags (Class pcClass) {
- Meta meta = getMeta (pcClass);
- return meta.getFieldFlags();
- }
-
- /** Get the persistence-capable superclass for a
- * <code>PersistenceCapable</code> class.
- * @param pcClass the <code>PersistenceCapable</code> class.
- * @return The <code>PersistenceCapable</code> superclass for this class,
- * or <code>null</code> if there isn't one.
- */
- public Class getPersistenceCapableSuperclass (Class pcClass) {
- Meta meta = getMeta (pcClass);
- return meta.getPersistenceCapableSuperclass();
- }
-
-
- /** Create a new instance of the class and assign its
- * <code>jdoStateManager</code>. The new instance has its
- * <code>jdoFlags</code> set to <code>LOAD_REQUIRED</code>.
- * @see PersistenceCapable#jdoNewInstance(StateManager sm)
- * @param pcClass the <code>PersistenceCapable</code> class.
- * @param sm the <code>StateManager</code> which will own the new instance.
- * @return the new instance, or <code>null</code> if the class is not
- * registered.
- */
- public PersistenceCapable newInstance (Class pcClass, StateManager sm) {
- Meta meta = getMeta (pcClass);
- PersistenceCapable pcInstance = meta.getPC();
- return pcInstance == null?null:pcInstance.jdoNewInstance(sm);
- }
-
- /** Create a new instance of the class and assign its
- * <code>jdoStateManager</code> and key values from the ObjectId. If the
- * oid parameter is <code>null</code>, no key values are copied.
- * The new instance has its <code>jdoFlags</code> set to
- * <code>LOAD_REQUIRED</code>.
- * @see PersistenceCapable#jdoNewInstance(StateManager sm, Object oid)
- * @param pcClass the <code>PersistenceCapable</code> class.
- * @param sm the <code>StateManager</code> which will own the new instance.
- * @return the new instance, or <code>null</code> if the class is not
- * registered.
- * @param oid the ObjectId instance from which to copy key field values.
- */
- public PersistenceCapable newInstance
- (Class pcClass, StateManager sm, Object oid) {
- Meta meta = getMeta (pcClass);
- PersistenceCapable pcInstance = meta.getPC();
- return pcInstance == null?null:pcInstance.jdoNewInstance(sm, oid);
- }
-
- /** Create a new instance of the ObjectId class of this
- * <code>PersistenceCapable</code> class.
- * It is intended only for application identity. This method should
- * not be called for classes that use single field identity;
- * newObjectIdInstance(Class, Object) should be used instead.
- * If the class has been
- * enhanced for datastore identity, or if the class is abstract,
- * null is returned.
- * @param pcClass the <code>PersistenceCapable</code> class.
- * @return the new ObjectId instance, or <code>null</code> if the class
- * is not registered.
- */
- public Object newObjectIdInstance (Class pcClass) {
- Meta meta = getMeta (pcClass);
- PersistenceCapable pcInstance = meta.getPC();
- return pcInstance == null?null:pcInstance.jdoNewObjectIdInstance();
- }
-
- /** Create a new instance of the class used by the parameter Class
- * for JDO identity, using the
- * key constructor of the object id class. It is intended for single
- * field identity. The identity
- * instance returned has no relationship with the values of the primary key
- * fields of the persistence-capable instance on which the method is called.
- * If the key is the wrong class for the object id class, null is returned.
- * <P>For classes that use single field identity, if the parameter is
- * of one of the following types, the behavior must be as specified:
- * <ul><li><code>Number</code> or <code>Character</code>: the
- * parameter must be the single field
- * type or the wrapper class of the primitive field type; the parameter
- * is passed to the single field identity constructor
- * </li><li><code>ObjectIdFieldSupplier</code>: the field value
- * is fetched from the <code>ObjectIdFieldSupplier</code> and passed to the
- * single field identity constructor
- * </li><li><code>String</code>: the String is passed to the
- * single field identity constructor
- * </li></ul>
- * @return the new ObjectId instance, or <code>null</code>
- * if the class is not registered.
- * @param obj the <code>Object</code> form of the object id
- * @param pcClass the <code>PersistenceCapable</code> class.
- * @since 2.0
- */
- public Object newObjectIdInstance (Class pcClass, Object obj) {
- Meta meta = getMeta (pcClass);
- PersistenceCapable pcInstance = meta.getPC();
- return (pcInstance == null)?null:pcInstance.jdoNewObjectIdInstance(obj);
- }
-
- /** Copy fields from an outside source to the key fields in the ObjectId.
- * This method is generated in the <code>PersistenceCapable</code> class to
- * generate a call to the field manager for each key field in the ObjectId.
- * <P>For example, an ObjectId class that has three key fields
- * (<code>int id</code>, <code>String name</code>, and
- * <code>Float salary</code>) would have the method generated:
- * <P><code>
- * void jdoCopyKeyFieldsToObjectId (Object oid, ObjectIdFieldSupplier fm) {
- * <BR> oid.id = fm.fetchIntField (0);
- * <BR> oid.name = fm.fetchStringField (1);
- * <BR> oid.salary = fm.fetchObjectField (2);
- * <BR>}</code>
- * <P>The implementation is responsible for implementing the
- * <code>ObjectIdFieldSupplier</code> to provide the values for the key
- * fields.
- * @param pcClass the <code>PersistenceCapable Class</code>.
- * @param oid the ObjectId target of the copy.
- * @param fm the field manager that supplies the field values.
- */
- public void copyKeyFieldsToObjectId
- (Class pcClass, PersistenceCapable.ObjectIdFieldSupplier fm, Object oid) {
- Meta meta = getMeta (pcClass);
- PersistenceCapable pcInstance = meta.getPC();
- if (pcInstance == null) {
- throw new JDOFatalInternalException (msg.msg(
- "ERR_AbstractClassNoIdentity", pcClass.getName())); //NOI18N
- }
- pcInstance.jdoCopyKeyFieldsToObjectId(fm, oid);
- }
-
- /** Copy fields to an outside source from the key fields in the ObjectId.
- * This method is generated in the <code>PersistenceCapable</code> class to
- * generate a call to the field manager for each key field in the ObjectId.
- * For example, an ObjectId class that has three key fields
- * (<code>int id</code>, <code>String name</code>, and
- * <code>Float salary</code>) would have the method generated:
- * <P><code>void jdoCopyKeyFieldsFromObjectId
- * <BR> (PersistenceCapable oid, ObjectIdFieldConsumer fm) {
- * <BR> fm.storeIntField (0, oid.id);
- * <BR> fm.storeStringField (1, oid.name);
- * <BR> fm.storeObjectField (2, oid.salary);
- * <BR>}</code>
- * <P>The implementation is responsible for implementing the
- * <code>ObjectIdFieldConsumer</code> to store the values for the key
- * fields.
- * @param pcClass the <code>PersistenceCapable</code> class
- * @param oid the ObjectId source of the copy.
- * @param fm the field manager that receives the field values.
- */
- public void copyKeyFieldsFromObjectId
- (Class pcClass, PersistenceCapable.ObjectIdFieldConsumer fm, Object oid) {
- Meta meta = getMeta (pcClass);
- PersistenceCapable pcInstance = meta.getPC();
- if (pcInstance == null) {
- throw new JDOFatalInternalException (msg.msg(
- "ERR_AbstractClassNoIdentity", pcClass.getName())); //NOI18N
- }
- pcInstance.jdoCopyKeyFieldsFromObjectId(fm, oid);
- }
-
- /** Register metadata by class. The registration will be done in the
- * class named <code>JDOImplHelper</code> loaded by the same or an
- * ancestor class loader as the <code>PersistenceCapable</code> class
- * performing the registration.
- *
- * @param pcClass the <code>PersistenceCapable</code> class
- * used as the key for lookup.
- * @param fieldNames an array of <code>String</code> field names for
- * persistent and transactional fields
- * @param fieldTypes an array of <code>Class</code> field types
- * @param fieldFlags the Field Flags for persistent and transactional fields
- * @param pc an instance of the <code>PersistenceCapable</code> class
- * @param persistenceCapableSuperclass the most immediate superclass that is
- * <code>PersistenceCapable</code>
- */
- public static void registerClass (Class pcClass,
- String[] fieldNames, Class[] fieldTypes,
- byte[] fieldFlags, Class persistenceCapableSuperclass,
- PersistenceCapable pc) {
- if (pcClass == null)
- throw new NullPointerException(msg.msg("ERR_NullClass")); //NOI18N
- Meta meta = new Meta (fieldNames, fieldTypes,
- fieldFlags, persistenceCapableSuperclass, pc);
- registeredClasses.put (pcClass, meta);
-
- // handle class registration listeners
- synchronized (listeners) {
- if (!listeners.isEmpty()) {
- RegisterClassEvent event = new RegisterClassEvent(
- jdoImplHelper, pcClass, fieldNames, fieldTypes,
- fieldFlags, persistenceCapableSuperclass);
- for (Iterator i = listeners.iterator(); i.hasNext();) {
- RegisterClassListener crl =
- (RegisterClassListener)i.next();
- if (crl != null) {
- crl.registerClass(event);
- }
- }
- }
- }
- }
-
- /**
- * Unregister metadata by class loader. This method unregisters all
- * registered <code>PersistenceCapable</code> classes loaded by the
- * specified class loader. Any attempt to get metadata for unregistered
- * classes will result in a <code>JDOFatalUserException</code>.
- * @param cl the class loader.
- * @since 1.0.2
- */
- public void unregisterClasses (ClassLoader cl)
- {
- SecurityManager sec = System.getSecurityManager();
- if (sec != null) {
- // throws exception if caller is not authorized
- sec.checkPermission (JDOPermission.MANAGE_METADATA);
- }
- synchronized(registeredClasses) {
- for (Iterator i = registeredClasses.keySet().iterator();
- i.hasNext();) {
- Class pcClass = (Class)i.next();
- // Note, the pc class was registered by calling the static
- // method JDOImplHelper.registerClass. This means the
- // JDOImplHelper class loader is the same as or an ancestor
- // of the class loader of the pc class. In this case method
- // getClassLoader does not perform a security check for
- // RuntimePermission("getClassLoader") and thus we do not
- // need a privileged block for the getClassLoader call.
- if ((pcClass != null) && (pcClass.getClassLoader() == cl)) {
- // unregister pc class, if its class loader is the
- // specified one.
- i.remove();
- }
- }
- }
- }
-
- /**
- * Unregister metadata by class. This method unregisters the specified
- * class. Any further attempt to get metadata for the specified class will
- * result in a <code>JDOFatalUserException</code>.
- * @param pcClass the <code>PersistenceCapable</code> class to be
- * unregistered.
- * @since 1.0.2
- */
- public void unregisterClass (Class pcClass)
- {
- if (pcClass == null)
- throw new NullPointerException(msg.msg("ERR_NullClass")); //NOI18N
- SecurityManager sec = System.getSecurityManager();
- if (sec != null) {
- // throws exception if caller is not authorized
- sec.checkPermission (JDOPermission.MANAGE_METADATA);
- }
- registeredClasses.remove(pcClass);
- }
-
- /**
- * Add the specified <code>RegisterClassListener</code> to the listener
- * list.
- * @param crl the listener to be added
- */
- public void addRegisterClassListener (RegisterClassListener crl) {
- HashSet alreadyRegisteredClasses = null;
- synchronized (listeners) {
- listeners.add(crl);
- // Make a copy of the existing set of registered classes.
- // Between these two lines of code, any number of new class
- // registrations might occur, and will then all wait until this
- // synchronized block completes. Some of the class registrations
- // might be delivered twice to the newly registered listener.
- alreadyRegisteredClasses = new HashSet (registeredClasses.keySet());
- }
- // new registrations will call the new listener while the following
- // occurs notify the new listener about already-registered classes
- for (Iterator it = alreadyRegisteredClasses.iterator(); it.hasNext();) {
- Class pcClass = (Class)it.next();
- Meta meta = getMeta (pcClass);
- RegisterClassEvent event = new RegisterClassEvent(
- this, pcClass, meta.getFieldNames(), meta.getFieldTypes(),
- meta.getFieldFlags(), meta.getPersistenceCapableSuperclass());
- crl.registerClass (event);
- }
- }
-
- /**
- * Remove the specified <code>RegisterClassListener</code> from the listener
- * list.
- * @param crl the listener to be removed
- */
- public void removeRegisterClassListener (RegisterClassListener crl) {
- synchronized (listeners) {
- listeners.remove(crl);
- }
- }
-
- /**
- * Returns a collection of class objects of the registered
- * persistence-capable classes.
- * @return registered persistence-capable classes
- */
- public Collection getRegisteredClasses() {
- return Collections.unmodifiableCollection(registeredClasses.keySet());
- }
-
- /** Look up the metadata for a <code>PersistenceCapable</code> class.
- * @param pcClass the <code>Class</code>.
- * @return the <code>Meta</code> for the <code>Class</code>.
- */
- private static Meta getMeta (Class pcClass) {
- Meta ret = (Meta) registeredClasses.get (pcClass);
- if (ret == null) {
- throw new JDOFatalUserException(
- msg.msg ("ERR_NoMetadata", pcClass.getName())); //NOI18N
- }
- return ret;
- }
-
- /** Register a class authorized to replaceStateManager. The caller of
- * this method must be authorized for JDOPermission("setStateManager").
- * During replaceStateManager, a persistence-capable class will call
- * the corresponding checkAuthorizedStateManager and the class of the
- * instance of the parameter must have been registered.
- * @param smClass a Class that is authorized for
- * JDOPermission("setStateManager").
- * @throws SecurityException if the caller is not authorized for
- * JDOPermission("setStateManager").
- * @since 1.0.1
- */
- public static void registerAuthorizedStateManagerClass (Class smClass)
- throws SecurityException {
- if (smClass == null)
- throw new NullPointerException(msg.msg("ERR_NullClass")); //NOI18N
- SecurityManager sm = System.getSecurityManager();
- if (sm != null) {
- sm.checkPermission(JDOPermission.SET_STATE_MANAGER);
- }
- synchronized (authorizedStateManagerClasses) {
- authorizedStateManagerClasses.put(smClass, null);
- }
- }
-
- /** Register classes authorized to replaceStateManager. The caller of
- * this method must be authorized for JDOPermission("setStateManager").
- * During replaceStateManager, a persistence-capable class will call
- * the corresponding checkAuthorizedStateManager and the class of the
- * instance of the parameter must have been registered.
- * @param smClasses a Collection of Classes that are authorized for
- * JDOPermission("setStateManager").
- * @throws SecurityException if the caller is not authorized for
- * JDOPermission("setStateManager").
- * @since 1.0.1
- */
- public static void registerAuthorizedStateManagerClasses (
- Collection smClasses) throws SecurityException {
- SecurityManager sm = System.getSecurityManager();
- if (sm != null) {
- sm.checkPermission(JDOPermission.SET_STATE_MANAGER);
- synchronized (authorizedStateManagerClasses) {
- for (Iterator it = smClasses.iterator(); it.hasNext();) {
- Object smClass = it.next();
- if (!(smClass instanceof Class)) {
- throw new ClassCastException(
- msg.msg("ERR_StateManagerClassCast", //NOI18N
- smClass.getClass().getName()));
- }
- registerAuthorizedStateManagerClass((Class)it.next());
- }
- }
- }
- }
-
- /** Check that the parameter instance is of a class that is authorized for
- * JDOPermission("setStateManager"). This method is called by the
- * replaceStateManager method in persistence-capable classes.
- * A class that is passed as the parameter to replaceStateManager must be
- * authorized for JDOPermission("setStateManager"). To improve performance,
- * first the set of authorized classes is checked, and if not present, a
- * regular permission check is made. The regular permission check requires
- * that all callers on the stack, including the persistence-capable class
- * itself, must be authorized for JDOPermission("setStateManager").
- * @param sm an instance of StateManager whose class is to be checked.
- * @since 1.0.1
- */
- public static void checkAuthorizedStateManager (StateManager sm) {
- checkAuthorizedStateManagerClass(sm.getClass());
- }
-
- /** Check that the parameter instance is a class that is authorized for
- * JDOPermission("setStateManager"). This method is called by the
- * constructors of JDO Reference Implementation classes.
- * @param smClass a Class to be checked for JDOPermission("setStateManager")
- * @since 1.0.1
- */
- public static void checkAuthorizedStateManagerClass (Class smClass) {
- final SecurityManager scm = System.getSecurityManager();
- if (scm == null) {
- // if no security manager, no checking.
- return;
- }
- synchronized(authorizedStateManagerClasses) {
- if (authorizedStateManagerClasses.containsKey(smClass)) {
- return;
- }
- }
- // if not already authorized, perform "long" security checking.
- scm.checkPermission(JDOPermission.SET_STATE_MANAGER);
- }
-
- /**
- * Construct an instance of a key class using a String as input.
- * This is a helper interface for use with ObjectIdentity.
- * Classes without a String constructor (such as those in java.lang
- * and java.util) will use this interface for constructing new instances.
- * The result might be a singleton or use some other strategy.
- */
- public interface StringConstructor {
- /**
- * Construct an instance of the class for which this instance
- * is registered.
- * @param s the parameter for construction
- * @return the constructed object
- */
- public Object construct(String s);
- }
-
- /**
- * Special StringConstructor instances for use with specific
- * classes that have no public String constructor. The Map is
- * keyed on class instance and the value is an instance of
- * StringConstructor.
- */
- static Map stringConstructorMap = new HashMap();
-
- /**
- *
- * Register special StringConstructor instances. These instances
- * are for constructing instances from String parameters where there
- * is no String constructor for them.
- * @param cls the class to register a StringConstructor for
- * @param sc the StringConstructor instance
- * @return the previous StringConstructor registered for this class
- */
- public Object registerStringConstructor(Class cls, StringConstructor sc) {
- synchronized(stringConstructorMap) {
- return stringConstructorMap.put(cls, sc);
- }
- }
-
- /** Register the default special StringConstructor instances.
- */
- static {
- JDOImplHelper helper = getInstance();
- if (isClassLoadable("java.util.Currency")) {
- helper.registerStringConstructor(
- Currency.class, new StringConstructor() {
- public Object construct(String s) {
- try {
- return Currency.getInstance(s);
- } catch (IllegalArgumentException ex) {
- throw new javax.jdo.JDOUserException(msg.msg(
- "EXC_CurrencyStringConstructorIllegalArgument", //NOI18N
- s), ex);
- } catch (Exception ex) {
- throw new JDOUserException(msg.msg(
- "EXC_CurrencyStringConstructorException"), //NOI18N
- ex);
- }
- }
- });
- }
- helper.registerStringConstructor(Locale.class, new StringConstructor() {
- public Object construct(String s) {
- try {
- return getLocale(s);
- } catch (Exception ex) {
- throw new JDOUserException(msg.msg(
- "EXC_LocaleStringConstructorException"), ex); //NOI18N
- }
- }
- });
- helper.registerStringConstructor(Date.class, new StringConstructor() {
- public synchronized Object construct(String s) {
- try {
- // first, try the String as a Long
- return new Date(Long.parseLong(s));
- } catch (NumberFormatException ex) {
- // not a Long; try the formatted date
- ParsePosition pp = new ParsePosition(0);
- Date result = dateFormat.parse(s, pp);
- if (result == null) {
- throw new JDOUserException (msg.msg(
- "EXC_DateStringConstructor", new Object[] //NOI18N
- {s, new Integer(pp.getErrorIndex()),
- dateFormatPattern}));
- }
- return result;
- }
- }
- });
- }
-
- /**
- * Parse the String to a Locale.
- */
- private static Locale getLocale(String s) {
- String lang = s;
- int firstUnderbar = s.indexOf('_');
- if (firstUnderbar == -1) {
- // nothing but language
- return new Locale(lang);
- }
- lang = s.substring(0, firstUnderbar);
- String country;
- int secondUnderbar = s.indexOf('_', firstUnderbar + 1);
- if (secondUnderbar == -1) {
- // nothing but language, country
- country = s.substring(firstUnderbar + 1);
- return new Locale(lang, country);
- }
- country = s.substring(firstUnderbar + 1, secondUnderbar);
- String variant = s.substring(secondUnderbar + 1);
- return new Locale(lang, country, variant);
- }
- /**
- * Determine if a class is loadable in the current environment.
- */
- private static boolean isClassLoadable(String className) {
- try {
- Class.forName(className);
- return true;
- } catch (ClassNotFoundException ex) {
- return false;
- }
- }
-
- /**
- * Construct an instance of the parameter class, using the keyString
- * as an argument to the constructor. If the class has a StringConstructor
- * instance registered, use it. If not, try to find a constructor for
- * the class with a single String argument. Otherwise, throw a
- * JDOUserException.
- * @param className the name of the class
- * @param keyString the String parameter for the constructor
- * @return the result of construction
- */
- public static Object construct(String className, String keyString) {
- StringConstructor stringConstructor;
- try {
- Class keyClass = Class.forName(className);
- synchronized(stringConstructorMap) {
- stringConstructor =
- (StringConstructor) stringConstructorMap.get(keyClass);
- }
- if (stringConstructor != null) {
- return stringConstructor.construct(keyString);
- } else {
- Constructor keyConstructor =
- keyClass.getConstructor(new Class[]{String.class});
- return keyConstructor.newInstance(new Object[]{keyString});
- }
- } catch (JDOException ex) {
- throw ex;
- } catch (Exception ex) {
- /* ClassNotFoundException,
- NoSuchMethodException,
- InstantiationException,
- IllegalAccessException,
- InvocationTargetException */
- throw new JDOUserException(
- msg.msg("EXC_ObjectIdentityStringConstruction", //NOI18N
- new Object[] {ex.toString(), className, keyString}), ex);
- }
- }
-
- /**
- * Register a DateFormat instance for use with constructing Date
- * instances. The default is the default DateFormat instance.
- * If the new instance implements SimpleDateFormat, get its pattern
- * for error messages.
- * @param df the DateFormat instance to use
- */
- public synchronized void registerDateFormat(DateFormat df) {
- dateFormat = df;
- if (df instanceof SimpleDateFormat) {
- dateFormatPattern = ((SimpleDateFormat)df).toPattern();
- } else {
- dateFormatPattern = msg.msg("MSG_unknown"); //NOI18N
- }
- }
-
- /** This is a helper class to manage metadata per persistence-capable
- * class. The information is used at runtime to provide field names and
- * field types to the JDO Model.
- *
- * This is the value of the <code>HashMap</code> which
- * relates the <code>PersistenceCapable Class</code>
- * as a key to the metadata.
- */
- static class Meta {
-
- /** Construct an instance of <code>Meta</code>.
- * @param fieldNames An array of <code>String</code>
- * @param fieldTypes An array of <code>Class</code>
- * @param fieldFlags an array of <code>int</code>
- * @param persistenceCapableSuperclass the most immediate
- * <code>PersistenceCapable</code> superclass
- * @param pc An instance of the <code>PersistenceCapable</code> class
- */
- Meta (String[] fieldNames, Class[] fieldTypes, byte[] fieldFlags,
- Class persistenceCapableSuperclass, PersistenceCapable pc) {
- this.fieldNames = fieldNames;
- this.fieldTypes = fieldTypes;
- this.fieldFlags = fieldFlags;
- this.persistenceCapableSuperclass = persistenceCapableSuperclass;
- this.pc = pc;
- }
-
- /** This is an array of field names used
- * for the Model at runtime. The field
- * is passed by the static class initialization.
- */
- String[] fieldNames;
-
- /** Get the field names from the metadata.
- * @return the array of field names.
- */
- String[] getFieldNames() {
- return fieldNames;
- }
-
- /** This is an array of field types used
- * for the Model at runtime. The field
- * is passed by the static class initialization.
- */
- Class[] fieldTypes;
-
- /** Get the field types from the metadata.
- * @return the array of field types.
- */
- Class[] getFieldTypes() {
- return fieldTypes;
- }
-
- /** This is an array of field flags used
- * for the Model at runtime. The field
- * is passed by the static class initialization.
- */
- byte[] fieldFlags;
-
- /** Get the field types from the metadata.
- * @return the array of field types.
- */
- byte[] getFieldFlags() {
- return fieldFlags;
- }
-
- /** This is the <code>Class</code> instance of the
- * <code>PersistenceCapable</code> superclass.
- */
- Class persistenceCapableSuperclass;
-
- /** Return the <code>PersistenceCapable</code> superclass.
- * @return the <code>PersistenceCapable</code> superclass
- */
- Class getPersistenceCapableSuperclass() {
- return persistenceCapableSuperclass;
- }
- /** This is an instance of <code>PersistenceCapable</code>,
- * used at runtime to create new instances.
- */
- PersistenceCapable pc;
-
- /** Get an instance of the <code>PersistenceCapable</code> class.
- * @return an instance of the <code>PersistenceCapable Class</code>.
- */
- PersistenceCapable getPC() {
- return pc;
- }
-
- /** Return the string form of the metadata.
- * @return the string form
- */
- public String toString() {
- return "Meta-" + pc.getClass().getName(); //NOI18N
- }
- }
-
- /** Add a StateInterrogation to the list. Create a new list
- * in case there is an iterator open on the original list.
- */
- public synchronized void addStateInterrogation(StateInterrogation si) {
- List newList = new ArrayList(stateInterrogations);
- newList.add(si);
- stateInterrogations = newList;
- }
-
- /** Remove a StateInterrogation from the list. Create a new list
- * in case there is an iterator open on the original list.
- */
- public synchronized void removeStateInterrogation(StateInterrogation si) {
- List newList = new ArrayList(stateInterrogations);
- newList.remove(si);
- stateInterrogations = newList;
- }
-
- /** Return an Iterator over all StateInterrogation instances.
- * Synchronize to avoid add/remove/iterate conflicts.
- */
- private synchronized Iterator getStateInterrogationIterator() {
- return stateInterrogations.iterator();
- }
-
- /** Mark a non-binary-compatible instance dirty. Delegate to all
- * registered StateInterrogation instances until one of them
- * handles the call.
- */
- public void nonBinaryCompatibleMakeDirty(Object pc, String fieldName) {
- Iterator sit = getStateInterrogationIterator();
- while (sit.hasNext()) {
- StateInterrogation si = (StateInterrogation)sit.next();
- if (si.makeDirty(pc, fieldName)) return;
- }
- }
-
- /** Determine the state of a non-binary-compatible instance.
- * Delegate to all registered StateInterrogation instances until
- * one of them handles the call (returns a non-null Boolean
- * with the answer).
- * The caller provides the stateless "method object" that does
- * the actual call to the StateInterrogation instance.
- */
- public boolean nonBinaryCompatibleIs(Object pc,
- StateInterrogationBooleanReturn sibr) {
- Iterator sit = getStateInterrogationIterator();
- while (sit.hasNext()) {
- StateInterrogation si = (StateInterrogation)sit.next();
- Boolean result = sibr.is(pc, si);
- if (result != null) return result.booleanValue();
- }
- return false;
- }
-
- /** Return an object associated with a non-binary-compatible instance.
- * Delegate to all registered StateInterrogation instances until
- * one of them handles the call (returns a non-null answer).
- * The caller provides the stateless "method object" that does
- * the actual call to the StateInterrogation instance.
- */
- public Object nonBinaryCompatibleGet(Object pc,
- StateInterrogationObjectReturn sibr) {
- Iterator sit = getStateInterrogationIterator();
- while (sit.hasNext()) {
- StateInterrogation si = (StateInterrogation)sit.next();
- Object result = sibr.get(pc, si);
- if (result != null) return result;
- }
- return null;
- }
-
- /** This is an interface used to interrogate the state of an instance
- * that does not implement PersistenceCapable. It is used for the
- * methods that return a boolean value.
- */
- public static interface StateInterrogationBooleanReturn {
- public Boolean is(Object pc, StateInterrogation si);
- }
-
- /** This is an interface used to interrogate the state of an instance
- * that does not implement PersistenceCapable. It is used for the
- * methods that return an Object value.
- */
- public static interface StateInterrogationObjectReturn {
- public Object get(Object pc, StateInterrogation si);
- }
-}
diff --git a/api20/src/java/javax/jdo/spi/JDOPermission.java b/api20/src/java/javax/jdo/spi/JDOPermission.java
deleted file mode 100644
index 745edf5..0000000
--- a/api20/src/java/javax/jdo/spi/JDOPermission.java
+++ /dev/null
@@ -1,134 +0,0 @@
-/*
- * Copyright 2005 The Apache Software Foundation.
- *
- * Licensed 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.spi;
-
-/**
- * The <code>JDOPermission</code> class is for operations that are reserved for
- * JDO implementations and should not be called by other code. A
- * <code>JDOPermission</code> is a <em>named permission</em> and has no
- * actions. There are two names currently defined. Each named permission
- * has a corresponding public static final field which contains an instance
- * of the named permission.
- * <P>
- * The following table
- * provides a summary description of what each named permission allows,
- * and discusses the risks of granting code the permission.
- * <P>
- *
- * <table border=1 cellpadding=5>
- * <tr>
- * <th>Permission Target Name</th>
- * <th>What the Permission Allows</th>
- * <th>Risks of Allowing this Permission</th>
- * </tr>
- *
- * <tr>
- * <td><code>setStateManager</code></td>
- * <td>This allows setting the <code>StateManager</code> for an instance of
- * <code>PersistenceCapable</code>. The <code>StateManager</code>
- * has unlimited access to get and set persistent and transactional fields of
- * the <code>PersistenceCapable</code> instance.</td>
- * <td>This is dangerous in that information (possibly confidential)
- * normally unavailable would be accessible to malicious code.</td>
- * </tr>
- *
- * <tr>
- * <td><code>getMetadata</code></td>
- * <td>This allows getting metadata for any <code>PersistenceCapable</code>
- * class that has registered with <code>JDOImplHelper</code>.</td>
- * <td>This is dangerous in that metadata information (possibly confidential)
- * normally unavailable would be accessible to malicious code.</td>
- * </tr>
- *
- * <tr>
- * <td><code>manageMetadata</code></td>
- * <td>This allows managing metadata for any <code>PersistenceCapable</code>
- * class that has registered with <code>JDOImplHelper</code>.</td>
- * <td>This is dangerous in that metadata information (possibly confidential)
- * normally unavailable would be manageable (modifiable) by malicious code.
- * </td>
- * </tr>
- *
- * <tr>
- * <td><code>closePersistenceManagerFactory</code></td>
- * <td>This allows closing a <code>PersistenceManagerFactory</code>,
- * thereby releasing resources.</td>
- * <td>This is dangerous in that resources bound to the
- * <code>PersistenceManagerFactory</code> would be releaseable by
- * malicious code.</td>
- * </tr>
- *
- * </table>
- *
- * @see java.security.Permission
- * @see java.security.BasicPermission
- * @see javax.jdo.spi.JDOImplHelper
- * @see javax.jdo.spi.PersistenceCapable
- * @version 1.0.2
- */
-public final
-class JDOPermission extends java.security.BasicPermission {
-
- /**
- * Constructs a <code>JDOPermission</code> with the specified name.
- *
- * @param name the name of the <code>JDOPermission</code>
- */
- public JDOPermission(String name) {
- super(name);
- }
-
- /**
- * Constructs a <code>JDOPermission</code> with the specified name and
- * actions. The actions should be <code>null</code>; they are ignored.
- * This constructor exists for use by the <code>Policy</code> object
- * to instantiate new <code>Permission</code> objects.
- *
- * @param name the name of the <code>JDOPermission</code>
- * @param actions should be <code>null</code>.
- */
- public JDOPermission(String name, String actions) {
- super(name, actions);
- }
-
- /** An instance of <code>JDOPermission</code> to be used for
- * <code>getMetadata</code> permission checking.
- */
- public final static JDOPermission GET_METADATA =
- new JDOPermission("getMetadata"); // NOI18N
-
- /** An instance of <code>JDOPermission</code> to be used for
- * <code>manageMetadata</code> permission checking.
- * @since 1.0.2
- */
- public final static JDOPermission MANAGE_METADATA =
- new JDOPermission("manageMetadata"); // NOI18N
-
- /** An instance of <code>JDOPermission</code> to be used for
- * <code>setStateManager</code> permission checking.
- */
- public final static JDOPermission SET_STATE_MANAGER =
- new JDOPermission("setStateManager"); // NOI18N
-
- /** An instance of <code>JDOPermission</code> to be used for
- * <code>closePersistenceManagerFactory</code> permission checking.
- * @since 1.0.1
- */
- public final static JDOPermission CLOSE_PERSISTENCE_MANAGER_FACTORY =
- new JDOPermission("closePersistenceManagerFactory"); // NOI18N
-
-}
diff --git a/api20/src/java/javax/jdo/spi/PersistenceCapable.java b/api20/src/java/javax/jdo/spi/PersistenceCapable.java
deleted file mode 100644
index 46ad460..0000000
--- a/api20/src/java/javax/jdo/spi/PersistenceCapable.java
+++ /dev/null
@@ -1,593 +0,0 @@
-/*
- * Copyright 2005 The Apache Software Foundation.
- *
- * Licensed 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.spi;
-
-import javax.jdo.PersistenceManager;
-
-/**
- * A class that can be managed by a binary-compatible JDO implementation
- * must implement this interface.
- *
- * <P>This interface defines methods that allow the implementation to manage
- * the instances. It also defines methods that allow a JDO aware
- * application to examine the runtime state of instances. For example,
- * an application can discover whether the instance is persistent, transactional,
- * dirty, new, deleted, or detached; and to get its associated
- * PersistenceManager, object identity, and version if it has one.
- *
- * <P>In the Reference Implementation, the JDO Enhancer modifies the class
- * to implement PersistenceCapable prior to loading the class into the runtime
- * environment. The Reference Enhancer also adds code to implement the
- * methods defined by PersistenceCapable.
- *
- *<P>The extra methods in the PersistenceCapable interface might be generated
- * by pre-processing a .java file, or might be generated from a tool directly.
- * The exact technique for generating the extra methods is not specified by
- * JDO.
- *
- * <P>The PersistenceCapable interface is designed to avoid name conflicts
- * in the scope of user-defined classes. All of its declared method
- * names are prefixed with 'jdo'.
- * @version 2.0
- */
-public interface PersistenceCapable {
- /** If jdoFlags is set to READ_WRITE_OK, then the fields in the default fetch group
- * can be accessed for read or write without notifying the StateManager.
- */
- static final byte READ_WRITE_OK = 0;
-
- /** If jdoFlags is set to LOAD_REQUIRED, then the fields in the default fetch group
- * cannot be accessed for read or write without notifying the StateManager.
- */
- static final byte LOAD_REQUIRED = 1;
-
- /** If jdoFlags is set to READ_OK, then the fields in the default fetch group
- * can be accessed for read without notifying the StateManager.
- */
- static final byte READ_OK = -1;
-
- /** If jdoFieldFlags for a field includes CHECK_READ, then
- * the field has been enhanced to call the jdoStateManager on read
- * if the jdoFlags setting is not READ_OK or READ_WRITE_OK.
- */
- static final byte CHECK_READ = 1;
-
- /** If jdoFieldFlags for a field includes MEDIATE_READ, then
- * the field has been enhanced to always call the jdoStateManager
- * on all reads.
- */
- static final byte MEDIATE_READ = 2;
-
- /** If jdoFieldFlags for a field includes CHECK_WRITE,
- * then the field has been enhanced to call the
- * jdoStateManager on write if the jdoFlags setting is not
- * READ_WRITE_OK;.
- */
- static final byte CHECK_WRITE = 4;
-
- /** If jdoFieldFlags for a field includes MEDIATE_WRITE, then
- * the field has been enhanced to always call the jdoStateManager
- * on all writes.
- */
- static final byte MEDIATE_WRITE = 8;
-
- /** If jdoFieldFlags for a field includes SERIALIZABLE,
- * then the field is not declared as TRANSIENT.
- */
- static final byte SERIALIZABLE = 16;
-
- /** Return the associated PersistenceManager if there is one.
- * Transactional and persistent instances return the associated
- * PersistenceManager.
- *
- * <P>Transient non-transactional instances return null.
- * <P>This method always delegates to the StateManager if it is non-null.
- * @return the PersistenceManager associated with this instance.
- */
- PersistenceManager jdoGetPersistenceManager();
-
- /** This method sets the StateManager instance that manages the state
- * of this instance. This method is normally used by the StateManager
- * during the process of making an instance persistent, transient,
- * or transactional.
- *
- * The caller of this method must have JDOPermission for the instance,
- * if the instance is not already owned by a StateManager.
- * If the parameter is null, and the StateManager approves the change,
- * then the jdoFlags field will be reset to READ_WRITE_OK.
- * If the parameter is not null, and the security manager approves
- * the change, then the jdoFlags field will be reset to LOAD_REQUIRED.
- * @param sm The StateManager which will own this instance, or null
- * to reset the instance to transient state
- * @throws SecurityException if the caller does not have JDOPermission
- * @see JDOPermission
- */
- void jdoReplaceStateManager(StateManager sm)
- throws SecurityException;
-
- /** The owning StateManager uses this method to ask the instance to
- * provide the value of the single field identified by fieldNumber.
- * @param fieldNumber the field whose value is to be provided by
- * a callback to the StateManager's
- * providedXXXField method
- */
- void jdoProvideField(int fieldNumber);
-
... 11686 lines suppressed ...