<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en"> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> <meta name="generator" content="AsciiDoc 8.4.5" /> <title>Core Types for Context properties</title> <style type="text/css"> /* Debug borders */ p, li, dt, dd, div, pre, h1, h2, h3, h4, h5, h6 { /* border: 1px solid red; */ } body { margin: 1em 5% 1em 5%; } a { color: blue; text-decoration: underline; } a:visited { color: fuchsia; } em { font-style: italic; color: navy; } strong { font-weight: bold; color: #083194; } tt { color: navy; } h1, h2, h3, h4, h5, h6 { color: #527bbd; font-family: sans-serif; margin-top: 1.2em; margin-bottom: 0.5em; line-height: 1.3; } h1, h2, h3 { border-bottom: 2px solid silver; } h2 { padding-top: 0.5em; } h3 { float: left; } h3 + * { clear: left; } div.sectionbody { font-family: serif; margin-left: 0; } hr { border: 1px solid silver; } p { margin-top: 0.5em; margin-bottom: 0.5em; } ul, ol, li > p { margin-top: 0; } pre { padding: 0; margin: 0; } span#author { color: #527bbd; font-family: sans-serif; font-weight: bold; font-size: 1.1em; } span#email { } span#revnumber, span#revdate, span#revremark { font-family: sans-serif; } div#footer { font-family: sans-serif; font-size: small; border-top: 2px solid silver; padding-top: 0.5em; margin-top: 4.0em; } div#footer-text { float: left; padding-bottom: 0.5em; } div#footer-badges { float: right; padding-bottom: 0.5em; } div#preamble { margin-top: 1.5em; margin-bottom: 1.5em; } div.tableblock, div.imageblock, div.exampleblock, div.verseblock, div.quoteblock, div.literalblock, div.listingblock, div.sidebarblock, div.admonitionblock { margin-top: 1.5em; margin-bottom: 1.5em; } div.admonitionblock { margin-top: 2.5em; margin-bottom: 2.5em; } div.content { /* Block element content. */ padding: 0; } /* Block element titles. */ div.title, caption.title { color: #527bbd; font-family: sans-serif; font-weight: bold; text-align: left; margin-top: 1.0em; margin-bottom: 0.5em; } div.title + * { margin-top: 0; } td div.title:first-child { margin-top: 0.0em; } div.content div.title:first-child { margin-top: 0.0em; } div.content + div.title { margin-top: 0.0em; } div.sidebarblock > div.content { background: #ffffee; border: 1px solid silver; padding: 0.5em; } div.listingblock > div.content { border: 1px solid silver; background: #f4f4f4; padding: 0.5em; } div.quoteblock { padding-left: 2.0em; margin-right: 10%; } div.quoteblock > div.attribution { padding-top: 0.5em; text-align: right; } div.verseblock { padding-left: 2.0em; margin-right: 10%; } div.verseblock > div.content { white-space: pre; } div.verseblock > div.attribution { padding-top: 0.75em; text-align: left; } /* DEPRECATED: Pre version 8.2.7 verse style literal block. */ div.verseblock + div.attribution { text-align: left; } div.admonitionblock .icon { vertical-align: top; font-size: 1.1em; font-weight: bold; text-decoration: underline; color: #527bbd; padding-right: 0.5em; } div.admonitionblock td.content { padding-left: 0.5em; border-left: 2px solid silver; } div.exampleblock > div.content { border-left: 2px solid silver; padding: 0.5em; } div.imageblock div.content { padding-left: 0; } span.image img { border-style: none; } a.image:visited { color: white; } dl { margin-top: 0.8em; margin-bottom: 0.8em; } dt { margin-top: 0.5em; margin-bottom: 0; font-style: normal; color: navy; } dd > *:first-child { margin-top: 0.1em; } ul, ol { list-style-position: outside; } ol.arabic { list-style-type: decimal; } ol.loweralpha { list-style-type: lower-alpha; } ol.upperalpha { list-style-type: upper-alpha; } ol.lowerroman { list-style-type: lower-roman; } ol.upperroman { list-style-type: upper-roman; } div.compact ul, div.compact ol, div.compact p, div.compact p, div.compact div, div.compact div { margin-top: 0.1em; margin-bottom: 0.1em; } div.tableblock > table { border: 3px solid #527bbd; } thead { font-family: sans-serif; font-weight: bold; } tfoot { font-weight: bold; } td > div.verse { white-space: pre; } p.table { margin-top: 0; } /* Because the table frame attribute is overriden by CSS in most browsers. */ div.tableblock > table[frame="void"] { border-style: none; } div.tableblock > table[frame="hsides"] { border-left-style: none; border-right-style: none; } div.tableblock > table[frame="vsides"] { border-top-style: none; border-bottom-style: none; } div.hdlist { margin-top: 0.8em; margin-bottom: 0.8em; } div.hdlist tr { padding-bottom: 15px; } dt.hdlist1.strong, td.hdlist1.strong { font-weight: bold; } td.hdlist1 { vertical-align: top; font-style: normal; padding-right: 0.8em; color: navy; } td.hdlist2 { vertical-align: top; } div.hdlist.compact tr { margin: 0; padding-bottom: 0; } .comment { background: yellow; } @media print { div#footer-badges { display: none; } } div#toctitle { color: #527bbd; font-family: sans-serif; font-size: 1.1em; font-weight: bold; margin-top: 1.0em; margin-bottom: 0.1em; } div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 { margin-top: 0; margin-bottom: 0; } div.toclevel2 { margin-left: 2em; font-size: 0.9em; } div.toclevel3 { margin-left: 4em; font-size: 0.9em; } div.toclevel4 { margin-left: 6em; font-size: 0.9em; } /* Workarounds for IE6's broken and incomplete CSS2. */ div.sidebar-content { background: #ffffee; border: 1px solid silver; padding: 0.5em; } div.sidebar-title, div.image-title { color: #527bbd; font-family: sans-serif; font-weight: bold; margin-top: 0.0em; margin-bottom: 0.5em; } div.listingblock div.content { border: 1px solid silver; background: #f4f4f4; padding: 0.5em; } div.quoteblock-attribution { padding-top: 0.5em; text-align: right; } div.verseblock-content { white-space: pre; } div.verseblock-attribution { padding-top: 0.75em; text-align: left; } div.exampleblock-content { border-left: 2px solid silver; padding-left: 0.5em; } /* IE6 sets dynamically generated links as visited. */ div#toc a:visited { color: blue; } </style> </head> <body> <div id="header"> <h1>Core Types for Context properties</h1> </div> <h2 id="_fundamental_types">Fundamental types</h2> <div class="sectionbody"> <div class="paragraph"><p><a id="type-value"></a></p></div> <div class="dlist"><dl> <dt class="hdlist1"> <strong>value</strong> </dt> <dd> <p> Any representable value. </p> <div class="paragraph"><p><a id="type-bool"></a></p></div> </dd> <dt class="hdlist1"> <strong>bool</strong> </dt> <dd> <p> A boolean. </p> <div class="paragraph"><p>Base: <a href="core-types.html#type-value">value</a></p></div> </dd> </dl></div> <div class="paragraph"><p><a id="type-number"></a></p></div> <div class="dlist"><dl> <dt class="hdlist1"> <strong>number</strong> </dt> <dd> <p> A number with in the range indicated by the "min" and "max" parameters. The value is represented as either a "int32", "uint32", "int64", "uint64", or "double". </p> <div class="paragraph"><p>min (<a href="core-types.html#type-number">number</a>): Lower bound</p></div> <div class="paragraph"><p>max (<a href="core-types.html#type-number">number</a>): Upper bound</p></div> <div class="paragraph"><p>Base: <a href="core-types.html#type-value">value</a></p></div> </dd> </dl></div> <div class="paragraph"><p><a id="type-integer"></a></p></div> <div class="dlist"><dl> <dt class="hdlist1"> <strong>integer</strong> </dt> <dd> <p> A integer, represented as any of the numeric types. If the value is a "double", it is rounded to an integer, but not necessarily to the nearest. The "min" and "max" parameters, when given, constrain the range of the integer. </p> <div class="paragraph"><p>min (<a href="core-types.html#type-number">number</a>): Lower bound</p></div> <div class="paragraph"><p>max (<a href="core-types.html#type-number">number</a>): Upper bound</p></div> <div class="paragraph"><p>Base: <a href="core-types.html#type-number">number</a></p></div> </dd> </dl></div> <div class="paragraph"><p><a id="type-string"></a></p></div> <div class="dlist"><dl> <dt class="hdlist1"> <strong>string</strong> </dt> <dd> <p> A string. </p> <div class="paragraph"><p>Base: <a href="core-types.html#type-value">value</a></p></div> </dd> </dl></div> <div class="paragraph"><p><a id="type-list"></a></p></div> <div class="dlist"><dl> <dt class="hdlist1"> <strong>list</strong> </dt> <dd> <p> A list with elements of the given type and minimum and maximum length given by the "min" and "max" parameters, respectively. <br /> When the "type" parameter is omitted, it defaults to "value". </p> <div class="paragraph"><p>min (<a href="core-types.html#type-integer">integer</a>): Minimum length</p></div> <div class="paragraph"><p>max (<a href="core-types.html#type-integer">integer</a>): Maximum length</p></div> <div class="paragraph"><p>type (<a href="core-types.html#type-type">type</a>): Element type</p></div> <div class="paragraph"><p>Base: <a href="core-types.html#type-value">value</a></p></div> </dd> </dl></div> <div class="paragraph"><p><a id="type-map"></a></p></div> <div class="dlist"><dl> <dt class="hdlist1"> <strong>map</strong> </dt> <dd> <p> A map. The parameters specify the allowed keys in the map. <br /> Each parameter is a association tree that describes one possible key. The name of the tree is the key itself, and the second level of the tree can have "doc" and "type" attributes for that key. <br /> When the special key name "allow-other-keys" is present, all keys are allowed; otherwise, only the specified keys have any meaning and additional keys are an error. <br /> When no parameters are given, all keys are allowed. </p> <div class="paragraph"><p>rest: The allowed keys</p></div> <div class="paragraph"><p>Base: <a href="core-types.html#type-value">value</a></p></div> </dd> </dl></div> </div> <h2 id="_generic_types">Generic types</h2> <div class="sectionbody"> <div class="paragraph"><p><a id="type-association-tree"></a></p></div> <div class="dlist"><dl> <dt class="hdlist1"> <strong>association-tree</strong> </dt> <dd> <p> A tree made from nested lists, used to associate (hierarchical) keys with values. <br /> For example, the association tree <br /> [ "foo", [ "bar", 12 ], [ "baz", 42 ] ] <br /> associates "foo", "bar" with 12 and "foo", "baz" with 42. <br /> Association trees are often used as a simple "Nano DOM" for XML documents. <br /> Formally, a association tree is a list whose first element is a string, and whose rest elements are either association trees, or a single value. <br /> The "name" of a association tree is the first element of its top-level list. <br /> As a special case, a association tree with just a name and no other elements can be abbreviated by just stating the name as a string. E.g., the following two values are equivalent when considered as a association tree: <br /> "foo" [ "foo" ] </p> <div class="paragraph"><p>Base: <a href="core-types.html#type-value">value</a></p></div> </dd> </dl></div> <div class="paragraph"><p><a id="type-association-list"></a></p></div> <div class="dlist"><dl> <dt class="hdlist1"> <strong>association-list</strong> </dt> <dd> <p> A list of association trees. </p> <div class="paragraph"><p>Base: List of <em><a href="core-types.html#type-association-tree">association-tree</a></em>s</p></div> </dd> </dl></div> <div class="paragraph"><p><a id="type-string-enum"></a></p></div> <div class="dlist"><dl> <dt class="hdlist1"> <strong>string-enum</strong> </dt> <dd> <p> This is the base type for enumerations of fixed strings. The parameters describe the possible values. <br /> Each parameter is a association tree that describes one of the choices. The name of the association tree is the string for the choice itself and the second level of the tree can have a "doc" attribute for that choice. </p> <div class="paragraph"><p>rest: The possible values</p></div> <div class="paragraph"><p>Base: <a href="core-types.html#type-string">string</a></p></div> </dd> </dl></div> <div class="paragraph"><p><a id="type-int-enum"></a></p></div> <div class="dlist"><dl> <dt class="hdlist1"> <strong>int-enum</strong> </dt> <dd> <p> This is the base type for enumerations of fixed integers. The parameters describe the possible values. <br /> Each parameter is a association tree that describes one of the choices. The name of the association tree is a symbolic name for the choice itself and the second level of the tree must have a "value" attribute that gives the numerical value of the choice in decimal. A choice can also have a "doc" attribute, of course. </p> <div class="paragraph"><p>rest: The possible values</p></div> <div class="paragraph"><p>Base: <a href="core-types.html#type-integer">integer</a></p></div> </dd> </dl></div> </div> <h2 id="_specific_types">Specific types</h2> <div class="sectionbody"> <div class="paragraph"><p><a id="type-type"></a></p></div> <div class="dlist"><dl> <dt class="hdlist1"> <strong>type</strong> </dt> <dd> <p> A reference to a type, consisting of a name and optional parameters. <br /> Type references are just association trees: the name of the tree names the referenced type, and the associations of the association tree are the parameters. </p> <div class="paragraph"><p>Base: <a href="core-types.html#type-association-tree">association-tree</a></p></div> </dd> </dl></div> <div class="paragraph"><p><a id="type-temperature"></a></p></div> <div class="dlist"><dl> <dt class="hdlist1"> <strong>temperature</strong> </dt> <dd> <p> A temperature in Kelvin. </p> <div class="paragraph"><p>Base: <a href="core-types.html#type-number">number</a></p></div> <div class="paragraph"><p>Type parameters:</p></div> <div class="hdlist"><table> <tr> <td class="hdlist1"> min <br /> </td> <td class="hdlist2"> <p style="margin-top: 0;"> 0 </p> </td> </tr> </table></div> </dd> </dl></div> <div class="paragraph"><p><a id="type-energy"></a></p></div> <div class="dlist"><dl> <dt class="hdlist1"> <strong>energy</strong> </dt> <dd> <p> An amount of energy, in Joule. </p> <div class="paragraph"><p>Base: <a href="core-types.html#type-number">number</a></p></div> </dd> </dl></div> <div class="paragraph"><p><a id="type-power"></a></p></div> <div class="dlist"><dl> <dt class="hdlist1"> <strong>power</strong> </dt> <dd> <p> A power, in Watt. </p> <div class="paragraph"><p>Base: <a href="core-types.html#type-number">number</a></p></div> </dd> </dl></div> <div class="paragraph"><p><a id="type-time"></a></p></div> <div class="dlist"><dl> <dt class="hdlist1"> <strong>time</strong> </dt> <dd> <p> A point in time, represented as the number of nano-seconds since 00:00 January 1, 1970, UTC. </p> <div class="paragraph"><p>Base: <a href="core-types.html#type-integer">integer</a></p></div> </dd> </dl></div> <div class="paragraph"><p><a id="type-distance"></a></p></div> <div class="dlist"><dl> <dt class="hdlist1"> <strong>distance</strong> </dt> <dd> <p> A physical length between two points, in meters. </p> <div class="paragraph"><p>Base: <a href="core-types.html#type-integer">integer</a></p></div> </dd> </dl></div> <div class="paragraph"><p><a id="type-duration"></a></p></div> <div class="dlist"><dl> <dt class="hdlist1"> <strong>duration</strong> </dt> <dd> <p> A time duration, in nano-seconds. </p> <div class="paragraph"><p>Base: <a href="core-types.html#type-integer">integer</a></p></div> </dd> </dl></div> <div class="paragraph"><p><a id="type-percentage"></a></p></div> <div class="dlist"><dl> <dt class="hdlist1"> <strong>percentage</strong> </dt> <dd> <p> A percentage. </p> <div class="paragraph"><p>Base: <a href="core-types.html#type-integer">integer</a></p></div> <div class="paragraph"><p>Type parameters:</p></div> <div class="hdlist"><table> <tr> <td class="hdlist1"> min <br /> </td> <td class="hdlist2"> <p style="margin-top: 0;"> 0 </p> </td> </tr> <tr> <td class="hdlist1"> max <br /> </td> <td class="hdlist2"> <p style="margin-top: 0;"> 100 </p> </td> </tr> </table></div> </dd> </dl></div> <div class="paragraph"><p><a id="type-location-source"></a></p></div> <div class="dlist"><dl> <dt class="hdlist1"> <strong>location-source</strong> </dt> <dd> <p> Describes a source of location information. Possible values are "satellite", "wlan", "cellular", and "timezone". </p> <div class="paragraph"><p>Base: Enumeration of <em>string</em>s</p></div> <div class="paragraph"><p>Possible enumeration values:</p></div> <div class="hdlist"><table> <tr> <td class="hdlist1"> satellite <br /> wlan <br /> cellular <br /> timezone <br /> </td> <td class="hdlist2"> </td> </tr> </table></div> </dd> </dl></div> <div class="paragraph"><p><a id="type-tracker-uri"></a></p></div> <div class="dlist"><dl> <dt class="hdlist1"> <strong>tracker-uri</strong> </dt> <dd> <p> A URI that names a object in the Tracker object store. </p> <div class="paragraph"><p>Base: <a href="core-types.html#type-string">string</a></p></div> </dd> </dl></div> </div> <div id="footer"> <div id="footer-text"> Last updated 2011-02-08 11:44:39 UTC </div> </div> </body> </html>