Package org.eclipse.emf.cdo.spi.common.branch

## Interface InternalCDOBranchManager.BranchLoader

- All Known Subinterfaces:
    `CDOSessionProtocol`, `IDBStoreAccessor`, `ILissomeStoreAccessor`, `IMongoDBStoreAccessor`, `InternalCDOBranchManager.BranchLoader2`, `InternalCDOBranchManager.BranchLoader3`, `InternalCDOBranchManager.BranchLoader4`, `InternalCDOBranchManager.BranchLoader5`, `InternalFailoverParticipant`, `InternalRepository`, `InternalSynchronizableRepository`, `IStoreAccessor`, `IStoreAccessor.Raw`, `IStoreAccessor.Raw2`, `IStoreAccessor.UnitSupport`
  All Known Implementing Classes:
    `LongIDStoreAccessor`, `StoreAccessor`, `StoreAccessorBase`
  Enclosing interface:
    InternalCDOBranchManager

      public static interface InternalCDOBranchManager.BranchLoader

  If the meaning of this type isn't clear, there really should be more of a description here...
  Since:
    3.0
  Author:
    Eike Stepper

- - ### Nested Class Summary

    Nested Classes
    Modifier and Type | Interface | Description
    --- | --- | ---
    `static class` | `InternalCDOBranchManager.BranchLoader.BranchInfo` | If the meaning of this type isn't clear, there really should be more of a description here...
    `static class` | `InternalCDOBranchManager.BranchLoader.SubBranchInfo` | If the meaning of this type isn't clear, there really should be more of a description here...

  - ### Field Summary

    Fields
    Modifier and Type | Field | Description
    --- | --- | ---
    `static int` | `NEW_BRANCH` | Passed as the branchID in `createBranch(int, BranchInfo)` causes a new non-local branch to be created.
    `static int` | `NEW_LOCAL_BRANCH` | Passed as the branchID in `createBranch(int, BranchInfo)` causes a new local branch to be created.

  - ### Method Summary

    All Methods Instance Methods Abstract Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `org.eclipse.net4j.util.collection.Pair<java.lang.Integer,​java.lang.Long>` | `createBranch​(int branchID, InternalCDOBranchManager.BranchLoader.BranchInfo branchInfo)` | Creates a new branch with the given id and branch info.
    `InternalCDOBranchManager.BranchLoader.BranchInfo` | `loadBranch​(int branchID)` |
    `int` | `loadBranches​(int startID, int endID, CDOBranchHandler branchHandler)` |
    `InternalCDOBranchManager.BranchLoader.SubBranchInfo[]` | `loadSubBranches​(int branchID)` |

- - ### Field Detail

    - #### NEW_BRANCH

          static final int NEW_BRANCH

      Passed as the branchID in `createBranch(int, BranchInfo)` causes a new non-local branch to be created.
      See Also:
        Constant Field Values

    - #### NEW_LOCAL_BRANCH

          static final int NEW_LOCAL_BRANCH

      Passed as the branchID in `createBranch(int, BranchInfo)` causes a new local branch to be created.
      See Also:
        Constant Field Values

  - ### Method Detail

    - #### createBranch

          org.eclipse.net4j.util.collection.Pair<java.lang.Integer,​java.lang.Long> createBranch​(int branchID,
                                                                                                      InternalCDOBranchManager.BranchLoader.BranchInfo branchInfo)

      Creates a new branch with the given id and branch info. If the id is equal to `NEW_BRANCH` the implementor of this method will determine a new positive unique branch id. If the id is equal to `NEW_LOCAL_BRANCH` the implementor of this method will determine a new negative unique branch id, so that the new branch becomes a local branch. In either case the used branch id is returned to the caller.
      Since:
        4.0

    - #### loadBranch

          InternalCDOBranchManager.BranchLoader.BranchInfo loadBranch​(int branchID)

    - #### loadSubBranches

          InternalCDOBranchManager.BranchLoader.SubBranchInfo[] loadSubBranches​(int branchID)

    - #### loadBranches

          int loadBranches​(int startID,
                           int endID,
                           CDOBranchHandler branchHandler)

      Parameters:
        `startID` - the `id` of the first branch to load.
        `endID` - the `id` of the last branch to load, or 0 (zero) to load all branches after and including the first branch.