You are viewing a plain text version of this content. The canonical link for it is here.
Posted to imperius-commits@incubator.apache.org by jn...@apache.org on 2008/02/05 19:29:04 UTC

svn commit: r618755 [1/2] - in /incubator/imperius/site: build/site/en/ build/site/en/community/ build/site/en/docs/ build/site/en/download/ build/tmp/ build/tmp/cocoon-work/cache-dir/ src/documentation/ src/documentation/content/xdocs/ src/documentati...

Author: jneeraj
Date: Tue Feb  5 11:28:59 2008
New Revision: 618755

URL: http://svn.apache.org/viewvc?rev=618755&view=rev
Log:
1. Added SPL reference
2. Added more tabs for a consistent look-n-feel
3. Minor editor updates

Added:
    incubator/imperius/site/build/site/en/docs/spl_reference.html   (with props)
    incubator/imperius/site/src/documentation/content/xdocs/docs/spl_reference.xml   (with props)
Modified:
    incubator/imperius/site/build/site/en/community/bugs.html
    incubator/imperius/site/build/site/en/community/community.html
    incubator/imperius/site/build/site/en/community/contribute.html
    incubator/imperius/site/build/site/en/community/mail-lists.html
    incubator/imperius/site/build/site/en/docs/getting_started.html
    incubator/imperius/site/build/site/en/docs/javaspl_user_guide.html
    incubator/imperius/site/build/site/en/docs/spl_editor_guide.html
    incubator/imperius/site/build/site/en/download/download.html
    incubator/imperius/site/build/site/en/index.html
    incubator/imperius/site/build/site/en/license.html
    incubator/imperius/site/build/site/en/linkmap.html
    incubator/imperius/site/build/tmp/cocoon-work/cache-dir/cocoon-ehcache-1.data
    incubator/imperius/site/build/tmp/cocoon-work/cache-dir/cocoon-ehcache-1.index
    incubator/imperius/site/build/tmp/projfilters.properties
    incubator/imperius/site/src/documentation/content/xdocs/docs/spl_editor_guide.xml
    incubator/imperius/site/src/documentation/content/xdocs/site.xml
    incubator/imperius/site/src/documentation/content/xdocs/tabs.xml
    incubator/imperius/site/src/documentation/resources/images/Thumbs.db
    incubator/imperius/site/src/documentation/skinconf.xml

Modified: incubator/imperius/site/build/site/en/community/bugs.html
URL: http://svn.apache.org/viewvc/incubator/imperius/site/build/site/en/community/bugs.html?rev=618755&r1=618754&r2=618755&view=diff
==============================================================================
--- incubator/imperius/site/build/site/en/community/bugs.html (original)
+++ incubator/imperius/site/build/site/en/community/bugs.html Tue Feb  5 11:28:59 2008
@@ -66,6 +66,12 @@
 <li>
 <a class="unselected" href="../download/download.html">Download</a>
 </li>
+<li>
+<a class="unselected" href="../docs/getting_started.html">Documentation</a>
+</li>
+<li class="current">
+<a class="selected" href="../community/contribute.html">Community</a>
+</li>
 </ul>
 <!--+
     |end Tabs

Modified: incubator/imperius/site/build/site/en/community/community.html
URL: http://svn.apache.org/viewvc/incubator/imperius/site/build/site/en/community/community.html?rev=618755&r1=618754&r2=618755&view=diff
==============================================================================
--- incubator/imperius/site/build/site/en/community/community.html (original)
+++ incubator/imperius/site/build/site/en/community/community.html Tue Feb  5 11:28:59 2008
@@ -66,6 +66,12 @@
 <li>
 <a class="unselected" href="../download/download.html">Download</a>
 </li>
+<li>
+<a class="unselected" href="../docs/getting_started.html">Documentation</a>
+</li>
+<li class="current">
+<a class="selected" href="../community/contribute.html">Community</a>
+</li>
 </ul>
 <!--+
     |end Tabs

Modified: incubator/imperius/site/build/site/en/community/contribute.html
URL: http://svn.apache.org/viewvc/incubator/imperius/site/build/site/en/community/contribute.html?rev=618755&r1=618754&r2=618755&view=diff
==============================================================================
--- incubator/imperius/site/build/site/en/community/contribute.html (original)
+++ incubator/imperius/site/build/site/en/community/contribute.html Tue Feb  5 11:28:59 2008
@@ -66,6 +66,12 @@
 <li>
 <a class="unselected" href="../download/download.html">Download</a>
 </li>
+<li>
+<a class="unselected" href="../docs/getting_started.html">Documentation</a>
+</li>
+<li class="current">
+<a class="selected" href="../community/contribute.html">Community</a>
+</li>
 </ul>
 <!--+
     |end Tabs

Modified: incubator/imperius/site/build/site/en/community/mail-lists.html
URL: http://svn.apache.org/viewvc/incubator/imperius/site/build/site/en/community/mail-lists.html?rev=618755&r1=618754&r2=618755&view=diff
==============================================================================
--- incubator/imperius/site/build/site/en/community/mail-lists.html (original)
+++ incubator/imperius/site/build/site/en/community/mail-lists.html Tue Feb  5 11:28:59 2008
@@ -66,6 +66,12 @@
 <li>
 <a class="unselected" href="../download/download.html">Download</a>
 </li>
+<li>
+<a class="unselected" href="../docs/getting_started.html">Documentation</a>
+</li>
+<li class="current">
+<a class="selected" href="../community/contribute.html">Community</a>
+</li>
 </ul>
 <!--+
     |end Tabs

Modified: incubator/imperius/site/build/site/en/docs/getting_started.html
URL: http://svn.apache.org/viewvc/incubator/imperius/site/build/site/en/docs/getting_started.html?rev=618755&r1=618754&r2=618755&view=diff
==============================================================================
--- incubator/imperius/site/build/site/en/docs/getting_started.html (original)
+++ incubator/imperius/site/build/site/en/docs/getting_started.html Tue Feb  5 11:28:59 2008
@@ -66,6 +66,12 @@
 <li>
 <a class="unselected" href="../download/download.html">Download</a>
 </li>
+<li class="current">
+<a class="selected" href="../docs/getting_started.html">Documentation</a>
+</li>
+<li>
+<a class="unselected" href="../community/contribute.html">Community</a>
+</li>
 </ul>
 <!--+
     |end Tabs
@@ -103,6 +109,9 @@
 <div id="menu_selected_1.1" class="selectedmenuitemgroup" style="display: block;">
 <div class="menupage">
 <div class="menupagetitle">Getting Started</div>
+</div>
+<div class="menuitem">
+<a href="../docs/spl_reference.html" title="SPL Language Reference">SPL Language Reference</a>
 </div>
 <div class="menuitem">
 <a href="../docs/javaspl_user_guide.html" title="User Guide">JavaSPL User Guide</a>

Modified: incubator/imperius/site/build/site/en/docs/javaspl_user_guide.html
URL: http://svn.apache.org/viewvc/incubator/imperius/site/build/site/en/docs/javaspl_user_guide.html?rev=618755&r1=618754&r2=618755&view=diff
==============================================================================
--- incubator/imperius/site/build/site/en/docs/javaspl_user_guide.html (original)
+++ incubator/imperius/site/build/site/en/docs/javaspl_user_guide.html Tue Feb  5 11:28:59 2008
@@ -66,6 +66,12 @@
 <li>
 <a class="unselected" href="../download/download.html">Download</a>
 </li>
+<li class="current">
+<a class="selected" href="../docs/getting_started.html">Documentation</a>
+</li>
+<li>
+<a class="unselected" href="../community/contribute.html">Community</a>
+</li>
 </ul>
 <!--+
     |end Tabs
@@ -103,6 +109,9 @@
 <div id="menu_selected_1.1" class="selectedmenuitemgroup" style="display: block;">
 <div class="menuitem">
 <a href="../docs/getting_started.html" title="Get Started">Getting Started</a>
+</div>
+<div class="menuitem">
+<a href="../docs/spl_reference.html" title="SPL Language Reference">SPL Language Reference</a>
 </div>
 <div class="menupage">
 <div class="menupagetitle">JavaSPL User Guide</div>

Modified: incubator/imperius/site/build/site/en/docs/spl_editor_guide.html
URL: http://svn.apache.org/viewvc/incubator/imperius/site/build/site/en/docs/spl_editor_guide.html?rev=618755&r1=618754&r2=618755&view=diff
==============================================================================
--- incubator/imperius/site/build/site/en/docs/spl_editor_guide.html (original)
+++ incubator/imperius/site/build/site/en/docs/spl_editor_guide.html Tue Feb  5 11:28:59 2008
@@ -66,6 +66,12 @@
 <li>
 <a class="unselected" href="../download/download.html">Download</a>
 </li>
+<li class="current">
+<a class="selected" href="../docs/getting_started.html">Documentation</a>
+</li>
+<li>
+<a class="unselected" href="../community/contribute.html">Community</a>
+</li>
 </ul>
 <!--+
     |end Tabs
@@ -105,6 +111,9 @@
 <a href="../docs/getting_started.html" title="Get Started">Getting Started</a>
 </div>
 <div class="menuitem">
+<a href="../docs/spl_reference.html" title="SPL Language Reference">SPL Language Reference</a>
+</div>
+<div class="menuitem">
 <a href="../docs/javaspl_user_guide.html" title="User Guide">JavaSPL User Guide</a>
 </div>
 <div class="menupage">
@@ -215,17 +224,18 @@
 <p>
     		To use the JavaSPL editor you will first need to download and install 
     		<a href="http://www.eclipse.org/downloads">eclipse platform 3.3 or later </a> 
-    		and <a href="http://www.eclipse.org/downloads"> EMF 2.3 or later </a>
+    		,<a href="http://www.eclipse.org/downloads"> EMF 2.3 or later </a> and
+    		the <a href="http://antlreclipse.sourceforge.net"> ANTLR v2 plugin </a>
     	
 </p>
-<a name="N10050"></a><a name="download_editor"></a>
+<a name="N10054"></a><a name="download_editor"></a>
 <h3 class="boxed"> Download or build the SPL Editor </h3>
 <p>
     		Download and extract <a href="http://incubator.apache.org/imperius/downloads.html"> SPLEditor.zip </a>
     		to a temporary location. You can also <a href="http://incubator.apache.org/imperius/community/contribute.html"> Build the editor from source </a>
     	
 </p>
-<a name="N10062"></a><a name="installation"></a>
+<a name="N10066"></a><a name="installation"></a>
 <h3 class="boxed"> Install the Editor </h3>
 <p> To install the editor simply unzip <strong> SPLEditor.zip </strong> into your
     		<strong> ECLIPSE_HOME </strong> and restart <strong> Eclipse </strong> 
@@ -233,10 +243,10 @@
 </p>
 </div>
     
-<a name="N10076"></a><a name="use_editor"></a>
+<a name="N1007A"></a><a name="use_editor"></a>
 <h2 class="boxed"> Using the Editor </h2>
 <div class="section">
-<a name="N1007C"></a><a name="create_spl_project"></a>
+<a name="N10080"></a><a name="create_spl_project"></a>
 <h3 class="boxed"> Create SPL Project </h3>
 <ol>
     				
@@ -253,7 +263,7 @@
     			
     			
 </ol>
-<a name="N100A2"></a><a name="create_spl_policy"></a>
+<a name="N100A6"></a><a name="create_spl_policy"></a>
 <h3 class="boxed"> Create a SPL Policy </h3>
 <ol>
     				
@@ -281,7 +291,7 @@
 					
     			
 </ol>
-<a name="N100DD"></a><a name="import_spl_policy"></a>
+<a name="N100E1"></a><a name="import_spl_policy"></a>
 <h3 class="boxed"> Import a SPL Policy </h3>
 <ol>
     			
@@ -313,7 +323,7 @@
     			    			
     		
 </ol>
