# Package javax.jdo.spi

This package contains the interfaces and classes used by JDO implementations.

See: Description

- Interface Summary
  Interface | Description
  --- | ---
  Detachable | This interface is implemented by classes that can be detached from the persistence context and later attached.
  JDOImplHelper.StateInterrogationBooleanReturn | This is an interface used to interrogate the state of an instance that does not implement PersistenceCapable.
  JDOImplHelper.StateInterrogationObjectReturn | This is an interface used to interrogate the state of an instance that does not implement PersistenceCapable.
  JDOImplHelper.StringConstructor | Construct an instance of a key class using a String as input.
  PersistenceCapable | A class that can be managed by a binary-compatible JDO implementation must implement this interface.
  PersistenceCapable.ObjectIdFieldConsumer | This interface is used to store fields from the Object id instance.
  PersistenceCapable.ObjectIdFieldManager | This interface is a convenience interface that allows an instance to implement both `ObjectIdFieldSupplier` and `ObjectIdFieldConsumer`.
  PersistenceCapable.ObjectIdFieldSupplier | This interface is used to provide fields to the Object id instance.
  RegisterClassListener | A "RegisterClassEvent" event gets fired whenever a persistence-capable class is loaded and gets registered with the `JDOImplHelper`.
  StateInterrogation | This interface is implemented by a non-binary-compatible JDO implementation to provide state interrogation for non-enhanced persistent classes.
  StateManager | This interface is the point of contact between managed instances of `PersistenceCapable` classes and the JDO implementation.

- Class Summary
  Class | Description
  --- | ---
  I18NHelper | Helper class for constructing messages from bundles.
  JDOImplHelper | This class is a helper class for JDO implementations.
  JDOPermission | The `JDOPermission` class is for operations that are reserved for JDO implementations and should not be called by other code.
  RegisterClassEvent | A `RegisterClassEvent` event gets delivered whenever a persistence-capable class registers itself with the `JDOImplHelper`.

## Package javax.jdo.spi Description

This package contains the interfaces and classes used by JDO implementations.

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).

The PersistenceCapable interface is implemented by all classes whose instances are to be made persistent. The implementation might be done by a combination of techniques, as determined by the JDO vendor:

- Pre-processing .java files
- Post-processing .class files
- Generating .java or .class files directly from an abstraction

The StateManager interface is the implementation's contact point with the PersistenceCapable instances. It defines methods that are called by the PersistenceCapable instances to implement the required PersistenceCapable behavior for persistent and transactional instances.

The JDOPermission class is used to manage security controls on JDO implementations.

The RegisterClassEvent class and RegisterClassListener interface are used by JDO implementations that need access to metadata of PersistenceCapable classes.

The JDOImplHelper class contains helper methods for JDO implementations.

Copyright © 2005–2022 The Apache Software Foundation. All rights reserved.