/************************************************************************** * ERA - Eclipse Requirements Analysis * ============================================== * Copyright (C) 2009-2013 by Georg Blaschke, Christoph P. Neumann * and Bernd Haberstumpf (http://era.origo.ethz.ch) ************************************************************************** * Licensed under the Eclipse Public License - v 1.0 (the "License"); * you may not use this file except in compliance with * the License. You may obtain a copy of the License at * http://www.eclipse.org/org/documents/epl-v10.html * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. ************************************************************************** */ package era.foss.erf; import org.eclipse.emf.common.util.EList; /** * Represents a node in a hierarchically structured requirements specification. * * @model */ public interface SpecHierarchy extends AccessControlledElement { /** * * Some requirements authoring tools enable the user to use tables as part of a requirement’s content, where parts * of the table represent requirements as well. If that is the case, this attribute needs to be set to true for the * root node of the table hierarchy and all descendant SpecHierarchy nodes. * * * @model unique="true" default="false" required="false" */ boolean isTableInternal(); /** * Sets the value of the '{@link era.foss.erf.SpecHierarchy#isTableInternal <em>Table Internal</em>}' attribute. * <!-- begin-user-doc --> <!-- end-user-doc --> * @param value the new value of the '<em>Table Internal</em>' attribute. * @see #isTableInternal() * @generated */ void setTableInternal( boolean value ); /** * Next level of owned SpecHierarchy * * @model containment="true" ordered="true" opposite="parent" */ public EList<SpecHierarchy> getChildren(); /** * Pointer to the associated SpecObject * * @model kind="reference" required="true" opposite="specHierarchy" */ public SpecObject getObject(); /** * Sets the value of the '{@link era.foss.erf.SpecHierarchy#getObject <em>Object</em>}' reference. <!-- * begin-user-doc --> <!-- end-user-doc --> * * @param value the new value of the '<em>Object</em>' reference. * @see #getObject() * @generated */ void setObject( SpecObject value ); /** * Up link to previous level of SpecHierarchy (which owns this level) * * @model required="false" opposite="children" */ public SpecHierarchy getParent(); /** * Sets the value of the '{@link era.foss.erf.SpecHierarchy#getParent <em>Parent</em>}' container reference. <!-- * begin-user-doc --> <!-- end-user-doc --> * * @param value the new value of the '<em>Parent</em>' container reference. * @see #getParent() * @generated */ void setParent( SpecHierarchy value ); /** * Up link to specification hierarchy root (which may own this level) * * @model required="false" opposite="children" */ public Specification getRoot(); /** * Sets the value of the '{@link era.foss.erf.SpecHierarchy#getRoot <em>Root</em>}' container reference. <!-- * begin-user-doc --> <!-- end-user-doc --> * * @param value the new value of the '<em>Root</em>' container reference. * @see #getRoot() * @generated */ void setRoot( Specification value ); }