You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@olingo.apache.org by ko...@apache.org on 2014/09/15 13:55:42 UTC
svn commit: r1625002 [7/14] - in
/olingo/site/trunk/content/doc/javascript/apidoc: ./ scripts/
scripts/prettify/ styles/
Added: olingo/site/trunk/content/doc/javascript/apidoc/memory-MemoryStore.html
URL: http://svn.apache.org/viewvc/olingo/site/trunk/content/doc/javascript/apidoc/memory-MemoryStore.html?rev=1625002&view=auto
==============================================================================
--- olingo/site/trunk/content/doc/javascript/apidoc/memory-MemoryStore.html (added)
+++ olingo/site/trunk/content/doc/javascript/apidoc/memory-MemoryStore.html Mon Sep 15 11:55:41 2014
@@ -0,0 +1,1831 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+ <meta charset="utf-8">
+ <title>JSDoc: Class: MemoryStore</title>
+
+ <script src="scripts/prettify/prettify.js"> </script>
+ <script src="scripts/prettify/lang-css.js"> </script>
+ <!--[if lt IE 9]>
+ <script src="//html5shiv.googlecode.com/svn/trunk/html5.js"></script>
+ <![endif]-->
+ <link type="text/css" rel="stylesheet" href="styles/prettify-tomorrow.css">
+ <link type="text/css" rel="stylesheet" href="styles/jsdoc-default.css">
+</head>
+
+<body>
+
+<div id="main">
+
+ <h1 class="page-title">Class: MemoryStore</h1>
+
+
+
+
+
+<section>
+
+<header>
+ <h2>
+ <span class="ancestors"><a href="memory.html">store/memory</a>~</span>
+
+ MemoryStore
+ </h2>
+
+ <div class="class-description">MemoryStore</div>
+
+</header>
+
+<article>
+ <div class="container-overview">
+
+
+
+
+<dt>
+ <h4 class="name" id="MemoryStore"><span class="type-signature"></span>new MemoryStore<span class="signature">(name)</span><span class="type-signature"></span></h4>
+
+
+</dt>
+<dd>
+
+
+ <div class="description">
+ Constructor for store objects that use a sorted array as the underlying mechanism.
+ </div>
+
+
+
+
+
+
+
+ <h5>Parameters:</h5>
+
+
+<table class="params">
+ <thead>
+ <tr>
+
+ <th>Name</th>
+
+
+ <th>Type</th>
+
+
+
+
+
+ <th class="last">Description</th>
+ </tr>
+ </thead>
+
+ <tbody>
+
+
+ <tr>
+
+ <td class="name"><code>name</code></td>
+
+
+ <td class="type">
+
+
+<span class="param-type">String</span>
+
+
+
+ </td>
+
+
+
+
+
+ <td class="description last">Store name.</td>
+ </tr>
+
+
+ </tbody>
+</table>
+
+
+
+<dl class="details">
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ <dt class="tag-source">Source:</dt>
+ <dd class="tag-source"><ul class="dummy"><li>
+ <a href="memory.js.html">store/memory.js</a>, <a href="memory.js.html#line34">line 34</a>
+ </li></ul></dd>
+
+
+
+
+
+
+
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+</dd>
+
+
+ </div>
+
+
+
+
+
+
+
+
+
+
+
+
+ <h3 class="subsection-title">Members</h3>
+
+ <dl>
+
+<dt>
+ <h4 class="name" id="mechanism"><span class="type-signature"></span>mechanism<span class="type-signature"></span></h4>
+
+
+</dt>
+<dd>
+
+ <div class="description">
+ Identifies the underlying mechanism used by the store.
+ </div>
+
+
+
+
+
+<dl class="details">
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ <dt class="tag-source">Source:</dt>
+ <dd class="tag-source"><ul class="dummy"><li>
+ <a href="memory.js.html">store/memory.js</a>, <a href="memory.js.html#line242">line 242</a>
+ </li></ul></dd>
+
+
+
+
+
+
+
+</dl>
+
+
+
+</dd>
+
+ </dl>
+
+
+
+ <h3 class="subsection-title">Methods</h3>
+
+ <dl>
+
+<dt>
+ <h4 class="name" id="add"><span class="type-signature"></span>add<span class="signature">(key, value, success, error)</span><span class="type-signature"></span></h4>
+
+
+</dt>
+<dd>
+
+
+ <div class="description">
+ This method errors out if the store already contains the specified key.
+ </div>
+
+
+
+
+
+
+
+ <h5>Parameters:</h5>
+
+
+<table class="params">
+ <thead>
+ <tr>
+
+ <th>Name</th>
+
+
+ <th>Type</th>
+
+
+
+
+
+ <th class="last">Description</th>
+ </tr>
+ </thead>
+
+ <tbody>
+
+
+ <tr>
+
+ <td class="name"><code>key</code></td>
+
+
+ <td class="type">
+
+
+<span class="param-type">String</span>
+
+
+
+ </td>
+
+
+
+
+
+ <td class="description last">Key string.</td>
+ </tr>
+
+
+
+ <tr>
+
+ <td class="name"><code>value</code></td>
+
+
+ <td class="type">
+
+ </td>
+
+
+
+
+
+ <td class="description last">Value that is going to be added to the store.</td>
+ </tr>
+
+
+
+ <tr>
+
+ <td class="name"><code>success</code></td>
+
+
+ <td class="type">
+
+
+<span class="param-type">function</span>
+
+
+
+ </td>
+
+
+
+
+
+ <td class="description last">Callback for a successful add operation.</param></td>
+ </tr>
+
+
+
+ <tr>
+
+ <td class="name"><code>error</code></td>
+
+
+ <td class="type">
+
+
+<span class="param-type">function</span>
+
+
+
+ </td>
+
+
+
+
+
+ <td class="description last">Callback for handling errors. If not specified then store.defaultError is invoked.</param></td>
+ </tr>
+
+
+ </tbody>
+</table>
+
+
+
+<dl class="details">
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ <dt class="tag-source">Source:</dt>
+ <dd class="tag-source"><ul class="dummy"><li>
+ <a href="memory.js.html">store/memory.js</a>, <a href="memory.js.html#line70">line 70</a>
+ </li></ul></dd>
+
+
+
+
+
+
+
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+</dd>
+
+
+
+<dt>
+ <h4 class="name" id="addOrUpdate"><span class="type-signature"></span>addOrUpdate<span class="signature">(key, value, success, <span class="optional">error</span>)</span><span class="type-signature"></span></h4>
+
+
+ <p class="summary">Adds or updates a value identified by a key to the store.</p>
+
+</dt>
+<dd>
+
+
+ <div class="description">
+ This method will overwrite the key's current value if it already exists in the store; otherwise it simply adds the new key and value.
+ </div>
+
+
+
+
+
+
+
+ <h5>Parameters:</h5>
+
+
+<table class="params">
+ <thead>
+ <tr>
+
+ <th>Name</th>
+
+
+ <th>Type</th>
+
+
+ <th>Argument</th>
+
+
+
+
+ <th class="last">Description</th>
+ </tr>
+ </thead>
+
+ <tbody>
+
+
+ <tr>
+
+ <td class="name"><code>key</code></td>
+
+
+ <td class="type">
+
+
+<span class="param-type">String</span>
+
+
+
+ </td>
+
+
+ <td class="attributes">
+
+
+
+
+
+ </td>
+
+
+
+
+ <td class="description last">Key string.</td>
+ </tr>
+
+
+
+ <tr>
+
+ <td class="name"><code>value</code></td>
+
+
+ <td class="type">
+
+ </td>
+
+
+ <td class="attributes">
+
+
+
+
+
+ </td>
+
+
+
+
+ <td class="description last">Value that is going to be added or updated to the store.</td>
+ </tr>
+
+
+
+ <tr>
+
+ <td class="name"><code>success</code></td>
+
+
+ <td class="type">
+
+
+<span class="param-type">function</span>
+
+
+
+ </td>
+
+
+ <td class="attributes">
+
+
+
+
+
+ </td>
+
+
+
+
+ <td class="description last">Callback for a successful add or update operation.</param></td>
+ </tr>
+
+
+
+ <tr>
+
+ <td class="name"><code>error</code></td>
+
+
+ <td class="type">
+
+
+<span class="param-type">function</span>
+
+
+
+ </td>
+
+
+ <td class="attributes">
+
+ <optional><br>
+
+
+
+
+
+ </td>
+
+
+
+
+ <td class="description last">Callback for handling errors. If not specified then store.defaultError is invoked.</param></td>
+ </tr>
+
+
+ </tbody>
+</table>
+
+
+
+<dl class="details">
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ <dt class="tag-source">Source:</dt>
+ <dd class="tag-source"><ul class="dummy"><li>
+ <a href="memory.js.html">store/memory.js</a>, <a href="memory.js.html#line90">line 90</a>
+ </li></ul></dd>
+
+
+
+
+
+
+
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+</dd>
+
+
+
+<dt>
+ <h4 class="name" id="clear"><span class="type-signature"></span>clear<span class="signature">(success>Callback)</span><span class="type-signature"></span></h4>
+
+
+</dt>
+<dd>
+
+
+ <div class="description">
+ Removes all the data associated with this store object.
+ </div>
+
+
+
+
+
+
+
+ <h5>Parameters:</h5>
+
+
+<table class="params">
+ <thead>
+ <tr>
+
+ <th>Name</th>
+
+
+ <th>Type</th>
+
+
+
+
+
+ <th class="last">Description</th>
+ </tr>
+ </thead>
+
+ <tbody>
+
+
+ <tr>
+
+ <td class="name"><code>success>Callback</code></td>
+
+
+ <td class="type">
+
+
+<span class="param-type">function</span>
+
+
+
+ </td>
+
+
+
+
+
+ <td class="description last">for a successful clear operation.</td>
+ </tr>
+
+
+ </tbody>
+</table>
+
+
+
+<dl class="details">
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ <dt class="tag-source">Source:</dt>
+ <dd class="tag-source"><ul class="dummy"><li>
+ <a href="memory.js.html">store/memory.js</a>, <a href="memory.js.html#line117">line 117</a>
+ </li></ul></dd>
+
+
+
+
+
+
+
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+</dd>
+
+
+
+<dt>
+ <h4 class="name" id="close"><span class="type-signature"></span>close<span class="signature">()</span><span class="type-signature"></span></h4>
+
+
+</dt>
+<dd>
+
+
+ <div class="description">
+ This function does nothing in MemoryStore as it does not have a connection model.
+ </div>
+
+
+
+
+
+
+
+
+
+<dl class="details">
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ <dt class="tag-source">Source:</dt>
+ <dd class="tag-source"><ul class="dummy"><li>
+ <a href="memory.js.html">store/memory.js</a>, <a href="memory.js.html#line235">line 235</a>
+ </li></ul></dd>
+
+
+
+
+
+
+
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+</dd>
+
+
+
+<dt>
+ <h4 class="name" id="contains"><span class="type-signature"></span>contains<span class="signature">(key, success)</span><span class="type-signature"></span></h4>
+
+
+</dt>
+<dd>
+
+
+ <div class="description">
+ Checks whether a key exists in the store.
+ </div>
+
+
+
+
+
+
+
+ <h5>Parameters:</h5>
+
+
+<table class="params">
+ <thead>
+ <tr>
+
+ <th>Name</th>
+
+
+ <th>Type</th>
+
+
+
+
+
+ <th class="last">Description</th>
+ </tr>
+ </thead>
+
+ <tbody>
+
+
+ <tr>
+
+ <td class="name"><code>key</code></td>
+
+
+ <td class="type">
+
+
+<span class="param-type">String</span>
+
+
+
+ </td>
+
+
+
+
+
+ <td class="description last">Key string.</td>
+ </tr>
+
+
+
+ <tr>
+
+ <td class="name"><code>success</code></td>
+
+
+ <td class="type">
+
+
+<span class="param-type">Funktion</span>
+
+
+
+ </td>
+
+
+
+
+
+ <td class="description last">Callback indicating whether the store contains the key or not.</param></td>
+ </tr>
+
+
+ </tbody>
+</table>
+
+
+
+<dl class="details">
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ <dt class="tag-source">Source:</dt>
+ <dd class="tag-source"><ul class="dummy"><li>
+ <a href="memory.js.html">store/memory.js</a>, <a href="memory.js.html#line128">line 128</a>
+ </li></ul></dd>
+
+
+
+
+
+
+
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+</dd>
+
+
+
+<dt>
+ <h4 class="name" id="getAllKeys"><span class="type-signature"></span>getAllKeys<span class="signature">(success)</span><span class="type-signature"></span></h4>
+
+
+</dt>
+<dd>
+
+
+ <div class="description">
+ Gets all the keys that exist in the store.
+ </div>
+
+
+
+
+
+
+
+ <h5>Parameters:</h5>
+
+
+<table class="params">
+ <thead>
+ <tr>
+
+ <th>Name</th>
+
+
+ <th>Type</th>
+
+
+
+
+
+ <th class="last">Description</th>
+ </tr>
+ </thead>
+
+ <tbody>
+
+
+ <tr>
+
+ <td class="name"><code>success</code></td>
+
+
+ <td class="type">
+
+
+<span class="param-type">function</span>
+
+
+
+ </td>
+
+
+
+
+
+ <td class="description last">Callback for a successful get operation.</param></td>
+ </tr>
+
+
+ </tbody>
+</table>
+
+
+
+<dl class="details">
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ <dt class="tag-source">Source:</dt>
+ <dd class="tag-source"><ul class="dummy"><li>
+ <a href="memory.js.html">store/memory.js</a>, <a href="memory.js.html#line138">line 138</a>
+ </li></ul></dd>
+
+
+
+
+
+
+
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+</dd>
+
+
+
+<dt>
+ <h4 class="name" id="read"><span class="type-signature"></span>read<span class="signature">(key, Function, {Function{}Function)</span><span class="type-signature"></span></h4>
+
+
+</dt>
+<dd>
+
+
+ <div class="description">
+ Reads the value associated to a key in the store.
+ </div>
+
+
+
+
+
+
+
+ <h5>Parameters:</h5>
+
+
+<table class="params">
+ <thead>
+ <tr>
+
+ <th>Name</th>
+
+
+ <th>Type</th>
+
+
+
+
+
+ <th class="last">Description</th>
+ </tr>
+ </thead>
+
+ <tbody>
+
+
+ <tr>
+
+ <td class="name"><code>key</code></td>
+
+
+ <td class="type">
+
+
+<span class="param-type">String</span>
+
+
+
+ </td>
+
+
+
+
+
+ <td class="description last">Key string.</td>
+ </tr>
+
+
+
+ <tr>
+
+ <td class="name"><code>Function</code></td>
+
+
+ <td class="type">
+
+
+<span class="param-type">function</span>
+
+
+
+ </td>
+
+
+
+
+
+ <td class="description last">Callback for a successful reads operation.</param></td>
+ </tr>
+
+
+
+ <tr>
+
+ <td class="name"><code>{Function{}Function</code></td>
+
+
+ <td class="type">
+
+ </td>
+
+
+
+
+
+ <td class="description last">Callback for handling errors. If not specified then store.defaultError is invoked.</param></td>
+ </tr>
+
+
+ </tbody>
+</table>
+
+
+
+<dl class="details">
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ <dt class="tag-source">Source:</dt>
+ <dd class="tag-source"><ul class="dummy"><li>
+ <a href="memory.js.html">store/memory.js</a>, <a href="memory.js.html#line151">line 151</a>
+ </li></ul></dd>
+
+
+
+
+
+
+
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+</dd>
+
+
+
+<dt>
+ <h4 class="name" id="remove"><span class="type-signature"></span>remove<span class="signature">(key, success, <span class="optional">error</span>)</span><span class="type-signature"></span></h4>
+
+
+</dt>
+<dd>
+
+
+ <div class="description">
+ Removes a key and its value from the store.
+ </div>
+
+
+
+
+
+
+
+ <h5>Parameters:</h5>
+
+
+<table class="params">
+ <thead>
+ <tr>
+
+ <th>Name</th>
+
+
+ <th>Type</th>
+
+
+ <th>Argument</th>
+
+
+
+
+ <th class="last">Description</th>
+ </tr>
+ </thead>
+
+ <tbody>
+
+
+ <tr>
+
+ <td class="name"><code>key</code></td>
+
+
+ <td class="type">
+
+
+<span class="param-type">String</span>
+
+
+
+ </td>
+
+
+ <td class="attributes">
+
+
+
+
+
+ </td>
+
+
+
+
+ <td class="description last">Key string.</td>
+ </tr>
+
+
+
+ <tr>
+
+ <td class="name"><code>success</code></td>
+
+
+ <td class="type">
+
+
+<span class="param-type">function</span>
+
+
+
+ </td>
+
+
+ <td class="attributes">
+
+
+
+
+
+ </td>
+
+
+
+
+ <td class="description last">Callback for a successful remove operation.</param></td>
+ </tr>
+
+
+
+ <tr>
+
+ <td class="name"><code>error</code></td>
+
+
+ <td class="type">
+
+
+<span class="param-type">function</span>
+
+
+
+ </td>
+
+
+ <td class="attributes">
+
+ <optional><br>
+
+
+
+
+
+ </td>
+
+
+
+
+ <td class="description last">Callback for handling errors. If not specified then store.defaultError is invoked.</param></td>
+ </tr>
+
+
+ </tbody>
+</table>
+
+
+
+<dl class="details">
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ <dt class="tag-source">Source:</dt>
+ <dd class="tag-source"><ul class="dummy"><li>
+ <a href="memory.js.html">store/memory.js</a>, <a href="memory.js.html#line166">line 166</a>
+ </li></ul></dd>
+
+
+
+
+
+
+
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+</dd>
+
+
+
+<dt>
+ <h4 class="name" id="update"><span class="type-signature"></span>update<span class="signature">(key, value, success, <span class="optional">error</span>)</span><span class="type-signature"></span></h4>
+
+
+</dt>
+<dd>
+
+
+ <div class="description">
+ Updates the value associated to a key in the store.
+ </div>
+
+
+
+
+
+
+
+ <h5>Parameters:</h5>
+
+
+<table class="params">
+ <thead>
+ <tr>
+
+ <th>Name</th>
+
+
+ <th>Type</th>
+
+
+ <th>Argument</th>
+
+
+
+
+ <th class="last">Description</th>
+ </tr>
+ </thead>
+
+ <tbody>
+
+
+ <tr>
+
+ <td class="name"><code>key</code></td>
+
+
+ <td class="type">
+
+
+<span class="param-type">String</span>
+
+
+
+ </td>
+
+
+ <td class="attributes">
+
+
+
+
+
+ </td>
+
+
+
+
+ <td class="description last">Key string.</td>
+ </tr>
+
+
+
+ <tr>
+
+ <td class="name"><code>value</code></td>
+
+
+ <td class="type">
+
+ </td>
+
+
+ <td class="attributes">
+
+
+
+
+
+ </td>
+
+
+
+
+ <td class="description last">New value.</td>
+ </tr>
+
+
+
+ <tr>
+
+ <td class="name"><code>success</code></td>
+
+
+ <td class="type">
+
+
+<span class="param-type">function</span>
+
+
+
+ </td>
+
+
+ <td class="attributes">
+
+
+
+
+
+ </td>
+
+
+
+
+ <td class="description last">Callback for a successful update operation.</param></td>
+ </tr>
+
+
+
+ <tr>
+
+ <td class="name"><code>error</code></td>
+
+
+ <td class="type">
+
+
+<span class="param-type">function</span>
+
+
+
+ </td>
+
+
+ <td class="attributes">
+
+ <optional><br>
+
+
+
+
+
+ </td>
+
+
+
+
+ <td class="description last">Callback for handling errors. If not specified then store.defaultError is invoked.</param>
+This method errors out if the specified key is not found in the store.</td>
+ </tr>
+
+
+ </tbody>
+</table>
+
+
+
+<dl class="details">
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ <dt class="tag-source">Source:</dt>
+ <dd class="tag-source"><ul class="dummy"><li>
+ <a href="memory.js.html">store/memory.js</a>, <a href="memory.js.html#line196">line 196</a>
+ </li></ul></dd>
+
+
+
+
+
+
+
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+</dd>
+
+
+
+<dt>
+ <h4 class="name" id="validateKeyInput"><span class="type-signature"><inner> </span>validateKeyInput<span class="signature">(key, error)</span><span class="type-signature"> → {Boolean}</span></h4>
+
+
+</dt>
+<dd>
+
+
+ <div class="description">
+ Validates that the specified key is not undefined, not null, and not an array
+ </div>
+
+
+
+
+
+
+
+ <h5>Parameters:</h5>
+
+
+<table class="params">
+ <thead>
+ <tr>
+
+ <th>Name</th>
+
+
+ <th>Type</th>
+
+
+
+
+
+ <th class="last">Description</th>
+ </tr>
+ </thead>
+
+ <tbody>
+
+
+ <tr>
+
+ <td class="name"><code>key</code></td>
+
+
+ <td class="type">
+
+ </td>
+
+
+
+
+
+ <td class="description last">Key value.</td>
+ </tr>
+
+
+
+ <tr>
+
+ <td class="name"><code>error</code></td>
+
+
+ <td class="type">
+
+
+<span class="param-type">function</span>
+
+
+
+ </td>
+
+
+
+
+
+ <td class="description last">Error callback.</td>
+ </tr>
+
+
+ </tbody>
+</table>
+
+
+
+<dl class="details">
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ <dt class="tag-source">Source:</dt>
+ <dd class="tag-source"><ul class="dummy"><li>
+ <a href="memory.js.html">store/memory.js</a>, <a href="memory.js.html#line51">line 51</a>
+ </li></ul></dd>
+
+
+
+
+
+
+
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+ <h5>Returns:</h5>
+
+
+<div class="param-desc">
+ True if the key is valid. False if the key is invalid and the error callback has been queued for execution.
+</div>
+
+
+
+<dl>
+ <dt>
+ Type
+ </dt>
+ <dd>
+
+<span class="param-type">Boolean</span>
+
+
+ </dd>
+</dl>
+
+
+
+
+</dd>
+
+ </dl>
+
+
+
+
+
+</article>
+
+</section>
+
+
+
+
+</div>
+
+<nav>
+ <h2><a href="index.html">Index</a></h2><h3>Modules</h3><ul><li><a href="module-cache.html">cache</a></li><li><a href="source.html">cache/source</a></li><li><a href="module-datajs.html">datajs</a></li><li><a href="deferred.html">datajs/deferred</a></li><li><a href="utils.html">datajs/utils</a></li><li><a href="xml.html">datajs/xml</a></li><li><a href="module-odata.html">odata</a></li><li><a href="batch.html">odata/batch</a></li><li><a href="handler.html">odata/handler</a></li><li><a href="json.html">odata/json</a></li><li><a href="metadata.html">odata/metadata</a></li><li><a href="net.html">odata/net</a></li><li><a href="utils_.html">odata/utils</a></li><li><a href="module-store.html">store</a></li><li><a href="dom.html">store/dom</a></li><li><a href="indexeddb.html">store/indexeddb</a></li><li><a href="memory.html">store/memory</a></li></ul><h3>Classes</h3><ul><li><a href="DataCache.html">DataCache</a></li><li><a href="DataCacheOperation.html">DataCacheOperation</a></li><li><a h
ref="DjsDeferred.html">DjsDeferred</a></li><li><a href="dom-DomStore.html">DomStore</a></li><li><a href="indexeddb-IndexedDBStore.html">IndexedDBStore</a></li><li><a href="memory-MemoryStore.html">MemoryStore</a></li><li><a href="ODataCacheSource.html">ODataCacheSource</a></li></ul><h3><a href="global.html">Global</a></h3>
+</nav>
+
+<br clear="both">
+
+<footer>
+ Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 3.2.2</a> on Mon Sep 15 2014 13:08:02 GMT+0200 (MESZ)
+</footer>
+
+<script> prettyPrint(); </script>
+<script src="scripts/linenumber.js"> </script>
+</body>
+</html>
\ No newline at end of file
Added: olingo/site/trunk/content/doc/javascript/apidoc/memory.html
URL: http://svn.apache.org/viewvc/olingo/site/trunk/content/doc/javascript/apidoc/memory.html?rev=1625002&view=auto
==============================================================================
--- olingo/site/trunk/content/doc/javascript/apidoc/memory.html (added)
+++ olingo/site/trunk/content/doc/javascript/apidoc/memory.html Mon Sep 15 11:55:41 2014
@@ -0,0 +1,127 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+ <meta charset="utf-8">
+ <title>JSDoc: Module: store/memory</title>
+
+ <script src="scripts/prettify/prettify.js"> </script>
+ <script src="scripts/prettify/lang-css.js"> </script>
+ <!--[if lt IE 9]>
+ <script src="//html5shiv.googlecode.com/svn/trunk/html5.js"></script>
+ <![endif]-->
+ <link type="text/css" rel="stylesheet" href="styles/prettify-tomorrow.css">
+ <link type="text/css" rel="stylesheet" href="styles/jsdoc-default.css">
+</head>
+
+<body>
+
+<div id="main">
+
+ <h1 class="page-title">Module: store/memory</h1>
+
+
+
+
+
+<section>
+
+<header>
+ <h2>
+ store/memory
+ </h2>
+
+</header>
+
+<article>
+ <div class="container-overview">
+
+
+
+
+
+
+<dl class="details">
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ <dt class="tag-source">Source:</dt>
+ <dd class="tag-source"><ul class="dummy"><li>
+ <a href="memory.js.html">store/memory.js</a>, <a href="memory.js.html#line3">line 3</a>
+ </li></ul></dd>
+
+
+
+
+
+
+
+</dl>
+
+
+
+
+ </div>
+
+
+
+
+
+
+
+
+ <h3 class="subsection-title">Classes</h3>
+
+ <dl>
+ <dt><a href="memory-MemoryStore.html">MemoryStore</a></dt>
+ <dd></dd>
+ </dl>
+
+
+
+
+
+
+
+
+
+
+
+</article>
+
+</section>
+
+
+
+
+</div>
+
+<nav>
+ <h2><a href="index.html">Index</a></h2><h3>Modules</h3><ul><li><a href="module-cache.html">cache</a></li><li><a href="source.html">cache/source</a></li><li><a href="module-datajs.html">datajs</a></li><li><a href="deferred.html">datajs/deferred</a></li><li><a href="utils.html">datajs/utils</a></li><li><a href="xml.html">datajs/xml</a></li><li><a href="module-odata.html">odata</a></li><li><a href="batch.html">odata/batch</a></li><li><a href="handler.html">odata/handler</a></li><li><a href="json.html">odata/json</a></li><li><a href="metadata.html">odata/metadata</a></li><li><a href="net.html">odata/net</a></li><li><a href="utils_.html">odata/utils</a></li><li><a href="module-store.html">store</a></li><li><a href="dom.html">store/dom</a></li><li><a href="indexeddb.html">store/indexeddb</a></li><li><a href="memory.html">store/memory</a></li></ul><h3>Classes</h3><ul><li><a href="DataCache.html">DataCache</a></li><li><a href="DataCacheOperation.html">DataCacheOperation</a></li><li><a h
ref="DjsDeferred.html">DjsDeferred</a></li><li><a href="dom-DomStore.html">DomStore</a></li><li><a href="indexeddb-IndexedDBStore.html">IndexedDBStore</a></li><li><a href="memory-MemoryStore.html">MemoryStore</a></li><li><a href="ODataCacheSource.html">ODataCacheSource</a></li></ul><h3><a href="global.html">Global</a></h3>
+</nav>
+
+<br clear="both">
+
+<footer>
+ Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 3.2.2</a> on Mon Sep 15 2014 13:08:02 GMT+0200 (MESZ)
+</footer>
+
+<script> prettyPrint(); </script>
+<script src="scripts/linenumber.js"> </script>
+</body>
+</html>
\ No newline at end of file
Added: olingo/site/trunk/content/doc/javascript/apidoc/memory.js.html
URL: http://svn.apache.org/viewvc/olingo/site/trunk/content/doc/javascript/apidoc/memory.js.html?rev=1625002&view=auto
==============================================================================
--- olingo/site/trunk/content/doc/javascript/apidoc/memory.js.html (added)
+++ olingo/site/trunk/content/doc/javascript/apidoc/memory.js.html Mon Sep 15 11:55:41 2014
@@ -0,0 +1,295 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+ <meta charset="utf-8">
+ <title>JSDoc: Source: store/memory.js</title>
+
+ <script src="scripts/prettify/prettify.js"> </script>
+ <script src="scripts/prettify/lang-css.js"> </script>
+ <!--[if lt IE 9]>
+ <script src="//html5shiv.googlecode.com/svn/trunk/html5.js"></script>
+ <![endif]-->
+ <link type="text/css" rel="stylesheet" href="styles/prettify-tomorrow.css">
+ <link type="text/css" rel="stylesheet" href="styles/jsdoc-default.css">
+</head>
+
+<body>
+
+<div id="main">
+
+ <h1 class="page-title">Source: store/memory.js</h1>
+
+
+
+
+
+ <section>
+ <article>
+ <pre class="prettyprint source"><code>/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+/** @module store/memory */
+
+
+var utils = require('./../odatajs.js').utils;
+
+// Imports.
+var throwErrorCallback = utils.throwErrorCallback;
+var delay = utils.delay;
+
+/** Constructor for store objects that use a sorted array as the underlying mechanism.
+ * @class MemoryStore
+ * @constructor
+ * @param {String} name - Store name.
+ */
+function MemoryStore(name) {
+
+ var holes = [];
+ var items = [];
+ var keys = {};
+
+ this.name = name;
+
+ var getErrorCallback = function (error) {
+ return error || this.defaultError;
+ };
+
+ /** Validates that the specified key is not undefined, not null, and not an array
+ * @param key - Key value.
+ * @param {Function} error - Error callback.
+ * @returns {Boolean} True if the key is valid. False if the key is invalid and the error callback has been queued for execution.
+ */
+ function validateKeyInput(key, error) {
+
+ var messageString;
+
+ if (key instanceof Array) {
+ messageString = "Array of keys not supported";
+ }
+
+ if (key === undefined || key === null) {
+ messageString = "Invalid key";
+ }
+
+ if (messageString) {
+ delay(error, { message: messageString });
+ return false;
+ }
+ return true;
+ }
+
+ /** This method errors out if the store already contains the specified key.
+ * @summery Adds a new value identified by a key to the store.
+ * @method module:store/memory~MemoryStore#add
+ * @param {String} key - Key string.
+ * @param value - Value that is going to be added to the store.
+ * @param {Function} success - Callback for a successful add operation.</param>
+ * @param {Function} error - Callback for handling errors. If not specified then store.defaultError is invoked.</param>
+ */
+ this.add = function (key, value, success, error) {
+ error = getErrorCallback(error);
+
+ if (validateKeyInput(key, error)) {
+ if (!keys.hasOwnProperty(key)) {
+ this.addOrUpdate(key, value, success, error);
+ } else {
+ error({ message: "key already exists", key: key });
+ }
+ }
+ };
+
+ /** This method will overwrite the key's current value if it already exists in the store; otherwise it simply adds the new key and value.
+ * @summary Adds or updates a value identified by a key to the store.
+ * @method module:store/memory~MemoryStore#addOrUpdate
+ * @param {String} key - Key string.
+ * @param value - Value that is going to be added or updated to the store.
+ * @param {Function} success - Callback for a successful add or update operation.</param>
+ * @param {Function} [error] - Callback for handling errors. If not specified then store.defaultError is invoked.</param>
+ */
+ this.addOrUpdate = function (key, value, success, error) {
+
+ error = getErrorCallback(error);
+
+ if (validateKeyInput(key, error)) {
+ var index = keys[key];
+ if (index === undefined) {
+ if (holes.length > 0) {
+ index = holes.splice(0, 1);
+ } else {
+ index = items.length;
+ }
+ }
+ items[index] = value;
+ keys[key] = index;
+ delay(success, key, value);
+ }
+ };
+
+ /** Removes all the data associated with this store object.
+ * @method module:store/memory~MemoryStore#clear
+ * @param {Function} success>Callback for a successful clear operation.
+ */
+ this.clear = function (success) {
+ items = [];
+ keys = {};
+ holes = [];
+ delay(success);
+ };
+
+ /** Checks whether a key exists in the store.
+ * @method module:store/memory~MemoryStore#contains
+ * @param {String} key - Key string.
+ * @param {Funktion} success - Callback indicating whether the store contains the key or not.</param>
+ */
+ this.contains = function (key, success) {
+ var contained = keys.hasOwnProperty(key);
+ delay(success, contained);
+ };
+
+ /** Gets all the keys that exist in the store.
+ * @method module:store/memory~MemoryStore#getAllKeys
+ * @param {Function} success - Callback for a successful get operation.</param>
+ */
+ this.getAllKeys = function (success) {
+
+ var results = [];
+ for (var name in keys) {
+ results.push(name);
+ }
+ delay(success, results);
+ };
+
+ /** Reads the value associated to a key in the store.
+ * @method module:store/memory~MemoryStore#read
+ * @param {String} key - Key string.
+ * @param {Function} Function - Callback for a successful reads operation.</param>
+ * @param {Function{}Function - Callback for handling errors. If not specified then store.defaultError is invoked.</param>
+ */
+ this.read = function (key, success, error) {
+ error = getErrorCallback(error);
+
+ if (validateKeyInput(key, error)) {
+ var index = keys[key];
+ delay(success, key, items[index]);
+ }
+ };
+
+ /** Removes a key and its value from the store.
+ * @method module:store/memory~MemoryStore#remove
+ * @param {String} key - Key string.
+ * @param {Function} success - Callback for a successful remove operation.</param>
+ * @param {Function} [error] - Callback for handling errors. If not specified then store.defaultError is invoked.</param>
+ */
+ this.remove = function (key, success, error) {
+ error = getErrorCallback(error);
+
+ if (validateKeyInput(key, error)) {
+ var index = keys[key];
+ if (index !== undefined) {
+ if (index === items.length - 1) {
+ items.pop();
+ } else {
+ items[index] = undefined;
+ holes.push(index);
+ }
+ delete keys[key];
+
+ // The last item was removed, no need to keep track of any holes in the array.
+ if (items.length === 0) {
+ holes = [];
+ }
+ }
+
+ delay(success);
+ }
+ };
+
+ /** Updates the value associated to a key in the store.
+ * @method module:store/memory~MemoryStore#update
+ * @param {String} key - Key string.
+ * @param value - New value.
+ * @param {Function} success - Callback for a successful update operation.</param>
+ * @param {Function} [error] - Callback for handling errors. If not specified then store.defaultError is invoked.</param>
+ * This method errors out if the specified key is not found in the store.
+ */
+ this.update = function (key, value, success, error) {
+ error = getErrorCallback(error);
+ if (validateKeyInput(key, error)) {
+ if (keys.hasOwnProperty(key)) {
+ this.addOrUpdate(key, value, success, error);
+ } else {
+ error({ message: "key not found", key: key });
+ }
+ }
+ };
+}
+
+/** Creates a store object that uses memory storage as its underlying mechanism.
+ * @method MemoryStore.create
+ * @param {String} name - Store name.
+ * @returns {Object} Store object.
+ */
+MemoryStore.create = function (name) {
+ return new MemoryStore(name);
+};
+
+/** Checks whether the underlying mechanism for this kind of store objects is supported by the browser.
+ * @method MemoryStore.isSupported
+ * @returns {Boolean} True if the mechanism is supported by the browser; otherwise false.
+ */
+MemoryStore.isSupported = function () {
+ return true;
+};
+
+/** This function does nothing in MemoryStore as it does not have a connection model.
+*/
+MemoryStore.prototype.close = function () {
+};
+
+MemoryStore.prototype.defaultError = throwErrorCallback;
+
+/** Identifies the underlying mechanism used by the store.
+*/
+MemoryStore.prototype.mechanism = "memory";
+
+
+/** MemoryStore (see {@link MemoryStore}) */
+module.exports = MemoryStore;</code></pre>
+ </article>
+ </section>
+
+
+
+
+</div>
+
+<nav>
+ <h2><a href="index.html">Index</a></h2><h3>Modules</h3><ul><li><a href="module-cache.html">cache</a></li><li><a href="source.html">cache/source</a></li><li><a href="module-datajs.html">datajs</a></li><li><a href="deferred.html">datajs/deferred</a></li><li><a href="utils.html">datajs/utils</a></li><li><a href="xml.html">datajs/xml</a></li><li><a href="module-odata.html">odata</a></li><li><a href="batch.html">odata/batch</a></li><li><a href="handler.html">odata/handler</a></li><li><a href="json.html">odata/json</a></li><li><a href="metadata.html">odata/metadata</a></li><li><a href="net.html">odata/net</a></li><li><a href="utils_.html">odata/utils</a></li><li><a href="module-store.html">store</a></li><li><a href="dom.html">store/dom</a></li><li><a href="indexeddb.html">store/indexeddb</a></li><li><a href="memory.html">store/memory</a></li></ul><h3>Classes</h3><ul><li><a href="DataCache.html">DataCache</a></li><li><a href="DataCacheOperation.html">DataCacheOperation</a></li><li><a h
ref="DjsDeferred.html">DjsDeferred</a></li><li><a href="dom-DomStore.html">DomStore</a></li><li><a href="indexeddb-IndexedDBStore.html">IndexedDBStore</a></li><li><a href="memory-MemoryStore.html">MemoryStore</a></li><li><a href="ODataCacheSource.html">ODataCacheSource</a></li></ul><h3><a href="global.html">Global</a></h3>
+</nav>
+
+<br clear="both">
+
+<footer>
+ Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 3.2.2</a> on Mon Sep 15 2014 13:07:59 GMT+0200 (MESZ)
+</footer>
+
+<script> prettyPrint(); </script>
+<script src="scripts/linenumber.js"> </script>
+</body>
+</html>
Added: olingo/site/trunk/content/doc/javascript/apidoc/metadata.html
URL: http://svn.apache.org/viewvc/olingo/site/trunk/content/doc/javascript/apidoc/metadata.html?rev=1625002&view=auto
==============================================================================
--- olingo/site/trunk/content/doc/javascript/apidoc/metadata.html (added)
+++ olingo/site/trunk/content/doc/javascript/apidoc/metadata.html Mon Sep 15 11:55:41 2014
@@ -0,0 +1,1048 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+ <meta charset="utf-8">
+ <title>JSDoc: Module: odata/metadata</title>
+
+ <script src="scripts/prettify/prettify.js"> </script>
+ <script src="scripts/prettify/lang-css.js"> </script>
+ <!--[if lt IE 9]>
+ <script src="//html5shiv.googlecode.com/svn/trunk/html5.js"></script>
+ <![endif]-->
+ <link type="text/css" rel="stylesheet" href="styles/prettify-tomorrow.css">
+ <link type="text/css" rel="stylesheet" href="styles/jsdoc-default.css">
+</head>
+
+<body>
+
+<div id="main">
+
+ <h1 class="page-title">Module: odata/metadata</h1>
+
+
+
+
+
+<section>
+
+<header>
+ <h2>
+ odata/metadata
+ </h2>
+
+</header>
+
+<article>
+ <div class="container-overview">
+
+
+
+
+
+
+<dl class="details">
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ <dt class="tag-source">Source:</dt>
+ <dd class="tag-source"><ul class="dummy"><li>
+ <a href="metadata.js.html">odata/metadata.js</a>, <a href="metadata.js.html#line3">line 3</a>
+ </li></ul></dd>
+
+
+
+
+
+
+
+</dl>
+
+
+
+
+ </div>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ <h3 class="subsection-title">Methods</h3>
+
+ <dl>
+
+<dt>
+ <h4 class="name" id="getChildSchema"><span class="type-signature"><inner> </span>getChildSchema<span class="signature">(parentSchema, candidateName)</span><span class="type-signature"> → {Object}</span></h4>
+
+
+</dt>
+<dd>
+
+
+ <div class="description">
+ Gets the schema node for the specified element.
+ </div>
+
+
+
+
+
+
+
+ <h5>Parameters:</h5>
+
+
+<table class="params">
+ <thead>
+ <tr>
+
+ <th>Name</th>
+
+
+ <th>Type</th>
+
+
+
+
+
+ <th class="last">Description</th>
+ </tr>
+ </thead>
+
+ <tbody>
+
+
+ <tr>
+
+ <td class="name"><code>parentSchema</code></td>
+
+
+ <td class="type">
+
+
+<span class="param-type">Object</span>
+
+
+
+ </td>
+
+
+
+
+
+ <td class="description last">Schema of the parent XML node of 'element'.</td>
+ </tr>
+
+
+
+ <tr>
+
+ <td class="name"><code>candidateName</code></td>
+
+
+ <td class="type">
+
+ </td>
+
+
+
+
+
+ <td class="description last">XML element name to consider.</td>
+ </tr>
+
+
+ </tbody>
+</table>
+
+
+
+<dl class="details">
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ <dt class="tag-source">Source:</dt>
+ <dd class="tag-source"><ul class="dummy"><li>
+ <a href="metadata.js.html">odata/metadata.js</a>, <a href="metadata.js.html#line391">line 391</a>
+ </li></ul></dd>
+
+
+
+
+
+
+
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+ <h5>Returns:</h5>
+
+
+<div class="param-desc">
+ The schema that describes the specified element; null if not found.
+</div>
+
+
+
+<dl>
+ <dt>
+ Type
+ </dt>
+ <dd>
+
+<span class="param-type">Object</span>
+
+
+ </dd>
+</dl>
+
+
+
+
+</dd>
+
+
+
+<dt>
+ <h4 class="name" id="isEdmNamespace"><span class="type-signature"><inner> </span>isEdmNamespace<span class="signature">(nsURI)</span><span class="type-signature"> → {Boolean}</span></h4>
+
+
+</dt>
+<dd>
+
+
+ <div class="description">
+ Checks whether the specifies namespace URI is one of the known CSDL namespace URIs.
+ </div>
+
+
+
+
+
+
+
+ <h5>Parameters:</h5>
+
+
+<table class="params">
+ <thead>
+ <tr>
+
+ <th>Name</th>
+
+
+ <th>Type</th>
+
+
+
+
+
+ <th class="last">Description</th>
+ </tr>
+ </thead>
+
+ <tbody>
+
+
+ <tr>
+
+ <td class="name"><code>nsURI</code></td>
+
+
+ <td class="type">
+
+
+<span class="param-type">String</span>
+
+
+
+ </td>
+
+
+
+
+
+ <td class="description last">Namespace URI to check.</td>
+ </tr>
+
+
+ </tbody>
+</table>
+
+
+
+<dl class="details">
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ <dt class="tag-source">Source:</dt>
+ <dd class="tag-source"><ul class="dummy"><li>
+ <a href="metadata.js.html">odata/metadata.js</a>, <a href="metadata.js.html#line420">line 420</a>
+ </li></ul></dd>
+
+
+
+
+
+
+
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+ <h5>Returns:</h5>
+
+
+<div class="param-desc">
+ true if nsURI is a known CSDL namespace; false otherwise.
+</div>
+
+
+
+<dl>
+ <dt>
+ Type
+ </dt>
+ <dd>
+
+<span class="param-type">Boolean</span>
+
+
+ </dd>
+</dl>
+
+
+
+
+</dd>
+
+
+
+<dt>
+ <h4 class="name" id="metadataParser"><span class="type-signature"><inner> </span>metadataParser<span class="signature">(handler, text)</span><span class="type-signature"></span></h4>
+
+
+</dt>
+<dd>
+
+
+ <div class="description">
+ Parses a metadata document.
+ </div>
+
+
+
+
+
+
+
+ <h5>Parameters:</h5>
+
+
+<table class="params">
+ <thead>
+ <tr>
+
+ <th>Name</th>
+
+
+ <th>Type</th>
+
+
+
+
+
+ <th class="last">Description</th>
+ </tr>
+ </thead>
+
+ <tbody>
+
+
+ <tr>
+
+ <td class="name"><code>handler</code></td>
+
+
+ <td class="type">
+
+ </td>
+
+
+
+
+
+ <td class="description last">This handler.</td>
+ </tr>
+
+
+
+ <tr>
+
+ <td class="name"><code>text</code></td>
+
+
+ <td class="type">
+
+
+<span class="param-type">String</span>
+
+
+
+ </td>
+
+
+
+
+
+ <td class="description last">Metadata text.</td>
+ </tr>
+
+
+ </tbody>
+</table>
+
+
+
+<dl class="details">
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ <dt class="tag-source">Source:</dt>
+ <dd class="tag-source"><ul class="dummy"><li>
+ <a href="metadata.js.html">odata/metadata.js</a>, <a href="metadata.js.html#line508">line 508</a>
+ </li></ul></dd>
+
+
+
+
+
+
+
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+ <h5>Returns:</h5>
+
+
+<div class="param-desc">
+ An object representation of the conceptual model.</returns>
+</div>
+
+
+
+
+
+
+</dd>
+
+
+
+<dt>
+ <h4 class="name" id="parseConceptualModelElement"><span class="type-signature"><inner> </span>parseConceptualModelElement<span class="signature">(element)</span><span class="type-signature"> → {Object}</span></h4>
+
+
+</dt>
+<dd>
+
+
+ <div class="description">
+ Parses a CSDL document.
+ </div>
+
+
+
+
+
+
+
+ <h5>Parameters:</h5>
+
+
+<table class="params">
+ <thead>
+ <tr>
+
+ <th>Name</th>
+
+
+ <th>Type</th>
+
+
+
+
+
+ <th class="last">Description</th>
+ </tr>
+ </thead>
+
+ <tbody>
+
+
+ <tr>
+
+ <td class="name"><code>element</code></td>
+
+
+ <td class="type">
+
+ </td>
+
+
+
+
+
+ <td class="description last">DOM element to parse.</td>
+ </tr>
+
+
+ </tbody>
+</table>
+
+
+
+<dl class="details">
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ <dt class="tag-source">Source:</dt>
+ <dd class="tag-source"><ul class="dummy"><li>
+ <a href="metadata.js.html">odata/metadata.js</a>, <a href="metadata.js.html#line429">line 429</a>
+ </li></ul></dd>
+
+
+
+
+
+
+
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+ <h5>Returns:</h5>
+
+
+<div class="param-desc">
+ An object describing the parsed element.
+</div>
+
+
+
+<dl>
+ <dt>
+ Type
+ </dt>
+ <dd>
+
+<span class="param-type">Object</span>
+
+
+ </dd>
+</dl>
+
+
+
+
+</dd>
+
+
+
+<dt>
+ <h4 class="name" id="schemaElement"><span class="type-signature"><inner> </span>schemaElement<span class="signature">(attributes, elements, text, ns)</span><span class="type-signature"> → {Object}</span></h4>
+
+
+</dt>
+<dd>
+
+
+ <div class="description">
+ Creates an object that describes an element in an schema.
+ </div>
+
+
+
+
+
+
+
+ <h5>Parameters:</h5>
+
+
+<table class="params">
+ <thead>
+ <tr>
+
+ <th>Name</th>
+
+
+ <th>Type</th>
+
+
+
+
+
+ <th class="last">Description</th>
+ </tr>
+ </thead>
+
+ <tbody>
+
+
+ <tr>
+
+ <td class="name"><code>attributes</code></td>
+
+
+ <td class="type">
+
+
+<span class="param-type">Array</span>
+
+
+
+ </td>
+
+
+
+
+
+ <td class="description last">List containing the names of the attributes allowed for this element.</td>
+ </tr>
+
+
+
+ <tr>
+
+ <td class="name"><code>elements</code></td>
+
+
+ <td class="type">
+
+
+<span class="param-type">Array</span>
+
+
+
+ </td>
+
+
+
+
+
+ <td class="description last">List containing the names of the child elements allowed for this element.</td>
+ </tr>
+
+
+
+ <tr>
+
+ <td class="name"><code>text</code></td>
+
+
+ <td class="type">
+
+
+<span class="param-type">Boolean</span>
+
+
+
+ </td>
+
+
+
+
+
+ <td class="description last">Flag indicating if the element's text value is of interest or not.</td>
+ </tr>
+
+
+
+ <tr>
+
+ <td class="name"><code>ns</code></td>
+
+
+ <td class="type">
+
+
+<span class="param-type">String</span>
+
+
+
+ </td>
+
+
+
+
+
+ <td class="description last">Namespace to which the element belongs to.
+If a child element name ends with * then it is understood by the schema that that child element can appear 0 or more times.</td>
+ </tr>
+
+
+ </tbody>
+</table>
+
+
+
+<dl class="details">
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ <dt class="tag-source">Source:</dt>
+ <dd class="tag-source"><ul class="dummy"><li>
+ <a href="metadata.js.html">odata/metadata.js</a>, <a href="metadata.js.html#line58">line 58</a>
+ </li></ul></dd>
+
+
+
+
+
+
+
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+ <h5>Returns:</h5>
+
+
+<div class="param-desc">
+ Object with attributes, elements, text, and ns fields.
+</div>
+
+
+
+<dl>
+ <dt>
+ Type
+ </dt>
+ <dd>
+
+<span class="param-type">Object</span>
+
+
+ </dd>
+</dl>
+
+
+
+
+</dd>
+
+
+
+<dt>
+ <h4 class="name" id="scriptCase"><span class="type-signature"><inner> </span>scriptCase<span class="signature">(text)</span><span class="type-signature"> → {String}</span></h4>
+
+
+</dt>
+<dd>
+
+
+ <div class="description">
+ Converts a Pascal-case identifier into a camel-case identifier.
+ </div>
+
+
+
+
+
+
+
+ <h5>Parameters:</h5>
+
+
+<table class="params">
+ <thead>
+ <tr>
+
+ <th>Name</th>
+
+
+ <th>Type</th>
+
+
+
+
+
+ <th class="last">Description</th>
+ </tr>
+ </thead>
+
+ <tbody>
+
+
+ <tr>
+
+ <td class="name"><code>text</code></td>
+
+
+ <td class="type">
+
+
+<span class="param-type">String</span>
+
+
+
+ </td>
+
+
+
+
+
+ <td class="description last">Text to convert.</td>
+ </tr>
+
+
+ </tbody>
+</table>
+
+
+
+<dl class="details">
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ <dt class="tag-source">Source:</dt>
+ <dd class="tag-source"><ul class="dummy"><li>
+ <a href="metadata.js.html">odata/metadata.js</a>, <a href="metadata.js.html#line368">line 368</a>
+ </li></ul></dd>
+
+
+
+
+
+
+
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+ <h5>Returns:</h5>
+
+
+<div class="param-desc">
+ Converted text.
+If the text starts with multiple uppercase characters, it is left as-is.</remarks>
+</div>
+
+
+
+<dl>
+ <dt>
+ Type
+ </dt>
+ <dd>
+
+<span class="param-type">String</span>
+
+
+ </dd>
+</dl>
+
+
+
+
+</dd>
+
+ </dl>
+
+
+
+
+
+</article>
+
+</section>
+
+
+
+
+</div>
+
+<nav>
+ <h2><a href="index.html">Index</a></h2><h3>Modules</h3><ul><li><a href="module-cache.html">cache</a></li><li><a href="source.html">cache/source</a></li><li><a href="module-datajs.html">datajs</a></li><li><a href="deferred.html">datajs/deferred</a></li><li><a href="utils.html">datajs/utils</a></li><li><a href="xml.html">datajs/xml</a></li><li><a href="module-odata.html">odata</a></li><li><a href="batch.html">odata/batch</a></li><li><a href="handler.html">odata/handler</a></li><li><a href="json.html">odata/json</a></li><li><a href="metadata.html">odata/metadata</a></li><li><a href="net.html">odata/net</a></li><li><a href="utils_.html">odata/utils</a></li><li><a href="module-store.html">store</a></li><li><a href="dom.html">store/dom</a></li><li><a href="indexeddb.html">store/indexeddb</a></li><li><a href="memory.html">store/memory</a></li></ul><h3>Classes</h3><ul><li><a href="DataCache.html">DataCache</a></li><li><a href="DataCacheOperation.html">DataCacheOperation</a></li><li><a h
ref="DjsDeferred.html">DjsDeferred</a></li><li><a href="dom-DomStore.html">DomStore</a></li><li><a href="indexeddb-IndexedDBStore.html">IndexedDBStore</a></li><li><a href="memory-MemoryStore.html">MemoryStore</a></li><li><a href="ODataCacheSource.html">ODataCacheSource</a></li></ul><h3><a href="global.html">Global</a></h3>
+</nav>
+
+<br clear="both">
+
+<footer>
+ Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 3.2.2</a> on Mon Sep 15 2014 13:08:01 GMT+0200 (MESZ)
+</footer>
+
+<script> prettyPrint(); </script>
+<script src="scripts/linenumber.js"> </script>
+</body>
+</html>
\ No newline at end of file
Added: olingo/site/trunk/content/doc/javascript/apidoc/metadata.js.html
URL: http://svn.apache.org/viewvc/olingo/site/trunk/content/doc/javascript/apidoc/metadata.js.html?rev=1625002&view=auto
==============================================================================
--- olingo/site/trunk/content/doc/javascript/apidoc/metadata.js.html (added)
+++ olingo/site/trunk/content/doc/javascript/apidoc/metadata.js.html Mon Sep 15 11:55:41 2014
@@ -0,0 +1,572 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+ <meta charset="utf-8">
+ <title>JSDoc: Source: odata/metadata.js</title>
+
+ <script src="scripts/prettify/prettify.js"> </script>
+ <script src="scripts/prettify/lang-css.js"> </script>
+ <!--[if lt IE 9]>
+ <script src="//html5shiv.googlecode.com/svn/trunk/html5.js"></script>
+ <![endif]-->
+ <link type="text/css" rel="stylesheet" href="styles/prettify-tomorrow.css">
+ <link type="text/css" rel="stylesheet" href="styles/jsdoc-default.css">
+</head>
+
+<body>
+
+<div id="main">
+
+ <h1 class="page-title">Source: odata/metadata.js</h1>
+
+
+
+
+
+ <section>
+ <article>
+ <pre class="prettyprint source"><code>/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+/** @module odata/metadata */
+
+var utils = require('./../odatajs.js').utils;
+var oDSxml = require('./../odatajs.js').xml;
+var odataHandler = require('./handler.js');
+
+
+
+// imports
+var contains = utils.contains;
+var normalizeURI = utils.normalizeURI;
+var xmlAttributes = oDSxml.xmlAttributes;
+var xmlChildElements = oDSxml.xmlChildElements;
+var xmlFirstChildElement = oDSxml.xmlFirstChildElement;
+var xmlInnerText = oDSxml.xmlInnerText;
+var xmlLocalName = oDSxml.xmlLocalName;
+var xmlNamespaceURI = oDSxml.xmlNamespaceURI;
+var xmlNS = oDSxml.xmlNS;
+var xmlnsNS = oDSxml.xmlnsNS;
+var xmlParse = oDSxml.xmlParse;
+
+var ado = oDSxml.http + "docs.oasis-open.org/odata/"; // http://docs.oasis-open.org/odata/
+var adoDs = ado + "ns"; // http://docs.oasis-open.org/odata/ns
+var edmxNs = adoDs + "/edmx"; // http://docs.oasis-open.org/odata/ns/edmx
+var edmNs1 = adoDs + "/edm"; // http://docs.oasis-open.org/odata/ns/edm
+var odataMetaXmlNs = adoDs + "/metadata"; // http://docs.oasis-open.org/odata/ns/metadata
+var MAX_DATA_SERVICE_VERSION = odataHandler.MAX_DATA_SERVICE_VERSION;
+
+var xmlMediaType = "application/xml";
+
+/** Creates an object that describes an element in an schema.
+ * @param {Array} attributes - List containing the names of the attributes allowed for this element.
+ * @param {Array} elements - List containing the names of the child elements allowed for this element.
+ * @param {Boolean} text - Flag indicating if the element's text value is of interest or not.
+ * @param {String} ns - Namespace to which the element belongs to.
+ * If a child element name ends with * then it is understood by the schema that that child element can appear 0 or more times.
+ * @returns {Object} Object with attributes, elements, text, and ns fields.
+ */
+function schemaElement(attributes, elements, text, ns) {
+
+ return {
+ attributes: attributes,
+ elements: elements,
+ text: text || false,
+ ns: ns
+ };
+}
+
+// It's assumed that all elements may have Documentation children and Annotation elements.
+// See http://docs.oasis-open.org/odata/odata/v4.0/cs01/part3-csdl/odata-v4.0-cs01-part3-csdl.html for a CSDL reference.
+var schema = {
+ elements: {
+ Action: schemaElement(
+ /*attributes*/["Name", "IsBound", "EntitySetPath"],
+ /*elements*/["ReturnType", "Parameter*", "Annotation*"]
+ ),
+ ActionImport: schemaElement(
+ /*attributes*/["Name", "Action", "EntitySet", "Annotation*"]
+ ),
+ Annotation: schemaElement(
+ /*attributes*/["Term", "Qualifier", "Binary", "Bool", "Date", "DateTimeOffset", "Decimal", "Duration", "EnumMember", "Float", "Guid", "Int", "String", "TimeOfDay", "AnnotationPath", "NavigationPropertyPath", "Path", "PropertyPath", "UrlRef"],
+ /*elements*/["Binary*", "Bool*", "Date*", "DateTimeOffset*", "Decimal*", "Duration*", "EnumMember*", "Float*", "Guid*", "Int*", "String*", "TimeOfDay*", "And*", "Or*", "Not*", "Eq*", "Ne*", "Gt*", "Ge*", "Lt*", "Le*", "AnnotationPath*", "Apply*", "Cast*", "Collection*", "If*", "IsOf*", "LabeledElement*", "LabeledElementReference*", "Null*", "NavigationPropertyPath*", "Path*", "PropertyPath*", "Record*", "UrlRef*", "Annotation*"]
+ ),
+ AnnotationPath: schemaElement(
+ /*attributes*/null,
+ /*elements*/null,
+ /*text*/true
+ ),
+ Annotations: schemaElement(
+ /*attributes*/["Target", "Qualifier"],
+ /*elements*/["Annotation*"]
+ ),
+ Apply: schemaElement(
+ /*attributes*/["Function"],
+ /*elements*/["String*", "Path*", "LabeledElement*", "Annotation*"]
+ ),
+ And: schemaElement(
+ /*attributes*/null,
+ /*elements*/null,
+ /*text*/true
+ ),
+ Or: schemaElement(
+ /*attributes*/null,
+ /*elements*/null,
+ /*text*/true
+ ),
+ Not: schemaElement(
+ /*attributes*/null,
+ /*elements*/null,
+ /*text*/true
+ ),
+ Eq: schemaElement(
+ /*attributes*/null,
+ /*elements*/null,
+ /*text*/true
+ ),
+ Ne: schemaElement(
+ /*attributes*/null,
+ /*elements*/null,
+ /*text*/true
+ ),
+ Gt: schemaElement(
+ /*attributes*/null,
+ /*elements*/null,
+ /*text*/true
+ ),
+ Ge: schemaElement(
+ /*attributes*/null,
+ /*elements*/null,
+ /*text*/true
+ ),
+ Lt: schemaElement(
+ /*attributes*/null,
+ /*elements*/null,
+ /*text*/true
+ ),
+ Le: schemaElement(
+ /*attributes*/null,
+ /*elements*/null,
+ /*text*/true
+ ),
+ Binary: schemaElement(
+ /*attributes*/null,
+ /*elements*/null,
+ /*text*/true
+ ),
+ Bool: schemaElement(
+ /*attributes*/null,
+ /*elements*/null,
+ /*text*/true
+ ),
+ Cast: schemaElement(
+ /*attributes*/["Type"],
+ /*elements*/["Path*", "Annotation*"]
+ ),
+ Collection: schemaElement(
+ /*attributes*/null,
+ /*elements*/["Binary*", "Bool*", "Date*", "DateTimeOffset*", "Decimal*", "Duration*", "EnumMember*", "Float*", "Guid*", "Int*", "String*", "TimeOfDay*", "And*", "Or*", "Not*", "Eq*", "Ne*", "Gt*", "Ge*", "Lt*", "Le*", "AnnotationPath*", "Apply*", "Cast*", "Collection*", "If*", "IsOf*", "LabeledElement*", "LabeledElementReference*", "Null*", "NavigationPropertyPath*", "Path*", "PropertyPath*", "Record*", "UrlRef*"]
+ ),
+ ComplexType: schemaElement(
+ /*attributes*/["Name", "BaseType", "Abstract", "OpenType"],
+ /*elements*/["Property*", "NavigationProperty*", "Annotation*"]
+ ),
+ Date: schemaElement(
+ /*attributes*/null,
+ /*elements*/null,
+ /*text*/true
+ ),
+ DateTimeOffset: schemaElement(
+ /*attributes*/null,
+ /*elements*/null,
+ /*text*/true
+ ),
+ Decimal: schemaElement(
+ /*attributes*/null,
+ /*elements*/null,
+ /*text*/true
+ ),
+ Duration: schemaElement(
+ /*attributes*/null,
+ /*elements*/null,
+ /*text*/true
+ ),
+ EntityContainer: schemaElement(
+ /*attributes*/["Name", "Extends"],
+ /*elements*/["EntitySet*", "Singleton*", "ActionImport*", "FunctionImport*", "Annotation*"]
+ ),
+ EntitySet: schemaElement(
+ /*attributes*/["Name", "EntityType", "IncludeInServiceDocument"],
+ /*elements*/["NavigationPropertyBinding*", "Annotation*"]
+ ),
+ EntityType: schemaElement(
+ /*attributes*/["Name", "BaseType", "Abstract", "OpenType", "HasStream"],
+ /*elements*/["Key*", "Property*", "NavigationProperty*", "Annotation*"]
+ ),
+ EnumMember: schemaElement(
+ /*attributes*/null,
+ /*elements*/null,
+ /*text*/true
+ ),
+ EnumType: schemaElement(
+ /*attributes*/["Name", "UnderlyingType", "IsFlags"],
+ /*elements*/["Member*"]
+ ),
+ Float: schemaElement(
+ /*attributes*/null,
+ /*elements*/null,
+ /*text*/true
+ ),
+ Function: schemaElement(
+ /*attributes*/["Name", "IsBound", "IsComposable", "EntitySetPath"],
+ /*elements*/["ReturnType", "Parameter*", "Annotation*"]
+ ),
+ FunctionImport: schemaElement(
+ /*attributes*/["Name", "Function", "EntitySet", "IncludeInServiceDocument", "Annotation*"]
+ ),
+ Guid: schemaElement(
+ /*attributes*/null,
+ /*elements*/null,
+ /*text*/true
+ ),
+ If: schemaElement(
+ /*attributes*/null,
+ /*elements*/["Path*", "String*", "Annotation*"]
+ ),
+ Int: schemaElement(
+ /*attributes*/null,
+ /*elements*/null,
+ /*text*/true
+ ),
+ IsOf: schemaElement(
+ /*attributes*/["Type", "MaxLength", "Precision", "Scale", "Unicode", "SRID", "DefaultValue", "Annotation*"],
+ /*elements*/["Path*"]
+ ),
+ Key: schemaElement(
+ /*attributes*/null,
+ /*elements*/["PropertyRef*"]
+ ),
+ LabeledElement: schemaElement(
+ /*attributes*/["Name"],
+ /*elements*/["Binary*", "Bool*", "Date*", "DateTimeOffset*", "Decimal*", "Duration*", "EnumMember*", "Float*", "Guid*", "Int*", "String*", "TimeOfDay*", "And*", "Or*", "Not*", "Eq*", "Ne*", "Gt*", "Ge*", "Lt*", "Le*", "AnnotationPath*", "Apply*", "Cast*", "Collection*", "If*", "IsOf*", "LabeledElement*", "LabeledElementReference*", "Null*", "NavigationPropertyPath*", "Path*", "PropertyPath*", "Record*", "UrlRef*", "Annotation*"]
+ ),
+ LabeledElementReference: schemaElement(
+ /*attributes*/["Term"],
+ /*elements*/["Binary*", "Bool*", "Date*", "DateTimeOffset*", "Decimal*", "Duration*", "EnumMember*", "Float*", "Guid*", "Int*", "String*", "TimeOfDay*", "And*", "Or*", "Not*", "Eq*", "Ne*", "Gt*", "Ge*", "Lt*", "Le*", "AnnotationPath*", "Apply*", "Cast*", "Collection*", "If*", "IsOf*", "LabeledElement*", "LabeledElementReference*", "Null*", "NavigationPropertyPath*", "Path*", "PropertyPath*", "Record*", "UrlRef*"]
+ ),
+ Member: schemaElement(
+ /*attributes*/["Name", "Value"],
+ /*element*/["Annotation*"]
+ ),
+ NavigationProperty: schemaElement(
+ /*attributes*/["Name", "Type", "Nullable", "Partner", "ContainsTarget"],
+ /*elements*/["ReferentialConstraint*", "OnDelete*", "Annotation*"]
+ ),
+ NavigationPropertyBinding: schemaElement(
+ /*attributes*/["Path", "Target"]
+ ),
+ NavigationPropertyPath: schemaElement(
+ /*attributes*/null,
+ /*elements*/null,
+ /*text*/true
+ ),
+ Null: schemaElement(
+ /*attributes*/null,
+ /*elements*/["Annotation*"]
+ ),
+ OnDelete: schemaElement(
+ /*attributes*/["Action"],
+ /*elements*/["Annotation*"]
+ ),
+ Path: schemaElement(
+ /*attributes*/null,
+ /*elements*/null,
+ /*text*/true
+ ),
+ Parameter: schemaElement(
+ /*attributes*/["Name", "Type", "Nullable", "MaxLength", "Precision", "Scale", "SRID"],
+ /*elements*/["Annotation*"]
+ ),
+ Property: schemaElement(
+ /*attributes*/["Name", "Type", "Nullable", "MaxLength", "Precision", "Scale", "Unicode", "SRID", "DefaultValue"],
+ /*elements*/["Annotation*"]
+ ),
+ PropertyPath: schemaElement(
+ /*attributes*/null,
+ /*elements*/null,
+ /*text*/true
+ ),
+ PropertyRef: schemaElement(
+ /*attributes*/["Name", "Alias"]
+ ),
+ PropertyValue: schemaElement(
+ /*attributes*/["Property", "Path"],
+ /*elements*/["Binary*", "Bool*", "Date*", "DateTimeOffset*", "Decimal*", "Duration*", "EnumMember*", "Float*", "Guid*", "Int*", "String*", "TimeOfDay*", "And*", "Or*", "Not*", "Eq*", "Ne*", "Gt*", "Ge*", "Lt*", "Le*", "AnnotationPath*", "Apply*", "Cast*", "Collection*", "If*", "IsOf*", "LabeledElement*", "LabeledElementReference*", "Null*", "NavigationPropertyPath*", "Path*", "PropertyPath*", "Record*", "UrlRef*", "Annotation*"]
+ ),
+ Record: schemaElement(
+ /*attributes*/null,
+ /*Elements*/["PropertyValue*", "Property*", "Annotation*"]
+ ),
+ ReferentialConstraint: schemaElement(
+ /*attributes*/["Property", "ReferencedProperty", "Annotation*"]
+ ),
+ ReturnType: schemaElement(
+ /*attributes*/["Type", "Nullable", "MaxLength", "Precision", "Scale", "SRID"]
+ ),
+ String: schemaElement(
+ /*attributes*/null,
+ /*elements*/null,
+ /*text*/true
+ ),
+ Schema: schemaElement(
+ /*attributes*/["Namespace", "Alias"],
+ /*elements*/["Action*", "Annotations*", "Annotation*", "ComplexType*", "EntityContainer", "EntityType*", "EnumType*", "Function*", "Term*", "TypeDefinition*", "Annotation*"]
+ ),
+ Singleton: schemaElement(
+ /*attributes*/["Name", "Type"],
+ /*elements*/["NavigationPropertyBinding*", "Annotation*"]
+ ),
+ Term: schemaElement(
+ /*attributes*/["Name", "Type", "BaseTerm", "DefaultValue ", "AppliesTo", "Nullable", "MaxLength", "Precision", "Scale", "SRID"],
+ /*elements*/["Annotation*"]
+ ),
+ TimeOfDay: schemaElement(
+ /*attributes*/null,
+ /*elements*/null,
+ /*text*/true
+ ),
+ TypeDefinition: schemaElement(
+ /*attributes*/["Name", "UnderlyingType", "MaxLength", "Unicode", "Precision", "Scale", "SRID"],
+ /*elements*/["Annotation*"]
+ ),
+ UrlRef: schemaElement(
+ /*attributes*/null,
+ /*elements*/["Binary*", "Bool*", "Date*", "DateTimeOffset*", "Decimal*", "Duration*", "EnumMember*", "Float*", "Guid*", "Int*", "String*", "TimeOfDay*", "And*", "Or*", "Not*", "Eq*", "Ne*", "Gt*", "Ge*", "Lt*", "Le*", "AnnotationPath*", "Apply*", "Cast*", "Collection*", "If*", "IsOf*", "LabeledElement*", "LabeledElementReference*", "Null*", "NavigationPropertyPath*", "Path*", "PropertyPath*", "Record*", "UrlRef*", "Annotation*"]
+ ),
+
+ // See http://msdn.microsoft.com/en-us/library/dd541238(v=prot.10) for an EDMX reference.
+ Edmx: schemaElement(
+ /*attributes*/["Version"],
+ /*elements*/["DataServices", "Reference*"],
+ /*text*/false,
+ /*ns*/edmxNs
+ ),
+ DataServices: schemaElement(
+ /*attributes*/["m:MaxDataServiceVersion", "m:DataServiceVersion"],
+ /*elements*/["Schema*"],
+ /*text*/false,
+ /*ns*/edmxNs
+ ),
+ Reference: schemaElement(
+ /*attributes*/["Uri"],
+ /*elements*/["Include*", "IncludeAnnotations*", "Annotation*"]
+ ),
+ Include: schemaElement(
+ /*attributes*/["Namespace", "Alias"]
+ ),
+ IncludeAnnotations: schemaElement(
+ /*attributes*/["TermNamespace", "Qualifier", "TargetNamespace"]
+ )
+ }
+};
+
+
+/** Converts a Pascal-case identifier into a camel-case identifier.
+ * @param {String} text - Text to convert.
+ * @returns {String} Converted text.
+ * If the text starts with multiple uppercase characters, it is left as-is.</remarks>
+ */
+function scriptCase(text) {
+
+ if (!text) {
+ return text;
+ }
+
+ if (text.length > 1) {
+ var firstTwo = text.substr(0, 2);
+ if (firstTwo === firstTwo.toUpperCase()) {
+ return text;
+ }
+
+ return text.charAt(0).toLowerCase() + text.substr(1);
+ }
+
+ return text.charAt(0).toLowerCase();
+}
+
+/** Gets the schema node for the specified element.
+ * @param {Object} parentSchema - Schema of the parent XML node of 'element'.
+ * @param candidateName - XML element name to consider.
+ * @returns {Object} The schema that describes the specified element; null if not found.
+ */
+function getChildSchema(parentSchema, candidateName) {
+
+ var elements = parentSchema.elements;
+ if (!elements) {
+ return null;
+ }
+
+ var i, len;
+ for (i = 0, len = elements.length; i < len; i++) {
+ var elementName = elements[i];
+ var multipleElements = false;
+ if (elementName.charAt(elementName.length - 1) === "*") {
+ multipleElements = true;
+ elementName = elementName.substr(0, elementName.length - 1);
+ }
+
+ if (candidateName === elementName) {
+ var propertyName = scriptCase(elementName);
+ return { isArray: multipleElements, propertyName: propertyName };
+ }
+ }
+
+ return null;
+}
+
+/** Checks whether the specifies namespace URI is one of the known CSDL namespace URIs.
+ * @param {String} nsURI - Namespace URI to check.
+ * @returns {Boolean} true if nsURI is a known CSDL namespace; false otherwise.
+ */
+function isEdmNamespace(nsURI) {
+
+ return nsURI === edmNs1;
+}
+
+/** Parses a CSDL document.
+ * @param element - DOM element to parse.
+ * @returns {Object} An object describing the parsed element.
+ */
+function parseConceptualModelElement(element) {
+
+ var localName = xmlLocalName(element);
+ var nsURI = xmlNamespaceURI(element);
+ var elementSchema = schema.elements[localName];
+ if (!elementSchema) {
+ return null;
+ }
+
+ if (elementSchema.ns) {
+ if (nsURI !== elementSchema.ns) {
+ return null;
+ }
+ } else if (!isEdmNamespace(nsURI)) {
+ return null;
+ }
+
+ var item = {};
+ var attributes = elementSchema.attributes || [];
+ xmlAttributes(element, function (attribute) {
+
+ var localName = xmlLocalName(attribute);
+ var nsURI = xmlNamespaceURI(attribute);
+ var value = attribute.value;
+
+ // Don't do anything with xmlns attributes.
+ if (nsURI === xmlnsNS) {
+ return;
+ }
+
+ // Currently, only m: for metadata is supported as a prefix in the internal schema table,
+ // un-prefixed element names imply one a CSDL element.
+ var schemaName = null;
+ var handled = false;
+ if (isEdmNamespace(nsURI) || nsURI === null) {
+ schemaName = "";
+ } else if (nsURI === odataMetaXmlNs) {
+ schemaName = "m:";
+ }
+
+ if (schemaName !== null) {
+ schemaName += localName;
+
+ if (contains(attributes, schemaName)) {
+ item[scriptCase(localName)] = value;
+ }
+ }
+
+ });
+
+ xmlChildElements(element, function (child) {
+ var localName = xmlLocalName(child);
+ var childSchema = getChildSchema(elementSchema, localName);
+ if (childSchema) {
+ if (childSchema.isArray) {
+ var arr = item[childSchema.propertyName];
+ if (!arr) {
+ arr = [];
+ item[childSchema.propertyName] = arr;
+ }
+ arr.push(parseConceptualModelElement(child));
+ } else {
+ item[childSchema.propertyName] = parseConceptualModelElement(child);
+ }
+ }
+ });
+
+ if (elementSchema.text) {
+ item.text = xmlInnerText(element);
+ }
+
+ return item;
+}
+
+/** Parses a metadata document.
+ * @param handler - This handler.
+ * @param {String} text - Metadata text.
+ * @returns An object representation of the conceptual model.</returns>
+ */
+function metadataParser(handler, text) {
+
+ var doc = xmlParse(text);
+ var root = xmlFirstChildElement(doc);
+ return parseConceptualModelElement(root) || undefined;
+}
+
+
+
+exports.metadataHandler = odataHandler.handler(metadataParser, null, xmlMediaType, MAX_DATA_SERVICE_VERSION);
+
+exports.schema = schema;
+exports.scriptCase = scriptCase;
+exports.getChildSchema = getChildSchema;
+exports.parseConceptualModelElement = parseConceptualModelElement;
+exports.metadataParser = metadataParser;</code></pre>
+ </article>
+ </section>
+
+
+
+
+</div>
+
+<nav>
+ <h2><a href="index.html">Index</a></h2><h3>Modules</h3><ul><li><a href="module-cache.html">cache</a></li><li><a href="source.html">cache/source</a></li><li><a href="module-datajs.html">datajs</a></li><li><a href="deferred.html">datajs/deferred</a></li><li><a href="utils.html">datajs/utils</a></li><li><a href="xml.html">datajs/xml</a></li><li><a href="module-odata.html">odata</a></li><li><a href="batch.html">odata/batch</a></li><li><a href="handler.html">odata/handler</a></li><li><a href="json.html">odata/json</a></li><li><a href="metadata.html">odata/metadata</a></li><li><a href="net.html">odata/net</a></li><li><a href="utils_.html">odata/utils</a></li><li><a href="module-store.html">store</a></li><li><a href="dom.html">store/dom</a></li><li><a href="indexeddb.html">store/indexeddb</a></li><li><a href="memory.html">store/memory</a></li></ul><h3>Classes</h3><ul><li><a href="DataCache.html">DataCache</a></li><li><a href="DataCacheOperation.html">DataCacheOperation</a></li><li><a h
ref="DjsDeferred.html">DjsDeferred</a></li><li><a href="dom-DomStore.html">DomStore</a></li><li><a href="indexeddb-IndexedDBStore.html">IndexedDBStore</a></li><li><a href="memory-MemoryStore.html">MemoryStore</a></li><li><a href="ODataCacheSource.html">ODataCacheSource</a></li></ul><h3><a href="global.html">Global</a></h3>
+</nav>
+
+<br clear="both">
+
+<footer>
+ Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 3.2.2</a> on Mon Sep 15 2014 13:07:59 GMT+0200 (MESZ)
+</footer>
+
+<script> prettyPrint(); </script>
+<script src="scripts/linenumber.js"> </script>
+</body>
+</html>