@tripsnek/tmf
Version:
TypeScript Modeling Framework - A TypeScript port of the Eclipse Modeling Framework (EMF)
53 lines • 5.7 kB
JavaScript
import { ENamedElementImpl } from './enamed-element-impl.js';
export class ETypedElementImpl extends ENamedElementImpl {
static UNBOUNDED_MULTIPLICITY = -1;
static UNSPECIFIED_MULTIPLICITY = 0;
// private ordered = false;
unique = false;
eType;
lowerBound = ETypedElementImpl.UNSPECIFIED_MULTIPLICITY;
upperBound = ETypedElementImpl.UNSPECIFIED_MULTIPLICITY;
constructor(name, eType) {
super(name);
if (eType)
this.eType = eType;
}
getLowerBound() {
return this.lowerBound;
}
setLowerBound(value) {
this.lowerBound = value;
}
getUpperBound() {
return this.upperBound;
}
setUpperBound(value) {
this.upperBound = value;
}
// public isUnique(): boolean {
// return this.unique;
// }
// public setUnique(value: boolean): void {
// this.unique = value;
// }
getEType() {
return this.eType;
}
setEType(value) {
this.eType = value;
}
isMany() {
return (this.upperBound > 1 ||
this.upperBound === ETypedElementImpl.UNBOUNDED_MULTIPLICITY);
}
// public isOrdered(): boolean {
// return this.ordered;
// }
// public setOrdered(value: boolean): void {
// this.ordered = value;
// }
isRequired() {
return this.lowerBound > 0;
}
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXR5cGVkLWVsZW1lbnQtaW1wbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9saWIvbWV0YW1vZGVsL2ltcGwvZXR5cGVkLWVsZW1lbnQtaW1wbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFHQSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUU3RCxNQUFNLE9BQU8saUJBQ1gsU0FBUSxpQkFBaUI7SUFHbEIsTUFBTSxDQUFDLHNCQUFzQixHQUFHLENBQUMsQ0FBQyxDQUFDO0lBQ25DLE1BQU0sQ0FBQyx3QkFBd0IsR0FBRyxDQUFDLENBQUM7SUFFM0MsMkJBQTJCO0lBQ25CLE1BQU0sR0FBRyxLQUFLLENBQUM7SUFDZixLQUFLLENBQWU7SUFDcEIsVUFBVSxHQUFXLGlCQUFpQixDQUFDLHdCQUF3QixDQUFDO0lBQ2hFLFVBQVUsR0FBVyxpQkFBaUIsQ0FBQyx3QkFBd0IsQ0FBQztJQUV4RSxZQUFtQixJQUFhLEVBQUUsS0FBbUI7UUFDbkQsS0FBSyxDQUFFLElBQUksQ0FBQyxDQUFDO1FBQ2IsSUFBSSxLQUFLO1lBQUUsSUFBSSxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUM7SUFDaEMsQ0FBQztJQUVNLGFBQWE7UUFDbEIsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDO0lBQ3pCLENBQUM7SUFFTSxhQUFhLENBQUMsS0FBYTtRQUNoQyxJQUFJLENBQUMsVUFBVSxHQUFHLEtBQUssQ0FBQztJQUMxQixDQUFDO0lBRU0sYUFBYTtRQUNsQixPQUFPLElBQUksQ0FBQyxVQUFVLENBQUM7SUFDekIsQ0FBQztJQUVNLGFBQWEsQ0FBQyxLQUFhO1FBQ2hDLElBQUksQ0FBQyxVQUFVLEdBQUcsS0FBSyxDQUFDO0lBQzFCLENBQUM7SUFFRCwrQkFBK0I7SUFDL0Isd0JBQXdCO0lBQ3hCLElBQUk7SUFFSiwyQ0FBMkM7SUFDM0MseUJBQXlCO0lBQ3pCLElBQUk7SUFFRyxRQUFRO1FBQ2IsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDO0lBQ3BCLENBQUM7SUFFTSxRQUFRLENBQUMsS0FBa0I7UUFDaEMsSUFBSSxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUM7SUFDckIsQ0FBQztJQUVNLE1BQU07UUFDWCxPQUFPLENBQ0wsSUFBSSxDQUFDLFVBQVUsR0FBRyxDQUFDO1lBQ25CLElBQUksQ0FBQyxVQUFVLEtBQUssaUJBQWlCLENBQUMsc0JBQXNCLENBQzdELENBQUM7SUFDSixDQUFDO0lBRUQsZ0NBQWdDO0lBQ2hDLHlCQUF5QjtJQUN6QixJQUFJO0lBRUosNENBQTRDO0lBQzVDLDBCQUEwQjtJQUMxQixJQUFJO0lBRUcsVUFBVTtRQUNmLE9BQU8sSUFBSSxDQUFDLFVBQVUsR0FBRyxDQUFDLENBQUM7SUFDN0IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEVDbGFzc2lmaWVyIH0gZnJvbSAnLi4vYXBpL2VjbGFzc2lmaWVyLmpzJztcclxuaW1wb3J0IHsgRUNsYXNzIH0gZnJvbSAnLi4vYXBpL2VjbGFzcy5qcyc7XHJcbmltcG9ydCB7IEVUeXBlZEVsZW1lbnQgfSBmcm9tICcuLi9hcGkvZXR5cGVkLWVsZW1lbnQuanMnO1xyXG5pbXBvcnQgeyBFTmFtZWRFbGVtZW50SW1wbCB9IGZyb20gJy4vZW5hbWVkLWVsZW1lbnQtaW1wbC5qcyc7XHJcblxyXG5leHBvcnQgY2xhc3MgRVR5cGVkRWxlbWVudEltcGxcclxuICBleHRlbmRzIEVOYW1lZEVsZW1lbnRJbXBsXHJcbiAgaW1wbGVtZW50cyBFVHlwZWRFbGVtZW50XHJcbntcclxuICBwdWJsaWMgc3RhdGljIFVOQk9VTkRFRF9NVUxUSVBMSUNJVFkgPSAtMTtcclxuICBwdWJsaWMgc3RhdGljIFVOU1BFQ0lGSUVEX01VTFRJUExJQ0lUWSA9IDA7XHJcblxyXG4gIC8vIHByaXZhdGUgb3JkZXJlZCA9IGZhbHNlO1xyXG4gIHByaXZhdGUgdW5pcXVlID0gZmFsc2U7XHJcbiAgcHJpdmF0ZSBlVHlwZSE6IEVDbGFzc2lmaWVyO1xyXG4gIHByaXZhdGUgbG93ZXJCb3VuZDogbnVtYmVyID0gRVR5cGVkRWxlbWVudEltcGwuVU5TUEVDSUZJRURfTVVMVElQTElDSVRZO1xyXG4gIHByaXZhdGUgdXBwZXJCb3VuZDogbnVtYmVyID0gRVR5cGVkRWxlbWVudEltcGwuVU5TUEVDSUZJRURfTVVMVElQTElDSVRZO1xyXG5cclxuICBwdWJsaWMgY29uc3RydWN0b3IobmFtZT86IHN0cmluZywgZVR5cGU/OiBFQ2xhc3NpZmllcikge1xyXG4gICAgc3VwZXIoIG5hbWUpO1xyXG4gICAgaWYgKGVUeXBlKSB0aGlzLmVUeXBlID0gZVR5cGU7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0TG93ZXJCb3VuZCgpOiBudW1iZXIge1xyXG4gICAgcmV0dXJuIHRoaXMubG93ZXJCb3VuZDtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBzZXRMb3dlckJvdW5kKHZhbHVlOiBudW1iZXIpOiB2b2lkIHtcclxuICAgIHRoaXMubG93ZXJCb3VuZCA9IHZhbHVlO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGdldFVwcGVyQm91bmQoKTogbnVtYmVyIHtcclxuICAgIHJldHVybiB0aGlzLnVwcGVyQm91bmQ7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgc2V0VXBwZXJCb3VuZCh2YWx1ZTogbnVtYmVyKTogdm9pZCB7XHJcbiAgICB0aGlzLnVwcGVyQm91bmQgPSB2YWx1ZTtcclxuICB9XHJcblxyXG4gIC8vIHB1YmxpYyBpc1VuaXF1ZSgpOiBib29sZWFuIHtcclxuICAvLyAgIHJldHVybiB0aGlzLnVuaXF1ZTtcclxuICAvLyB9XHJcblxyXG4gIC8vIHB1YmxpYyBzZXRVbmlxdWUodmFsdWU6IGJvb2xlYW4pOiB2b2lkIHtcclxuICAvLyAgIHRoaXMudW5pcXVlID0gdmFsdWU7XHJcbiAgLy8gfVxyXG5cclxuICBwdWJsaWMgZ2V0RVR5cGUoKTogRUNsYXNzaWZpZXIge1xyXG4gICAgcmV0dXJuIHRoaXMuZVR5cGU7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgc2V0RVR5cGUodmFsdWU6IEVDbGFzc2lmaWVyKTogdm9pZCB7XHJcbiAgICB0aGlzLmVUeXBlID0gdmFsdWU7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgaXNNYW55KCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIChcclxuICAgICAgdGhpcy51cHBlckJvdW5kID4gMSB8fFxyXG4gICAgICB0aGlzLnVwcGVyQm91bmQgPT09IEVUeXBlZEVsZW1lbnRJbXBsLlVOQk9VTkRFRF9NVUxUSVBMSUNJVFlcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICAvLyBwdWJsaWMgaXNPcmRlcmVkKCk6IGJvb2xlYW4ge1xyXG4gIC8vICAgcmV0dXJuIHRoaXMub3JkZXJlZDtcclxuICAvLyB9XHJcblxyXG4gIC8vIHB1YmxpYyBzZXRPcmRlcmVkKHZhbHVlOiBib29sZWFuKTogdm9pZCB7XHJcbiAgLy8gICB0aGlzLm9yZGVyZWQgPSB2YWx1ZTtcclxuICAvLyB9XHJcblxyXG4gIHB1YmxpYyBpc1JlcXVpcmVkKCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIHRoaXMubG93ZXJCb3VuZCA+IDA7XHJcbiAgfVxyXG59XHJcbiJdfQ==