<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>interfaces::Statable</title>
<link href="../../../../css/ea.css" rel="stylesheet" type="text/css" />
<script>
function initPage(src) {	
	if(parent==this&&(this.location+"").indexOf('EARoot')!=-1)
		document.location=(this.location+"").substring(0,(this.location+"").indexOf('EARoot'))+"index"+(this.location+"").substring((this.location+"").lastIndexOf('.'))+"?goto="+((this.location+"").substring((this.location+"").indexOf('EARoot')+7,(this.location+"").lastIndexOf('.')).replace(/\//g,':').replace(/EA/g,""));
	else
		parent.initPage(src);
}

function nameClassifier(name, separator)
{
  var str = name;
  var classifierName;
  var node = document.getElementById('name_classifier');
  if(node != null)
  {
    classifierName = node.innerHTML;
  }
  if(classifierName != "")
  {
   str += separator + classifierName;
  }
  
  return str;
}
</script>
</head>
<body onload="initPage(this);" class="Content">
<div class="pageHeader"></div>
<div class="PageBody">
	<div id="name_classifier" style="display: none;"></div>
	<span class="ObjectTitle"><script type="text/javascript">document.write(nameClassifier("Statable", " : "))</script>  : Public abstract  Interface</span>
	<table border="0" cellpadding="0" cellspacing="0" class="ObjectDetails">
		<tr>
			<td width="15%" class="ObjectDetailsTopic">Created:</td>
			<td width="85%" class="ObjectDetailsValue">07.10.2015 10:23:14</td>
		</tr>
		<tr>
			<td class="ObjectDetailsTopic">Modified:</td>
			<td class="ObjectDetailsValue">03.11.2015 13:53:07</td>
		</tr>
		<tr style="height: 10px"><td colspan="2"></td></tr>
		<tr>
			<td class="ObjectDetailsTopic"><img src="../../../../images/plus03.gif" align="absmiddle" id="proj" onclick="parent.toggleData(this.id)" />Project:</td>
			<td class="ObjectDetailsValue"></td>
		</tr>
		<tr id="proj00" style="display: none;">
			<td class="ObjectDetailsTopic" style="padding-left: 18px;">Author:</td>
			<td class="ObjectDetailsValue">dirss</td>
		</tr>
		<tr id="proj01" style="display: none;">
			<td class="ObjectDetailsTopic" style="padding-left: 18px;">Version:</td>
			<td class="ObjectDetailsValue">1.0</td>
		</tr>
		<tr id="proj02" style="display: none;">
			<td class="ObjectDetailsTopic" style="padding-left: 18px;">Phase:</td>
			<td class="ObjectDetailsValue">1.0</td>
		</tr>
		<tr id="proj03" style="display: none;">
			<td class="ObjectDetailsTopic" style="padding-left: 18px;">Status:</td>
			<td class="ObjectDetailsValue">Proposed</td>
		</tr>
		<tr id="proj04" style="display: none;">
			<td class="ObjectDetailsTopic" style="padding-left: 18px;">Complexity:</td>
			<td class="ObjectDetailsValue">Easy</td>
		</tr>
		<tr id="proj05" style="display: none;">
			<td class="ObjectDetailsTopic" style="padding-left: 18px;">Difficulty:</td>
			<td class="ObjectDetailsValue"></td>
		</tr>
		<tr id="proj06" style="display: none;">
			<td class="ObjectDetailsTopic" style="padding-left: 18px;">Priority:</td>
			<td class="ObjectDetailsValue"></td>
		</tr>
		<tr id="proj05" style="display: none;">
			<td class="ObjectDetailsTopic" style="padding-left: 18px;">Multiplicity:</td>
			<td class="ObjectDetailsValue"></td>
		</tr>
		<tr>
			<td class="ObjectDetailsTopic"><img src="../../../../images/plus03.gif" align="absmiddle" id="adv" onclick="parent.toggleData(this.id)" />Advanced:</td>
			<td class="ObjectDetailsValue"></td>
		</tr>
		<tr id="adv00" style="display: none;">
			<td class="ObjectDetailsTopic" style="padding-left: 18px;">UUID:</td>
			<td class="ObjectDetailsValue">{29E62BD6-D646-40f0-87F3-94A08181A3AF}</td>
		</tr>
		<tr id="adv01" style="display: none;">
			<td class="ObjectDetailsTopic" style="padding-left: 18px;">Appears In:</td>
			<td class="ObjectDetailsValue"><a href="EA62.html">Base Model Interfaces</a>, <a href="../EA2/EA77.html">Test</a>, <a href="../EA2/EA79.html">TestStep</a>, <a href="../EA2/EA81.html">Measurement</a></td>
		</tr>
	</table>
	
	<div class="TableGroup" id="TableGroup">
		<ul class="ItemTitle">
			<li onClick="parent.toggleItem('Links');" id="LinksTitle">Other Links</li>
		</ul>
		<div class="ItemBody" id="LinksTable">
			<table align="center" border="0" cellspacing="0" cellpadding="0" class="Table">
				<tr>
					<td width="30%" class="TableHeading">Object</td>
					<td width="10%" class="TableHeading">Type</td>
					<td width="10%" class="TableHeading">Connection</td>
					<td width="10%" class="TableHeading">Direction</td>
					<td width="40%" class="TableHeading">Notes</td>
				</tr>
				<tr>
					<td width="30%" class="TableRow" valign="top"><a href="../EA2/EA111.html">Measurement</a></td>
					<td width="10%" class="TableRow" valign="top">Class</td>
					<td width="10%" class="TableRow" valign="top">Realization</td>
					<td width="10%" class="TableRow" valign="top">From</td>
					<td width="40%" class="TableRow" valign="top">&nbsp;</td>
				</tr>
				<tr>
					<td width="30%" class="TableRow" valign="top"><a href="../EA2/EA109.html">Test</a></td>
					<td width="10%" class="TableRow" valign="top">Class</td>
					<td width="10%" class="TableRow" valign="top">Realization</td>
					<td width="10%" class="TableRow" valign="top">From</td>
					<td width="40%" class="TableRow" valign="top">&nbsp;</td>
				</tr>
				<tr>
					<td width="30%" class="TableRow" valign="top"><a href="../EA2/EA110.html">TestStep</a></td>
					<td width="10%" class="TableRow" valign="top">Class</td>
					<td width="10%" class="TableRow" valign="top">Realization</td>
					<td width="10%" class="TableRow" valign="top">From</td>
					<td width="40%" class="TableRow" valign="top">&nbsp;</td>
				</tr>

			</table>
		</div>
	</div>
<div class="pageFooter"></div>
 
</body>
</html>