class Entry {

  void validate() {
    if (value == null) throw new IllegalStateException("Entry must contain a non-null value.");
    if (contextType == null) throw new IllegalStateException("Entry must have a ContextType.");
    if (propagationModes == null) throw new IllegalStateException("Entry must have a EnumSet<PropagationMode.");
    if (isOriginator == null) throw new IllegalStateException("Entry must know if it originated in this scope.");
    if (allowAllToRead == null) throw new IllegalStateException("Entry's allowAllToRead was not specified.");
  }

  public  Entry(Object context, EnumSet<PropagationMode> propModes, ContextType contextType);

}