public Trigger readFrom()

in jobs-service/jobs-service-infinispan/src/main/java/org/kie/kogito/jobs/service/repository/infinispan/marshaller/TriggerMarshaller.java [87:125]


    public Trigger readFrom(ProtoStreamReader reader) throws IOException {
        String classType = reader.readString(CLASS_TYPE);
        Date startTime = fromInstant(reader.readInstant(START_TIME));
        Date endTime = fromInstant(reader.readInstant(END_TIME));
        Integer repeatLimit = reader.readInt(REPEAT_LIMIT);
        Integer repeatCount = reader.readInt(REPEAT_COUNT);
        Date nextFireTime = fromInstant(reader.readInstant(NEXT_FIRE_TIME));
        Long period = reader.readLong(PERIOD);
        String periodUnit = reader.readString(PERIOD_UNIT);
        String zoneId = reader.readString(ZONE_ID);
        Integer currentRepeatCount = reader.readInt(CURRENT_REPEAT_COUNT);
        Boolean endTimeReached = reader.readBoolean(END_TIME_REACHED);

        if (SimpleTimerTrigger.class.getName().equals(classType)) {
            SimpleTimerTrigger simpleTimerTrigger = new SimpleTimerTrigger();
            simpleTimerTrigger.setStartTime(startTime);
            simpleTimerTrigger.setPeriod(period);
            simpleTimerTrigger.setPeriodUnit(ChronoUnit.valueOf(periodUnit));
            simpleTimerTrigger.setRepeatCount(repeatCount);
            simpleTimerTrigger.setEndTime(endTime);
            simpleTimerTrigger.setZoneId(zoneId);
            simpleTimerTrigger.setNextFireTime(nextFireTime);
            simpleTimerTrigger.setCurrentRepeatCount(currentRepeatCount);
            simpleTimerTrigger.setEndTimeReached(endTimeReached);
            return simpleTimerTrigger;
        } else if (IntervalTrigger.class.getName().equals(classType)) {
            IntervalTrigger intervalTrigger = new IntervalTrigger();
            intervalTrigger.setStartTime(startTime);
            intervalTrigger.setEndTime(endTime);
            intervalTrigger.setRepeatLimit(repeatLimit);
            intervalTrigger.setRepeatCount(repeatCount);
            intervalTrigger.setNextFireTime(nextFireTime);
            intervalTrigger.setPeriod(period);
            return intervalTrigger;
        } else if (PointInTimeTrigger.class.getName().equals(classType)) {
            return nextFireTime != null ? new PointInTimeTrigger(nextFireTime.getTime(), null, null) : null;
        }
        throw new IOException("Unmarshalling of trigger class: " + classType + " is not supported.");
    }