# Code generated by Lark OpenAPI.

from typing import Any, Optional, Union, Dict, List, Set, IO, Callable, Type

from lark_oapi.event.processor import IEventProcessor
from .model.p2_corehr_approval_groups_updated_v2 import P2CorehrApprovalGroupsUpdatedV2
from .model.p2_corehr_company_created_v2 import P2CorehrCompanyCreatedV2
from .model.p2_corehr_company_deleted_v2 import P2CorehrCompanyDeletedV2
from .model.p2_corehr_company_updated_v2 import P2CorehrCompanyUpdatedV2
from .model.p2_corehr_cost_center_created_v2 import P2CorehrCostCenterCreatedV2
from .model.p2_corehr_cost_center_deleted_v2 import P2CorehrCostCenterDeletedV2
from .model.p2_corehr_cost_center_updated_v2 import P2CorehrCostCenterUpdatedV2
from .model.p2_corehr_custom_org_created_v2 import P2CorehrCustomOrgCreatedV2
from .model.p2_corehr_custom_org_deleted_v2 import P2CorehrCustomOrgDeletedV2
from .model.p2_corehr_custom_org_updated_v2 import P2CorehrCustomOrgUpdatedV2
from .model.p2_corehr_department_created_v2 import P2CorehrDepartmentCreatedV2
from .model.p2_corehr_department_updated_v2 import P2CorehrDepartmentUpdatedV2
from .model.p2_corehr_employee_domain_event_v2 import P2CorehrEmployeeDomainEventV2
from .model.p2_corehr_job_change_status_updated_v2 import P2CorehrJobChangeStatusUpdatedV2
from .model.p2_corehr_job_change_updated_v2 import P2CorehrJobChangeUpdatedV2
from .model.p2_corehr_job_family_created_v2 import P2CorehrJobFamilyCreatedV2
from .model.p2_corehr_job_family_deleted_v2 import P2CorehrJobFamilyDeletedV2
from .model.p2_corehr_job_family_updated_v2 import P2CorehrJobFamilyUpdatedV2
from .model.p2_corehr_job_grade_created_v2 import P2CorehrJobGradeCreatedV2
from .model.p2_corehr_job_grade_deleted_v2 import P2CorehrJobGradeDeletedV2
from .model.p2_corehr_job_grade_updated_v2 import P2CorehrJobGradeUpdatedV2
from .model.p2_corehr_job_level_created_v2 import P2CorehrJobLevelCreatedV2
from .model.p2_corehr_job_level_deleted_v2 import P2CorehrJobLevelDeletedV2
from .model.p2_corehr_job_level_updated_v2 import P2CorehrJobLevelUpdatedV2
from .model.p2_corehr_location_created_v2 import P2CorehrLocationCreatedV2
from .model.p2_corehr_location_deleted_v2 import P2CorehrLocationDeletedV2
from .model.p2_corehr_location_updated_v2 import P2CorehrLocationUpdatedV2
from .model.p2_corehr_offboarding_checklist_updated_v2 import P2CorehrOffboardingChecklistUpdatedV2
from .model.p2_corehr_offboarding_status_updated_v2 import P2CorehrOffboardingStatusUpdatedV2
from .model.p2_corehr_offboarding_updated_v2 import P2CorehrOffboardingUpdatedV2
from .model.p2_corehr_pathway_created_v2 import P2CorehrPathwayCreatedV2
from .model.p2_corehr_pathway_deleted_v2 import P2CorehrPathwayDeletedV2
from .model.p2_corehr_pathway_updated_v2 import P2CorehrPathwayUpdatedV2
from .model.p2_corehr_pre_hire_onboarding_task_changed_v2 import P2CorehrPreHireOnboardingTaskChangedV2
from .model.p2_corehr_probation_updated_v2 import P2CorehrProbationUpdatedV2
from .model.p2_corehr_process_updated_v2 import P2CorehrProcessUpdatedV2
from .model.p2_corehr_process_approver_updated_v2 import P2CorehrProcessApproverUpdatedV2
from .model.p2_corehr_process_cc_updated_v2 import P2CorehrProcessCcUpdatedV2
from .model.p2_corehr_process_node_updated_v2 import P2CorehrProcessNodeUpdatedV2
from .model.p2_corehr_process_status_update_v2 import P2CorehrProcessStatusUpdateV2