-<a name="N1011F"></a><a name="editing_spl_policy"></a>
+<a name="N10123"></a><a name="editing_spl_policy"></a>
 <h3 class="boxed"> Editing a SPL Policy </h3>
 <p> 
 <img alt="Icon" src="../images/spleditor.png"> </p>
@@ -337,7 +347,7 @@
 			at the bottom.  </li>
     	
 </ul>
-<a name="N1013C"></a><a name="using_customexpressions"></a>
+<a name="N10140"></a><a name="using_customexpressions"></a>
 <h3 class="boxed"> User-Defined Expressions </h3>
 <p> SPL allows users to add custom actions or expressions to the runtime. 
     		The Editor needs to be configured to recognize these custom expressions. 
@@ -375,7 +385,7 @@
     	
     		
 </ol>
-<a name="N10172"></a><a name="customizing_editor"></a>
+<a name="N10176"></a><a name="customizing_editor"></a>
 <h3 class="boxed"> Customizing the SPL Editor </h3>
 <p> 
 <img alt="Icon" src="../images/customizeeditor.png"> </p>

Added: incubator/imperius/site/build/site/en/docs/spl_reference.html
URL: http://svn.apache.org/viewvc/incubator/imperius/site/build/site/en/docs/spl_reference.html?rev=618755&view=auto
==============================================================================
--- incubator/imperius/site/build/site/en/docs/spl_reference.html (added)
+++ incubator/imperius/site/build/site/en/docs/spl_reference.html Tue Feb  5 11:28:59 2008
@@ -0,0 +1,1710 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<html>
+<head>
+<META http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta content="Apache Forrest" name="Generator">
+<meta name="Forrest-version" content="0.8">
+<meta name="Forrest-skin-name" content="pelt">
+<title>SPL Language Reference</title>
+<link type="text/css" href="../skin/basic.css" rel="stylesheet">
+<link media="screen" type="text/css" href="../skin/screen.css" rel="stylesheet">
+<link media="print" type="text/css" href="../skin/print.css" rel="stylesheet">
+<link type="text/css" href="../skin/profile.css" rel="stylesheet">
+<script src="../skin/getBlank.js" language="javascript" type="text/javascript"></script><script src="../skin/getMenu.js" language="javascript" type="text/javascript"></script><script src="../skin/fontsize.js" language="javascript" type="text/javascript"></script>
+<link rel="shortcut icon" href="../">
+</head>
+<body onload="init()">
+<script type="text/javascript">ndeSetTextSize();</script>
+<div id="top">
+<!--+
+    |breadtrail
+    +-->
+<div class="breadtrail">
+<a href="http://www.apache.org/">Apache</a> &gt; <a href="http://incubator.apache.org/">Incubators</a> &gt; <a href="http://incubator.apache.org/imperius/">Imperius</a><script src="../skin/breadcrumbs.js" language="JavaScript" type="text/javascript"></script>
+</div>
+<!--+
+    |header
+    +-->
+<div class="header">
+<!--+
+    |start group logo
+    +-->
+<div class="grouplogo">
+<a href="http://incubator.apache.org/"><img class="logoImage" alt="Apache Incubator" src="../images/apache-incubator-logo.png" title="Apache Incubator"></a>
+</div>
+<!--+
+    |end group logo
+    +-->
+<!--+
+    |start Project Logo
+    +-->
+<div class="projectlogo">
+<a href="http://incubator.apache.org/imperius"><img class="logoImage" alt="Imperius" src="../images/project-logo.png" title="Imperius Simple Policy Language"></a>
+</div>
+<!--+
+    |end Project Logo
+    +-->
+<!--+
+    |start Search
+    +-->
+<div class="searchbox">
+<form action="http://www.google.com/search" method="get" class="roundtopsmall">
+<input value="apache.org" name="sitesearch" type="hidden"><input onFocus="getBlank (this, 'Search the site with google');" size="25" name="q" id="query" type="text" value="Search the site with google">&nbsp; 
+                    <input name="Search" value="Search" type="submit">
+</form>
+</div>
+<!--+
+    |end search
+    +-->
+<!--+
+    |start Tabs
+    +-->
+<ul id="tabs">
+<li>
+<a class="unselected" href="../index.html">Home</a>
+</li>
+<li>
+<a class="unselected" href="../download/download.html">Download</a>
+</li>
+<li class="current">
+<a class="selected" href="../docs/getting_started.html">Documentation</a>
+</li>
+<li>
+<a class="unselected" href="../community/contribute.html">Community</a>
+</li>
+</ul>
+<!--+
+    |end Tabs
+    +-->
+</div>
+</div>
+<div id="main">
+<div id="publishedStrip">
+<!--+
+    |start Subtabs
+    +-->
+<div id="level2tabs"></div>
+<!--+
+    |end Endtabs
+    +-->
+<script type="text/javascript"><!--
+document.write("Last Published: " + document.lastModified);
+//  --></script>
+</div>
+<!--+
+    |breadtrail
+    +-->
+<div class="breadtrail">
+
+             &nbsp;
+           </div>
+<!--+
+    |start Menu, mainarea
+    +-->
+<!--+
+    |start Menu
+    +-->
+<div id="menu">
+<div onclick="SwitchMenu('menu_selected_1.1', '../skin/')" id="menu_selected_1.1Title" class="menutitle" style="background-image: url('../skin/images/chapter_open.gif');">Documentation</div>
+<div id="menu_selected_1.1" class="selectedmenuitemgroup" style="display: block;">
+<div class="menuitem">
+<a href="../docs/getting_started.html" title="Get Started">Getting Started</a>
+</div>
+<div class="menupage">
+<div class="menupagetitle">SPL Language Reference</div>
+</div>
+<div class="menuitem">
+<a href="../docs/javaspl_user_guide.html" title="User Guide">JavaSPL User Guide</a>
+</div>
+<div class="menuitem">
+<a href="../docs/spl_editor_guide.html" title="Editor Guide">SPL Editor Guide</a>
+</div>
+</div>
+<div id="credit"></div>
+<div id="roundbottom">
+<img style="display: none" class="corner" height="15" width="15" alt="" src="../skin/images/rc-b-l-15-1body-2menu-3menu.png"></div>
+<!--+
+  |alternative credits
+  +-->
+<div id="credit2"></div>
+</div>
+<!--+
+    |end Menu
+    +-->
+<!--+
+    |start content
+    +-->
+<div id="content">
+<h1>SPL Language Reference</h1>
+<div class="abstract">
+      This document provides a reference to the SPL language detailing the language syntax, built-in operators and actions
+      It is aimed as providing a quick reference for users authoring SPL policies. Please refer to the 
+      CIM-SPL specification for more details.
+    </div>
+<div id="minitoc-area">
+<ul class="minitoc">
+<li>
+<a href="#intro">Introduction</a>
+</li>
+<li>
+<a href="#language_structure">SPL Language Structure </a>
+<ul class="minitoc">
+<li>
+<a href="#import_stmt"> Import Statement </a>
+</li>
+<li>
+<a href="#strgy_stmt"> Strategy Statement </a>
+</li>
+<li>
+<a href="#decl_stmt">Declaration Statement  </a>
+</li>
+<li>
+<a href="#pol_stmt"> Policy Statement </a>
+</li>
+</ul>
+</li>
+<li>
+<a href="#datatypes"> SPL Data Types </a>
+</li>
+<li>
+<a href="#builtin_ops">SPL Built-in Operators</a>
+<ul class="minitoc">
+<li>
+<a href="#numeric_ops"> Numeric Operators </a>
+</li>
+<li>
+<a href="#Comp_ops"> Comparison Operators </a>
+</li>
+<li>
+<a href="#bool_ops"> Boolean Operators </a>
+</li>
+<li>
+<a href="#string_ops"> String Operators</a>
+</li>
+<li>
+<a href="#coll_ops"> Collection Operators </a>
+</li>
+<li>
+<a href="#calendar_ops"> Calendar Operators</a>
+</li>
+<li>
+<a href="#Unary_ops"> Unary Operators</a>
+</li>
+<li>
+<a href="#Cast_ops"> Cast Operators </a>
+</li>
+</ul>
+</li>
+<li>
+<a href="#builtin_actions">Built in Actions </a>
+</li>
+<li>
+<a href="#refs"> References </a>
+</li>
+</ul>
+</div>
+    
+<a name="N10010"></a><a name="intro"></a>
+<h2 class="boxed">Introduction</h2>
+<div class="section">
+<p>  Imperius (Simple Policy Language) or SPL - Is a simple standards based 
+        object-oriented policy language that allows expression of management policies 
+        using condition-action rules. Imperius provides an extensible set of over 
+        100 operations for expressing conditions and actions.Imperius is a generalization
+        of the CIM-SPL language. Conversely, CIM-SPL can be thought of as Imperius 
+        with CIM binding. Imperius can be extended to create similar bindings for 
+        other environments. JavaSPL (Imperius with Java binding) is another such example.
+        
+        </p>
+</div>   
+	
+<a name="N1001A"></a><a name="language_structure"></a>
+<h2 class="boxed">SPL Language Structure </h2>
+<div class="section">
+<p> An SPL Policy is actually a group of one or more sub policies. 
+      Each sub policy	is a simple condition - action pair. An import statement
+      declares one or more anchor classes and instances that are referenced throughout the
+      policy.
+		</p>
+<p> 
+<strong> Canonical Policy syntax </strong> 
+</p>
+<pre class="code">
+      Import  Qualifier &lt;namespace&gt; Class &lt;Class Name&gt; : &lt;instances&gt;*;	(one or more)	 
+      Strategy &lt;strategy&gt;
+      Policy  (one or more)
+      { 
+        Declaration {
+          &lt;List of constant definition&gt;   (Optional)
+          &lt;List of macro definitions&gt; (Optional)
+        } 
+        Condition {		(Optional)
+          &lt;If Condition&gt;  /* java-like boolean expression */
+        } 
+        Decision {		(Required)
+          &lt;Then Decision &gt;  /* sequence of actions */
+           /*   invocations                      */
+        }
+      } &lt;priority&gt;;
+	
+		
+		</pre>
+<p> 
+<strong> A Sample Policy</strong> 
+</p>
+<pre class="code">
+		Import Class org.apache.imperius.javaspl.samples.windowscomputersystem.WindowsComputerSystem:system1;
+
+    Strategy Execute_All_Applicable;
+
+    Declaration   {
+
+      from = "johndoe@us.ibm.com";
+      to = "johndoe@us.ibm.com";
+    }
+    Policy {
+      Declaration 	{
+      supportedJavaVersion = "1.5" ; 
+    	subject = "Java version noncompliance";
+      message = Concatenate( "IBM does not support java :", system1.javaVersion );
+    }
+
+    Condition 	{
+
+      system1.javaVersion != supportedJavaVersion 
+
+    }   
+
+    Decision  	{  
+ 
+       		SendMail( from, to, subject, message )
+  
+    }
+  }:1;
+		
+		</pre>
+<a name="N10037"></a><a name="import_stmt"></a>
+<h3 class="boxed"> Import Statement </h3>
+<p> Declares the anchor classes and the instances of these 
+      classes which are referenced throughout the policy. An anchor class encapsulates the state of the
+      system managed using policies</p>
+<p> 
+<strong>Syntax: </strong> Import &lt;qualifier&gt; Class &lt;classname&gt; &lt;instance&gt;,...;</p>
+<p>The Qualifier is unused by JavaSPL and there can be more than one Import statements</p>
+<a name="N1004A"></a><a name="strgy_stmt"></a>
+<h3 class="boxed"> Strategy Statement </h3>
+<p> Allows the policy author to specify which of the sub-policies will be executed at execution time</p>
+<ul>
+        
+<li> 
+<em>Execute_All_Applicable:</em> This strategy specifies that all polices with  condition evaluating
+        to true should be executed. The policies are evaluated in the descending order of their priorities. This strategy is useful
+        in conditions when several actions based on several different conditions need to be performed</li>
+        
+<li>
+<em>Execute_First_Applicable:</em> This strategy specifies that only the policy with the highest priority with its
+        condition evaluating to true should be executed.</li>
+      
+</ul>
+<a name="N10062"></a><a name="decl_stmt"></a>
+<h3 class="boxed">Declaration Statement  </h3>
+<p> Allows the policy author to declare constants and macros that can be referenced later on in the policy. Declarations
+       support the paradigm of  <em>declare once and use anywhere</em>. The constants and macros declared are visible
+       within the current policy and other embedded policies. The constants declared in the Declaration section after 
+       the <em>Strategy </em> Statement are visible throughout the policy</p>
+<p> 
+<strong> Constant Declaration: </strong> As the name suggests declares a constant. The syntax is as follows: </p>
+<pre class="code"> &lt;constant&gt; = &lt;expression&gt; </pre>
+<p> The data type of the LHS is determined at compile time as being same as the RHS. During evaluation of a policy the 
+       RHS expression is evaluated and its result populated in the symbol table entry for the LHS.</p>
+<pre class="code"> //Example constant declaration
+       Declaration {
+        x = 2;
+       }
+       </pre>
+<p>  
+<strong> Macro Declaration: </strong> Macros are actually user defined functions that can be called from within the policy. The Macros
+      can take one or more parameters and return exactly one value. Macros help in simplifying a policy by hiding the complexity of a function
+      in the declaration section. </p>
+<pre class="code"> Macro {
+               
+               Name = &lt;string expression&gt;;
+               type = &lt;type constant&gt;;
+               argument = &lt;argumentname:argumenttype&gt;,...;
+               procedure = &lt;expression with type same as the one declared in the type field of Macro&gt;
+               }
+               // type constants of SPL are : Sint8, Sint16, Sint32, Sint64, Real32, Real64, String, DateTime, Boolean, Char16
+      </pre>
+<pre class="code">
+        //Example of a Macro Declaration
+        Declaration {
+            Macro   /* macro that calculates avrg of 2 nos */
+            {
+             Name = GetAverage; /* Name of the macro */
+             type = Real64; /* Return type */
+             argument = number1:Sint64,number2:Sint64; /* Input parameters and types */
+             procedure = (number1 + number2) / 2 /* Actual code */
+            }
+        
+        // Sample invocation
+        
+        ...
+        Condition {
+          2 &gt; GetAverage(8,4)
+        }
+        
+        }
+      
+      </pre>
+<a name="N10093"></a><a name="pol_stmt"></a>
+<h3 class="boxed"> Policy Statement </h3>
+<p> Consists of a "if" "then" style rule. The "if" is specified using
+      the <em>Condition</em> Statement and the "then" specified using the <em>Decision</em> Statement</p>
+<p> 
+<strong> Condition Statement:</strong> Consists of a boolean expression. If the Condition statement is absent it is assumed
+      to be true. </p>
+<pre class="code">
+          // Condition example
+          Condition {
+              freeMemory &lt; freememorythreshold
+          
+          }
+      
+      
+      </pre>
+<p> 
+<strong> Decision Statement: </strong> Is a required statement that consists of one or more actions
+      arranged in a sequence using the decision operators. </p>
+<p> 
+<strong> Types of Actions:</strong>
+</p>
+<ul>
+        
+<li> Invoke a method on the imported anchor class instance. 
+            <p>&lt;instancename&gt;.&lt;method name&gt;(&lt;expression&gt;[,&lt;expression&gt;]*) &lt;boolean operator&gt; &lt;numeric return code&gt;</p>
+             
+<pre class="code">
+              // Example of invoke method action
+              anchorInstance1.method1("xx", 2) == 0
+
+             </pre>
+
+        
+</li>
+        
+<li>
+          Modify the properties of the imported anchor class instance.
+          <p> Set(&lt;instanceName&gt;.&lt;argument name&gt;=&lt;expression&gt;[,&lt;argument name&gt; = &lt;expression&gt;]*)</p>
+          
+<pre class="code">
+              //Example of set property action
+              Set(anchorInstance1.property1 = 2, anchorInstance1.property2 = "x")
+          </pre>
+        
+        
+</li>
+        
+<li>
+          Invoke a custom action. Custom actions are user created actions that are made available to the policy runtime as a jar.
+          The ability to define custom actions enables the SPL language to be extended or customized for a user's environment.
+          <p> &lt;custom action name&gt;(&lt;expression&gt;[,&lt;expression&gt;]*)      </p>
+          
+<pre class="code">
+            //Example of a custom action
+            SendMail("xxx@mail.com","yyy@mail.com","hello","hi how are you?")
+          
+          </pre>
+          
+          
+        
+        
+</li>
+      
+      
+      
+</ul>
+<p> 
+<strong>Ordering the Actions:</strong>
+</p>
+<ul>
+        
+<li> 
+          
+<p> If-Then action ordering. </p>
+          
+<p> Execute action block1 if that succeeds then execute action block2. The result of executing the action block2
+          will be returned. If action block1 execution fails return without execution action block2 with failure. </p>
+          
+<p> &lt;action block1&gt; -&gt; &lt;action block2&gt; </p>
+          
+<pre class="code">
+            // If-Then action
+            Decision { //Clean up the system and if that succeeds send out an email
+               system.cleanup() -&gt; SendMail(...)
+            }
+            
+          </pre>
+          
+<div class="note">
+<div class="label">Note</div>
+<div class="content"> An action is deemed a success if no exceptions are thrown and if the returned value satisfies
+          the constant boolean expression.</div>
+</div>  
+        
+</li>
+        
+<li> 
+          
+<p> Concurrency "some semantics " action ordering. </p>
+          
+<p> Both action blocks are executed concurrently. If either of the action blocks executes successfully the 
+          entire execution is deemed successful.</p>
+          
+<p> &lt;action block1&gt; || &lt;action block2&gt; </p>
+          
+<pre class="code">
+            // Concurrency some semantics action
+            Decision { //Clean up the system and send out an email
+               system.cleanup() || SendMail(...)
+            }
+            
+          </pre>
+          
+        
+</li>
+        
+<li> 
+          
+<p> Concurrency "all semantics " action ordering. </p>
+          
+<p> Both action blocks are executed concurrently. Both action blocks should execute successfully for 
+          entire execution to be deemed successful.</p>
+          
+<p> &lt;action block1&gt; &amp;&amp; &lt;action block2&gt; </p>
+          
+<pre class="code">
+            // Concurrency all semantics action
+            Decision { //Clean up the system and send out an email
+               system.cleanup() &amp;&amp; SendMail(...)
+            }
+            
+          </pre>
+         
+        
+</li>
+        
+<li> 
+          
+<p> Conditional action ordering. </p>
+          
+<p> Action block1 is executed first if that fails only then action block2 is executed. If action block1 succeeds then
+          the block returns with success, if block 1 fails then the result of execution will be whatever block2 returns.</p>
+          
+<p> &lt;action block1&gt; | &lt;action block2&gt; </p>
+          
+<pre class="code">
+            // Conditional action
+            Decision { //Clean up the system if that fials send out an email
+               system.cleanup() | SendMail(...)
+            }
+            
+          </pre>
+         
+        
+</li>
+       
+      
+</ul>
+<p> 
+<strong> Priority: </strong> Priority is an integral value assigned to each policy that determines the relative
+      order of execution among subpolicies. Higher number implies higher priority</p>
+<pre class="code">
+        Policy {
+        ...
+        }1;
+      
+      </pre>
+</div>
+	
+<a name="N10132"></a><a name="datatypes"></a>
+<h2 class="boxed"> SPL Data Types </h2>
+<div class="section">
+<p> SPL supports all the basic Java data types along with the arrays of the data types </p>
+<table class="ForrestTable" cellspacing="1" cellpadding="4">
+    
+<caption> SPL and Java data types comparison</caption>
+          
+<tr>
+            
+<th colspan="1" rowspan="1">SPL Data Type</th>
+            <th colspan="1" rowspan="1">Java Data Type</th>
+            <th colspan="1" rowspan="1">Notes </th>
+          
+</tr>
+          
+<tr>
+            
+<td colspan="1" rowspan="1"><strong>Sint8</strong></td>
+            <td colspan="1" rowspan="1">byte</td>
+            <td colspan="1" rowspan="1"></td>
+          
+</tr>
+          
+<tr>
+            
+<td colspan="1" rowspan="1"><strong>Sint16</strong></td>
+            <td colspan="1" rowspan="1">short</td>
+            <td colspan="1" rowspan="1"></td>
+          
+</tr>
+          
+<tr>
+            
+<td colspan="1" rowspan="1"><strong>Sint32</strong></td>
+            <td colspan="1" rowspan="1">int</td>
+            <td colspan="1" rowspan="1"></td>
+          
+</tr>
+          
+<tr>
+            
+<td colspan="1" rowspan="1"><strong>Sint64</strong></td>
+            <td colspan="1" rowspan="1">long</td>
+            <td colspan="1" rowspan="1"></td>
+          
+</tr>
+          
+<tr>
+            
+<td colspan="1" rowspan="1"><strong>Real32</strong></td>
+            <td colspan="1" rowspan="1">float</td>
+            <td colspan="1" rowspan="1"></td>
+          
+</tr>
+          
+<tr>
+            
+<td colspan="1" rowspan="1"><strong>Real64</strong></td>
+            <td colspan="1" rowspan="1">double</td>
+            <td colspan="1" rowspan="1"></td>
+          
+</tr>
+          
+<tr>
+            
+<td colspan="1" rowspan="1"><strong>Char16</strong></td>
+            <td colspan="1" rowspan="1">char</td>
+            <td colspan="1" rowspan="1"></td>
+          
+</tr>
+          
+<tr>
+            
+<td colspan="1" rowspan="1"><strong>String</strong></td>
+            <td colspan="1" rowspan="1">String</td>
+            <td colspan="1" rowspan="1"></td>
+          
+</tr>
+          
+<tr>
+            
+<td colspan="1" rowspan="1"><strong>DateTime</strong></td>
+            <td colspan="1" rowspan="1">Calendar</td>
+            <td colspan="1" rowspan="1"></td>
+          
+</tr>
+          
+<tr>
+            
+<td colspan="1" rowspan="1"><strong>Reference</strong></td>
+            <td colspan="1" rowspan="1">Java object</td>
+            <td colspan="1" rowspan="1">Any Java object</td>
+          
+</tr>
+          
+<tr>
+            
+<td colspan="1" rowspan="1"><strong>Boolean</strong></td>
+            <td colspan="1" rowspan="1">boolean</td>
+            <td colspan="1" rowspan="1"></td>
+          
+</tr>
+	
+	
+	
+</table>
+</div>
+	
+<a name="N1021D"></a><a name="builtin_ops"></a>
+<h2 class="boxed">SPL Built-in Operators</h2>
+<div class="section">
+<p> SPL ships with over a 100 core Operators. These operators are especially useful
+	    while defining complex conditions within a policy. New custom operators can be added to
+	    enhance SPL to work with a user's specific need. </p>
+<a name="N10226"></a><a name="numeric_ops"></a>
+<h3 class="boxed"> Numeric Operators </h3>
+<p> These operators perform numeric calculations on numeric operands. The implementation is largely
+	    the encapsulation of the Java Math operations.</p>
+<table class="ForrestTable" cellspacing="1" cellpadding="4">
+          
+<caption> Numeric Operators</caption>
+          
+<tr>
+            
+<th colspan="1" rowspan="1">Name</th>
+            <th colspan="1" rowspan="1">Description</th>
+            <th colspan="1" rowspan="1">Syntax</th>
+            <th colspan="1" rowspan="1">Example</th>
+          
+</tr>
+          
+<tr>
+            
+<td colspan="1" rowspan="1"><strong>+</strong></td>
+            <td colspan="1" rowspan="1">Returns the sum of two given numeric expressions</td>
+            <td colspan="1" rowspan="1">(&lt;numeric expression1&gt; + &lt;numeric expression2&gt; )</td>
+            <td colspan="1" rowspan="1"> 2 + 4 </td>
+          
+</tr>
+          
+<tr>
+            
+<td colspan="1" rowspan="1"><strong>/</strong></td>
+            <td colspan="1" rowspan="1">Returns the result of dividing two numeric expressions</td>
+            <td colspan="1" rowspan="1">(&lt;numeric expression1&gt; / &lt;numeric expression2&gt; )</td>
+            <td colspan="1" rowspan="1"> 4 / 2 </td>
+          
+</tr>
+          
+<tr>
+            
+<td colspan="1" rowspan="1"><strong>*</strong></td>
+            <td colspan="1" rowspan="1">Returns the product of numeric expression1 and numeric expression2 </td>
+            <td colspan="1" rowspan="1">(&lt;numeric expression1&gt; * &lt;numeric expression2&gt;)</td>
+            <td colspan="1" rowspan="1"> (2*2) </td>
+          
+</tr>
+          
+<tr>
+            
+<td colspan="1" rowspan="1"><strong>-</strong></td>
+            <td colspan="1" rowspan="1">Subtracts numeric argument 2 from numeric argument 1 </td>
+            <td colspan="1" rowspan="1">(&lt;numeric expression1&gt; - &lt;numeric expression2&gt;)</td>
+            <td colspan="1" rowspan="1"> (4 - 2) </td>
+          
+</tr>
+          
+<tr>
+            
+<td colspan="1" rowspan="1"><strong>Abs</strong></td>
+            <td colspan="1" rowspan="1">Returns the absolute value of the given numeric expression</td>
+            <td colspan="1" rowspan="1">Abs( &lt;numeric expression&gt; )</td>
+            <td colspan="1" rowspan="1"> Abs(2.4) </td>
+          
+</tr>
+          
+          
+<tr>
+            
+<td colspan="1" rowspan="1"><strong>Ceiling</strong></td>
+            <td colspan="1" rowspan="1">Returns the closest integer greater than or equal to the given numeric expressions</td>
+            <td colspan="1" rowspan="1">Ceiling(&lt;numeric expression&gt;)</td>
+            <td colspan="1" rowspan="1"> Ceiling(2.4) </td>
+          
+</tr>
+          
+          
+<tr>
+            
+<td colspan="1" rowspan="1"><strong>Exp</strong></td>
+            <td colspan="1" rowspan="1">Returns the exponential value of the given numeric expressions</td>
+            <td colspan="1" rowspan="1">Exp(&lt;numeric expression&gt;)</td>
+            <td colspan="1" rowspan="1"> Exp(2) </td>
+          
+</tr>
+          
+<tr>
+            
+<td colspan="1" rowspan="1"><strong>Floor</strong></td>
+            <td colspan="1" rowspan="1">Returns the closest integer smaller than or equal to the given numeric expressions</td>
+            <td colspan="1" rowspan="1">Floor(&lt;numeric expression&gt;)</td>
+            <td colspan="1" rowspan="1"> Floor(2.4) </td>
+          
+</tr>
+          
+<tr>
+            
+<td colspan="1" rowspan="1"><strong>Ln</strong></td>
+            <td colspan="1" rowspan="1">Returns the natural log of the given numeric expressions</td>
+            <td colspan="1" rowspan="1">Ln(&lt;numeric expression&gt;)</td>
+            <td colspan="1" rowspan="1"> Ln(2.4) </td>
+          
+</tr>
+          
+<tr>
+            
+<td colspan="1" rowspan="1"><strong>Log10</strong></td>
+            <td colspan="1" rowspan="1">Returns the log to the base 10 of the given numeric expressions</td>
+            <td colspan="1" rowspan="1">Log10(&lt;numeric expression&gt;)</td>
+            <td colspan="1" rowspan="1"> Log10(2.4) </td>
+          
+</tr>
+          
+<tr>
+            
+<td colspan="1" rowspan="1"><strong>Mod</strong></td>
+            <td colspan="1" rowspan="1">Returns the remainder after diving numeric expression1 with numeric expression2</td>
+            <td colspan="1" rowspan="1">(&lt;numeric expression1&gt; % &lt;numeric expression2&gt;)</td>
+            <td colspan="1" rowspan="1"> (4%2) </td>
+          
+</tr>
+          
+<tr>
+            
+<td colspan="1" rowspan="1"><strong>Power</strong></td>
+            <td colspan="1" rowspan="1">Returns the numeric value after raising numeric expression1 to the power of numeric expression2 </td>
+            <td colspan="1" rowspan="1">Power(&lt;numeric expression1&gt; , &lt;numeric expression2&gt;)</td>
+            <td colspan="1" rowspan="1"> Power(2,2) </td>
+          
+</tr>
+          
+<tr>
+            
+<td colspan="1" rowspan="1"><strong>Rint</strong></td>
+            <td colspan="1" rowspan="1">Rounds to the closest integer </td>
+            <td colspan="1" rowspan="1">Rint(&lt;numeric expression&gt;)</td>
+            <td colspan="1" rowspan="1"> Rint(2.4) </td>
+          
+</tr>
+          
+<tr>
+            
+<td colspan="1" rowspan="1"><strong>Round</strong></td>
+            <td colspan="1" rowspan="1">Adds 0.5 to the argument and returns the closest integer </td>
+            <td colspan="1" rowspan="1">Round(&lt;numeric expression&gt;)</td>
+            <td colspan="1" rowspan="1"> Round(2.4) </td>
+          
+</tr>
+          
+<tr>
+            
+<td colspan="1" rowspan="1"><strong>SquareRoot</strong></td>
+            <td colspan="1" rowspan="1">Returns the square root of the given numeric expressions </td>
+            <td colspan="1" rowspan="1">SquareRoot(&lt;numeric expression&gt;)</td>
+            <td colspan="1" rowspan="1"> SquareRoot(4) </td>
+          
+</tr>
+          
+          
+	   
+</table>
+<a name="N103B5"></a><a name="Comp_ops"></a>
+<h3 class="boxed"> Comparison Operators </h3>
+<p> As the name suggests these operators perform comparisons among type comparable
+	   operands. The return value is always Boolean. </p>
+<table class="ForrestTable" cellspacing="1" cellpadding="4">
+          
+<caption> Comparison Operators</caption>
+          
+<tr>
+            
+<th colspan="1" rowspan="1">Name</th>
+            <th colspan="1" rowspan="1">Description</th>
+            <th colspan="1" rowspan="1">Syntax</th>
+            <th colspan="1" rowspan="1">Example</th>
+          
+</tr>
+          
+<tr>
+            
+<td colspan="1" rowspan="1"><strong>==</strong></td>
+            <td colspan="1" rowspan="1">Returns true if the given two comparable expressions are equal</td>
+            <td colspan="1" rowspan="1">( &lt;expression1&gt; == &lt;expression2&gt; )</td>
+            <td colspan="1" rowspan="1"> 2 == 2 </td>
+          
+</tr>
+          
+<tr>
+            
+<td colspan="1" rowspan="1"><strong>&gt;</strong></td>
+            <td colspan="1" rowspan="1">Returns true if the value of expression1 is greater than the value of expression2. The given two expressions need to be comparable</td>
+            <td colspan="1" rowspan="1">( &lt;expression1&gt; &gt; &lt;expression2&gt; )</td>
+            <td colspan="1" rowspan="1"> 5 &gt; 4 </td>
+          
+</tr>
+          
+<tr>
+            
+<td colspan="1" rowspan="1"><strong>&gt;=</strong></td>
+            <td colspan="1" rowspan="1">Returns true if the value of expression1 is greater than or equal to the value of expression2. The given two expressions need to be comparable
+            Only permitted on String, numeric or calendar types</td>
+            <td colspan="1" rowspan="1">( &lt;expression1&gt; &gt;= &lt;expression2&gt; )</td>
+            <td colspan="1" rowspan="1"> 5 &gt;= 5 </td>
+          
+</tr>
+          
+<tr>
+            
+<td colspan="1" rowspan="1"><strong>&lt;</strong></td>
+            <td colspan="1" rowspan="1">Returns true if the value of expression1 is less than the value of expression2. The given two expressions need to be comparable
+            Only permitted on String, numeric or calendar types</td>
+            <td colspan="1" rowspan="1">( &lt;expression1&gt; &lt; &lt;expression2&gt; )</td>
+            <td colspan="1" rowspan="1"> 3 &lt; 4 </td>
+          
+</tr>
+          
+<tr>
+            
+<td colspan="1" rowspan="1"><strong>&lt;=</strong></td>
+            <td colspan="1" rowspan="1">Returns true if the value of expression1 is less than or equal to the value of expression2. The given two expressions need to be comparable
+            Only permitted on String, numeric or calendar types</td>
+            <td colspan="1" rowspan="1">( &lt;expression1&gt; &lt;= &lt;expression2&gt; )</td>
+            <td colspan="1" rowspan="1"> 3 &lt;= 4 </td>
+          
+</tr>
+          
+<tr>
+            
+<td colspan="1" rowspan="1"><strong>!=</strong></td>
+            <td colspan="1" rowspan="1">Returns true if the given two comparable expressions are not equal</td>
+            <td colspan="1" rowspan="1">( &lt;expression1&gt; != &lt;expression2&gt; )</td>
+            <td colspan="1" rowspan="1"> 2 != 4 </td>
+          
+</tr>
+
+	   
+</table>
+<a name="N1046C"></a><a name="bool_ops"></a>
+<h3 class="boxed"> Boolean Operators </h3>
+<p>These operators perform Logical operations like And, Or, Xor on Boolean operands.</p>
+<table class="ForrestTable" cellspacing="1" cellpadding="4">
+          
+<caption> Boolean Operators</caption>
+          
+<tr>
+            
+<th colspan="1" rowspan="1">Name</th>
+            <th colspan="1" rowspan="1">Description</th>
+            <th colspan="1" rowspan="1">Syntax</th>
+            <th colspan="1" rowspan="1">Example</th>
+          
+</tr>
+          
+<tr>
+            
+<td colspan="1" rowspan="1"><strong>&amp;&amp;</strong></td>
+            <td colspan="1" rowspan="1">Returns the result of a logical and on the two given boolean expressions</td>
+            <td colspan="1" rowspan="1">( &lt;boolean expression1&gt; &amp;&amp; &lt;boolean expression2&gt; )</td>
+            <td colspan="1" rowspan="1"> true &amp;&amp; true </td>
+          
+</tr>
+          
+<tr>
+            
+<td colspan="1" rowspan="1"><strong>!</strong></td>
+            <td colspan="1" rowspan="1">Returns the result of a logical not on the given boolean expression</td>
+            <td colspan="1" rowspan="1">!(&lt;boolean expression&gt; )</td>
+            <td colspan="1" rowspan="1"> !(false) </td>
+          
+</tr>
+          
+<tr>
+            
+<td colspan="1" rowspan="1"><strong>||</strong></td>
+            <td colspan="1" rowspan="1">Returns the result of a logical Or on the given two boolean expressions</td>
+            <td colspan="1" rowspan="1">(&lt;boolean expression1&gt; || &lt;boolean expression2&gt; )</td>
+            <td colspan="1" rowspan="1"> (false || true) </td>
+          
+</tr>
+          
+<tr>
+            
+<td colspan="1" rowspan="1"><strong>^</strong></td>
+            <td colspan="1" rowspan="1">Returns the result of a logical XOr on the given two boolean expressions</td>
+            <td colspan="1" rowspan="1">(&lt;boolean expression1&gt; ^ &lt;boolean expression2&gt; )</td>
+            <td colspan="1" rowspan="1"> (false ^ true) </td>
+          
+</tr>
+     
+</table>
+<a name="N104F3"></a><a name="string_ops"></a>
+<h3 class="boxed"> String Operators</h3>
+<p> A group of operators that deal with string operands. These include operators to manipulate strings
+     or test strings for specific patterns. </p>
+<table class="ForrestTable" cellspacing="1" cellpadding="4">
+          
+<caption> String Operators</caption>
+          
+<tr>
+            
+<th colspan="1" rowspan="1">Name</th>
+            <th colspan="1" rowspan="1">Description</th>
+            <th colspan="1" rowspan="1">Syntax</th>
+            <th colspan="1" rowspan="1">Example</th>
+          
+</tr>
+          
+<tr>
+            
+<td colspan="1" rowspan="1"><strong>Concatenate</strong></td>
+            <td colspan="1" rowspan="1">Returns the result of concatenating the two given string expressions</td>
+            <td colspan="1" rowspan="1">Concatenate( &lt;string expression1&gt;, &lt;string expression2&gt; )</td>
+            <td colspan="1" rowspan="1"> Concatenate("x","y") </td>
+          
+</tr>
+          
+<tr>
+            
+<td colspan="1" rowspan="1"><strong>Contains</strong></td>
+            <td colspan="1" rowspan="1">Returns true if string expression1 contains string expression2</td>
+            <td colspan="1" rowspan="1">Contains( &lt;string expression1&gt;, &lt;string expression2&gt; )</td>
+            <td colspan="1" rowspan="1"> Contains("xyz","y") </td>
+          
+</tr>
+          
+<tr>
+            
+<td colspan="1" rowspan="1"><strong>ContainsOnlyDigits</strong></td>
+            <td colspan="1" rowspan="1">Returns true if string expression1 only contains digits</td>
+            <td colspan="1" rowspan="1">ContainsOnlyDigits( &lt;string expression1&gt;)</td>
+            <td colspan="1" rowspan="1"> ContainsOnlyDigits("100") </td>
+          
+</tr>
+          
+<tr>
+            
+<td colspan="1" rowspan="1"><strong>ContainsOnlyLetters</strong></td>
+            <td colspan="1" rowspan="1">Returns true if string expression1 only contains letters</td>
+            <td colspan="1" rowspan="1">ContainsOnlyLetters( &lt;string expression1&gt;)</td>
+            <td colspan="1" rowspan="1"> ContainsOnlyLetters("abc") </td>
+          
+</tr>
+          
+<tr>
+            
+<td colspan="1" rowspan="1"><strong>ContainsOnlyLettersOrDigits</strong></td>
+            <td colspan="1" rowspan="1">Returns true if string expression1 only contains letters or digts</td>
+            <td colspan="1" rowspan="1">ContainsOnlyLettersOrDigits( &lt;string expression1&gt;)</td>
+            <td colspan="1" rowspan="1"> ContainsOnlyLettersOrDigits("abc12") </td>
+          
+</tr>
+          
+<tr>
+            
+<td colspan="1" rowspan="1"><strong>EndsWith</strong></td>
+            <td colspan="1" rowspan="1">Returns true if string expression1 ends with string expression2</td>
+            <td colspan="1" rowspan="1">EndsWith( &lt;string expression1&gt;,&lt;string expression2&gt;)</td>
+            <td colspan="1" rowspan="1"> EndsWith("abc12","12") </td>
+          
+</tr>
+          
+<tr>
+            
+<td colspan="1" rowspan="1"><strong>LeftSubString</strong></td>
+            <td colspan="1" rowspan="1">The LeftSubstring operator returns a prefix of a given string argument by taking three arguments. 
+            How to compute the prefix is determined by the arguments. The first argument MUST be a string and 
+            it indicates the given string, the second argument MUST be either an integer or a string indicating 
+            an offset, and the third argument MUST be a string indicating a direction and is either 
+            "LeftToRight" or "RightToLeft". When the offset is given by a number, the prefix is determined by 
+            counting the character position by the offset from either left to right (from the beginning of the string) 
+            or from right to left (from the end of the string). In particular, if the direction is "LeftToRight", 
+            the offset indicates the number of characters to return from the beginning of the string. 
+            If the direction is "RightToLeft", the offset indicates the number of characters to skip from the end of 
+            the string.  For example, leftSubstring("Mississippi", 4, "LeftToRight") returns "Miss", and 
+            leftSubstring("Mississippi", 4, "RightToLeft") returns "Mississ". 
+            When the offset is given by a string, the prefix is determined by searching for the offset string in the 
+            original string in the direction specified by the third parameter. The returned substring consists of the 
+            characters on the left side of the offset string</td>
+            <td colspan="1" rowspan="1">LeftSubString( &lt;string expression1&gt;,&lt;numeric expression2&gt;,&lt;string expression3&gt;)</td>
+            <td colspan="1" rowspan="1"> LeftSubString("StateSymbolAndZip",2, "LefToRight") //get the state</td>
+          
+</tr>
+          
+<tr>
+            
+<td colspan="1" rowspan="1"><strong>MatchesRegExp</strong></td>
+            <td colspan="1" rowspan="1">Returns true if string expression1 matches the regular expression defined by string expression2</td>
+            <td colspan="1" rowspan="1">MatchesRegExp( &lt;string expression1&gt;,&lt;string expression2&gt;)</td>
+            <td colspan="1" rowspan="1"> MatchesRegExp("cat","cat") </td>
+          
+</tr>
+          
+<tr>
+            
+<td colspan="1" rowspan="1"><strong>MiddleSubString</strong></td>
+            <td colspan="1" rowspan="1">The MiddleSubstring operator returns a middle portion of a given string using various arguments as filters.
+             How to compute the suffix is determined by the arguments. MiddleSubstring takes four arguments: 
+             original string, first offset, second offset, and direction string. The first and second offsets MUST 
+             be specified either by a number or a string. The direction string can be either "LeftToRight" or "RightToLeft". 
+             The meaning of the first offset is similar to that in the rightSubstring: it indicates where the resulting 
+             substring starts scanning, either from the left or from the right based on the direction string. The meaning 
+             of the second offset is as follows: if it is a number, it simply indicates the number of characters to return; 
+             if it is a string, it specifies where the substring should end.</td>
+            <td colspan="1" rowspan="1">MiddleSubString( &lt;string expression1&gt;,&lt;expression2&gt;,&lt;expression1&gt;,&lt;string expression1&gt;)</td>
+            <td colspan="1" rowspan="1"> middleSubstring("Mississippi", 4, 5, "LeftToRight") = "issip"
+                 middleSubstring("Mississippi", 4, 5, "RightToLeft") = "ippi"
+                 middleSubstring("Mississippi", "ss", 5, "LeftToRight") = "issip"
+                 middleSubstring("Mississippi", "ss", 5, "RightToLeft") = "ippi"
+                 middleSubstring("Mississippi", 4, "ss", "LeftToRight") = "i"
+                 middleSubstring("Mississippi", 4, "ss", "RightToLeft") = ""
+                 middleSubstring("Mississippi", "ss", "ip", "LeftToRight") = "iss"
+                 middleSubstring("Mississippi", "ss", "ip", "RightToLeft") = "Missi"
+           </td>
+          
+</tr>
+           
+<tr>
+            
+<td colspan="1" rowspan="1"><strong>ReplaceSubString</strong></td>
+            <td colspan="1" rowspan="1">Returns a string resulting from replacing all instances of the
+               fromSubstring with toSubstring in a given string.</td>
+            <td colspan="1" rowspan="1">MatchesRegExp( &lt;string expression1&gt;,&lt;from string expression&gt;,&lt;to string expression&gt;)</td>
+            <td colspan="1" rowspan="1"> ReplaceSubString(name,"cat","dog") </td>
+          
+</tr>
+          
+<tr>
+            
+<td colspan="1" rowspan="1"><strong>RightSubString</strong></td>
+            <td colspan="1" rowspan="1">The RightSubstring operator returns a suffix of a given string argument by taking three arguments. 
+            How to compute the suffix is determined by the arguments. The first argument MUST be a string and it indicates 
+            the given string, the second argument MUST be either an integer or a string indicating an offset, 
+            and the third argument MUST be a string indicating a direction and is either "LeftToRight" or "RightToLeft". 
+            When the offset is given by a number, the suffix is determined by simply counting the character position by the 
+            offset from either left to right (from the beginning of the string) or from right to left (from the end of the string). 
+            In particular, if the direction "RightToLeft", the offset indicates the number of characters to return as a suffix.
+            If the direction is "LeftToRight", the offset indicates the number of characters to skip from the beginning of the string.
+            Refer the CIM-SPL specification for more details.</td>
+            <td colspan="1" rowspan="1">RightSubString( &lt;string expression1&gt;,&lt;numeric expression2&gt;,&lt;string expression3&gt;)</td>
+            <td colspan="1" rowspan="1"> RightSubString("StateSymbolAndZip",2, "LefToRight") //get the zip </td>
+          
+</tr>
+          
+<tr>
+            
+<td colspan="1" rowspan="1"><strong>StartsWith</strong></td>
+            <td colspan="1" rowspan="1">Returns true if string expression1 starts with string expression2</td>
+            <td colspan="1" rowspan="1">StartsWith( &lt;string expression1&gt;,&lt;string expression2&gt;)</td>
+            <td colspan="1" rowspan="1"> StartsWith("just a test","just") </td>
+          
+</tr>
+          
+<tr>
+            
+<td colspan="1" rowspan="1"><strong>StringLength</strong></td>
+            <td colspan="1" rowspan="1">Returns the string length</td>
+            <td colspan="1" rowspan="1">StringLength( &lt;string expression1&gt;)</td>
+            <td colspan="1" rowspan="1"> StringLength("string") //6 </td>
+          
+</tr>
+          
+<tr>
+            
+<td colspan="1" rowspan="1"><strong>SubString</strong></td>
+            <td colspan="1" rowspan="1">The substring operator takes either two or three arguments. The first and second arguments of this operator 
+            are REQUIRED while the third argument is OPTIONAL. The first argument of this operator MUST be a string argument, 
+            while the second and third argument MUST be integer argument. This operator MUST return the substring of the first
+            string argument, starting at the position indicated by the second numeric argument and going to the end of the 
+            string or the position indicated by the third numeric argument - 1. The position of a character is determined as 
+            follows: The first character is at position 0, the second character is at position 1, and so on.
+            The second numeric argument MUST be greater than or equal to 0. The third numeric argument MUST be greater 
+            than the second numeric argument if the third argument is present. If the starting position given by the second 
+            numeric argument greater than the length of the string, an empty string SHALL be returned. If the third numeric 
+            position is not present, the string starting at the second numeric position until the end of the string SHALL be returned.
+            Refer the CIM-SPL specification for more details.
+            </td>
+            <td colspan="1" rowspan="1">SubString( &lt;string expression1&gt;,&lt;numeric expression2&gt;,[&lt;numeric expression2&gt;])</td>
+            <td colspan="1" rowspan="1"> SubString("Robert Hancock", 2, 8) //returns bert H </td>
+          
+</tr>
+          
+<tr>
+            
+<td colspan="1" rowspan="1"><strong>Word</strong></td>
+            <td colspan="1" rowspan="1">This operator MUST take three argument. The first two argument MUST be of type string and the third 
+            argument MUST be of type number. This operator MUST extracts n words from the first string argument where 
+            the third argument specifies the number n.  Words are defined as text between the separator 
+            substring given by the second argument. Refer the CIM-SPL specification for more details.</td>
+            <td colspan="1" rowspan="1">Word( &lt;string expression1&gt;,&lt;seperator string expression&gt;,&lt;numeric expression&gt;)</td>
+            <td colspan="1" rowspan="1"> Word("alpha"," ",3) </td>
+          
+</tr>
+          
+<tr>
+            
+<td colspan="1" rowspan="1"><strong>ToUpper</strong></td>
+            <td colspan="1" rowspan="1">Converts the argument string to uppercase </td>
+            <td colspan="1" rowspan="1">ToUpper( &lt;string expression1&gt;)</td>
+            <td colspan="1" rowspan="1"> ToUpper("alpha") // returns "ALPHA" </td>
+          
+</tr>
+          
+<tr>
+            
+<td colspan="1" rowspan="1"><strong>ToLower</strong></td>
+            <td colspan="1" rowspan="1">Converts the argument string to lowercase </td>
+            <td colspan="1" rowspan="1">ToLower( &lt;string expression1&gt;)</td>
+            <td colspan="1" rowspan="1"> ToLower("ALPHA") // returns "alpha" </td>
+          
+</tr>
+     
+</table>
+<a name="N106B2"></a><a name="coll_ops"></a>
+<h3 class="boxed"> Collection Operators </h3>
+<p> These are array manipulation and comparison operators. These operators encapsulate the complexity of 
+     traditional programming language constructs like loops and make the language more readable and maintainable.</p>
+<table class="ForrestTable" cellspacing="1" cellpadding="4">
+          
+<caption> Collection Operators</caption>
+          
+<tr>
+            
+<th colspan="1" rowspan="1">Name</th>
+            <th colspan="1" rowspan="1">Description</th>
+            <th colspan="1" rowspan="1">Syntax</th>
+            <th colspan="1" rowspan="1">Example</th>
+          
+</tr>
+          
+<tr>
+            
+<td colspan="1" rowspan="1"><strong>AllInCollection</strong></td>
+            <td colspan="1" rowspan="1">Checks whether all objects in a collection have a given property. The valid operator constant strings are
+            "OR", "AND", "XOR", "NOT_EQUAL", "EQUAL", "LESS", "GREATER", 
+            "LESS_OR_EQUAL", "GREATER_OR_EQUAL"</td>
+            <td colspan="1" rowspan="1">AllInCollection( &lt;expression1&gt;, &lt;boolean or relational operator constant string&gt; &lt;collection&gt;)</td>
+            <td colspan="1" rowspan="1"> AllInCollection(2,"LESS",arr) //where arr = [5,6,7] returns true</td>
+          
+</tr> 
+          
+<tr>
+            
+<td colspan="1" rowspan="1"><strong>AnyInCollection</strong></td>
+            <td colspan="1" rowspan="1">Checks whether any object in a collection has a given property. The valid operator constant strings are
+            "OR", "AND", "XOR", "NOT_EQUAL", "EQUAL", "LESS", "GREATER", 
+            "LESS_OR_EQUAL", "GREATER_OR_EQUAL"</td>
+            <td colspan="1" rowspan="1">AnyInCollection( &lt;expression1&gt;, &lt;boolean or relational operator constant string&gt; &lt;collection&gt;)</td>
+            <td colspan="1" rowspan="1"> AnyInCollection(2,"LESS",arr) //where arr = [1,6,7] returns true</td>
+          
+</tr> 
+          
+<tr>
+            
+<td colspan="1" rowspan="1"><strong>ApplyToCollection</strong></td>
+            <td colspan="1" rowspan="1">Applies an arithmetic operation to each element in a collection. The valid operator constant strings are
+            "PLUS ","MINUS ","MULTIPLY","DIVIDE",
+            </td>
+            <td colspan="1" rowspan="1">ApplyToCollection( &lt;expression1&gt;, &lt;arithmetic operator constant string&gt; &lt;numeric collection&gt;)</td>
+            <td colspan="1" rowspan="1"> ApplyToCollection(2,"PLUS",arr) //where arr = [1,6,7]  returns arr ] [3,8,9]</td>
+          
+</tr> 
+          
+<tr>
+            
+<td colspan="1" rowspan="1"><strong>AvrgInCollection</strong></td>
+            <td colspan="1" rowspan="1">Calculates the average of a numeric collection. </td>
+            <td colspan="1" rowspan="1">AvrgInCollection( &lt;numeric collection&gt;)</td>
+            <td colspan="1" rowspan="1"> AvrgInCollection(arr) //where arr = [2,3]  returns 2.5</td>
+          
+</tr>
+          
+<tr>
+            
+<td colspan="1" rowspan="1"><strong>CollectionSize</strong></td>
+            <td colspan="1" rowspan="1">Returns the size of the collection </td>
+            <td colspan="1" rowspan="1">CollectionSize( &lt;numeric collection&gt;)</td>
+            <td colspan="1" rowspan="1"> CollectionSize(arr) //where arr = [2,3,4]  returns 3</td>
+          
+</tr> 
+          
+<tr>
+            
+<td colspan="1" rowspan="1"><strong>EqCollection</strong></td>
+            <td colspan="1" rowspan="1">Returns true if two collections of comparable types are equal </td>
+            <td colspan="1" rowspan="1">EqCollection( &lt;collection1&gt;,&lt;collection2&gt;)</td>
+            <td colspan="1" rowspan="1"> EqCollection(arr1,arr2) //where arr1 = [2,3,4] and arr2 = [2,3,4]  returns true</td>
+          
+</tr> 
+          
+<tr>
+            
+<td colspan="1" rowspan="1"><strong>InCollection</strong></td>
+            <td colspan="1" rowspan="1">Returns true if the given value is a member of the collection (of compatible type) </td>
+            <td colspan="1" rowspan="1">InCollection( &lt;expression&gt;,&lt;collection&gt;)</td>
+            <td colspan="1" rowspan="1"> EqCollection(2,arr1) //where arr1 = [2,3,4]  returns true</td>
+          
+</tr> 
+          
+<tr>
+            
+<td colspan="1" rowspan="1"><strong>Max</strong></td>
+            <td colspan="1" rowspan="1">Returns greatest value in a numeric collection </td>
+            <td colspan="1" rowspan="1">Max( &lt;numeric collection&gt;)</td>
+            <td colspan="1" rowspan="1"> Max(arr1) //where arr1 = [2,3,4]  returns 4</td>
+          
+</tr> 
+          
+<tr>
+            
+<td colspan="1" rowspan="1"><strong>Min</strong></td>
+            <td colspan="1" rowspan="1">Returns smallest value in a numeric collection </td>
+            <td colspan="1" rowspan="1">Min( &lt;numeric collection&gt;)</td>
+            <td colspan="1" rowspan="1"> Min(arr1) //where arr1 = [2,3,4]  returns 2</td>
+          
+</tr> 
+          
+<tr>
+            
+<td colspan="1" rowspan="1"><strong>MedianInCollection</strong></td>
+            <td colspan="1" rowspan="1">Calculates the median of a numeric collection. </td>
+            <td colspan="1" rowspan="1">MedianInCollection( &lt;numeric collection&gt;)</td>
+            <td colspan="1" rowspan="1"> MedianInCollection(arr) //where arr = [2,3,4]  returns 3</td>
+          
+</tr>
+          
+<tr>
+            
+<td colspan="1" rowspan="1"><strong>SdInCollection</strong></td>
+            <td colspan="1" rowspan="1">Calculates the standard deviation of a numeric collection. </td>
+            <td colspan="1" rowspan="1">SdInCollection( &lt;numeric collection&gt;)</td>
+            <td colspan="1" rowspan="1"> SdInCollection(arr) //where arr = [2,3,4]  returns 0.81</td>
+          
+</tr>
+          
+<tr>
+            
+<td colspan="1" rowspan="1"><strong>SubCollection</strong></td>
+            <td colspan="1" rowspan="1">Checks whether collection2 is a subset of collection1</td>
+            <td colspan="1" rowspan="1">SubCollection( &lt;collection1&gt;,&lt;collection2&gt;)</td>
+            <td colspan="1" rowspan="1"> SubCollection(arr,arr2) //where arr = [2,3,4] and arr2 = [3,4]  returns true</td>
+          
+</tr>
+          
+<tr>
+            
+<td colspan="1" rowspan="1"><strong>Union</strong></td>
+            <td colspan="1" rowspan="1">Creates a union of 2 collections</td>
+            <td colspan="1" rowspan="1">Union( &lt;collection1&gt;,&lt;collection2&gt;)</td>
+            <td colspan="1" rowspan="1"> Union(arr,arr2) //where arr = [2,3,4] and arr2 = [5,6]  returns [2,3,4,5,6]</td>
+          
+</tr>
+      
+</table>
+<a name="N10811"></a><a name="calendar_ops"></a>
+<h3 class="boxed"> Calendar Operators</h3>
+<p> These operators allow comparison and retrieval of Date-Time related attributes.</p>
+<table class="ForrestTable" cellspacing="1" cellpadding="4">
+          
+<caption> Calendar Operators</caption>
+          
+<tr>
+            
+<th colspan="1" rowspan="1">Name</th>
+            <th colspan="1" rowspan="1">Description</th>
+            <th colspan="1" rowspan="1">Syntax</th>
+            <th colspan="1" rowspan="1">Example</th>
+          
+</tr>
+          
+<tr>
+            
+<td colspan="1" rowspan="1"><strong>GetCurrentTime</strong></td>
+            <td colspan="1" rowspan="1">Returns the current system date time</td>
+            <td colspan="1" rowspan="1">GetCurrentTime()</td>
+            <td colspan="1" rowspan="1"> GetCurrentTime() </td>
+          
+</tr> 
+          
+<tr>
+            
+<td colspan="1" rowspan="1"><strong>GetDayOfMonth</strong></td>
+            <td colspan="1" rowspan="1">Returns the day of month for the given datetime argument. The argument must be either
+            a string of the form yyyymmddHHMMSS.mmmmmmsUUU or a java.util.Calendar</td>
+            <td colspan="1" rowspan="1">GetDayOfMonth(&lt;datetime&gt;)</td>
+            <td colspan="1" rowspan="1"> GetDayOfMonth("20071013143920.000000-300") //returns 13</td>
+          
+</tr>  
+          
+<tr>
+            
+<td colspan="1" rowspan="1"><strong>GetDayOfWeek</strong></td>
+            <td colspan="1" rowspan="1">Returns the day of week for the given datetime argument. Sunday = 1, Monday = 2 etc
+             The argument must be eithera string of the form yyyymmddHHMMSS.mmmmmmsUUU or a java.util.Calendar</td>
+            <td colspan="1" rowspan="1">GetDayOfMonth(&lt;datetime&gt;)</td>
+            <td colspan="1" rowspan="1"> GetDayOfMonth("20081013143920.000000-300") //returns 2</td>
+          
+</tr>    
+          
+<tr>
+            
+<td colspan="1" rowspan="1"><strong>GetDayOfWeekInMonth</strong></td>
+            <td colspan="1" rowspan="1">MUST return the day of the week in month of the REQUIRED DATETIME argument as a numeric value, e.g., 
+            the DAY_OF_MONTH 1 through 7 always correspond to DAY_OF_WEEK_IN_MONTH 1; 8 through 14 correspond 
+            to DAY_OF_WEEK_IN_MONTH 2, and so on. DAY_OF_WEEK_IN_MONTH 0 indicates the week before DAY_OF_WEEK_IN_MONTH 1. 
+            Negative values count back from the end of the month, so the last Sunday of a month is specified as 
+            DAY_OF_WEEK = SUNDAY, DAY_OF_WEEK_IN_MONTH = -1.
+             The argument must be eithera string of the form yyyymmddHHMMSS.mmmmmmsUUU or a java.util.Calendar</td>
+            <td colspan="1" rowspan="1">GetDayOfWeekInMonth(&lt;datetime&gt;)</td>
+            <td colspan="1" rowspan="1"> GetDayOfWeekInMonth("20081013143920.000000-300") //returns 2</td>
+          
+</tr>  
+          
+<tr>
+            
+<td colspan="1" rowspan="1"><strong>GetDayOfYear</strong></td>
+            <td colspan="1" rowspan="1">Returns the day of year for the given datetime argument. 
+             The argument must be eithera string of the form yyyymmddHHMMSS.mmmmmmsUUU or a java.util.Calendar</td>
+            <td colspan="1" rowspan="1">GetDayOfMonth(&lt;datetime&gt;)</td>
+            <td colspan="1" rowspan="1"> GetDayOfMonth("20080113143920.000000-300") //returns 13</td>
+          
+</tr>
+          
+<tr>
+            
+<td colspan="1" rowspan="1"><strong>GetHour12</strong></td>
+            <td colspan="1" rowspan="1">Returns the hour for the given datetime argument in 12 hr format. 
+             The argument must be eithera string of the form yyyymmddHHMMSS.mmmmmmsUUU or a java.util.Calendar</td>
+            <td colspan="1" rowspan="1">GetHour12(&lt;datetime&gt;)</td>
+            <td colspan="1" rowspan="1"> GetHour12("20080113143920.000000-300") //returns 2</td>
+          
+</tr>
+          
+<tr>
+            
+<td colspan="1" rowspan="1"><strong>GetHour24</strong></td>
+            <td colspan="1" rowspan="1">Returns the hour for the given datetime argument in 24 hr format. 
+             The argument must be eithera string of the form yyyymmddHHMMSS.mmmmmmsUUU or a java.util.Calendar</td>
+            <td colspan="1" rowspan="1">GetHour12(&lt;datetime&gt;)</td>
+            <td colspan="1" rowspan="1"> GetHour12("20080113143920.000000-300") //returns 14</td>
+          
+</tr>
+          
+<tr>
+            
+<td colspan="1" rowspan="1"><strong>GetMillisecond</strong></td>
+            <td colspan="1" rowspan="1">Returns the millisecond for the given datetime argument. 
+             The argument must be eithera string of the form yyyymmddHHMMSS.mmmmmmsUUU or a java.util.Calendar</td>
+            <td colspan="1" rowspan="1">GetHour12(&lt;datetime&gt;)</td>
+            <td colspan="1" rowspan="1"> GetHour12("20080113143920.000234-300") //returns 234</td>
+          
+</tr>
+          
+<tr>
+            
+<td colspan="1" rowspan="1"><strong>GetMinute</strong></td>
+            <td colspan="1" rowspan="1">Returns the minute for the given datetime argument. 
+             The argument must be eithera string of the form yyyymmddHHMMSS.mmmmmmsUUU or a java.util.Calendar</td>
+            <td colspan="1" rowspan="1">GetMinute(&lt;datetime&gt;)</td>
+            <td colspan="1" rowspan="1"> GetMinute("20080113143920.000234-300") //returns 39</td>
+          
+</tr>
+          
+<tr>
+            
+<td colspan="1" rowspan="1"><strong>GetMonth</strong></td>
+            <td colspan="1" rowspan="1">Returns the month for the given datetime argument. 
+             The argument must be eithera string of the form yyyymmddHHMMSS.mmmmmmsUUU or a java.util.Calendar</td>
+            <td colspan="1" rowspan="1">GetMonth(&lt;datetime&gt;)</td>
+            <td colspan="1" rowspan="1"> GetMonth("20080113143920.000234-300") //returns 1</td>
+          
+</tr>
+          
+<tr>
+            
+<td colspan="1" rowspan="1"><strong>GetSecond</strong></td>
+            <td colspan="1" rowspan="1">Returns the second for the given datetime argument. 
+             The argument must be eithera string of the form yyyymmddHHMMSS.mmmmmmsUUU or a java.util.Calendar</td>
+            <td colspan="1" rowspan="1">GetSecond(&lt;datetime&gt;)</td>
+            <td colspan="1" rowspan="1"> GetSecond("20080113143920.000234-300") //returns 20</td>
+          
+</tr>
+          
+<tr>
+            
+<td colspan="1" rowspan="1"><strong>GetWeekOfMonth</strong></td>
+            <td colspan="1" rowspan="1">Returns the week within the month for the given datetime argument. 
+             The argument must be eithera string of the form yyyymmddHHMMSS.mmmmmmsUUU or a java.util.Calendar</td>
+            <td colspan="1" rowspan="1">GetWeekOfMonth(&lt;datetime&gt;)</td>
+            <td colspan="1" rowspan="1"> GetWeekOfMonth("20080113143920.000234-300") //returns 2</td>
+          
+</tr>
+          
+<tr>
+            
+<td colspan="1" rowspan="1"><strong>GetWeekOfYear</strong></td>
+            <td colspan="1" rowspan="1">Returns the week of the year for the given datetime argument. 
+             The argument must be eithera string of the form yyyymmddHHMMSS.mmmmmmsUUU or a java.util.Calendar</td>
+            <td colspan="1" rowspan="1">GetWeekOfYear(&lt;datetime&gt;)</td>
+            <td colspan="1" rowspan="1"> GetWeekOfYear("20080113143920.000234-300") //returns 2</td>
+          
+</tr>
+          
+<tr>
+            
+<td colspan="1" rowspan="1"><strong>GetYear</strong></td>
+            <td colspan="1" rowspan="1">Returns the year for the given datetime argument. 
+             The argument must be eithera string of the form yyyymmddHHMMSS.mmmmmmsUUU or a java.util.Calendar</td>
+            <td colspan="1" rowspan="1">GetYear(&lt;datetime&gt;)</td>
+            <td colspan="1" rowspan="1"> GetYear("20080113143920.000234-300") //returns 2008</td>
+          
+</tr>
+          
+<tr>
+            
+<td colspan="1" rowspan="1"><strong>IsAfter</strong></td>
+            <td colspan="1" rowspan="1">Returns true if date argument1 is after date argument2. 
+             The argument must be eithera string of the form yyyymmddHHMMSS.mmmmmmsUUU or a java.util.Calendar</td>
+            <td colspan="1" rowspan="1">IsAfter(&lt;datetime1&gt;,&lt;datetime2&gt;)</td>
+            <td colspan="1" rowspan="1"> IsAfter("20080113143920.000234-300","20070113143920.000234-300") //returns true</td>
+          
+</tr>
+          
+<tr>
+            
+<td colspan="1" rowspan="1"><strong>IsBefore</strong></td>
+            <td colspan="1" rowspan="1">Returns true if date argument1 is before date argument2. 
+             The argument must be eithera string of the form yyyymmddHHMMSS.mmmmmmsUUU or a java.util.Calendar</td>
+            <td colspan="1" rowspan="1">IsBefore(&lt;datetime1&gt;,&lt;datetime2&gt;)</td>
+            <td colspan="1" rowspan="1"> IsBefore("20080113143920.000234-300","20070113143920.000234-300") //returns false</td>
+          
+</tr>
+          
+<tr>
+            
+<td colspan="1" rowspan="1"><strong>IsWithin</strong></td>
+            <td colspan="1" rowspan="1">Returns true if date argument1 is within date argument2 and argument3. 
+             The arguments must be eithera string of the form yyyymmddHHMMSS.mmmmmmsUUU or a java.util.Calendar</td>
+            <td colspan="1" rowspan="1">IsWithin(&lt;datetime1&gt;,&lt;datetime2&gt;,&lt;datetime3&gt;)</td>
+            <td colspan="1" rowspan="1">IsWithin("20070113143920.000234-300","20060113143920.000234-300","20080113143920.000234-300") //returns false</td>
+          
+</tr>
+      
+</table>
+<a name="N109D0"></a><a name="Unary_ops"></a>
+<h3 class="boxed"> Unary Operators</h3>
+<p> As the name suggests these operators require only a single operand.</p>
+<table class="ForrestTable" cellspacing="1" cellpadding="4">
+          
+<caption> Unary Operators</caption>
+          
+<tr>
+            
+<th colspan="1" rowspan="1">Name</th>
+            <th colspan="1" rowspan="1">Description</th>
+            <th colspan="1" rowspan="1">Syntax</th>
+            <th colspan="1" rowspan="1">Example</th>
+          
+</tr>
+          
+<tr>
+            
+<td colspan="1" rowspan="1"><strong>Unary Minus operator</strong></td>
+            <td colspan="1" rowspan="1">Negates a numeric expression</td>
+            <td colspan="1" rowspan="1">-(&lt;expression&gt;)</td>
+            <td colspan="1" rowspan="1"> -(2+4)</td>
+          
+</tr> 
+          
+<tr>
+            
+<td colspan="1" rowspan="1"><strong>Unary Plus operator</strong></td>
+            <td colspan="1" rowspan="1">Leaves a numeric expression unchanged</td>
+            <td colspan="1" rowspan="1">+(&lt;expression&gt;)</td>
+            <td colspan="1" rowspan="1"> +(2+4)</td>
+          
+</tr>  
+          
+<tr>
+            
+<td colspan="1" rowspan="1"><strong>Unary Not operator</strong></td>
+            <td colspan="1" rowspan="1">Negates a boolean expression</td>
+            <td colspan="1" rowspan="1">!(&lt;boolean expression&gt;)</td>
+            <td colspan="1" rowspan="1"> !(true)</td>
+          
+</tr> 
+      
+</table>
+<a name="N10A3F"></a><a name="Cast_ops"></a>
+<h3 class="boxed"> Cast Operators </h3>
+<p> These are transformation operators that allow legal conversions between
+      different data types. Note: General rules of widening and shortening conversions apply. </p>
+<table class="ForrestTable" cellspacing="1" cellpadding="4">
+          
+<caption> Cast Operators</caption>
+          
+<tr>
+            
+<th colspan="1" rowspan="1">Name</th>
+            <th colspan="1" rowspan="1">Description</th>
+            <th colspan="1" rowspan="1">Syntax</th>
+            <th colspan="1" rowspan="1">Example</th>
+          
+</tr>
+          
+<tr>
+            
+<td colspan="1" rowspan="1"><strong>ToBoolean</strong></td>
+            <td colspan="1" rowspan="1">Converts an expression to boolean</td>
+            <td colspan="1" rowspan="1">ToBoolean(&lt;expression&gt;)</td>
+            <td colspan="1" rowspan="1"> ToBoolean("true") // returns true</td>
+          
+</tr>
+          
+<tr>
+            
+<td colspan="1" rowspan="1"><strong>ToREAL32</strong></td>
+            <td colspan="1" rowspan="1">Converts an expression to float</td>
+            <td colspan="1" rowspan="1">ToReal32(&lt;expression&gt;)</td>
+            <td colspan="1" rowspan="1"> ToReal32(4) // returns 4.0</td>
+          
+</tr> 
+          
+<tr>
+            
+<td colspan="1" rowspan="1"><strong>ToREAL64</strong></td>
+            <td colspan="1" rowspan="1">Converts an expression to double</td>
+            <td colspan="1" rowspan="1">ToReal64(&lt;expression&gt;)</td>
+            <td colspan="1" rowspan="1"> ToReal64(4) // returns 4.0</td>
+          
+</tr> 
+          
+<tr>
+            
+<td colspan="1" rowspan="1"><strong>ToSINT16</strong></td>
+            <td colspan="1" rowspan="1">Converts an expression to short</td>
+            <td colspan="1" rowspan="1">ToSINT16(&lt;expression&gt;)</td>
+            <td colspan="1" rowspan="1"> ToSINT16(4) // returns 4</td>
+          
+</tr>
+          
+<tr>
+            
+<td colspan="1" rowspan="1"><strong>ToSINT32</strong></td>
+            <td colspan="1" rowspan="1">Converts an expression to int</td>
+            <td colspan="1" rowspan="1">ToSINT32(&lt;expression&gt;)</td>
+            <td colspan="1" rowspan="1"> ToSINT32(4.0) // returns 4</td>
+          
+</tr>
+          
+<tr>
+            
+<td colspan="1" rowspan="1"><strong>ToSINT64</strong></td>
+            <td colspan="1" rowspan="1">Converts an expression to long</td>
+            <td colspan="1" rowspan="1">ToSINT64(&lt;expression&gt;)</td>
+            <td colspan="1" rowspan="1"> ToSINT64(4) // returns 4</td>
+          
+</tr>
+          
+<tr>
+            
+<td colspan="1" rowspan="1"><strong>ToSINT8</strong></td>
+            <td colspan="1" rowspan="1">Converts an expression to byte</td>
+            <td colspan="1" rowspan="1">ToSINT8(&lt;expression&gt;)</td>
+            <td colspan="1" rowspan="1"> ToSINT8(4) // returns 4</td>
+          
+</tr>
+          
+<tr>
+            
+<td colspan="1" rowspan="1"><strong>ToString</strong></td>
+            <td colspan="1" rowspan="1">Converts an expression to string</td>
+            <td colspan="1" rowspan="1">ToString(&lt;expression&gt;)</td>
+            <td colspan="1" rowspan="1"> ToString(4) // returns "4"</td>
+          
+</tr>
+       
+</table>
+</div>
+	
+<a name="N10B27"></a><a name="builtin_actions"></a>
+<h2 class="boxed">Built in Actions </h2>
+<div class="section">
+<p> SPL comes out of the box with a set of Actions. Users can extend the SPL action set by adding
+    their own custom actions. </p>
+<table class="ForrestTable" cellspacing="1" cellpadding="4">
+          
+<caption> Core SPL Actions</caption>
+          
+<tr>
+            
+<th colspan="1" rowspan="1">Name</th>
+            <th colspan="1" rowspan="1">Description</th>
+            <th colspan="1" rowspan="1">Syntax</th>
+            <th colspan="1" rowspan="1">Example</th>
+          
+</tr>
+          
+<tr>
+            
+<td colspan="1" rowspan="1"><strong>ReturnValues</strong></td>
+            <td colspan="1" rowspan="1">Allows the objects to be returned after policy execution.</td>
+            <td colspan="1" rowspan="1">ReturnValues(&lt;expression&gt;,[&lt;expression&gt;]*)</td>
+            <td colspan="1" rowspan="1"> ReturnValues("xx") // returns String "xx"</td>
+          
+</tr>
+          
+<tr>
+            
+<td colspan="1" rowspan="1"><strong>SendMail</strong></td>
+            <td colspan="1" rowspan="1">Sends an email to the given email address with the given subject and message body.
+            Note: SendMail is not a core action but is provided as an example of a custom action.
+            </td>
+            <td colspan="1" rowspan="1">SendMail(&lt;from address string expression&gt;,&lt;to address string expression&gt;,&lt;subject string expression&gt;,&lt;message body string expression&gt;)</td>
+            <td colspan="1" rowspan="1"> SendMail("from@mail.com","to@mail.com","hi","whaddup?") </td>
+          
+</tr>
+          
+<tr>
+            
+<td colspan="1" rowspan="1"><strong>CommandLineExecution</strong></td>
+            <td colspan="1" rowspan="1">Executes a shell or batch command.
+            Note: CommandLineExecution is not a core action but is provided as an example of a custom action.
+            </td>
+            <td colspan="1" rowspan="1">CommandLineExecution(&lt;string command expression&gt;)</td>
+            <td colspan="1" rowspan="1"> CommandLineExecution("cleanmgr /sagerun:128") </td>
+          
+</tr>
+    
+</table>
+</div>	
+	
+<a name="N10B96"></a><a name="refs"></a>
+<h2 class="boxed"> References </h2>
+<div class="section">
+<ul>
+    
+<li>
+<a href="http://www.dmtf.org/standards/published_documents/DSP0231.pdf">CIM-SPL Specification</a> 
+</li>
+	
+</ul>
+</div>
+      
+  
+    
+  
+</div>
+<!--+
+    |end content
+    +-->
+<div class="clearboth">&nbsp;</div>
+</div>
+<div id="footer">
+<!--+
+    |start bottomstrip
+    +-->
+<div class="lastmodified">
+<script type="text/javascript"><!--
+document.write("Last Published: " + document.lastModified);
+//  --></script>
+</div>
+<div class="copyright">
+        Copyright &copy;
+         2007-2008 <a href="http://www.apache.org/">Apache Software Foundation.</a>
+</div>
+<!--+
+    |end bottomstrip
+    +-->
+</div>
+</body>
+</html>

