code: protected Object unmarshalStreamSource(StreamSource streamSource) throws XmlMappingException, IOException {
  		if (streamSource.getInputStream() != null) {
  			return unmarshalInputStream(streamSource.getInputStream());
  		}
  		else if (streamSource.getReader() != null) {
  			return unmarshalReader(streamSource.getReader());
  		}
  		else {
  			throw new IllegalArgumentException("StreamSource contains neither InputStream nor Reader");
  		}
  	}
docs: Template method for handling {@code StreamSource}s.
  <p>This implementation defers to {@code unmarshalInputStream} or {@code unmarshalReader}.
  @param streamSource the {@code StreamSource}
  @return the object graph
  @throws IOException if an I/O exception occurs
  @throws XmlMappingException if the given source cannot be mapped to an object