class P2CorehrApprovalGroupsUpdatedV2Processor(IEventProcessor[P2CorehrApprovalGroupsUpdatedV2]):
    def __init__(self, f: Callable[[P2CorehrApprovalGroupsUpdatedV2], None]):
        self.f = f

    def type(self) -> Type[P2CorehrApprovalGroupsUpdatedV2]:
        return P2CorehrApprovalGroupsUpdatedV2

    def do(self, data: P2CorehrApprovalGroupsUpdatedV2) -> None:
        self.f(data)


class P2CorehrCompanyCreatedV2Processor(IEventProcessor[P2CorehrCompanyCreatedV2]):
    def __init__(self, f: Callable[[P2CorehrCompanyCreatedV2], None]):
        self.f = f

    def type(self) -> Type[P2CorehrCompanyCreatedV2]:
        return P2CorehrCompanyCreatedV2

    def do(self, data: P2CorehrCompanyCreatedV2) -> None:
        self.f(data)


class P2CorehrCompanyDeletedV2Processor(IEventProcessor[P2CorehrCompanyDeletedV2]):
    def __init__(self, f: Callable[[P2CorehrCompanyDeletedV2], None]):
        self.f = f

    def type(self) -> Type[P2CorehrCompanyDeletedV2]:
        return P2CorehrCompanyDeletedV2

    def do(self, data: P2CorehrCompanyDeletedV2) -> None:
        self.f(data)


class P2CorehrCompanyUpdatedV2Processor(IEventProcessor[P2CorehrCompanyUpdatedV2]):
    def __init__(self, f: Callable[[P2CorehrCompanyUpdatedV2], None]):
        self.f = f

    def type(self) -> Type[P2CorehrCompanyUpdatedV2]:
        return P2CorehrCompanyUpdatedV2

    def do(self, data: P2CorehrCompanyUpdatedV2) -> None:
        self.f(data)


class P2CorehrCostCenterCreatedV2Processor(IEventProcessor[P2CorehrCostCenterCreatedV2]):
    def __init__(self, f: Callable[[P2CorehrCostCenterCreatedV2], None]):
        self.f = f

    def type(self) -> Type[P2CorehrCostCenterCreatedV2]:
        return P2CorehrCostCenterCreatedV2

    def do(self, data: P2CorehrCostCenterCreatedV2) -> None:
        self.f(data)


class P2CorehrCostCenterDeletedV2Processor(IEventProcessor[P2CorehrCostCenterDeletedV2]):
    def __init__(self, f: Callable[[P2CorehrCostCenterDeletedV2], None]):
        self.f = f

    def type(self) -> Type[P2CorehrCostCenterDeletedV2]:
        return P2CorehrCostCenterDeletedV2

    def do(self, data: P2CorehrCostCenterDeletedV2) -> None:
        self.f(data)


class P2CorehrCostCenterUpdatedV2Processor(IEventProcessor[P2CorehrCostCenterUpdatedV2]):
    def __init__(self, f: Callable[[P2CorehrCostCenterUpdatedV2], None]):
        self.f = f

    def type(self) -> Type[P2CorehrCostCenterUpdatedV2]:
        return P2CorehrCostCenterUpdatedV2

    def do(self, data: P2CorehrCostCenterUpdatedV2) -> None:
        self.f(data)


