src/a40_entityMetadata.js
function ComplexType(config) {
    if (arguments.length > 1) {
      throw new Error("The ComplexType ctor has a single argument that is a configuration object.");
    }

    assertConfig(config)
        .whereParam("shortName").isNonEmptyString()
        .whereParam("namespace").isString().isOptional().withDefault("")
        .whereParam("dataProperties").isOptional()
        .whereParam("isComplexType").isOptional().isBoolean()   // needed because this ctor can get called from the addEntityType method which needs the isComplexType prop
        .whereParam("custom").isOptional()
        .applyAll(this);

    this.name = qualifyTypeName(this.shortName, this.namespace);
    this.isComplexType = true;
    this.dataProperties = [];
    this.complexProperties = [];
    this.validators = [];
    this.concurrencyProperties = [];
    this.unmappedProperties = [];
    this.navigationProperties = []; // not yet supported
    this.keyProperties = []; // may be used later to enforce uniqueness on arrays of complextypes.

    addProperties(this, config.dataProperties, DataProperty);
  }
function ComplexType(config) {
    if (arguments.length > 1) {
      throw new Error("The ComplexType ctor has a single argument that is a configuration object.");
    }

    assertConfig(config)
        .whereParam("shortName").isNonEmptyString()
        .whereParam("namespace").isString().isOptional().withDefault("")
        .whereParam("dataProperties").isOptional()
        .whereParam("isComplexType").isOptional().isBoolean()   // needed because this ctor can get called from the addEntityType method which needs the isComplexType prop
        .whereParam("custom").isOptional()
        .applyAll(this);

    this.name = qualifyTypeName(this.shortName, this.namespace);
    this.isComplexType = true;
    this.dataProperties = [];
    this.complexProperties = [];
    this.validators = [];
    this.concurrencyProperties = [];
    this.unmappedProperties = [];
    this.navigationProperties = []; // not yet supported
    this.keyProperties = []; // may be used later to enforce uniqueness on arrays of complextypes.

    addProperties(this, config.dataProperties, DataProperty);
  }
function ComplexType ( config ) { if ( arguments . length > 1 ) { throw new Error ( "The ComplexType ctor has a single argument that is a configuration object." ) ; } assertConfig ( config ) . whereParam ( "shortName" ) . isNonEmptyString ( ) . whereParam ( "namespace" ) . isString ( ) . isOptional ( ) . withDefault ( "" ) . whereParam ( "dataProperties" ) . isOptional ( ) . whereParam ( "isComplexType" ) . isOptional ( ) . isBoolean ( ) // needed because this ctor can get called from the addEntityType method which needs the isComplexType prop . whereParam ( "custom" ) . isOptional ( ) . applyAll ( this ) ; this . name = qualifyTypeName ( this . shortName , this . namespace ) ; this . isComplexType = true ; this . dataProperties = [ ] ; this . complexProperties = [ ] ; this . validators = [ ] ; this . concurrencyProperties = [ ] ; this . unmappedProperties = [ ] ; this . navigationProperties = [ ] ; // not yet supported this . keyProperties = [ ] ; // may be used later to enforce uniqueness on arrays of complextypes. addProperties ( this , config . dataProperties , DataProperty ) ; }
Container for all of the metadata about a specific type of Complex object.
@class ComplexType
 
@example
var complexType = new ComplexType( {
shortName: "address",
namespace: "myAppNamespace"
});
@method <ctor> ComplexType
@param config {Object} Configuration settings
@param config.shortName {String}
@param [config.namespace=""] {String}
@param [config.dataProperties] {Array of DataProperties}
@param [config.custom] {Object}
Container for all of the metadata about a specific type of Complex object .