Propchange: incubator/imperius/site/build/site/en/docs/spl_reference.html
------------------------------------------------------------------------------
    svn:eol-style = native

Modified: incubator/imperius/site/build/site/en/download/download.html
URL: http://svn.apache.org/viewvc/incubator/imperius/site/build/site/en/download/download.html?rev=618755&r1=618754&r2=618755&view=diff
==============================================================================
--- incubator/imperius/site/build/site/en/download/download.html (original)
+++ incubator/imperius/site/build/site/en/download/download.html Tue Feb  5 11:28:59 2008
@@ -66,6 +66,12 @@
 <li class="current">
 <a class="selected" href="../download/download.html">Download</a>
 </li>
+<li>
+<a class="unselected" href="../docs/getting_started.html">Documentation</a>
+</li>
+<li>
+<a class="unselected" href="../community/contribute.html">Community</a>
+</li>
 </ul>
 <!--+
     |end Tabs

Modified: incubator/imperius/site/build/site/en/index.html
URL: http://svn.apache.org/viewvc/incubator/imperius/site/build/site/en/index.html?rev=618755&r1=618754&r2=618755&view=diff
==============================================================================
--- incubator/imperius/site/build/site/en/index.html (original)
+++ incubator/imperius/site/build/site/en/index.html Tue Feb  5 11:28:59 2008
@@ -66,6 +66,12 @@
 <li>
 <a class="unselected" href="download/download.html">Download</a>
 </li>
