<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <!-- NewPage --> <html lang="en"> <head> <!-- Generated by javadoc (1.8.0_05) on Thu May 22 06:02:30 BST 2014 --> <title>Parameter</title> <meta name="date" content="2014-05-22"> <link rel="stylesheet" type="text/css" href="../../../stylesheet.css" title="Style"> <script type="text/javascript" src="../../../script.js"></script> </head> <body> <script type="text/javascript"><!-- try { if (location.href.indexOf('is-external=true') == -1) { parent.document.title="Parameter"; } } catch(err) { } //--> var methods = {"i0":10}; var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]}; var altColor = "altColor"; var rowColor = "rowColor"; var tableTab = "tableTab"; var activeTableTab = "activeTableTab"; var methods = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10,"i5":10,"i6":6,"i7":10}; var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"],8:["t4","Concrete Methods"]}; var altColor = "altColor"; var rowColor = "rowColor"; var tableTab = "tableTab"; var activeTableTab = "activeTableTab"; </script> <noscript> <div>JavaScript is disabled on your browser.</div> </noscript> <!-- ========= START OF TOP NAVBAR ======= --> <div class="topNav"><a name="navbar.top"> <!-- --> </a> <div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div> <a name="navbar.top.firstrow"> <!-- --> </a> <ul class="navList" title="Navigation"> <li><a href="../../../overview-summary.html">Overview</a></li> <li><a href="package-summary.html">Package</a></li> <li class="navBarCell1Rev">Class</li> <li><a href="class-use/Parameter.html">Use</a></li> <li><a href="package-tree.html">Tree</a></li> <li><a href="../../../deprecated-list.html">Deprecated</a></li> <li><a href="../../../index-files/index-1.html">Index</a></li> <li><a href="../../../help-doc.html">Help</a></li> </ul> </div> <div class="subNav"> <ul class="navList"> <li><a href="../../../jcgp/backend/parameters/IntegerParameter.html" title="class in jcgp.backend.parameters"><span class="typeNameLink">Prev Class</span></a></li> <li><a href="../../../jcgp/backend/parameters/ParameterStatus.html" title="enum in jcgp.backend.parameters"><span class="typeNameLink">Next Class</span></a></li> </ul> <ul class="navList"> <li><a href="../../../index.html?jcgp/backend/parameters/Parameter.html" target="_top">Frames</a></li> <li><a href="Parameter.html" target="_top">No Frames</a></li> </ul> <ul class="navList" id="allclasses_navbar_top"> <li><a href="../../../allclasses-noframe.html">All Classes</a></li> </ul> <div> <script type="text/javascript"><!-- allClassesLink = document.getElementById("allclasses_navbar_top"); if(window==top) { allClassesLink.style.display = "block"; } else { allClassesLink.style.display = "none"; } //--> </script> </div> <div> <ul class="subNavList"> <li>Summary: </li> <li>Nested | </li> <li>Field | </li> <li>Constr | </li> <li><a href="#method.summary">Method</a></li> </ul> <ul class="subNavList"> <li>Detail: </li> <li>Field | </li> <li>Constr | </li> <li><a href="#method.detail">Method</a></li> </ul> </div> <a name="skip.navbar.top"> <!-- --> </a></div> <!-- ========= END OF TOP NAVBAR ========= --> <!-- ======== START OF CLASS DATA ======== --> <div class="header"> <div class="subTitle">jcgp.backend.parameters</div> <h2 title="Class Parameter" class="title">Class Parameter<T></h2> </div> <div class="contentContainer"> <ul class="inheritance"> <li>java.lang.Object</li> <li> <ul class="inheritance"> <li>jcgp.backend.parameters.Parameter<T></li> </ul> </li> </ul> <div class="description"> <ul class="blockList"> <li class="blockList"> <dl> <dt><span class="paramLabel">Type Parameters:</span></dt> <dd><code>T</code> - the data type stored in the parameter.</dd> </dl> <dl> <dt>Direct Known Subclasses:</dt> <dd><a href="../../../jcgp/backend/parameters/BooleanParameter.html" title="class in jcgp.backend.parameters">BooleanParameter</a>, <a href="../../../jcgp/backend/parameters/DoubleParameter.html" title="class in jcgp.backend.parameters">DoubleParameter</a>, <a href="../../../jcgp/backend/parameters/IntegerParameter.html" title="class in jcgp.backend.parameters">IntegerParameter</a></dd> </dl> <hr> <br> <pre>public abstract class <span class="typeNameLabel">Parameter<T></span> extends java.lang.Object</pre> <div class="block">Specifies an abstract model of a module parameter. <br><br> Parameters are values which control the operation of modules. They can be freely modified and accessed by the module in which they are declared. Additionally, the module may choose to expose some of its parameters to a user interface, so that information is displayed. If that is the case, the parameter can be made read-only by setting the monitor flag (it becomes a parameter monitor). In addition, settings the critical flag indicates to the experiment that any changes to the parameter should result in an experiment-wide reset. <br><br> <code>Parameter</code> is abstract. A typical implementation defines the data type T and initialises the <code>valueProperty</code> field with a suitable type. For the sake of clarity, it may not be ideal for a subclass constructor to expose an argument for the monitor field. Instead, a different class should be created which constructs the parameter as a monitor, so that the distinction between a regular parameter and a parameter monitor is more apparent. The boolean, integer and double implementations of parameter (and their associated monitors) implement this pattern, refer to them for more details. <br><br> The <code>status</code> field holds the current status of the parameter, which should change whenever the parameter value changes. In order for this to happen, <code>validate()</code> is called whenever the parameter status should be updated. This being the case, it should be overridden on an instance-to-instance basis, as each parameter will likely have different validity criteria. The type of status is <a href="../../../jcgp/backend/parameters/ParameterStatus.html" title="enum in jcgp.backend.parameters"><code>ParameterStatus</code></a>, an enum type defining all valid states.</div> <dl> <dt><span class="simpleTagLabel">Author:</span></dt> <dd>Eduardo Pedroni</dd> <dt><span class="seeLabel">See Also:</span></dt> <dd><a href="../../../jcgp/backend/modules/Module.html" title="class in jcgp.backend.modules"><code>Module</code></a></dd> </dl> </li> </ul> </div> <div class="summary"> <ul class="blockList"> <li class="blockList"> <!-- =========== PROPERTY SUMMARY =========== --> <ul class="blockList"> <li class="blockList"><a name="property.summary"> <!-- --> </a> <h3>Property Summary</h3> <table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Property Summary table, listing properties, and an explanation"> <caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd"> </span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd"> </span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd"> </span></span></caption> <tr> <th class="colFirst" scope="col">Type</th> <th class="colLast" scope="col">Property and Description</th> </tr> <tr id="i0" class="altColor"> <td class="colFirst"><code>javafx.beans.property.ReadOnlyProperty<<a href="../../../jcgp/backend/parameters/Parameter.html" title="type parameter in Parameter">T</a>></code></td> <td class="colLast"><code><span class="memberNameLink"><a href="../../../jcgp/backend/parameters/Parameter.html#valueProperty">value</a></span></code> <div class="block">This method is intended for bindings only.</div> </td> </tr> </table> </li> </ul> <!-- ========== METHOD SUMMARY =========== --> <ul class="blockList"> <li class="blockList"><a name="method.summary"> <!-- --> </a> <h3>Method Summary</h3> <table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation"> <caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd"> </span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd"> </span></span><span id="t3" class="tableTab"><span><a href="javascript:show(4);">Abstract Methods</a></span><span class="tabEnd"> </span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd"> </span></span></caption> <tr> <th class="colFirst" scope="col">Modifier and Type</th> <th class="colLast" scope="col">Method and Description</th> </tr> <tr id="i0" class="altColor"> <td class="colFirst"><code><a href="../../../jcgp/backend/parameters/Parameter.html" title="type parameter in Parameter">T</a></code></td> <td class="colLast"><code><span class="memberNameLink"><a href="../../../jcgp/backend/parameters/Parameter.html#get--">get</a></span>()</code> </td> </tr> <tr id="i1" class="rowColor"> <td class="colFirst"><code><a href="../../../jcgp/backend/parameters/ParameterStatus.html" title="enum in jcgp.backend.parameters">ParameterStatus</a></code></td> <td class="colLast"><code><span class="memberNameLink"><a href="../../../jcgp/backend/parameters/Parameter.html#getStatus--">getStatus</a></span>()</code> </td> </tr> <tr id="i2" class="altColor"> <td class="colFirst"><code>boolean</code></td> <td class="colLast"><code><span class="memberNameLink"><a href="../../../jcgp/backend/parameters/Parameter.html#isCritical--">isCritical</a></span>()</code> </td> </tr> <tr id="i3" class="rowColor"> <td class="colFirst"><code>boolean</code></td> <td class="colLast"><code><span class="memberNameLink"><a href="../../../jcgp/backend/parameters/Parameter.html#isMonitor--">isMonitor</a></span>()</code> </td> </tr> <tr id="i4" class="altColor"> <td class="colFirst"><code>void</code></td> <td class="colLast"><code><span class="memberNameLink"><a href="../../../jcgp/backend/parameters/Parameter.html#set-T-">set</a></span>(<a href="../../../jcgp/backend/parameters/Parameter.html" title="type parameter in Parameter">T</a> newValue)</code> <div class="block">Sets the parameter to the specified value, if the property is not bound.</div> </td> </tr> <tr id="i5" class="rowColor"> <td class="colFirst"><code>java.lang.String</code></td> <td class="colLast"><code><span class="memberNameLink"><a href="../../../jcgp/backend/parameters/Parameter.html#toString--">toString</a></span>()</code> </td> </tr> <tr id="i6" class="altColor"> <td class="colFirst"><code>abstract void</code></td> <td class="colLast"><code><span class="memberNameLink"><a href="../../../jcgp/backend/parameters/Parameter.html#validate-T-">validate</a></span>(<a href="../../../jcgp/backend/parameters/Parameter.html" title="type parameter in Parameter">T</a> newValue)</code> <div class="block">This is a callback method which gets called whenever changes to parameters (not only its own instance) are made.</div> </td> </tr> <tr id="i7" class="rowColor"> <td class="colFirst"><code>javafx.beans.property.ReadOnlyProperty<<a href="../../../jcgp/backend/parameters/Parameter.html" title="type parameter in Parameter">T</a>></code></td> <td class="colLast"><code><span class="memberNameLink"><a href="../../../jcgp/backend/parameters/Parameter.html#valueProperty--">valueProperty</a></span>()</code> <div class="block">This method is intended for bindings only.</div> </td> </tr> </table> <ul class="blockList"> <li class="blockList"><a name="methods.inherited.from.class.java.lang.Object"> <!-- --> </a> <h3>Methods inherited from class java.lang.Object</h3> <code>equals, getClass, hashCode, notify, notifyAll, wait, wait, wait</code></li> </ul> </li> </ul> </li> </ul> </div> <div class="details"> <ul class="blockList"> <li class="blockList"> <!-- ============ PROPERTY DETAIL =========== --> <ul class="blockList"> <li class="blockList"><a name="property.detail"> <!-- --> </a> <h3>Property Detail</h3> <a name="valueProperty"> <!-- --> </a> <ul class="blockListLast"> <li class="blockList"> <h4>value</h4> <pre>public javafx.beans.property.ReadOnlyProperty<<a href="../../../jcgp/backend/parameters/Parameter.html" title="type parameter in Parameter">T</a>> valueProperty</pre> <div class="block">This method is intended for bindings only. Changes to the parameter value should be made using <code>set()</code>.</div> </li> </ul> </li> </ul> <!-- ============ METHOD DETAIL ========== --> <ul class="blockList"> <li class="blockList"><a name="method.detail"> <!-- --> </a> <h3>Method Detail</h3> <a name="isMonitor--"> <!-- --> </a> <ul class="blockList"> <li class="blockList"> <h4>isMonitor</h4> <pre>public boolean isMonitor()</pre> <dl> <dt><span class="returnLabel">Returns:</span></dt> <dd>true if the parameter is a monitor.</dd> </dl> </li> </ul> <a name="isCritical--"> <!-- --> </a> <ul class="blockList"> <li class="blockList"> <h4>isCritical</h4> <pre>public boolean isCritical()</pre> <dl> <dt><span class="returnLabel">Returns:</span></dt> <dd>true if the parameter is critical.</dd> </dl> </li> </ul> <a name="getStatus--"> <!-- --> </a> <ul class="blockList"> <li class="blockList"> <h4>getStatus</h4> <pre>public <a href="../../../jcgp/backend/parameters/ParameterStatus.html" title="enum in jcgp.backend.parameters">ParameterStatus</a> getStatus()</pre> <dl> <dt><span class="returnLabel">Returns:</span></dt> <dd>the current status of the parameter.</dd> </dl> </li> </ul> <a name="valueProperty--"> <!-- --> </a> <ul class="blockList"> <li class="blockList"> <h4>valueProperty</h4> <pre>public javafx.beans.property.ReadOnlyProperty<<a href="../../../jcgp/backend/parameters/Parameter.html" title="type parameter in Parameter">T</a>> valueProperty()</pre> <div class="block">This method is intended for bindings only. Changes to the parameter value should be made using <code>set()</code>.</div> </li> </ul> <a name="get--"> <!-- --> </a> <ul class="blockList"> <li class="blockList"> <h4>get</h4> <pre>public <a href="../../../jcgp/backend/parameters/Parameter.html" title="type parameter in Parameter">T</a> get()</pre> <dl> <dt><span class="returnLabel">Returns:</span></dt> <dd>the parameter's current value.</dd> </dl> </li> </ul> <a name="set-java.lang.Object-"> <!-- --> </a><a name="set-T-"> <!-- --> </a> <ul class="blockList"> <li class="blockList"> <h4>set</h4> <pre>public void set(<a href="../../../jcgp/backend/parameters/Parameter.html" title="type parameter in Parameter">T</a> newValue)</pre> <div class="block">Sets the parameter to the specified value, if the property is not bound.</div> <dl> <dt><span class="paramLabel">Parameters:</span></dt> <dd><code>newValue</code> - the new value for the parameter.</dd> </dl> </li> </ul> <a name="validate-java.lang.Object-"> <!-- --> </a><a name="validate-T-"> <!-- --> </a> <ul class="blockList"> <li class="blockList"> <h4>validate</h4> <pre>public abstract void validate(<a href="../../../jcgp/backend/parameters/Parameter.html" title="type parameter in Parameter">T</a> newValue)</pre> <div class="block">This is a callback method which gets called whenever changes to parameters (not only its own instance) are made. This method is intended to set the <code>status</code> field according to the new value, so that the user can be informed if any parameters are currently set to invalid values.</div> <dl> <dt><span class="paramLabel">Parameters:</span></dt> <dd><code>newValue</code> - the new value.</dd> </dl> </li> </ul> <a name="toString--"> <!-- --> </a> <ul class="blockListLast"> <li class="blockList"> <h4>toString</h4> <pre>public java.lang.String toString()</pre> <dl> <dt><span class="overrideSpecifyLabel">Overrides:</span></dt> <dd><code>toString</code> in class <code>java.lang.Object</code></dd> </dl> </li> </ul> </li> </ul> </li> </ul> </div> </div> <!-- ========= END OF CLASS DATA ========= --> <!-- ======= START OF BOTTOM NAVBAR ====== --> <div class="bottomNav"><a name="navbar.bottom"> <!-- --> </a> <div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div> <a name="navbar.bottom.firstrow"> <!-- --> </a> <ul class="navList" title="Navigation"> <li><a href="../../../overview-summary.html">Overview</a></li> <li><a href="package-summary.html">Package</a></li> <li class="navBarCell1Rev">Class</li> <li><a href="class-use/Parameter.html">Use</a></li> <li><a href="package-tree.html">Tree</a></li> <li><a href="../../../deprecated-list.html">Deprecated</a></li> <li><a href="../../../index-files/index-1.html">Index</a></li> <li><a href="../../../help-doc.html">Help</a></li> </ul> </div> <div class="subNav"> <ul class="navList"> <li><a href="../../../jcgp/backend/parameters/IntegerParameter.html" title="class in jcgp.backend.parameters"><span class="typeNameLink">Prev Class</span></a></li> <li><a href="../../../jcgp/backend/parameters/ParameterStatus.html" title="enum in jcgp.backend.parameters"><span class="typeNameLink">Next Class</span></a></li> </ul> <ul class="navList"> <li><a href="../../../index.html?jcgp/backend/parameters/Parameter.html" target="_top">Frames</a></li> <li><a href="Parameter.html" target="_top">No Frames</a></li> </ul> <ul class="navList" id="allclasses_navbar_bottom"> <li><a href="../../../allclasses-noframe.html">All Classes</a></li> </ul> <div> <script type="text/javascript"><!-- allClassesLink = document.getElementById("allclasses_navbar_bottom"); if(window==top) { allClassesLink.style.display = "block"; } else { allClassesLink.style.display = "none"; } //--> </script> </div> <div> <ul class="subNavList"> <li>Summary: </li> <li>Nested | </li> <li>Field | </li> <li>Constr | </li> <li><a href="#method.summary">Method</a></li> </ul> <ul class="subNavList"> <li>Detail: </li> <li>Field | </li> <li>Constr | </li> <li><a href="#method.detail">Method</a></li> </ul> </div> <a name="skip.navbar.bottom"> <!-- --> </a></div> <!-- ======== END OF BOTTOM NAVBAR ======= --> </body> </html>