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

## Interface InternalCDOBranchManager

- All Superinterfaces:
    `CDOBranchManager`, `org.eclipse.net4j.util.lifecycle.IDeactivateable`, `org.eclipse.net4j.util.lifecycle.ILifecycle`, `org.eclipse.net4j.util.event.INotifier`

      public interface InternalCDOBranchManager
      extends CDOBranchManager, org.eclipse.net4j.util.lifecycle.ILifecycle

  If the meaning of this type isn't clear, there really should be more of a description here...
  Since:
    3.0
  Author:
    Eike Stepper
  No Implement
    This interface is not intended to be implemented by clients.
  No Extend
    This interface is not intended to be extended by clients.

- - ### Nested Class Summary

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

    - ### Nested classes/interfaces inherited from interface org.eclipse.emf.cdo.common.branch.CDOBranchManager

      `CDOBranchManager.CDOTagList`

    - ### Nested classes/interfaces inherited from interface org.eclipse.net4j.util.lifecycle.ILifecycle

      `org.eclipse.net4j.util.lifecycle.ILifecycle.DeferrableActivation`

    - ### Nested classes/interfaces inherited from interface org.eclipse.net4j.util.event.INotifier

      `org.eclipse.net4j.util.event.INotifier.INotifier2`

  - ### Method Summary

    All Methods Static Methods Instance Methods Abstract Methods Deprecated Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `CDOBranchPoint` | `changeTagWithModCount​(java.util.concurrent.atomic.AtomicInteger modCount, java.lang.String oldName, java.lang.String newName, CDOBranchPoint branchPoint)` |
    `InternalCDOBranch` | `createBranch​(int id, java.lang.String name, InternalCDOBranch baseBranch, long baseTimeStamp)` |
    `void` | `deleteTag​(CDOBranchTag tag)` |
    `InternalCDOBranch` | `getBranch​(int branchID)` | Returns the branch with the given unique integer ID.
    `InternalCDOBranch` | `getBranch​(int id, java.lang.String name, InternalCDOBranch baseBranch, long baseTimeStamp)` |
    `InternalCDOBranch` | `getBranch​(int id, InternalCDOBranchManager.BranchLoader.BranchInfo branchInfo)` |
    `InternalCDOBranch` | `getBranch​(java.lang.String path)` | Returns the branch with the given absolute path.
    `InternalCDOBranchManager.BranchLoader` | `getBranchLoader()` |
    `InternalCDOBranch` | `getMainBranch()` | Returns the main branch of the branch tree managed by this branch manager.
    `static InternalCDOBranchManager.TagChangeKind` | `getTagChangeKind​(java.lang.String oldName, java.lang.String newName, CDOBranchPoint branchPoint)` |
    `int` | `getTagModCount()` |
    `CDOTimeProvider` | `getTimeProvider()` |
    `void` | `handleBranchChanged​(InternalCDOBranch branch, CDOBranchChangedEvent.ChangeKind changeKind)` |
    `void` | `handleBranchCreated​(InternalCDOBranch branch)` | Deprecated. As of 4.3 use `handleBranchChanged(InternalCDOBranch, ChangeKind)`.
    `void` | `handleTagChanged​(int modCount, java.lang.String oldName, java.lang.String newName, CDOBranchPoint branchPoint)` |
    `void` | `initMainBranch​(boolean local, long timestamp)` |
    `void` | `moveTag​(CDOBranchTag tag, CDOBranchPoint branchPoint)` |
    `void` | `renameBranch​(CDOBranch branch, java.lang.String newName)` | Deprecated. as of 4.4 use `CDOBranch.setName(String)`.
    `void` | `renameTag​(java.lang.String oldName, java.lang.String newName)` |
    `void` | `setBranchLoader​(InternalCDOBranchManager.BranchLoader branchLoader)` |
    `void` | `setRepository​(CDOCommonRepository repository)` |
    `void` | `setTagModCount​(int tagModCount)` |
    `void` | `setTimeProvider​(CDOTimeProvider timeProvider)` | Deprecated. As of 4.2 replaced by `setRepository(CDOCommonRepository)`

    - ### Methods inherited from interface org.eclipse.emf.cdo.common.branch.CDOBranchManager

      `createTag, getBranches, getRepository, getTag, getTagList`

    - ### Methods inherited from interface org.eclipse.net4j.util.lifecycle.ILifecycle

      `activate, deactivate, getLifecycleState, isActive`

    - ### Methods inherited from interface org.eclipse.net4j.util.event.INotifier

      `addListener, getListeners, hasListeners, removeListener`