+<li>
+<a class="unselected" href="docs/getting_started.html">Documentation</a>
+</li>
+<li>
+<a class="unselected" href="community/contribute.html">Community</a>
+</li>
 </ul>
 <!--+
     |end Tabs
@@ -121,6 +127,9 @@
 <div id="menu_1.3" class="menuitemgroup">
 <div class="menuitem">
 <a href="docs/getting_started.html" title="Get Started">Getting Started</a>
+</div>
+<div class="menuitem">
+<a href="docs/spl_reference.html" title="SPL Language Reference">SPL Language Reference</a>
 </div>
 <div class="menuitem">
 <a href="docs/javaspl_user_guide.html" title="User Guide">JavaSPL User Guide</a>

Modified: incubator/imperius/site/build/site/en/license.html
URL: http://svn.apache.org/viewvc/incubator/imperius/site/build/site/en/license.html?rev=618755&r1=618754&r2=618755&view=diff
==============================================================================
--- incubator/imperius/site/build/site/en/license.html (original)
+++ incubator/imperius/site/build/site/en/license.html Tue Feb  5 11:28:59 2008
@@ -66,6 +66,12 @@
 <li>
 <a class="unselected" href="download/download.html">Download</a>
 </li>
+<li>
+<a class="unselected" href="docs/getting_started.html">Documentation</a>
+</li>
+<li>
+<a class="unselected" href="community/contribute.html">Community</a>
+</li>
 </ul>
 <!--+
     |end Tabs
