{"version":3,"sources":["../src/modelElement.ts"],"names":["ErrorType","VisitMode"],"mappings":"aAEYA,IAAAA,CAAAA,CAAAA,SAAAA,CAAAA,CAAAA,CAAAA,OAAAA,CAAAA,CAAAA,CAAAA,CAAAA,IAAAA,CAAAA,CAAAA,CAAAA,CAAAA,MAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,IAAAA,CAAAA,CAAAA,CAAAA,CAAAA,MAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,OAAAA,CAAAA,CAAAA,CAAAA,CAAAA,SAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,KAAAA,CAAAA,CAAAA,CAAAA,CAAAA,OAAAA,CAAAA,OAsBAC,CAAAA,CAAAA,SAAAA,EAAAA,CAAAA,OAAAA,CAAAA,CAAAA,CAAAA,CAAAA,QAAAA,CAAAA,CAAAA,CAAAA,CAAAA,UAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,SAAAA,CAAAA,CAAAA,CAAAA,CAAAA,WAAAA,CAAAA,CAAAA,CAAAA,CAAAA,EAAAA","file":"modelElement.cjs","sourcesContent":["// ModelElement, Error definitions\r\n\r\nexport enum ErrorType {\r\n  None = 0,\r\n  Info = 1,\r\n  Warning = 2,\r\n  Error = 3\r\n}\r\nexport interface Location {\r\n  filename: string;\r\n  start: Position;\r\n  end: Position;\r\n}\r\nexport interface Position {\r\n  line: number;\r\n  col: number;\r\n}\r\n\r\nexport interface IError {\r\n  message: string;\r\n  element?: ModelElement;\r\n  type: ErrorType;\r\n  location: Location;\r\n}\r\nexport enum VisitMode {\r\n  PreOrder = 0,\r\n  PostOrder = 1\r\n}\r\nexport interface MetaInfo {\r\n  id: string;\r\n  model?: Model;\r\n  parent?: ModelElement;\r\n  location?: Location;\r\n}\r\nexport interface ModelElement {\r\n  _meta: MetaInfo;\r\n\r\n  getId(): string;\r\n  getTypeName(): string;\r\n  toString(): string;\r\n  toJson(): string;\r\n  toEssential(): string;\r\n  validate(): IError[];\r\n  visit(visitMode: VisitMode, action: (el: ModelElement) => void): void;\r\n\r\n  // equality. to be overrided\r\n  identity(): unknown;\r\n  hashCodeElement(): number;\r\n\r\n  // equality. generic\r\n  hashCode(): number;\r\n  sameConcept(b: ModelElement | null | undefined): boolean;\r\n  equals(b: ModelElement): boolean;\r\n\r\n  // mergeWith(b: ModelElement): void;\r\n  // diffWith(b: ModelElement): Difference[];\r\n}\r\n\r\nexport interface Model extends ModelElement {\r\n  modelName: string;\r\n  version: string;\r\n}\r\n"]}