- - ### Method Detail

    - #### setRepository

          void setRepository​(CDOCommonRepository repository)

      Since:
        4.2

    - #### getBranchLoader

          InternalCDOBranchManager.BranchLoader getBranchLoader()

    - #### setBranchLoader

          void setBranchLoader​(InternalCDOBranchManager.BranchLoader branchLoader)

    - #### getTimeProvider

          CDOTimeProvider getTimeProvider()

    - #### setTimeProvider

          @Deprecated
          void setTimeProvider​(CDOTimeProvider timeProvider)

      Deprecated.
      As of 4.2 replaced by `setRepository(CDOCommonRepository)`

    - #### initMainBranch

          void initMainBranch​(boolean local,
                              long timestamp)

      Since:
        4.0

    - #### getMainBranch

          InternalCDOBranch getMainBranch()

      Description copied from interface: `CDOBranchManager`
      Returns the main branch of the branch tree managed by this branch manager.

      The main branch has the fixed `name` "MAIN" and the fixed `ID` 0 (zero).

      Specified by:
        `getMainBranch` in interface `CDOBranchManager`

    - #### getBranch

          InternalCDOBranch getBranch​(int branchID)

      Description copied from interface: `CDOBranchManager`
      Returns the branch with the given unique integer ID.

      Note that this method never returns `null`. Due to the lazy loading nature of branch managers this method returns a transparent branch proxy if the branch is not already loaded in the internal branch cache. This can result in unchecked exceptions being thrown from calls to arbitrary branch methods if the ID that the proxy was created with does not exist in the branch tree.

      Specified by:
        `getBranch` in interface `CDOBranchManager`

    - #### getBranch

          InternalCDOBranch getBranch​(int id,
                                      java.lang.String name,
                                      InternalCDOBranch baseBranch,
                                      long baseTimeStamp)

    - #### getBranch

          InternalCDOBranch getBranch​(int id,
                                      InternalCDOBranchManager.BranchLoader.BranchInfo branchInfo)

    - #### getBranch

          InternalCDOBranch getBranch​(java.lang.String path)

      Description copied from interface: `CDOBranchManager`
      Returns the branch with the given absolute path.
      Specified by:
        `getBranch` in interface `CDOBranchManager`
      Parameters:
        `path` - A concatenation of the names of all branches from the `main branch` to the requested branch, separated by `slashes` ("/" characters). Example: "MAIN/team1/smith".

    - #### createBranch

          InternalCDOBranch createBranch​(int id,
                                         java.lang.String name,
                                         InternalCDOBranch baseBranch,
                                         long baseTimeStamp)

    - #### renameBranch

          @Deprecated
          void renameBranch​(CDOBranch branch,
                            java.lang.String newName)

      Deprecated.
      as of 4.4 use `CDOBranch.setName(String)`.
      Since:
        4.3

    - #### handleBranchCreated

          @Deprecated
          void handleBranchCreated​(InternalCDOBranch branch)

      Deprecated.
      As of 4.3 use `handleBranchChanged(InternalCDOBranch, ChangeKind)`.

    - #### handleBranchChanged

          void handleBranchChanged​(InternalCDOBranch branch,
                                   CDOBranchChangedEvent.ChangeKind changeKind)

      Since:
        4.3

    - #### getTagModCount

          int getTagModCount()

      Since:
        4.11

    - #### setTagModCount

          void setTagModCount​(int tagModCount)

      Since:
        4.11

    - #### renameTag

          void renameTag​(java.lang.String oldName,
                         java.lang.String newName)

      Since:
        4.11

    - #### moveTag

          void moveTag​(CDOBranchTag tag,
                       CDOBranchPoint branchPoint)

      Since:
        4.11

    - #### deleteTag

          void deleteTag​(CDOBranchTag tag)

      Since:
        4.11

    - #### changeTagWithModCount

          CDOBranchPoint changeTagWithModCount​(java.util.concurrent.atomic.AtomicInteger modCount,
                                               java.lang.String oldName,
                                               java.lang.String newName,
                                               CDOBranchPoint branchPoint)

      Since:
        4.11

    - #### handleTagChanged

          void handleTagChanged​(int modCount,
                                java.lang.String oldName,
                                java.lang.String newName,
                                CDOBranchPoint branchPoint)

      Since:
        4.11

    - #### getTagChangeKind

          static InternalCDOBranchManager.TagChangeKind getTagChangeKind​(java.lang.String oldName,
                                                                         java.lang.String newName,
                                                                         CDOBranchPoint branchPoint)

      Since:
        4.11