@sap/odata-v4
Version:
OData V4.0 server library
74 lines (63 loc) • 1.6 kB
JavaScript
;
const EdmAnnotation = require('./EdmAnnotation');
const validateThat = require('../validator/ParameterValidator').validateThat;
/**
* * * <a href="./../ODataSpecification/odata-v4.0-errata03-os/complete/part3-csdl/odata-v4.0-errata03-os-part3-csdl-complete.html#_Toc453752570">
* OData CSDL # 10.2 Element edm:Member
* </a>
* @hideconstructor
*/
class EdmEnumMember {
/**
* Constructor
* @param {Edm} edm The edm itself
* @param {CsdlEnumMember} enumMember
*/
constructor(edm, enumMember) {
validateThat('edm', edm).truthy();
validateThat('enumMember', enumMember).truthy();
/**
* @type {Edm}
* @private
*/
this._edm = edm;
/**
* @type {CsdlEnumMember}
* @private
*/
this._enumMember = enumMember;
/**
* @type {EdmAnnotation[]}
* @private
*/
this._annotations = null;
}
/**
* Returns the name.
*
* @returns {string}
*/
getName() {
return this._enumMember.name;
}
/**
* Returns the value.
*
* @returns {number}
*/
getValue() {
return this._enumMember.value;
}
/**
* Returns the annotations for this member.
*
* @returns {EdmAnnotation[]}
*/
getAnnotations() {
if (!this._annotations) {
this._annotations = this._enumMember.annotations.map(item => new EdmAnnotation(this._edm, item));
}
return this._annotations;
}
}
module.exports = EdmEnumMember;