@@ -121,6 +127,9 @@
 <div id="menu_1.3" class="menuitemgroup">
 <div class="menuitem">
 <a href="docs/getting_started.html" title="Get Started">Getting Started</a>
+</div>
+<div class="menuitem">
+<a href="docs/spl_reference.html" title="SPL Language Reference">SPL Language Reference</a>
 </div>
 <div class="menuitem">
 <a href="docs/javaspl_user_guide.html" title="User Guide">JavaSPL User Guide</a>

Modified: incubator/imperius/site/build/site/en/linkmap.html
URL: http://svn.apache.org/viewvc/incubator/imperius/site/build/site/en/linkmap.html?rev=618755&r1=618754&r2=618755&view=diff
==============================================================================
--- incubator/imperius/site/build/site/en/linkmap.html (original)
+++ incubator/imperius/site/build/site/en/linkmap.html Tue Feb  5 11:28:59 2008
@@ -66,6 +66,12 @@
 <li>
 <a class="unselected" href="download/download.html">Download</a>
 </li>
+<li>
+<a class="unselected" href="docs/getting_started.html">Documentation</a>
+</li>
+<li>
+<a class="unselected" href="community/contribute.html">Community</a>
+</li>
 </ul>
 <!--+
     |end Tabs
@@ -123,6 +129,9 @@
 <a href="docs/getting_started.html" title="Get Started">Getting Started</a>
 </div>
 <div class="menuitem">
