@metadev/essential-core
Version:
Core SDK Metamodeling Framework. Essential
5 lines • 3.76 kB
JavaScript
var v=Object.defineProperty;var E=(i,e,t)=>e in i?v(i,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):i[e]=t;var a=(i,e)=>v(i,"name",{value:e,configurable:!0});var m=(i,e,t)=>E(i,typeof e!="symbol"?e+"":e,t);var c=function(i){return i[i.PreOrder=0]="PreOrder",i[i.PostOrder=1]="PostOrder",i}({});var f=class f{static load(e,t){t();}static save(e,t,r){r();}static getHashCode(e){if(e==null)return 0;let t=0,r=0,s=e.length;for(;r<s;)t=(t<<5)-t+e.charCodeAt(r++)<<0;return t}static isModelElement(e){return !e||typeof e!="object"||e.length>=0?!1:Object.prototype.hasOwnProperty.call(e,"_meta")}static isModelElementCollection(e){if(!e||typeof e!="object")return !1;if(Object.prototype.hasOwnProperty.call(e,"length")){let t=e;if(t.length>0&&t[0]){let r=t[0];return f.isModelElement(r)}return !0}return !1}static asModelElement(e){return f.isModelElement(e)?e:null}static asModelElementCollection(e){return f.isModelElementCollection(e)?e:null}static collectionToJson(e){if(!e)return "null";let t=e.map(s=>s.toJson());return t.length===0?"[]":"["+t.reduce((s,o)=>s+","+o)+"]"}static toEssential(e){let t="";return e?(e.visit(c.PreOrder,r=>{t+=r.toEssential();}),t):""}static refToEssential(e){return e.getId()}static collectionToEssential(e){return !e||e.length===0?"[]":"["+e.map(s=>f.refToEssential(s)).reduce((s,o)=>s+", "+o)+"]"}static primitiveTypeToEssential(e){return e?e===!0?"true":e===!1?"false":typeof e=="number"?e.toString():'"'+e.toString()+'"':null}};a(f,"Essential");var l=f;var g=class g{seq=0;prefix="";constructor(e="e"){this.prefix=e;}generateUniqueId(){return this.prefix+this.seq++}reset(){this.seq=0;}};a(g,"Sequencer");var p=g,n=class n{static generateUniqueId(e="e"){return n.lazyInit(e),n.seq.generateUniqueId()}static reset(e){n.seq=void 0,n.lazyInit(e);}static lazyInit(e){n.seq||(n.prefix=e||"e",n.seq=new p(n.prefix));}};a(n,"StaticSequencer"),m(n,"seq"),m(n,"prefix","e");var u=n;var y=class y{_meta;constructor(e={}){e=e||{},this._meta={id:e.id||u.generateUniqueId("e")},e.location&&(this._meta.location=e.location);}getId(){return this._meta.id}getTypeName(){let e=this.constructor.toString().match(/\w+/g);return e&&e.length>2?e[1]:""}toString(){return this.getTypeName()}identity(){return this.getTypeName()+"_"+this.getId()}sameConcept(e){return e?this.identity()===e.identity():!1}equals(e){return e?this.hashCode()===e.hashCode():!1}hashCodeElement(){return l.getHashCode(this.getTypeName()+this.getId())}hashCode(){let e=0;return this.visit(c.PreOrder,t=>{e^=t.hashCodeElement(),e=e<<3;}),e}visit(e,t){e===c.PreOrder?(this.visitNode(t),this.visitChildren(e,t)):e===c.PostOrder&&(this.visitChildren(e,t),this.visitNode(t));}toJson(){let e="{",t="";for(let r in this)if(Object.prototype.hasOwnProperty.call(this,r)&&r!=="_meta"){let s=this[r],o="",h=l.asModelElement(s),N=l.asModelElementCollection(s);N?o=l.collectionToJson(N):h?o=h.toJson():o=JSON.stringify(s),e+=t+'"'+r+'":'+o,t=",";}return e+"}"}toEssential(){let e=this.getTypeName()+" "+this.getId()+` {
`;for(let t in this)if(Object.prototype.hasOwnProperty.call(this,t)&&t!=="_meta"){let r=this[t],s="",o=l.asModelElement(r),h=l.asModelElementCollection(r);h?s=l.collectionToEssential(h):o?s=l.refToEssential(o):s=l.primitiveTypeToEssential(r)||"",e+=" "+t+" = "+s+`;
`;}return e+`}
`}visitNode(e){e(this);}visitChildren(e,t){}validate(){return []}};a(y,"ModelElementBase");var d=y;var C=class C extends d{modelName;version="0";constructor(e={}){super(e),e.modelName&&(this.modelName=e.modelName),e.version&&(this.version=e.version);}toString(){return this.getTypeName()+` ${this.modelName} v. ${this.version}`}validate(){return []}};a(C,"ModelBase");var O=C;export{O as ModelBase};//# sourceMappingURL=modelBase.js.map
//# sourceMappingURL=modelBase.js.map