| <!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.
|
| */
|
| 'use strict';
|
|
|
| /** @module odata/metadata */
|
|
|
| var utils = require('./../utils.js');
|
| var oDSxml = require('./../xml.js');
|
| 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.
|
| */
|
| 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;
|
| 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.
|
| */
|
| 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-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="deferred.html">odatajs/deferred</a></li><li><a href="utils_.html">odatajs/utils</a></li><li><a href="xml.html">odatajs/xml</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 href="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 Thu Apr 09 2015 08:31:26 GMT+0200 (MESZ) |
| </footer> |
| |
| <script> prettyPrint(); </script> |
| <script src="scripts/linenumber.js"> </script> |
| </body> |
| </html> |