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

## Interface InternalCDOBranchManager.BranchLoader

- All Known Subinterfaces:
    CDOSessionProtocol, IDBStoreAccessor, ILissomeStoreAccessor, IMongoDBStoreAccessor, InternalCDOBranchManager.BranchLoader2, InternalCDOBranchManager.BranchLoader3, 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 and 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 and 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 and Description
    --- | ---
    `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

          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.

Copyright (c) 2004-2019 Eike Stepper (Loehne, Germany) and others.
All rights reserved. This program and the accompanying materials are made available under the terms of the Eclipse Public License v1.0 which accompanies this distribution, and is available at http://www.eclipse.org/legal/epl-v10.html