UNPKG

isoxml

Version:

JavaScript library to parse and generate ISOXML (ISO11783-10) files

120 lines (119 loc) 3.42 kB
import { TAGS } from './constants'; import { registerEntityClass } from '../classRegistry'; import { fromXML, toXML } from '../utils'; export var TaskTaskStatusEnum; (function (TaskTaskStatusEnum) { TaskTaskStatusEnum["Planned"] = "1"; TaskTaskStatusEnum["Running"] = "2"; TaskTaskStatusEnum["Paused"] = "3"; TaskTaskStatusEnum["Completed"] = "4"; TaskTaskStatusEnum["Template"] = "5"; TaskTaskStatusEnum["Canceled"] = "6"; })(TaskTaskStatusEnum || (TaskTaskStatusEnum = {})); const ATTRIBUTES = { A: { name: 'TaskId', type: 'xs:ID', isPrimaryId: true, isOptional: false, isOnlyV4: false, }, B: { name: 'TaskDesignator', type: 'xs:string', isPrimaryId: false, isOptional: true, isOnlyV4: false, }, C: { name: 'CustomerIdRef', type: 'xs:IDREF', isPrimaryId: false, isOptional: true, isOnlyV4: false, }, D: { name: 'FarmIdRef', type: 'xs:IDREF', isPrimaryId: false, isOptional: true, isOnlyV4: false, }, E: { name: 'PartfieldIdRef', type: 'xs:IDREF', isPrimaryId: false, isOptional: true, isOnlyV4: false, }, F: { name: 'ResponsibleWorkerIdRef', type: 'xs:IDREF', isPrimaryId: false, isOptional: true, isOnlyV4: false, }, G: { name: 'TaskStatus', type: 'xs:NMTOKEN', isPrimaryId: false, isOptional: false, isOnlyV4: false, }, H: { name: 'DefaultTreatmentZoneCode', type: 'xs:unsignedByte', isPrimaryId: false, isOptional: true, isOnlyV4: false, minValue: 0, maxValue: 254, }, I: { name: 'PositionLostTreatmentZoneCode', type: 'xs:unsignedByte', isPrimaryId: false, isOptional: true, isOnlyV4: false, minValue: 0, maxValue: 254, }, J: { name: 'OutOfFieldTreatmentZoneCode', type: 'xs:unsignedByte', isPrimaryId: false, isOptional: true, isOnlyV4: false, minValue: 0, maxValue: 254, }, }; const CHILD_TAGS = { TZN: { name: 'TreatmentZone', isOnlyV4: false }, TIM: { name: 'Time', isOnlyV4: false }, OTP: { name: 'OperTechPractice', isOnlyV4: false }, WAN: { name: 'WorkerAllocation', isOnlyV4: false }, DAN: { name: 'DeviceAllocation', isOnlyV4: false }, CNN: { name: 'Connection', isOnlyV4: false }, PAN: { name: 'ProductAllocation', isOnlyV4: false }, DLT: { name: 'DataLogTrigger', isOnlyV4: false }, CAN: { name: 'CommentAllocation', isOnlyV4: false }, TLG: { name: 'TimeLog', isOnlyV4: false }, GRD: { name: 'Grid', isOnlyV4: false }, CAT: { name: 'ControlAssignment', isOnlyV4: true }, GAN: { name: 'GuidanceAllocation', isOnlyV4: true }, }; export class Task { constructor(attributes, isoxmlManager) { this.attributes = attributes; this.isoxmlManager = isoxmlManager; this.tag = TAGS.Task; } static fromXML(xml, isoxmlManager, internalId, targetClass = Task) { return fromXML(xml, isoxmlManager, targetClass, ATTRIBUTES, CHILD_TAGS, internalId); } toXML() { return toXML(this, ATTRIBUTES, CHILD_TAGS); } } registerEntityClass('main', TAGS.Task, Task);