class EruptJobDataProxy implements DataProxy<EruptJob>, OperationHandler<EruptJob, Void> {

    @Transient
    @Resource
    private EruptJobService eruptJobService;

    @Override
    public void beforeAdd(EruptJob eruptJob) {<FILL_FUNCTION_BODY>}

    @Override
    public void beforeUpdate(EruptJob eruptJob) {
        this.beforeAdd(eruptJob);
    }

    @Override
    public void beforeDelete(EruptJob eruptJob) {
        try {
            eruptJobService.deleteJob(eruptJob);
        } catch (SchedulerException e) {
            throw new EruptWebApiRuntimeException(e.getMessage());
        }
    }

    @Override
    public String exec(List<EruptJob> eruptJob, Void param, String[] operationParam) {
        try {
            for (EruptJob job : eruptJob) eruptJobService.triggerJob(job);
            return null;
        } catch (Exception e) {
            throw new EruptWebApiRuntimeException(e.getMessage());
        }
    }

}

        if (null == eruptJob.getCode()) {
            eruptJob.setCode(Erupts.generateCode());
        }
        try {
            eruptJobService.modifyJob(eruptJob);
        } catch (SchedulerException | ParseException e) {
            throw new EruptWebApiRuntimeException(e.getMessage());
        }
    
<no_super_class>