blob: 7424bec8ed295b6ded2a0be952748fcfae49696e [file] [log] [blame]
/*
* Copyright (c) 2009-2012, 2016, 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
*
* Contributors:
* Eike Stepper - initial API and implementation
*/
package org.eclipse.emf.cdo.common.branch;
import org.eclipse.emf.cdo.common.commit.CDOCommitInfo;
import org.eclipse.emf.cdo.common.util.CDOTimeProvider;
import org.eclipse.emf.cdo.spi.common.branch.CDOBranchUtil;
/**
* A {@link #getTimeStamp() point in time} in a particular {@link #getBranch() branch}.
*
* @see CDOCommitInfo
* @see CDOBranchTag
* @see CDOBranch#getBase()
* @see CDOBranch#getHead()
* @see CDOBranch#getPoint(long)
* @see CDOBranchUtil#copyBranchPoint(CDOBranchPoint)
* @author Eike Stepper
* @since 3.0
* @noextend This interface is not intended to be extended by clients.
* @noimplement This interface is not intended to be implemented by clients.
*/
public interface CDOBranchPoint extends CDOBranchProvider, CDOTimeProvider
{
/**
* The fixed special time stamp <i>unspecified</i>.
*
* @see CDOBranch#getHead()
*/
public static final long UNSPECIFIED_DATE = 0;
/**
* The fixed special time stamp <i>invalid</i>.
*
* @since 4.0
*/
public static final long INVALID_DATE = -1;
/**
* Returns the branch of this branch point, or <code>null</code> if this branch point is the
* {@link CDOBranch#getBase() base} of the {@link CDOBranchManager#getMainBranch() main branch}.
*/
public CDOBranch getBranch();
/**
* Returns the time stamp of this branch point, or the fixed special time stamp <i>
* {@link CDOBranchPoint#UNSPECIFIED_DATE unspecified}</i> if this branch point marks the {@link CDOBranch#getHead()
* head} of a branch.
*/
public long getTimeStamp();
}