Press n or j to go to the next uncovered block, b, p or k for the previous block.
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 | 1x 1x 29x 29x 2x 29x 29x 2x 29x 29x 1x 29x 29x 1x 29x 2x 3x 3x 1x | "use strict";
const _ = require("lodash");
const AnnotationTarget = require("../annotations/AnnotationTarget");
/**
* Parameter definition. SRID not implemented.
*
* http://docs.oasis-open.org/odata/odata-csdl-xml/v4.01/cs01/odata-csdl-xml-v4.01-cs01.html#sec_Parameter
*
* @class Parameter
* @extends {AnnotationTarget}
*/
class Parameter extends AnnotationTarget {
/**
* Creates an instance of Parameter.
* @param {Object} rawMetadata raw metadata object for a return type
* @memberof Parameter
*/
constructor(rawMetadata) {
super(rawMetadata);
Object.defineProperty(this, "nullable", {
get: () => rawMetadata.$.Nullable !== "false",
});
let maxLength = _.has(rawMetadata.$, "MaxLength")
? Number(rawMetadata.$.MaxLength)
: undefined;
Object.defineProperty(this, "maxLength", {
get: () => maxLength,
});
let precision = _.has(rawMetadata.$, "Precision")
? Number(rawMetadata.$.Precision)
: undefined;
Object.defineProperty(this, "precision", {
get: () => precision,
});
let scale = _.has(rawMetadata.$, "Scale")
? Number(rawMetadata.$.Scale)
: undefined;
Object.defineProperty(this, "scale", {
get: () => scale,
});
Object.defineProperty(this, "unicode", {
get: () => rawMetadata.$.Unicode !== "false",
});
}
/**
* Initializes schema dependent properties. Decoupled from constructor,
* because it needs to resolve schema (type) references.
*
* @param {CsdlSchema} schema to resolve references
* @memberof Parameter
*/
initSchemaDependentProperties(schema) {
Object.defineProperty(this, "type", {
get: () => schema.getType(this.raw.$.Type),
});
}
}
module.exports = Parameter;
|