class P2CorehrCustomOrgCreatedV2Processor(IEventProcessor[P2CorehrCustomOrgCreatedV2]):
    def __init__(self, f: Callable[[P2CorehrCustomOrgCreatedV2], None]):
        self.f = f

    def type(self) -> Type[P2CorehrCustomOrgCreatedV2]:
        return P2CorehrCustomOrgCreatedV2

    def do(self, data: P2CorehrCustomOrgCreatedV2) -> None:
        self.f(data)


class P2CorehrCustomOrgDeletedV2Processor(IEventProcessor[P2CorehrCustomOrgDeletedV2]):
    def __init__(self, f: Callable[[P2CorehrCustomOrgDeletedV2], None]):
        self.f = f

    def type(self) -> Type[P2CorehrCustomOrgDeletedV2]:
        return P2CorehrCustomOrgDeletedV2

    def do(self, data: P2CorehrCustomOrgDeletedV2) -> None:
        self.f(data)


class P2CorehrCustomOrgUpdatedV2Processor(IEventProcessor[P2CorehrCustomOrgUpdatedV2]):
    def __init__(self, f: Callable[[P2CorehrCustomOrgUpdatedV2], None]):
        self.f = f

    def type(self) -> Type[P2CorehrCustomOrgUpdatedV2]:
        return P2CorehrCustomOrgUpdatedV2

    def do(self, data: P2CorehrCustomOrgUpdatedV2) -> None:
        self.f(data)


class P2CorehrDepartmentCreatedV2Processor(IEventProcessor[P2CorehrDepartmentCreatedV2]):
    def __init__(self, f: Callable[[P2CorehrDepartmentCreatedV2], None]):
        self.f = f

    def type(self) -> Type[P2CorehrDepartmentCreatedV2]:
        return P2CorehrDepartmentCreatedV2

    def do(self, data: P2CorehrDepartmentCreatedV2) -> None:
        self.f(data)


class P2CorehrDepartmentUpdatedV2Processor(IEventProcessor[P2CorehrDepartmentUpdatedV2]):
    def __init__(self, f: Callable[[P2CorehrDepartmentUpdatedV2], None]):
        self.f = f

    def type(self) -> Type[P2CorehrDepartmentUpdatedV2]:
        return P2CorehrDepartmentUpdatedV2

    def do(self, data: P2CorehrDepartmentUpdatedV2) -> None:
        self.f(data)


class P2CorehrEmployeeDomainEventV2Processor(IEventProcessor[P2CorehrEmployeeDomainEventV2]):
    def __init__(self, f: Callable[[P2CorehrEmployeeDomainEventV2], None]):
        self.f = f

    def type(self) -> Type[P2CorehrEmployeeDomainEventV2]:
        return P2CorehrEmployeeDomainEventV2

    def do(self, data: P2CorehrEmployeeDomainEventV2) -> None:
        self.f(data)


class P2CorehrJobChangeStatusUpdatedV2Processor(IEventProcessor[P2CorehrJobChangeStatusUpdatedV2]):
    def __init__(self, f: Callable[[P2CorehrJobChangeStatusUpdatedV2], None]):
        self.f = f

    def type(self) -> Type[P2CorehrJobChangeStatusUpdatedV2]:
        return P2CorehrJobChangeStatusUpdatedV2

    def do(self, data: P2CorehrJobChangeStatusUpdatedV2) -> None:
        self.f(data)


class P2CorehrJobChangeUpdatedV2Processor(IEventProcessor[P2CorehrJobChangeUpdatedV2]):
    def __init__(self, f: Callable[[P2CorehrJobChangeUpdatedV2], None]):
        self.f = f

    def type(self) -> Type[P2CorehrJobChangeUpdatedV2]:
        return P2CorehrJobChangeUpdatedV2

    def do(self, data: P2CorehrJobChangeUpdatedV2) -> None:
        self.f(data)


