Search in sources :

Example 1 with CronTrigger

use of org.drools.core.time.impl.CronTrigger in project drools by kiegroup.

the class ProtobufOutputMarshaller method writeTrigger.

public static ProtobufMessages.Trigger writeTrigger(Trigger trigger, MarshallerWriteContext outCtx) {
    if (trigger instanceof CronTrigger) {
        CronTrigger cronTrigger = (CronTrigger) trigger;
        ProtobufMessages.Trigger.CronTrigger.Builder _cron = ProtobufMessages.Trigger.CronTrigger.newBuilder().setStartTime(cronTrigger.getStartTime().getTime()).setRepeatLimit(cronTrigger.getRepeatLimit()).setRepeatCount(cronTrigger.getRepeatCount()).setCronExpression(cronTrigger.getCronEx().getCronExpression());
        if (cronTrigger.getEndTime() != null) {
            _cron.setEndTime(cronTrigger.getEndTime().getTime());
        }
        if (cronTrigger.getNextFireTime() != null) {
            _cron.setNextFireTime(cronTrigger.getNextFireTime().getTime());
        }
        if (cronTrigger.getCalendarNames() != null) {
            for (String calendarName : cronTrigger.getCalendarNames()) {
                _cron.addCalendarName(calendarName);
            }
        }
        return ProtobufMessages.Trigger.newBuilder().setType(ProtobufMessages.Trigger.TriggerType.CRON).setCron(_cron.build()).build();
    } else if (trigger instanceof IntervalTrigger) {
        IntervalTrigger intTrigger = (IntervalTrigger) trigger;
        ProtobufMessages.Trigger.IntervalTrigger.Builder _interval = ProtobufMessages.Trigger.IntervalTrigger.newBuilder().setStartTime(intTrigger.getStartTime().getTime()).setRepeatLimit(intTrigger.getRepeatLimit()).setRepeatCount(intTrigger.getRepeatCount()).setPeriod(intTrigger.getPeriod());
        if (intTrigger.getEndTime() != null) {
            _interval.setEndTime(intTrigger.getEndTime().getTime());
        }
        if (intTrigger.getNextFireTime() != null) {
            _interval.setNextFireTime(intTrigger.getNextFireTime().getTime());
        }
        if (intTrigger.getCalendarNames() != null) {
            for (String calendarName : intTrigger.getCalendarNames()) {
                _interval.addCalendarName(calendarName);
            }
        }
        return ProtobufMessages.Trigger.newBuilder().setType(ProtobufMessages.Trigger.TriggerType.INTERVAL).setInterval(_interval.build()).build();
    } else if (trigger instanceof PointInTimeTrigger) {
        PointInTimeTrigger pinTrigger = (PointInTimeTrigger) trigger;
        return ProtobufMessages.Trigger.newBuilder().setType(ProtobufMessages.Trigger.TriggerType.POINT_IN_TIME).setPit(ProtobufMessages.Trigger.PointInTimeTrigger.newBuilder().setNextFireTime(pinTrigger.hasNextFireTime().getTime()).build()).build();
    } else if (trigger instanceof CompositeMaxDurationTrigger) {
        CompositeMaxDurationTrigger cmdTrigger = (CompositeMaxDurationTrigger) trigger;
        ProtobufMessages.Trigger.CompositeMaxDurationTrigger.Builder _cmdt = ProtobufMessages.Trigger.CompositeMaxDurationTrigger.newBuilder();
        if (cmdTrigger.getMaxDurationTimestamp() != null) {
            _cmdt.setMaxDurationTimestamp(cmdTrigger.getMaxDurationTimestamp().getTime());
        }
        if (cmdTrigger.getTimerCurrentDate() != null) {
            _cmdt.setTimerCurrentDate(cmdTrigger.getTimerCurrentDate().getTime());
        }
        if (cmdTrigger.getTimerTrigger() != null) {
            _cmdt.setTimerTrigger(writeTrigger(cmdTrigger.getTimerTrigger(), outCtx));
        }
        return ProtobufMessages.Trigger.newBuilder().setType(ProtobufMessages.Trigger.TriggerType.COMPOSITE_MAX_DURATION).setCmdt(_cmdt.build()).build();
    }
    throw new RuntimeException("Unable to serialize Trigger for type: " + trigger.getClass());
}
Also used : CompositeMaxDurationTrigger(org.drools.core.time.impl.CompositeMaxDurationTrigger) CronTrigger(org.drools.core.time.impl.CronTrigger) IntervalTrigger(org.drools.core.time.impl.IntervalTrigger) Trigger(org.drools.core.time.Trigger) PointInTimeTrigger(org.drools.core.time.impl.PointInTimeTrigger) CompositeMaxDurationTrigger(org.drools.core.time.impl.CompositeMaxDurationTrigger) CronTrigger(org.drools.core.time.impl.CronTrigger) Builder(org.drools.core.marshalling.impl.ProtobufMessages.ProcessData.Builder) ByteString(com.google.protobuf.ByteString) PointInTimeTrigger(org.drools.core.time.impl.PointInTimeTrigger) IntervalTrigger(org.drools.core.time.impl.IntervalTrigger)

Aggregations

ByteString (com.google.protobuf.ByteString)1 Builder (org.drools.core.marshalling.impl.ProtobufMessages.ProcessData.Builder)1 Trigger (org.drools.core.time.Trigger)1 CompositeMaxDurationTrigger (org.drools.core.time.impl.CompositeMaxDurationTrigger)1 CronTrigger (org.drools.core.time.impl.CronTrigger)1 IntervalTrigger (org.drools.core.time.impl.IntervalTrigger)1 PointInTimeTrigger (org.drools.core.time.impl.PointInTimeTrigger)1