/*
* Copyright (c) 2011-2013 Eike Stepper (Berlin, 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.tests.util;
import org.eclipse.emf.cdo.common.branch.CDOBranch;
import org.eclipse.emf.cdo.common.branch.CDOBranchPoint;
import org.eclipse.emf.cdo.common.id.CDOID;
import org.eclipse.emf.cdo.common.id.CDOIDUtil;
import org.eclipse.emf.cdo.common.revision.CDORevision;
import org.eclipse.emf.cdo.internal.common.branch.CDOBranchImpl;
import org.eclipse.emf.cdo.spi.common.branch.CDOBranchUtil;
import org.eclipse.emf.cdo.spi.common.branch.InternalCDOBranch;
import org.eclipse.emf.cdo.spi.common.revision.InternalCDORevision;
import org.eclipse.emf.cdo.spi.common.revision.StubCDORevision;
import org.eclipse.emf.ecore.EClass;
/**
* @author Eike Stepper
*/
public final class TestRevision extends StubCDORevision
{
private CDOID id;
private CDOBranchPoint branchPoint;
private int version;
private long revised;
public TestRevision(EClass eClass, long id, int version, long created, long revised)
{
super(eClass);
this.id = CDOIDUtil.createLong(id);
branchPoint = new CDOBranchImpl(null, CDOBranch.MAIN_BRANCH_ID, CDOBranch.MAIN_BRANCH_NAME, null).getPoint(created);
this.version = version;
this.revised = revised;
}
public TestRevision(EClass eClass, long id, int version, long created)
{
this(eClass, id, version, created, CDORevision.UNSPECIFIED_DATE);
}
public TestRevision(EClass eClass, long id)
{
this(eClass, id, 0, CDORevision.UNSPECIFIED_DATE);
}
@Override
public CDOID getID()
{
return id;
}
@Override
public void setID(CDOID id)
{
this.id = id;
}
@Override
public InternalCDOBranch getBranch()
{
return (InternalCDOBranch)branchPoint.getBranch();
}
@Override
public long getTimeStamp()
{
return branchPoint.getTimeStamp();
}
@Override
public void setBranchPoint(CDOBranchPoint branchPoint)
{
this.branchPoint = CDOBranchUtil.copyBranchPoint(branchPoint);
}
@Override
public int getVersion()
{
return version;
}
@Override
public void setVersion(int version)
{
this.version = version;
}
@Override
public long getRevised()
{
return revised;
}
@Override
public void setRevised(long revised)
{
this.revised = revised;
}
@Override
public InternalCDORevision copy()
{
return new TestRevision(getEClass(), CDOIDUtil.getLong(id), version, branchPoint.getTimeStamp(), revised);
}
}