@tripsnek/tmf
Version:
TypeScript Modeling Framework - A TypeScript port of the Eclipse Modeling Framework (EMF)
31 lines • 4.61 kB
JavaScript
import { BasicEList } from '../basicelist.js';
import { EDataTypeImpl } from './edata-type-impl.js';
export class EEnumImpl extends EDataTypeImpl {
eLiterals = new BasicEList();
constructor() {
super();
}
getELiterals() {
return this.eLiterals;
}
addLiteral(value) {
this.eLiterals.add(value);
}
getEEnumLiteralByLiteral(literal) {
return this.eLiterals.find((e) => e.getLiteral() === literal);
}
getEEnumLiteral(value) {
if (typeof value === 'number') {
return this.eLiterals.find((e) => e.getValue() === value);
}
else {
let toRet = this.eLiterals.find((e) => e.getLiteral() === value);
//attempt to interpret string as literal value (in case number was passed in as a string)
if (!toRet) {
toRet = this.eLiterals.find((e) => e.getValue().toString() === value);
}
return toRet;
}
}
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWVudW0taW1wbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9saWIvbWV0YW1vZGVsL2ltcGwvZWVudW0taW1wbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFFOUMsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBR3JELE1BQU0sT0FBTyxTQUFVLFNBQVEsYUFBYTtJQUNsQyxTQUFTLEdBQXdCLElBQUksVUFBVSxFQUFFLENBQUM7SUFFMUQ7UUFDRSxLQUFLLEVBQUUsQ0FBQztJQUNWLENBQUM7SUFFTSxZQUFZO1FBQ2pCLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQztJQUN4QixDQUFDO0lBRU0sVUFBVSxDQUFDLEtBQW1CO1FBQ25DLElBQUksQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzVCLENBQUM7SUFFTSx3QkFBd0IsQ0FBQyxPQUFlO1FBQzdDLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxVQUFVLEVBQUUsS0FBSyxPQUFPLENBQUMsQ0FBQztJQUNoRSxDQUFDO0lBSU0sZUFBZSxDQUFDLEtBQXNCO1FBQzNDLElBQUksT0FBTyxLQUFLLEtBQUssUUFBUSxFQUFFLENBQUM7WUFDOUIsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLFFBQVEsRUFBRSxLQUFLLEtBQUssQ0FBQyxDQUFDO1FBQzVELENBQUM7YUFBTSxDQUFDO1lBQ04sSUFBSSxLQUFLLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxVQUFVLEVBQUUsS0FBSyxLQUFLLENBQUMsQ0FBQztZQUNqRSx5RkFBeUY7WUFDekYsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDO2dCQUNYLEtBQUssR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLFFBQVEsRUFBRSxDQUFDLFFBQVEsRUFBRSxLQUFLLEtBQUssQ0FBQyxDQUFDO1lBQ3hFLENBQUM7WUFDRCxPQUFPLEtBQUssQ0FBQztRQUNmLENBQUM7SUFDSCxDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBFRW51bUxpdGVyYWwgfSBmcm9tICcuLi9hcGkvZWVudW0tbGl0ZXJhbC5qcyc7XHJcbmltcG9ydCB7IEVMaXN0IH0gZnJvbSAnLi4vYXBpL2VsaXN0LmpzJztcclxuaW1wb3J0IHsgQmFzaWNFTGlzdCB9IGZyb20gJy4uL2Jhc2ljZWxpc3QuanMnO1xyXG5pbXBvcnQgeyBFRGF0YVR5cGUgfSBmcm9tICcuLi9hcGkvZWRhdGEtdHlwZS5qcyc7XHJcbmltcG9ydCB7IEVEYXRhVHlwZUltcGwgfSBmcm9tICcuL2VkYXRhLXR5cGUtaW1wbC5qcyc7XHJcbmltcG9ydCB7IEVFbnVtIH0gZnJvbSAnLi4vYXBpL2VlbnVtLmpzJztcclxuXHJcbmV4cG9ydCBjbGFzcyBFRW51bUltcGwgZXh0ZW5kcyBFRGF0YVR5cGVJbXBsIGltcGxlbWVudHMgRUVudW0ge1xyXG4gIHByaXZhdGUgZUxpdGVyYWxzOiBFTGlzdDxFRW51bUxpdGVyYWw+ID0gbmV3IEJhc2ljRUxpc3QoKTtcclxuXHJcbiAgcHVibGljIGNvbnN0cnVjdG9yKCkge1xyXG4gICAgc3VwZXIoKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXRFTGl0ZXJhbHMoKTogRUxpc3Q8RUVudW1MaXRlcmFsPiB7XHJcbiAgICByZXR1cm4gdGhpcy5lTGl0ZXJhbHM7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgYWRkTGl0ZXJhbCh2YWx1ZTogRUVudW1MaXRlcmFsKTogdm9pZCB7XHJcbiAgICB0aGlzLmVMaXRlcmFscy5hZGQodmFsdWUpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGdldEVFbnVtTGl0ZXJhbEJ5TGl0ZXJhbChsaXRlcmFsOiBzdHJpbmcpOiBFRW51bUxpdGVyYWwgfCB1bmRlZmluZWQge1xyXG4gICAgcmV0dXJuIHRoaXMuZUxpdGVyYWxzLmZpbmQoKGUpID0+IGUuZ2V0TGl0ZXJhbCgpID09PSBsaXRlcmFsKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXRFRW51bUxpdGVyYWwodmFsdWU6IG51bWJlcik6IEVFbnVtTGl0ZXJhbCB8IHVuZGVmaW5lZDtcclxuICBwdWJsaWMgZ2V0RUVudW1MaXRlcmFsKHZhbHVlOiBzdHJpbmcpOiBFRW51bUxpdGVyYWwgfCB1bmRlZmluZWQ7XHJcbiAgcHVibGljIGdldEVFbnVtTGl0ZXJhbCh2YWx1ZTogbnVtYmVyIHwgc3RyaW5nKTogRUVudW1MaXRlcmFsIHwgdW5kZWZpbmVkIHtcclxuICAgIGlmICh0eXBlb2YgdmFsdWUgPT09ICdudW1iZXInKSB7XHJcbiAgICAgIHJldHVybiB0aGlzLmVMaXRlcmFscy5maW5kKChlKSA9PiBlLmdldFZhbHVlKCkgPT09IHZhbHVlKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGxldCB0b1JldCA9IHRoaXMuZUxpdGVyYWxzLmZpbmQoKGUpID0+IGUuZ2V0TGl0ZXJhbCgpID09PSB2YWx1ZSk7XHJcbiAgICAgIC8vYXR0ZW1wdCB0byBpbnRlcnByZXQgc3RyaW5nIGFzIGxpdGVyYWwgdmFsdWUgKGluIGNhc2UgbnVtYmVyIHdhcyBwYXNzZWQgaW4gYXMgYSBzdHJpbmcpXHJcbiAgICAgIGlmICghdG9SZXQpIHtcclxuICAgICAgICB0b1JldCA9IHRoaXMuZUxpdGVyYWxzLmZpbmQoKGUpID0+IGUuZ2V0VmFsdWUoKS50b1N0cmluZygpID09PSB2YWx1ZSk7XHJcbiAgICAgIH1cclxuICAgICAgcmV0dXJuIHRvUmV0O1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG4iXX0=