CheckpointProperties implements Serializable { CheckpointProperties( boolean forced, boolean externalize, boolean savepoint, boolean discardSubsumed, boolean discardFinished, boolean discardCancelled, boolean discardFailed, boolean discardSuspended) { this.forced = forced; this.externalize = externalize; this.savepoint = savepoint; this.discardSubsumed = discardSubsumed; this.discardFinished = discardFinished; this.discardCancelled = discardCancelled; this.discardFailed = discardFailed; this.discardSuspended = discardSuspended; if (!externalize && !(discardSubsumed && discardFinished && discardCancelled && discardFailed && discardSuspended)) { throw new IllegalStateException("CheckpointProperties say to *not* persist the " + "checkpoint, but the checkpoint requires manual cleanup."); } } CheckpointProperties(
			boolean forced,
			boolean externalize,
			boolean savepoint,
			boolean discardSubsumed,
			boolean discardFinished,
			boolean discardCancelled,
			boolean discardFailed,
			boolean discardSuspended); boolean isSavepoint(); @Override boolean equals(Object o); @Override int hashCode(); @Override String toString(); static CheckpointProperties forStandardSavepoint(); static CheckpointProperties forStandardCheckpoint(); static CheckpointProperties forExternalizedCheckpoint(boolean deleteOnCancellation);  }
@Test public void testCheckpointProperties() { CheckpointProperties props = CheckpointProperties.forStandardCheckpoint(); assertFalse(props.forceCheckpoint()); assertFalse(props.externalizeCheckpoint()); assertTrue(props.discardOnSubsumed()); assertTrue(props.discardOnJobFinished()); assertTrue(props.discardOnJobCancelled()); assertTrue(props.discardOnJobFailed()); assertTrue(props.discardOnJobSuspended()); }