/* * Copyright (c) 2010-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 * Simon McDuff - maintenance */ package org.eclipse.emf.cdo.common.protocol; import org.eclipse.emf.cdo.common.branch.CDOBranch; import org.eclipse.emf.cdo.common.branch.CDOBranchPoint; import org.eclipse.emf.cdo.common.branch.CDOBranchVersion; import org.eclipse.emf.cdo.common.commit.CDOChangeSetData; import org.eclipse.emf.cdo.common.commit.CDOCommitData; import org.eclipse.emf.cdo.common.commit.CDOCommitInfo; import org.eclipse.emf.cdo.common.id.CDOID; import org.eclipse.emf.cdo.common.id.CDOIDReference; import org.eclipse.emf.cdo.common.lock.CDOLockChangeInfo; import org.eclipse.emf.cdo.common.lock.CDOLockOwner; import org.eclipse.emf.cdo.common.lock.CDOLockState; import org.eclipse.emf.cdo.common.lock.IDurableLockingManager.LockArea; import org.eclipse.emf.cdo.common.model.CDOClassifierRef; import org.eclipse.emf.cdo.common.model.CDOPackageInfo; import org.eclipse.emf.cdo.common.model.CDOPackageRegistry; import org.eclipse.emf.cdo.common.model.CDOPackageUnit; import org.eclipse.emf.cdo.common.model.CDOType; import org.eclipse.emf.cdo.common.revision.CDOIDAndBranch; import org.eclipse.emf.cdo.common.revision.CDOIDAndVersion; import org.eclipse.emf.cdo.common.revision.CDOList; import org.eclipse.emf.cdo.common.revision.CDORevisable; import org.eclipse.emf.cdo.common.revision.CDORevision; import org.eclipse.emf.cdo.common.revision.CDORevisionKey; import org.eclipse.emf.cdo.common.revision.delta.CDOFeatureDelta; import org.eclipse.emf.cdo.common.revision.delta.CDORevisionDelta; import org.eclipse.net4j.util.concurrent.IRWLockManager.LockType; import org.eclipse.net4j.util.io.ExtendedDataInput; import org.eclipse.emf.ecore.EClass; import org.eclipse.emf.ecore.EClassifier; import org.eclipse.emf.ecore.EStructuralFeature; import org.eclipse.emf.ecore.resource.ResourceSet; import java.io.IOException; /** * Provides I/O methods for reading various CDO data types and concepts from streams. * * @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 CDODataInput extends ExtendedDataInput { // ///////////////////////////////////////////////////////////////////////////////////////////////// public CDOPackageUnit readCDOPackageUnit(ResourceSet resourceSet) throws IOException; public CDOPackageUnit[] readCDOPackageUnits(ResourceSet resourceSet) throws IOException; public CDOPackageUnit.Type readCDOPackageUnitType() throws IOException; public CDOPackageInfo readCDOPackageInfo() throws IOException; public CDOClassifierRef readCDOClassifierRef() throws IOException; public EClassifier readCDOClassifierRefAndResolve() throws IOException; public String readCDOPackageURI() throws IOException; public CDOType readCDOType() throws IOException; // ///////////////////////////////////////////////////////////////////////////////////////////////// public CDOBranch readCDOBranch() throws IOException; public CDOBranchPoint readCDOBranchPoint() throws IOException; public CDOBranchVersion readCDOBranchVersion() throws IOException; public CDOChangeSetData readCDOChangeSetData() throws IOException; public CDOCommitData readCDOCommitData() throws IOException; public CDOCommitInfo readCDOCommitInfo() throws IOException; // ///////////////////////////////////////////////////////////////////////////////////////////////// public CDOID readCDOID() throws IOException; /** * @since 4.0 */ public CDOIDReference readCDOIDReference() throws IOException; /** * @since 4.0 */ public CDOIDAndVersion readCDOIDAndVersion() throws IOException; /** * @since 4.0 */ public CDOIDAndBranch readCDOIDAndBranch() throws IOException; // ///////////////////////////////////////////////////////////////////////////////////////////////// public CDORevisionKey readCDORevisionKey() throws IOException; public CDORevision readCDORevision() throws IOException; /** * @since 4.1 */ public CDORevision readCDORevision(boolean freeze) throws IOException; /** * @since 4.0 */ public CDORevisable readCDORevisable() throws IOException; public CDOList readCDOList(EClass owner, EStructuralFeature feature) throws IOException; public Object readCDOFeatureValue(EStructuralFeature feature) throws IOException; public CDORevisionDelta readCDORevisionDelta() throws IOException; public CDOFeatureDelta readCDOFeatureDelta(EClass owner) throws IOException; /** * Read either a CDORevision or a primitive value. */ public Object readCDORevisionOrPrimitive() throws IOException; /** * Read either a CDORevision, a primitive value or a EClass. */ public Object readCDORevisionOrPrimitiveOrClassifier() throws IOException; // ///////////////////////////////////////////////////////////////////////////////////////////////// public LockType readCDOLockType() throws IOException; /** * @since 4.1 */ public CDOLockChangeInfo readCDOLockChangeInfo() throws IOException; /** * @since 4.1 */ public CDOLockOwner readCDOLockOwner() throws IOException; /** * @since 4.1 */ public CDOLockState readCDOLockState() throws IOException; /** * @since 4.1 */ public LockArea readCDOLockArea() throws IOException; /** * @since 4.2 */ public CDOPackageRegistry getPackageRegistry(); }