import { RecordVisitor } from "../proxy/RecordVisitor";
/**
 *
 */
export class SelectedWorkPackageVisitor extends RecordVisitor {
    constructor(value) {
        super(value);
    }
    // --- State Management Helpers --- //
    static createFromWorkPackageVisitor(workPackageVisitor) {
        const selectedWorkPackageState = new SelectedWorkPackageVisitor({
            id: workPackageVisitor.visitId(),
            properties: [],
            annotations: [],
            type: "hxgn.api.dialog.Record"
        });
        selectedWorkPackageState.setCreationDate(workPackageVisitor.visitCreationDate());
        selectedWorkPackageState.setDescription(workPackageVisitor.visitDescription());
        selectedWorkPackageState.setDisciplines(workPackageVisitor.visitDisciplines());
        selectedWorkPackageState.setId(workPackageVisitor.visitId());
        selectedWorkPackageState.setLastUpdateDate(workPackageVisitor.visitLastUpdateDate());
        selectedWorkPackageState.setName(workPackageVisitor.visitName());
        return selectedWorkPackageState;
    }
    // --- State Management --- //
    creationDate() {
        return this.visitPropertyValueAt(SelectedWorkPackageVisitor.CREATION_DATE_PROPERTY_NAME);
    }
    setCreationDate(value) {
        this.visitAndSetPropertyValueAt(SelectedWorkPackageVisitor.CREATION_DATE_PROPERTY_NAME, value);
    }
    description() {
        return this.visitPropertyValueAt(SelectedWorkPackageVisitor.DESCRIPTION_PROPERTY_NAME);
    }
    setDescription(value) {
        this.visitAndSetPropertyValueAt(SelectedWorkPackageVisitor.DESCRIPTION_PROPERTY_NAME, value);
    }
    disciplines() {
        return this.visitPropertyValueAt(SelectedWorkPackageVisitor.DISCIPLINES_PROPERTY_NAME);
    }
    setDisciplines(value) {
        this.visitAndSetPropertyValueAt(SelectedWorkPackageVisitor.DISCIPLINES_PROPERTY_NAME, value);
    }
    id() {
        return this.visitPropertyValueAt(SelectedWorkPackageVisitor.ID_PROPERTY_NAME);
    }
    setId(value) {
        this.visitAndSetPropertyValueAt(SelectedWorkPackageVisitor.ID_PROPERTY_NAME, value);
    }
    lastUpdateDate() {
        return this.visitPropertyValueAt(SelectedWorkPackageVisitor.LAST_UPDATE_DATE_PROPERTY_NAME);
    }
    setLastUpdateDate(value) {
        this.visitAndSetPropertyValueAt(SelectedWorkPackageVisitor.LAST_UPDATE_DATE_PROPERTY_NAME, value);
    }
    name() {
        return this.visitPropertyValueAt(SelectedWorkPackageVisitor.NAME_PROPERTY_NAME);
    }
    setName(value) {
        this.visitAndSetPropertyValueAt(SelectedWorkPackageVisitor.NAME_PROPERTY_NAME, value);
    }
}
SelectedWorkPackageVisitor.CREATION_DATE_PROPERTY_NAME = "Creation_Date";
SelectedWorkPackageVisitor.DESCRIPTION_PROPERTY_NAME = "Description";
SelectedWorkPackageVisitor.DISCIPLINES_PROPERTY_NAME = "Disciplines";
SelectedWorkPackageVisitor.ID_PROPERTY_NAME = "Id";
SelectedWorkPackageVisitor.LAST_UPDATE_DATE_PROPERTY_NAME = "Last_Update_Date";
SelectedWorkPackageVisitor.NAME_PROPERTY_NAME = "Name";