class P2CorehrJobFamilyCreatedV2Processor(IEventProcessor[P2CorehrJobFamilyCreatedV2]):
    def __init__(self, f: Callable[[P2CorehrJobFamilyCreatedV2], None]):
        self.f = f

    def type(self) -> Type[P2CorehrJobFamilyCreatedV2]:
        return P2CorehrJobFamilyCreatedV2

    def do(self, data: P2CorehrJobFamilyCreatedV2) -> None:
        self.f(data)


class P2CorehrJobFamilyDeletedV2Processor(IEventProcessor[P2CorehrJobFamilyDeletedV2]):
    def __init__(self, f: Callable[[P2CorehrJobFamilyDeletedV2], None]):
        self.f = f

    def type(self) -> Type[P2CorehrJobFamilyDeletedV2]:
        return P2CorehrJobFamilyDeletedV2

    def do(self, data: P2CorehrJobFamilyDeletedV2) -> None:
        self.f(data)


class P2CorehrJobFamilyUpdatedV2Processor(IEventProcessor[P2CorehrJobFamilyUpdatedV2]):
    def __init__(self, f: Callable[[P2CorehrJobFamilyUpdatedV2], None]):
        self.f = f

    def type(self) -> Type[P2CorehrJobFamilyUpdatedV2]:
        return P2CorehrJobFamilyUpdatedV2

    def do(self, data: P2CorehrJobFamilyUpdatedV2) -> None:
        self.f(data)


class P2CorehrJobGradeCreatedV2Processor(IEventProcessor[P2CorehrJobGradeCreatedV2]):
    def __init__(self, f: Callable[[P2CorehrJobGradeCreatedV2], None]):
        self.f = f

    def type(self) -> Type[P2CorehrJobGradeCreatedV2]:
        return P2CorehrJobGradeCreatedV2

    def do(self, data: P2CorehrJobGradeCreatedV2) -> None:
        self.f(data)


class P2CorehrJobGradeDeletedV2Processor(IEventProcessor[P2CorehrJobGradeDeletedV2]):
    def __init__(self, f: Callable[[P2CorehrJobGradeDeletedV2], None]):
        self.f = f

    def type(self) -> Type[P2CorehrJobGradeDeletedV2]:
        return P2CorehrJobGradeDeletedV2

    def do(self, data: P2CorehrJobGradeDeletedV2) -> None:
        self.f(data)


class P2CorehrJobGradeUpdatedV2Processor(IEventProcessor[P2CorehrJobGradeUpdatedV2]):
    def __init__(self, f: Callable[[P2CorehrJobGradeUpdatedV2], None]):
        self.f = f

    def type(self) -> Type[P2CorehrJobGradeUpdatedV2]:
        return P2CorehrJobGradeUpdatedV2

    def do(self, data: P2CorehrJobGradeUpdatedV2) -> None:
        self.f(data)


class P2CorehrJobLevelCreatedV2Processor(IEventProcessor[P2CorehrJobLevelCreatedV2]):
    def __init__(self, f: Callable[[P2CorehrJobLevelCreatedV2], None]):
        self.f = f

    def type(self) -> Type[P2CorehrJobLevelCreatedV2]:
        return P2CorehrJobLevelCreatedV2

    def do(self, data: P2CorehrJobLevelCreatedV2) -> None:
        self.f(data)


class P2CorehrJobLevelDeletedV2Processor(IEventProcessor[P2CorehrJobLevelDeletedV2]):
    def __init__(self, f: Callable[[P2CorehrJobLevelDeletedV2], None]):
        self.f = f

    def type(self) -> Type[P2CorehrJobLevelDeletedV2]:
        return P2CorehrJobLevelDeletedV2

    def do(self, data: P2CorehrJobLevelDeletedV2) -> None:
        self.f(data)


class P2CorehrJobLevelUpdatedV2Processor(IEventProcessor[P2CorehrJobLevelUpdatedV2]):
    def __init__(self, f: Callable[[P2CorehrJobLevelUpdatedV2], None]):
        self.f = f

    def type(self) -> Type[P2CorehrJobLevelUpdatedV2]:
        return P2CorehrJobLevelUpdatedV2

    def do(self, data: P2CorehrJobLevelUpdatedV2) -> None:
        self.f(data)


