code: public <T extends Parameter> T copy() throws URISyntaxException {
          if (factory == null) {
              throw new UnsupportedOperationException("No factory specified");
          }
          return (T) factory.createParameter(getValue());
      }
docs: Deep copy of parameter.
  
  @return new parameter
  @throws URISyntaxException where an invalid URI is encountered