blob: 8e986c425bf692d9235d6cecdcce7973fda6eb3e [file] [log] [blame]
/*
* Copyright (c) 2022 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.lm;
import org.eclipse.emf.cdo.common.branch.CDOBranchPointRef;
import org.eclipse.emf.cdo.common.branch.CDOBranchRef;
import org.eclipse.emf.common.util.EList;
import java.util.function.Consumer;
/**
* <!-- begin-user-doc --> A representation of the model object
* '<em><b>Stream</b></em>'. <!-- end-user-doc -->
*
* <p>
* The following features are supported:
* </p>
* <ul>
* <li>{@link org.eclipse.emf.cdo.lm.Stream#getModule <em>Module</em>}</li>
* <li>{@link org.eclipse.emf.cdo.lm.Stream#getBase <em>Base</em>}</li>
* <li>{@link org.eclipse.emf.cdo.lm.Stream#getStartTimeStamp <em>Start Time Stamp</em>}</li>
* <li>{@link org.eclipse.emf.cdo.lm.Stream#getMajorVersion <em>Major Version</em>}</li>
* <li>{@link org.eclipse.emf.cdo.lm.Stream#getMinorVersion <em>Minor Version</em>}</li>
* <li>{@link org.eclipse.emf.cdo.lm.Stream#getCodeName <em>Code Name</em>}</li>
* <li>{@link org.eclipse.emf.cdo.lm.Stream#getAllowedChanges <em>Allowed Changes</em>}</li>
* <li>{@link org.eclipse.emf.cdo.lm.Stream#getMode <em>Mode</em>}</li>
* <li>{@link org.eclipse.emf.cdo.lm.Stream#getDevelopmentBranch <em>Development Branch</em>}</li>
* <li>{@link org.eclipse.emf.cdo.lm.Stream#getMaintenanceBranch <em>Maintenance Branch</em>}</li>
* <li>{@link org.eclipse.emf.cdo.lm.Stream#getContents <em>Contents</em>}</li>
* <li>{@link org.eclipse.emf.cdo.lm.Stream#getMaintenanceTimeStamp <em>Maintenance Time Stamp</em>}</li>
* </ul>
*
* @see org.eclipse.emf.cdo.lm.LMPackage#getStream()
* @model
* @generated
*/
public interface Stream extends FloatingBaseline
{
/**
* Returns the value of the '<em><b>Module</b></em>' container reference.
* It is bidirectional and its opposite is '{@link org.eclipse.emf.cdo.lm.Module#getStreams <em>Streams</em>}'.
* <!-- begin-user-doc --> <!-- end-user-doc -->
* @return the value of the '<em>Module</em>' container reference.
* @see #setModule(org.eclipse.emf.cdo.lm.Module)
* @see org.eclipse.emf.cdo.lm.LMPackage#getStream_Module()
* @see org.eclipse.emf.cdo.lm.Module#getStreams
* @model opposite="streams" required="true" transient="false"
* @generated
*/
@Override
org.eclipse.emf.cdo.lm.Module getModule();
/**
* Sets the value of the '{@link org.eclipse.emf.cdo.lm.Stream#getModule <em>Module</em>}' container reference.
* <!-- begin-user-doc --> <!--
* end-user-doc -->
* @param value the new value of the '<em>Module</em>' container reference.
* @see #getModule()
* @generated
*/
void setModule(org.eclipse.emf.cdo.lm.Module value);
/**
* Returns the value of the '<em><b>Base</b></em>' reference. <!--
* begin-user-doc --> <!-- end-user-doc -->
*
* @return the value of the '<em>Base</em>' reference.
* @see #setBase(Drop)
* @see org.eclipse.emf.cdo.lm.LMPackage#getStream_Base()
* @model
* @generated
*/
@Override
Drop getBase();
/**
* Sets the value of the '{@link org.eclipse.emf.cdo.lm.Stream#getBase <em>Base</em>}' reference.
* <!-- begin-user-doc --> <!-- end-user-doc -->
* @param value the new value of the '<em>Base</em>' reference.
* @see #getBase()
* @generated
*/
void setBase(Drop value);
/**
* Returns the value of the '<em><b>Start Time Stamp</b></em>' attribute. <!--
* begin-user-doc --> <!-- end-user-doc -->
*
* @return the value of the '<em>Start Time Stamp</em>' attribute.
* @see #setStartTimeStamp(long)
* @see org.eclipse.emf.cdo.lm.LMPackage#getStream_StartTimeStamp()
* @model required="true"
* @generated
*/
long getStartTimeStamp();
/**
* Sets the value of the '{@link org.eclipse.emf.cdo.lm.Stream#getStartTimeStamp <em>Start Time Stamp</em>}' attribute.
* <!-- begin-user-doc --> <!-- end-user-doc -->
* @param value the new value of the '<em>Start Time Stamp</em>' attribute.
* @see #getStartTimeStamp()
* @generated
*/
void setStartTimeStamp(long value);
/**
* Returns the value of the '<em><b>Major Version</b></em>' attribute. <!--
* begin-user-doc --> <!-- end-user-doc -->
*
* @return the value of the '<em>Major Version</em>' attribute.
* @see #setMajorVersion(int)
* @see org.eclipse.emf.cdo.lm.LMPackage#getStream_MajorVersion()
* @model required="true"
* @generated
*/
int getMajorVersion();
/**
* Sets the value of the '{@link org.eclipse.emf.cdo.lm.Stream#getMajorVersion <em>Major Version</em>}' attribute.
* <!-- begin-user-doc --> <!-- end-user-doc -->
* @param value the new value of the '<em>Major Version</em>' attribute.
* @see #getMajorVersion()
* @generated
*/
void setMajorVersion(int value);
/**
* Returns the value of the '<em><b>Minor Version</b></em>' attribute. <!--
* begin-user-doc --> <!-- end-user-doc -->
*
* @return the value of the '<em>Minor Version</em>' attribute.
* @see #setMinorVersion(int)
* @see org.eclipse.emf.cdo.lm.LMPackage#getStream_MinorVersion()
* @model required="true"
* @generated
*/
int getMinorVersion();
/**
* Sets the value of the '{@link org.eclipse.emf.cdo.lm.Stream#getMinorVersion <em>Minor Version</em>}' attribute.
* <!-- begin-user-doc --> <!-- end-user-doc -->
* @param value the new value of the '<em>Minor Version</em>' attribute.
* @see #getMinorVersion()
* @generated
*/
void setMinorVersion(int value);
/**
* Returns the value of the '<em><b>Code Name</b></em>' attribute. <!--
* begin-user-doc --> <!-- end-user-doc -->
*
* @return the value of the '<em>Code Name</em>' attribute.
* @see #setCodeName(String)
* @see org.eclipse.emf.cdo.lm.LMPackage#getStream_CodeName()
* @model
* @generated
*/
String getCodeName();
/**
* Sets the value of the '{@link org.eclipse.emf.cdo.lm.Stream#getCodeName <em>Code Name</em>}' attribute.
* <!-- begin-user-doc --> <!-- end-user-doc -->
* @param value the new value of the '<em>Code Name</em>' attribute.
* @see #getCodeName()
* @generated
*/
void setCodeName(String value);
/**
* Returns the value of the '<em><b>Allowed Changes</b></em>' attribute.
* The default value is <code>"Minor"</code>.
* The literals are from the enumeration {@link org.eclipse.emf.cdo.lm.Impact}.
* <!-- begin-user-doc --> <!--
* end-user-doc -->
* @return the value of the '<em>Allowed Changes</em>' attribute.
* @see org.eclipse.emf.cdo.lm.Impact
* @see #setAllowedChanges(Impact)
* @see org.eclipse.emf.cdo.lm.LMPackage#getStream_AllowedChanges()
* @model default="Minor"
* @generated
*/
Impact getAllowedChanges();
/**
* Sets the value of the '{@link org.eclipse.emf.cdo.lm.Stream#getAllowedChanges <em>Allowed Changes</em>}' attribute.
* <!-- begin-user-doc --> <!-- end-user-doc -->
* @param value the new value of the '<em>Allowed Changes</em>' attribute.
* @see org.eclipse.emf.cdo.lm.Impact
* @see #getAllowedChanges()
* @generated
*/
void setAllowedChanges(Impact value);
/**
* Returns the value of the '<em><b>Contents</b></em>' containment reference list.
* The list contents are of type {@link org.eclipse.emf.cdo.lm.Baseline}.
* It is bidirectional and its opposite is '{@link org.eclipse.emf.cdo.lm.Baseline#getStream <em>Stream</em>}'.
* <!-- begin-user-doc --> <!-- end-user-doc -->
* @return the value of the '<em>Contents</em>' containment reference list.
* @see org.eclipse.emf.cdo.lm.LMPackage#getStream_Contents()
* @see org.eclipse.emf.cdo.lm.Baseline#getStream
* @model opposite="stream" containment="true"
* @generated
*/
EList<Baseline> getContents();
/**
* Returns the value of the '<em><b>Maintenance Time Stamp</b></em>' attribute.
* <!-- begin-user-doc --> <!-- end-user-doc -->
* @return the value of the '<em>Maintenance Time Stamp</em>' attribute.
* @see #setMaintenanceTimeStamp(long)
* @see org.eclipse.emf.cdo.lm.LMPackage#getStream_MaintenanceTimeStamp()
* @model
* @generated
*/
long getMaintenanceTimeStamp();
/**
* Sets the value of the '{@link org.eclipse.emf.cdo.lm.Stream#getMaintenanceTimeStamp <em>Maintenance Time Stamp</em>}' attribute.
* <!-- begin-user-doc --> <!--
* end-user-doc -->
* @param value the new value of the '<em>Maintenance Time Stamp</em>' attribute.
* @see #getMaintenanceTimeStamp()
* @generated
*/
void setMaintenanceTimeStamp(long value);
/**
* <!-- begin-user-doc --> <!-- end-user-doc -->
* @model baselineRequired="true"
* @generated
*/
int insertContent(Baseline baseline);
/**
* <!-- begin-user-doc --> <!-- end-user-doc -->
* @model dataType="org.eclipse.emf.cdo.etypes.BranchPointRef"
* @generated
*/
CDOBranchPointRef getBranchPoint(long timeStamp);
/**
* Returns the value of the '<em><b>Mode</b></em>' attribute. The literals are
* from the enumeration {@link org.eclipse.emf.cdo.lm.StreamMode}. <!--
* begin-user-doc --> <!-- end-user-doc -->
*
* @return the value of the '<em>Mode</em>' attribute.
* @see org.eclipse.emf.cdo.lm.StreamMode
* @see #setMode(StreamMode)
* @see org.eclipse.emf.cdo.lm.LMPackage#getStream_Mode()
* @model required="true"
* @generated
*/
@SuppressWarnings("javadoc")
StreamMode getMode();
/**
* Returns the value of the '<em><b>Development Branch</b></em>' attribute. <!--
* begin-user-doc --> <!-- end-user-doc -->
*
* @return the value of the '<em>Development Branch</em>' attribute.
* @see #setDevelopmentBranch(CDOBranchRef)
* @see org.eclipse.emf.cdo.lm.LMPackage#getStream_DevelopmentBranch()
* @model dataType="org.eclipse.emf.cdo.etypes.BranchRef" required="true"
* @generated
*/
CDOBranchRef getDevelopmentBranch();
/**
* Sets the value of the '{@link org.eclipse.emf.cdo.lm.Stream#getDevelopmentBranch <em>Development Branch</em>}' attribute.
* <!-- begin-user-doc --> <!--
* end-user-doc -->
* @param value the new value of the '<em>Development Branch</em>' attribute.
* @see #getDevelopmentBranch()
* @generated
*/
void setDevelopmentBranch(CDOBranchRef value);
/**
* Returns the value of the '<em><b>Maintenance Branch</b></em>' attribute. <!--
* begin-user-doc --> <!-- end-user-doc -->
*
* @return the value of the '<em>Maintenance Branch</em>' attribute.
* @see #setMaintenanceBranch(CDOBranchRef)
* @see org.eclipse.emf.cdo.lm.LMPackage#getStream_MaintenanceBranch()
* @model dataType="org.eclipse.emf.cdo.etypes.BranchRef"
* @generated
*/
CDOBranchRef getMaintenanceBranch();
/**
* Sets the value of the '{@link org.eclipse.emf.cdo.lm.Stream#getMaintenanceBranch <em>Maintenance Branch</em>}' attribute.
* <!-- begin-user-doc --> <!--
* end-user-doc -->
* @param value the new value of the '<em>Maintenance Branch</em>' attribute.
* @see #getMaintenanceBranch()
* @generated
*/
void setMaintenanceBranch(CDOBranchRef value);
/**
* <!-- begin-user-doc --> <!-- end-user-doc -->
* @model kind="operation"
* @generated
*/
Drop getFirstRelease();
/**
* <!-- begin-user-doc --> <!-- end-user-doc -->
* @model kind="operation"
* @generated
*/
Drop getLastRelease();
/**
* <!-- begin-user-doc --> <!-- end-user-doc -->
* @model kind="operation"
* @generated
*/
EList<Drop> getReleases();
/**
* <!-- begin-user-doc --> <!-- end-user-doc -->
* @model kind="operation"
* @generated
*/
EList<Change> getBasedChanges();
public void forEachBaseline(Consumer<Baseline> consumer);
public Baseline getBaseline(String baselineName);
public Delivery getDelivery(Change change);
} // Stream