@sap/odata-v4
Version:
OData V4.0 server library
72 lines (62 loc) • 3.27 kB
JavaScript
'use strict';
const EdmPrimitiveType = require('./EdmPrimitiveType');
const IllegalArgumentError = require('../errors/IllegalArgumentError');
/**
* Enum for primitive types
* @hideconstructor
*/
class EdmPrimitiveTypeKind {
/**
* @param {string} name Name
* @returns {undefined|EdmPrimitiveType}
*/
static fromName(name) {
return EdmPrimitiveTypeKind[name];
}
/**
*
* @param {string} fqn e.g. namespace.name
* @returns {EdmPrimitiveType}
*/
static fromNameSpaceName(fqn) {
if (!fqn.startsWith(EdmPrimitiveType.EDM_NAMESPACE + '.')) {
throw IllegalArgumentError.createForIllegalInstance(fqn, 'Edm primitive type');
}
return this.fromName(fqn.substring(4));
}
}
EdmPrimitiveTypeKind.Binary = new EdmPrimitiveType('Binary');
EdmPrimitiveTypeKind.Boolean = new EdmPrimitiveType('Boolean');
EdmPrimitiveTypeKind.Byte = new EdmPrimitiveType('Byte');
EdmPrimitiveTypeKind.SByte = new EdmPrimitiveType('SByte');
EdmPrimitiveTypeKind.Date = new EdmPrimitiveType('Date');
EdmPrimitiveTypeKind.DateTimeOffset = new EdmPrimitiveType('DateTimeOffset');
EdmPrimitiveTypeKind.TimeOfDay = new EdmPrimitiveType('TimeOfDay');
EdmPrimitiveTypeKind.Duration = new EdmPrimitiveType('Duration');
EdmPrimitiveTypeKind.Decimal = new EdmPrimitiveType('Decimal');
EdmPrimitiveTypeKind.Single = new EdmPrimitiveType('Single');
EdmPrimitiveTypeKind.Double = new EdmPrimitiveType('Double');
EdmPrimitiveTypeKind.Guid = new EdmPrimitiveType('Guid');
EdmPrimitiveTypeKind.Int16 = new EdmPrimitiveType('Int16');
EdmPrimitiveTypeKind.Int32 = new EdmPrimitiveType('Int32');
EdmPrimitiveTypeKind.Int64 = new EdmPrimitiveType('Int64');
EdmPrimitiveTypeKind.String = new EdmPrimitiveType('String');
EdmPrimitiveTypeKind.Stream = new EdmPrimitiveType('Stream');
// Abstract types are not supported.
// EdmPrimitiveTypeKind.Geography = new EdmPrimitiveType('Geography');
// EdmPrimitiveTypeKind.Geometry = new EdmPrimitiveType('Geometry');
EdmPrimitiveTypeKind.GeographyPoint = new EdmPrimitiveType('GeographyPoint');
EdmPrimitiveTypeKind.GeographyLineString = new EdmPrimitiveType('GeographyLineString');
EdmPrimitiveTypeKind.GeographyPolygon = new EdmPrimitiveType('GeographyPolygon');
EdmPrimitiveTypeKind.GeographyMultiPoint = new EdmPrimitiveType('GeographyMultiPoint');
EdmPrimitiveTypeKind.GeographyMultiLineString = new EdmPrimitiveType('GeographyMultiLineString');
EdmPrimitiveTypeKind.GeographyMultiPolygon = new EdmPrimitiveType('GeographyMultiPolygon');
EdmPrimitiveTypeKind.GeographyCollection = new EdmPrimitiveType('GeographyCollection');
EdmPrimitiveTypeKind.GeometryPoint = new EdmPrimitiveType('GeometryPoint');
EdmPrimitiveTypeKind.GeometryLineString = new EdmPrimitiveType('GeometryLineString');
EdmPrimitiveTypeKind.GeometryPolygon = new EdmPrimitiveType('GeometryPolygon');
EdmPrimitiveTypeKind.GeometryMultiPoint = new EdmPrimitiveType('GeometryMultiPoint');
EdmPrimitiveTypeKind.GeometryMultiLineString = new EdmPrimitiveType('GeometryMultiLineString');
EdmPrimitiveTypeKind.GeometryMultiPolygon = new EdmPrimitiveType('GeometryMultiPolygon');
EdmPrimitiveTypeKind.GeometryCollection = new EdmPrimitiveType('GeometryCollection');
module.exports = EdmPrimitiveTypeKind;