From d479253768d296a40b4f699e1de9b03c7146a97a Mon Sep 17 00:00:00 2001 From: Jesse Morgan Date: Tue, 3 Dec 2013 14:03:28 -0800 Subject: Adding javadocs and Carbonado User Guide --- apidocs/com/amazon/carbonado/Repository.html | 422 +++++++++++++++++++++++++++ 1 file changed, 422 insertions(+) create mode 100644 apidocs/com/amazon/carbonado/Repository.html (limited to 'apidocs/com/amazon/carbonado/Repository.html') diff --git a/apidocs/com/amazon/carbonado/Repository.html b/apidocs/com/amazon/carbonado/Repository.html new file mode 100644 index 0000000..74fa5d3 --- /dev/null +++ b/apidocs/com/amazon/carbonado/Repository.html @@ -0,0 +1,422 @@ + + + + + + +Repository (Carbonado 1.2.3 API) + + + + + + + +
+ + + + + +
+ + + +
+
com.amazon.carbonado
+

Interface Repository

+
+
+
+
    +
  • +
    +
    All Known Implementing Classes:
    +
    AbstractRepository
    +
    +
    +
    +
    public interface Repository
    +
    A Repository represents a database for Storable + instances. Some repositories do not have control over the schema (for example, a JDBC + Repository depends on the schema defined by the underlying relational database); such + repositories are called "dependent". Conversely, a repository which has complete control + over the schema is termed "independent". + +

    A dependent repository requires and will verify that Storables + have a matching definition in the external storage layer. An independent + repository will automatically update type definitions in its database to + match changes to Storable definitions. + +

    Repository instances should be thread-safe and immutable. Therefore, it + is safe for multiple threads to be interacting with a Repository.

    +
    Author:
    +
    Brian S O'Neill
    +
    See Also:
    RepositoryBuilder
    +
  • +
+
+
+
    +
  • + +
      +
    • + + +

      Method Summary

      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      Methods 
      Modifier and TypeMethod and Description
      voidclose() +
      Closes this repository reference, aborting any current + transactions.
      +
      TransactionenterTopTransaction(IsolationLevel level) +
      Causes the current thread to enter a top-level transaction scope + with an explict isolation level.
      +
      TransactionenterTransaction() +
      Causes the current thread to enter a transaction scope.
      +
      TransactionenterTransaction(IsolationLevel level) +
      Causes the current thread to enter a transaction scope with an explict + isolation level.
      +
      <C extends Capability
      C
      getCapability(java.lang.Class<C> capabilityType) +
      Requests a specific capability of this Repository.
      +
      java.lang.StringgetName() +
      Returns the name of this repository.
      +
      IsolationLevelgetTransactionIsolationLevel() +
      Returns the isolation level of the current transaction, or null if there + is no transaction in the current thread.
      +
      <S extends Storable
      Storage<S>
      storageFor(java.lang.Class<S> type) +
      Returns a Storage instance for the given user defined Storable class or + interface.
      +
      +
    • +
    +
  • +
+
+
+
    +
  • + +
      +
    • + + +

      Method Detail

      + + + +
        +
      • +

        getName

        +
        java.lang.String getName()
        +
        Returns the name of this repository.
        +
      • +
      + + + +
        +
      • +

        storageFor

        +
        <S extends StorableStorage<S> storageFor(java.lang.Class<S> type)
        +                                       throws SupportException,
        +                                              RepositoryException
        +
        Returns a Storage instance for the given user defined Storable class or + interface.
        +
        Returns:
        specific type of Storage instance
        +
        Throws:
        +
        java.lang.IllegalArgumentException - if specified type is null
        +
        MalformedTypeException - if specified type is not suitable
        +
        SupportException - if specified type cannot be supported
        +
        RepositoryException - if storage layer throws any other kind of + exception
        +
      • +
      + + + +
        +
      • +

        enterTransaction

        +
        Transaction enterTransaction()
        +
        Causes the current thread to enter a transaction scope. Call commit + inside the transaction in order for any updates to the repository to be + applied. Be sure to call exit when leaving the scope. +

        + To ensure exit is called, use transactions as follows: +

        + Transaction txn = repository.enterTransaction();
        + try {
        +     // Make updates to storage layer
        +     ...
        +
        +     // Commit the changes up to this point
        +     txn.commit();
        +
        +     // Optionally make more updates
        +     ...
        +
        +     // Commit remaining changes
        +     txn.commit();
        + } finally {
        +     // Ensure transaction exits, aborting uncommitted changes if an exception was thrown
        +     txn.exit();
        + }
        + 
        +
      • +
      + + + +
        +
      • +

        enterTransaction

        +
        Transaction enterTransaction(IsolationLevel level)
        +
        Causes the current thread to enter a transaction scope with an explict + isolation level. The actual isolation level may be higher than + requested, if the repository does not support the exact level. If the + repository does not support a high enough level, it throws an + UnsupportedOperationException.
        +
        Parameters:
        level - minimum desired transaction isolation level -- if null, a + suitable default is selected
        +
        Throws:
        +
        java.lang.UnsupportedOperationException - if repository does not support + isolation as high as the desired level
        See Also:
        enterTransaction()
        +
      • +
      + + + +
        +
      • +

        enterTopTransaction

        +
        Transaction enterTopTransaction(IsolationLevel level)
        +
        Causes the current thread to enter a top-level transaction scope + with an explict isolation level. The actual isolation level may be + higher than requested, if the repository does not support the exact + level. If the repository does not support a high enough level, it throws + an UnsupportedOperationException. + +

        This method requests a top-level transaction, which means it never + has a parent transaction, but it still can be a parent transaction + itself. This kind of transaction is useful when a commit must absolutely + succeed, even if the current thread is already in a transaction + scope. If there was a parent transaction, then a commit might still be + rolled back by the parent. + +

        Requesting a top-level transaction can be deadlock prone if the + current thread is already in a transaction scope. The top-level + transaction may not be able to obtain locks held by the parent + transaction. An alternative to requesting top-level transactions is to + execute transactions in separate threads.

        +
        Parameters:
        level - minimum desired transaction isolation level -- if null, a + suitable default is selected
        +
        Throws:
        +
        java.lang.UnsupportedOperationException - if repository does not support + isolation as high as the desired level
        See Also:
        enterTransaction()
        +
      • +
      + + + +
        +
      • +

        getTransactionIsolationLevel

        +
        IsolationLevel getTransactionIsolationLevel()
        +
        Returns the isolation level of the current transaction, or null if there + is no transaction in the current thread.
        +
      • +
      + + + +
        +
      • +

        getCapability

        +
        <C extends Capability> C getCapability(java.lang.Class<C> capabilityType)
        +
        Requests a specific capability of this Repository. This allows + repositories to support extended features without having to clutter the + main repository interface. The list of supported capabilities is + documented with repository implementations.
        +
        Parameters:
        capabilityType - type of capability requested
        +
        Returns:
        capability instance or null if not supported
        +
      • +
      + + + +
        +
      • +

        close

        +
        void close()
        +
        Closes this repository reference, aborting any current + transactions. Operations on objects returned by this repository will + fail when accessing the storage layer.
        +
        Throws:
        +
        java.lang.SecurityException - if caller does not have permission
        +
      • +
      +
    • +
    +
  • +
+
+
+ + +
+ + + + + +
+ + +

Copyright © 2006-2013 Amazon Technologies, Inc.. All Rights Reserved.

+ + -- cgit v1.2.3