class P2CorehrLocationCreatedV2Processor(IEventProcessor[P2CorehrLocationCreatedV2]):
    def __init__(self, f: Callable[[P2CorehrLocationCreatedV2], None]):
        self.f = f

    def type(self) -> Type[P2CorehrLocationCreatedV2]:
        return P2CorehrLocationCreatedV2

    def do(self, data: P2CorehrLocationCreatedV2) -> None:
        self.f(data)


class P2CorehrLocationDeletedV2Processor(IEventProcessor[P2CorehrLocationDeletedV2]):
    def __init__(self, f: Callable[[P2CorehrLocationDeletedV2], None]):
        self.f = f

    def type(self) -> Type[P2CorehrLocationDeletedV2]:
        return P2CorehrLocationDeletedV2

    def do(self, data: P2CorehrLocationDeletedV2) -> None:
        self.f(data)


class P2CorehrLocationUpdatedV2Processor(IEventProcessor[P2CorehrLocationUpdatedV2]):
    def __init__(self, f: Callable[[P2CorehrLocationUpdatedV2], None]):
        self.f = f

    def type(self) -> Type[P2CorehrLocationUpdatedV2]:
        return P2CorehrLocationUpdatedV2

    def do(self, data: P2CorehrLocationUpdatedV2) -> None:
        self.f(data)


class P2CorehrOffboardingChecklistUpdatedV2Processor(IEventProcessor[P2CorehrOffboardingChecklistUpdatedV2]):
    def __init__(self, f: Callable[[P2CorehrOffboardingChecklistUpdatedV2], None]):
        self.f = f

    def type(self) -> Type[P2CorehrOffboardingChecklistUpdatedV2]:
        return P2CorehrOffboardingChecklistUpdatedV2

    def do(self, data: P2CorehrOffboardingChecklistUpdatedV2) -> None:
        self.f(data)


class P2CorehrOffboardingStatusUpdatedV2Processor(IEventProcessor[P2CorehrOffboardingStatusUpdatedV2]):
    def __init__(self, f: Callable[[P2CorehrOffboardingStatusUpdatedV2], None]):
        self.f = f

    def type(self) -> Type[P2CorehrOffboardingStatusUpdatedV2]:
        return P2CorehrOffboardingStatusUpdatedV2

    def do(self, data: P2CorehrOffboardingStatusUpdatedV2) -> None:
        self.f(data)


class P2CorehrOffboardingUpdatedV2Processor(IEventProcessor[P2CorehrOffboardingUpdatedV2]):
    def __init__(self, f: Callable[[P2CorehrOffboardingUpdatedV2], None]):
        self.f = f

    def type(self) -> Type[P2CorehrOffboardingUpdatedV2]:
        return P2CorehrOffboardingUpdatedV2

    def do(self, data: P2CorehrOffboardingUpdatedV2) -> None:
        self.f(data)


class P2CorehrPathwayCreatedV2Processor(IEventProcessor[P2CorehrPathwayCreatedV2]):
    def __init__(self, f: Callable[[P2CorehrPathwayCreatedV2], None]):
        self.f = f

    def type(self) -> Type[P2CorehrPathwayCreatedV2]:
        return P2CorehrPathwayCreatedV2

    def do(self, data: P2CorehrPathwayCreatedV2) -> None:
        self.f(data)


class P2CorehrPathwayDeletedV2Processor(IEventProcessor[P2CorehrPathwayDeletedV2]):
    def __init__(self, f: Callable[[P2CorehrPathwayDeletedV2], None]):
        self.f = f

    def type(self) -> Type[P2CorehrPathwayDeletedV2]:
        return P2CorehrPathwayDeletedV2

    def do(self, data: P2CorehrPathwayDeletedV2) -> None:
        self.f(data)


