@Override public AndTrigger build(String namespace, String applicationName, String applicationVersion) { return new AndTrigger(getBuiltTriggers(namespace, applicationName, applicationVersion)); } }
@Override public boolean isSatisfied(ProgramSchedule schedule, List<Notification> notifications) { for (Trigger trigger : getTriggers()) { if (!((SatisfiableTrigger) trigger).isSatisfied(schedule, notifications)) { return false; } } return true; }
@Override public List<TriggerInfo> getTriggerInfos(TriggerInfoContext context) { return getUnitTriggerInfosAddRuntimeArgs(context); }
public SatisfiableTrigger getTriggerWithDeletedProgram(ProgramId programId) { List<SatisfiableTrigger> updatedTriggers = new ArrayList<>(); for (SatisfiableTrigger trigger : getTriggers()) { if (trigger instanceof ProgramStatusTrigger && programId.equals(((ProgramStatusTrigger) trigger).getProgramId())) { return new co.cask.cdap.internal.app.runtime.schedule.trigger.AndTrigger(updatedTriggers);
public SatisfiableTrigger getTriggerWithDeletedProgram(ProgramId programId) { List<SatisfiableTrigger> updatedTriggers = new ArrayList<>(); for (SatisfiableTrigger trigger : getTriggers()) { if (trigger instanceof ProgramStatusTrigger && programId.equals(((ProgramStatusTrigger) trigger).getProgramId())) { return new co.cask.cdap.internal.app.runtime.schedule.trigger.AndTrigger(updatedTriggers);
@Override public AndTrigger build(String namespace, String applicationName, String applicationVersion) { return new AndTrigger(getBuiltTriggers(namespace, applicationName, applicationVersion)); } }
@Override public boolean isSatisfied(ProgramSchedule schedule, List<Notification> notifications) { for (Trigger trigger : getTriggers()) { if (!((SatisfiableTrigger) trigger).isSatisfied(schedule, notifications)) { return false; } } return true; }
@Override public List<TriggerInfo> getTriggerInfos(TriggerInfoContext context) { return getUnitTriggerInfosAddRuntimeArgs(context); }
ImmutableMap.of("propper", "popper"), new OrTrigger(new PartitionTrigger(DS1_ID, 1), prog1Trigger, new AndTrigger(new OrTrigger(prog1Trigger, prog2Trigger), new PartitionTrigger(DS2_ID, 1)), new AndTrigger(new PartitionTrigger(DS1_ID, 1), prog2Trigger, new AndTrigger(prog1Trigger, new PartitionTrigger(DS2_ID, 1))), ImmutableList.<Constraint>of()); ImmutableMap.of("propper", "popper"), new OrTrigger(new PartitionTrigger(DS1_ID, 1), new AndTrigger(prog2Trigger, new PartitionTrigger(DS2_ID, 1)),
@Test public void testTriggerCodec() { ProtoTrigger.PartitionTrigger protoPartition = new ProtoTrigger.PartitionTrigger(new DatasetId("test", "myds"), 4); PartitionTrigger partitionTrigger = new PartitionTrigger(new DatasetId("test", "myds"), 4); testSerDeserYieldsTrigger(protoPartition, partitionTrigger); ProtoTrigger.TimeTrigger protoTime = new ProtoTrigger.TimeTrigger("* * * * *"); TimeTrigger timeTrigger = new TimeTrigger("* * * * *"); testSerDeserYieldsTrigger(protoTime, timeTrigger); ProtoTrigger.ProgramStatusTrigger protoProgramStatus = new ProtoTrigger.ProgramStatusTrigger(new ProgramId("test", "myapp", ProgramType.SERVICE, "myprog"), ImmutableSet.of(ProgramStatus.COMPLETED)); ProgramStatusTrigger programStatusTrigger = new ProgramStatusTrigger(new ProgramId("test", "myapp", ProgramType.SERVICE, "myprog"), ImmutableSet.of(ProgramStatus.COMPLETED)); testSerDeserYieldsTrigger(protoProgramStatus, programStatusTrigger); ProtoTrigger.OrTrigger protoOr = ProtoTrigger.or(protoPartition, ProtoTrigger.and(protoTime, protoProgramStatus)); OrTrigger orTrigger = new OrTrigger(partitionTrigger, new AndTrigger(timeTrigger, programStatusTrigger)); testSerDeserYieldsTrigger(protoOr, orTrigger); ProtoTrigger.AndTrigger protoAnd = ProtoTrigger.and(protoOr, protoTime, ProtoTrigger.or(protoPartition, protoProgramStatus)); AndTrigger andTrigger = new AndTrigger(orTrigger, timeTrigger, new OrTrigger(partitionTrigger, programStatusTrigger)); testSerDeserYieldsTrigger(protoAnd, andTrigger); }