@Override
	public final <T extends Serializable> Name<T> decode(String data) {
		if(data==null) {
			return null;
		}
		try {
			byte[] serializedData=BaseEncoding.base64().decode(data);
			Serializable subject=SerializationUtils.deserialize(serializedData, Serializable.class);
			return assemble(subject);
		} catch (IOException e) {
			throw new AssertionError("Deserialization should not fail",e);
		}
	}
@Override
	public final <T extends Serializable> Name<T> decode(String data) {
		if(data==null) {
			return null;
		}
		try {
			byte[] serializedData=BaseEncoding.base64().decode(data);
			Serializable subject=SerializationUtils.deserialize(serializedData, Serializable.class);
			return assemble(subject);
		} catch (IOException e) {
			throw new AssertionError("Deserialization should not fail",e);
		}
	}
@ Override public final < T extends Serializable > Name < T > decode ( String data ) { if ( data == null ) { return null ; } try { byte [ ] serializedData = BaseEncoding . base64 ( ) . decode ( data ) ; Serializable subject = SerializationUtils . deserialize ( serializedData , Serializable . class ) ; return assemble ( subject ) ; } catch ( IOException e ) { throw new AssertionError ( "Deserialization should not fail" , e ) ; } }
{@inheritDoc}
{