class P2CorehrPathwayUpdatedV2Processor(IEventProcessor[P2CorehrPathwayUpdatedV2]):
    def __init__(self, f: Callable[[P2CorehrPathwayUpdatedV2], None]):
        self.f = f

    def type(self) -> Type[P2CorehrPathwayUpdatedV2]:
        return P2CorehrPathwayUpdatedV2

    def do(self, data: P2CorehrPathwayUpdatedV2) -> None:
        self.f(data)


class P2CorehrPreHireOnboardingTaskChangedV2Processor(IEventProcessor[P2CorehrPreHireOnboardingTaskChangedV2]):
    def __init__(self, f: Callable[[P2CorehrPreHireOnboardingTaskChangedV2], None]):
        self.f = f

    def type(self) -> Type[P2CorehrPreHireOnboardingTaskChangedV2]:
        return P2CorehrPreHireOnboardingTaskChangedV2

    def do(self, data: P2CorehrPreHireOnboardingTaskChangedV2) -> None:
        self.f(data)


class P2CorehrProbationUpdatedV2Processor(IEventProcessor[P2CorehrProbationUpdatedV2]):
    def __init__(self, f: Callable[[P2CorehrProbationUpdatedV2], None]):
        self.f = f

    def type(self) -> Type[P2CorehrProbationUpdatedV2]:
        return P2CorehrProbationUpdatedV2

    def do(self, data: P2CorehrProbationUpdatedV2) -> None:
        self.f(data)


class P2CorehrProcessUpdatedV2Processor(IEventProcessor[P2CorehrProcessUpdatedV2]):
    def __init__(self, f: Callable[[P2CorehrProcessUpdatedV2], None]):
        self.f = f

    def type(self) -> Type[P2CorehrProcessUpdatedV2]:
        return P2CorehrProcessUpdatedV2

    def do(self, data: P2CorehrProcessUpdatedV2) -> None:
        self.f(data)


class P2CorehrProcessApproverUpdatedV2Processor(IEventProcessor[P2CorehrProcessApproverUpdatedV2]):
    def __init__(self, f: Callable[[P2CorehrProcessApproverUpdatedV2], None]):
        self.f = f

    def type(self) -> Type[P2CorehrProcessApproverUpdatedV2]:
        return P2CorehrProcessApproverUpdatedV2

    def do(self, data: P2CorehrProcessApproverUpdatedV2) -> None:
        self.f(data)


class P2CorehrProcessCcUpdatedV2Processor(IEventProcessor[P2CorehrProcessCcUpdatedV2]):
    def __init__(self, f: Callable[[P2CorehrProcessCcUpdatedV2], None]):
        self.f = f

    def type(self) -> Type[P2CorehrProcessCcUpdatedV2]:
        return P2CorehrProcessCcUpdatedV2

    def do(self, data: P2CorehrProcessCcUpdatedV2) -> None:
        self.f(data)


class P2CorehrProcessNodeUpdatedV2Processor(IEventProcessor[P2CorehrProcessNodeUpdatedV2]):
    def __init__(self, f: Callable[[P2CorehrProcessNodeUpdatedV2], None]):
        self.f = f

    def type(self) -> Type[P2CorehrProcessNodeUpdatedV2]:
        return P2CorehrProcessNodeUpdatedV2

    def do(self, data: P2CorehrProcessNodeUpdatedV2) -> None:
        self.f(data)


class P2CorehrProcessStatusUpdateV2Processor(IEventProcessor[P2CorehrProcessStatusUpdateV2]):
    def __init__(self, f: Callable[[P2CorehrProcessStatusUpdateV2], None]):
        self.f = f

    def type(self) -> Type[P2CorehrProcessStatusUpdateV2]:
        return P2CorehrProcessStatusUpdateV2

    def do(self, data: P2CorehrProcessStatusUpdateV2) -> None:
        self.f(data)
