public static Trigger readTrigger( MarshallerReaderContext inCtx, ProtobufMessages.Trigger _trigger) { switch (_trigger.getType()) { case CRON: { ProtobufMessages.Trigger.CronTrigger _cron = _trigger.getCron(); CronTrigger trigger = new CronTrigger(); trigger.setStartTime(new Date(_cron.getStartTime())); if (_cron.hasEndTime()) { trigger.setEndTime(new Date(_cron.getEndTime())); } trigger.setRepeatLimit(_cron.getRepeatLimit()); trigger.setRepeatCount(_cron.getRepeatCount()); trigger.setCronExpression(_cron.getCronExpression()); if (_cron.hasNextFireTime()) { trigger.setNextFireTime(new Date(_cron.getNextFireTime())); } String[] calendarNames = new String[_cron.getCalendarNameCount()]; for (int i = 0; i < calendarNames.length; i++) { calendarNames[i] = _cron.getCalendarName(i); } trigger.setCalendarNames(calendarNames); return trigger; } case INTERVAL: { ProtobufMessages.Trigger.IntervalTrigger _interval = _trigger.getInterval(); IntervalTrigger trigger = new IntervalTrigger(); trigger.setStartTime(new Date(_interval.getStartTime())); if (_interval.hasEndTime()) { trigger.setEndTime(new Date(_interval.getEndTime())); } trigger.setRepeatLimit(_interval.getRepeatLimit()); trigger.setRepeatCount(_interval.getRepeatCount()); if (_interval.hasNextFireTime()) { trigger.setNextFireTime(new Date(_interval.getNextFireTime())); } trigger.setPeriod(_interval.getPeriod()); String[] calendarNames = new String[_interval.getCalendarNameCount()]; for (int i = 0; i < calendarNames.length; i++) { calendarNames[i] = _interval.getCalendarName(i); } trigger.setCalendarNames(calendarNames); return trigger; } case POINT_IN_TIME: { PointInTimeTrigger trigger = new PointInTimeTrigger(_trigger.getPit().getNextFireTime(), null, null); return trigger; } } throw new RuntimeException("Unable to deserialize Trigger for type: " + _trigger.getType()); }