### Question:
SignatureIO implements Signature<E>, Serializable { @Override public Set<E> getInputs() { return Collections.unmodifiableSet(inputs); } SignatureIO(Collection<E> inputs, Collection<E> outputs);  SignatureIO(); @Override Set<E> getInputs(); @Override Set<E> getOutputs(); @Override boolean equals(Object o); @Override int hashCode(); static SignatureIO<E> empty();  }### Answer:
@Test(expected=UnsupportedOperationException.class) public void testImmutableInputException() throws Exception { Set<String> inputs = Sets.newHashSet("A","B","C"); Set<String> outputs = Sets.newHashSet("D","E"); SignatureIO<String> signature = new SignatureIO<String>(inputs, outputs); signature.getInputs().clear(); }