+<a href="docs/spl_reference.html" title="SPL Language Reference">SPL Language Reference</a>
+</div>
+<div class="menuitem">
 <a href="docs/javaspl_user_guide.html" title="User Guide">JavaSPL User Guide</a>
 </div>
 <div class="menuitem">
@@ -218,6 +227,11 @@
 <ul>
 <li>
 <a href="docs/getting_started.html">Getting Started</a>&nbsp;&nbsp;___________________&nbsp;&nbsp;<em>gettingstarted</em>&nbsp;: Get Started</li>
+</ul>
+      
+<ul>
+<li>
+<a href="docs/spl_reference.html">SPL Language Reference</a>&nbsp;&nbsp;___________________&nbsp;&nbsp;<em>splreference</em>&nbsp;: SPL Language Reference</li>
 </ul>
       
 <ul>

Modified: incubator/imperius/site/build/tmp/cocoon-work/cache-dir/cocoon-ehcache-1.data
URL: http://svn.apache.org/viewvc/incubator/imperius/site/build/tmp/cocoon-work/cache-dir/cocoon-ehcache-1.data?rev=618755&r1=618754&r2=618755&view=diff
==============================================================================
Binary files - no diff available.

Modified: incubator/imperius/site/build/tmp/cocoon-work/cache-dir/cocoon-ehcache-1.index
URL: http://svn.apache.org/viewvc/incubator/imperius/site/build/tmp/cocoon-work/cache-dir/cocoon-ehcache-1.index?rev=618755&r1=618754&r2=618755&view=diff
==============================================================================
Binary files - no diff available.

