code: public Object decode(String alias, U value) {
          requireNonNull(alias, "Not allowed to have a null alias");
          requireNonNull(value, "Value for decoding can not be null");
  
          TypeEncoder<?, U> encoder = aliasMapping.get(alias);
          if (encoder != null)
              return encoder.decode(value);
  
          throw new TypeDecodingException("An unknown alias [" + alias + "] was encountered");
      }
docs: Decodes the given {@code value} using one of the registered {@link TypeEncoder}s.  The {@code alias} is used
  to determine which {@link TypeEncoder} will be used and shall correlate to the result of the {@code getAlias()}
  method for the original object.