angular-odata
Version:
Client side OData typescript library for Angular
116 lines • 4.09 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.CsdlPropertyRef = exports.CsdlKey = exports.CsdlEntityType = exports.CsdlComplexType = exports.CsdlStructuredType = void 0;
const csdl_annotation_1 = require("./csdl-annotation");
const csdl_structural_property_1 = require("./csdl-structural-property");
class CsdlStructuredType extends csdl_annotation_1.CsdlAnnotable {
constructor(schema, { Name, Property, NavigationProperty, BaseType, OpenType, Abstract, Annotation, }) {
super({ Annotation });
this.schema = schema;
this.Name = Name;
this.Property = Property === null || Property === void 0 ? void 0 : Property.map((p) => new csdl_structural_property_1.CsdlProperty(p));
this.NavigationProperty = NavigationProperty === null || NavigationProperty === void 0 ? void 0 : NavigationProperty.map((n) => new csdl_structural_property_1.CsdlNavigationProperty(n));
this.BaseType = BaseType;
this.OpenType = OpenType;
this.Abstract = Abstract;
}
toJson() {
const json = Object.assign(Object.assign({}, super.toJson()), { Name: this.Name });
if (Array.isArray(this.Property) && this.Property.length > 0) {
json['Property'] = this.Property.map((p) => p.toJson());
}
if (Array.isArray(this.NavigationProperty) &&
this.NavigationProperty.length > 0) {
json['NavigationProperty'] = this.NavigationProperty.map((n) => n.toJson());
}
if (this.BaseType !== undefined) {
json['BaseType'] = this.BaseType;
}
if (this.OpenType !== undefined) {
json['OpenType'] = this.OpenType;
}
if (this.Abstract !== undefined) {
json['Abstract'] = this.Abstract;
}
return json;
}
name() {
return `${this.Name}`;
}
namespace() {
return `${this.schema.Namespace}`;
}
fullName() {
return `${this.schema.Namespace}.${this.Name}`;
}
}
exports.CsdlStructuredType = CsdlStructuredType;
class CsdlComplexType extends CsdlStructuredType {
constructor(schema, { Name, Property, NavigationProperty, BaseType, OpenType, Abstract, Annotation, }) {
super(schema, {
Name,
Property,
NavigationProperty,
BaseType,
OpenType,
Abstract,
Annotation,
});
}
toJson() {
return Object.assign({}, super.toJson());
}
}
exports.CsdlComplexType = CsdlComplexType;
class CsdlEntityType extends CsdlStructuredType {
constructor(schema, { Name, Key, Property, NavigationProperty, BaseType, OpenType, Abstract, HasStream, Annotation, }) {
super(schema, {
Name,
Property,
NavigationProperty,
BaseType,
OpenType,
Abstract,
Annotation,
});
this.Key = Key ? new CsdlKey(Key) : undefined;
this.HasStream = HasStream;
}
toJson() {
const json = Object.assign({}, super.toJson());
if (this.Key !== undefined) {
json['Key'] = this.Key.toJson();
}
if (this.HasStream !== undefined) {
json['HasStream'] = this.HasStream;
}
return json;
}
}
exports.CsdlEntityType = CsdlEntityType;
class CsdlKey {
constructor({ PropertyRef }) {
this.PropertyRef = PropertyRef === null || PropertyRef === void 0 ? void 0 : PropertyRef.map((p) => new CsdlPropertyRef(p));
}
toJson() {
var _a;
return {
PropertyRef: (_a = this.PropertyRef) === null || _a === void 0 ? void 0 : _a.map((p) => p.toJson()),
};
}
}
exports.CsdlKey = CsdlKey;
class CsdlPropertyRef {
constructor({ Name, Alias }) {
this.Name = Name;
this.Alias = Alias;
}
toJson() {
return {
Name: this.Name,
Alias: this.Alias,
};
}
}
exports.CsdlPropertyRef = CsdlPropertyRef;
//# sourceMappingURL=csdl-structured-type.js.map