Modified: incubator/imperius/site/build/tmp/projfilters.properties
URL: http://svn.apache.org/viewvc/incubator/imperius/site/build/tmp/projfilters.properties?rev=618755&r1=618754&r2=618755&view=diff
==============================================================================
--- incubator/imperius/site/build/tmp/projfilters.properties (original)
+++ incubator/imperius/site/build/tmp/projfilters.properties Tue Feb  5 11:28:59 2008
@@ -1,5 +1,5 @@
 #Ant properties
-#Fri Jan 18 22:25:44 EST 2008
+#Tue Feb 05 14:25:36 EST 2008
 project.sitemap=src/documentation/sitemap.xmap
 project.war=C\:\\neeraj\\spl\\workspace\\imperius-final\\site\\build\\my-project.war
 project.name=my-project

Modified: incubator/imperius/site/src/documentation/content/xdocs/docs/spl_editor_guide.xml
URL: http://svn.apache.org/viewvc/incubator/imperius/site/src/documentation/content/xdocs/docs/spl_editor_guide.xml?rev=618755&r1=618754&r2=618755&view=diff
==============================================================================
--- incubator/imperius/site/src/documentation/content/xdocs/docs/spl_editor_guide.xml (original)
+++ incubator/imperius/site/src/documentation/content/xdocs/docs/spl_editor_guide.xml Tue Feb  5 11:28:59 2008
@@ -54,7 +54,8 @@
     	<p>
     		To use the JavaSPL editor you will first need to download and install 
     		<a href="http://www.eclipse.org/downloads">eclipse platform 3.3 or later </a> 
-    		and <a href="http://www.eclipse.org/downloads"> EMF 2.3 or later </a>
+    		,<a href="http://www.eclipse.org/downloads"> EMF 2.3 or later </a> and
+    		the <a href="http://antlreclipse.sourceforge.net"> ANTLR v2 plugin </a>
     	</p>
     	</section>