blob: 0cb70251bfcba62e11bf76c0f7a3039de45e64a8 [file] [log] [blame]
/*******************************************************************************
* Copyright (c) 2012-2013 EclipseSource Muenchen GmbH 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:
* Edgar Mueller
******************************************************************************/
package org.eclipse.emf.emfstore.internal.server.model.impl.api.versionspec;
import org.eclipse.emf.emfstore.internal.server.model.versioning.BranchVersionSpec;
import org.eclipse.emf.emfstore.internal.server.model.versioning.HeadVersionSpec;
import org.eclipse.emf.emfstore.internal.server.model.versioning.PrimaryVersionSpec;
import org.eclipse.emf.emfstore.internal.server.model.versioning.VersionSpec;
import org.eclipse.emf.emfstore.internal.server.model.versioning.Versions;
import org.eclipse.emf.emfstore.server.model.versionspec.ESAncestorVersionSpec;
import org.eclipse.emf.emfstore.server.model.versionspec.ESBranchVersionSpec;
import org.eclipse.emf.emfstore.server.model.versionspec.ESHeadVersionSpec;
import org.eclipse.emf.emfstore.server.model.versionspec.ESPagedUpdateVersionSpec;
import org.eclipse.emf.emfstore.server.model.versionspec.ESPrimaryVersionSpec;
import org.eclipse.emf.emfstore.server.model.versionspec.ESTagVersionSpec;
import org.eclipse.emf.emfstore.server.model.versionspec.ESVersionFactory;
import org.eclipse.emf.emfstore.server.model.versionspec.ESVersionSpec;
/**
* Implementation for the {@link ESVersionFactory} that takes care of the mapping and delegates
* the actual work to {@link Versions}.
*
* @author emueller
*
*/
public class ESVersionsFactoryImpl implements ESVersionFactory {
/**
* The factory instance.
*/
public static final ESVersionsFactoryImpl INSTANCE = new ESVersionsFactoryImpl();
/**
*
* {@inheritDoc}
*
* @see org.eclipse.emf.emfstore.server.model.versionspec.ESVersionFactory#createPRIMARY(java.lang.String, int)
*/
public ESPrimaryVersionSpec createPRIMARY(String branch, int index) {
return Versions.createPRIMARY(branch, index).toAPI();
}
/**
*
* {@inheritDoc}
*
* @see org.eclipse.emf.emfstore.server.model.versionspec.ESVersionFactory#createPRIMARY(org.eclipse.emf.emfstore.server.model.versionspec.ESVersionSpec,
* int)
*/
public ESPrimaryVersionSpec createPRIMARY(ESVersionSpec versionSpec, int index) {
if (versionSpec instanceof ESVersionSpecImpl<?, ?>) {
final ESVersionSpecImpl<?, ? extends VersionSpec> versionSpecImpl = (ESVersionSpecImpl<?, ?>) versionSpec;
final PrimaryVersionSpec primaryVersionSpec = Versions
.createPRIMARY(versionSpecImpl.toInternalAPI(), index);
return primaryVersionSpec.toAPI();
}
throw new IllegalArgumentException();
}
/**
*
* {@inheritDoc}
*
* @see org.eclipse.emf.emfstore.server.model.versionspec.ESVersionFactory#createPRIMARY(int)
*/
public ESPrimaryVersionSpec createPRIMARY(int i) {
return Versions.createPRIMARY(i).toAPI();
}
/**
*
* {@inheritDoc}
*
* @see org.eclipse.emf.emfstore.server.model.versionspec.ESVersionFactory#createANCESTOR(org.eclipse.emf.emfstore.server.model.versionspec.ESPrimaryVersionSpec,
* org.eclipse.emf.emfstore.server.model.versionspec.ESPrimaryVersionSpec)
*/
public ESAncestorVersionSpec createANCESTOR(ESPrimaryVersionSpec source, ESPrimaryVersionSpec target) {
return Versions.createANCESTOR(((ESPrimaryVersionSpecImpl) source).toInternalAPI(),
((ESPrimaryVersionSpecImpl) target).toInternalAPI()).toAPI();
}
/**
*
* {@inheritDoc}
*
* @see org.eclipse.emf.emfstore.server.model.versionspec.ESVersionFactory#createHEAD()
*/
public ESHeadVersionSpec createHEAD() {
return Versions.createHEAD().toAPI();
}
/**
*
* {@inheritDoc}
*
* @see org.eclipse.emf.emfstore.server.model.versionspec.ESVersionFactory#createHEAD(java.lang.String)
*/
public ESHeadVersionSpec createHEAD(String branch) {
return Versions.createHEAD(branch).toAPI();
}
/**
*
* {@inheritDoc}
*
* @see org.eclipse.emf.emfstore.server.model.versionspec.ESVersionFactory#createHEAD(org.eclipse.emf.emfstore.server.model.versionspec.ESVersionSpec)
*/
public ESHeadVersionSpec createHEAD(ESVersionSpec versionSpec) {
if (versionSpec instanceof ESVersionSpecImpl<?, ?>) {
final ESVersionSpecImpl<?, ? extends VersionSpec> versionSpecImpl = (ESVersionSpecImpl<?, ?>) versionSpec;
final HeadVersionSpec headVersionSpec = Versions.createHEAD(versionSpecImpl.toInternalAPI());
return headVersionSpec.toAPI();
}
throw new IllegalArgumentException();
}
/**
*
* {@inheritDoc}
*
* @see org.eclipse.emf.emfstore.server.model.versionspec.ESVersionFactory#createBRANCH(java.lang.String)
*/
public ESBranchVersionSpec createBRANCH(String value) {
return Versions.createBRANCH(value).toAPI();
}
/**
*
* {@inheritDoc}
*
* @see org.eclipse.emf.emfstore.server.model.versionspec.ESVersionFactory#createBRANCH(org.eclipse.emf.emfstore.server.model.versionspec.ESVersionSpec)
*/
public ESBranchVersionSpec createBRANCH(ESVersionSpec versionSpec) {
if (versionSpec instanceof ESVersionSpecImpl<?, ?>) {
final ESVersionSpecImpl<?, ? extends VersionSpec> versionSpecImpl = (ESVersionSpecImpl<?, ?>) versionSpec;
final BranchVersionSpec branchVersionSpec = Versions.createBRANCH(versionSpecImpl.toInternalAPI());
return branchVersionSpec.toAPI();
}
throw new IllegalArgumentException();
}
/**
*
* {@inheritDoc}
*
* @see org.eclipse.emf.emfstore.server.model.versionspec.ESVersionFactory#isSameBranch(org.eclipse.emf.emfstore.server.model.versionspec.ESVersionSpec,
* org.eclipse.emf.emfstore.server.model.versionspec.ESVersionSpec)
*/
public boolean isSameBranch(ESVersionSpec versionSpec, ESVersionSpec otherVersionSpec) {
if (versionSpec instanceof ESVersionSpecImpl<?, ?> && otherVersionSpec instanceof ESVersionSpecImpl<?, ?>) {
final ESVersionSpecImpl<?, ? extends VersionSpec> versionSpecImpl = (ESVersionSpecImpl<?, ?>) versionSpec;
final ESVersionSpecImpl<?, ? extends VersionSpec> otherVersionSpecImpl = (ESVersionSpecImpl<?, ?>) otherVersionSpec;
return Versions.isSameBranch(versionSpecImpl.toInternalAPI(), otherVersionSpecImpl.toInternalAPI());
}
throw new IllegalArgumentException();
}
/**
*
* {@inheritDoc}
*
* @see org.eclipse.emf.emfstore.server.model.versionspec.ESVersionFactory#createTAG(java.lang.String,
* java.lang.String)
*/
public ESTagVersionSpec createTAG(String tag, String branch) {
return Versions.createTAG(tag, branch).toAPI();
}
/**
*
* {@inheritDoc}
*
* @see org.eclipse.emf.emfstore.server.model.versionspec.ESVersionFactory#createPAGEDUPDATE(org.eclipse.emf.emfstore.server.model.versionspec.ESPrimaryVersionSpec,
* int)
*/
public ESPagedUpdateVersionSpec createPAGEDUPDATE(ESPrimaryVersionSpec baseVersion, int maxChanges) {
final PrimaryVersionSpec primaryVersionSpec = ((ESPrimaryVersionSpecImpl) baseVersion).toInternalAPI();
return Versions.createPAGEDUPDATE(primaryVersionSpec, maxChanges).toAPI();
}
}