code: protected <T> Parameter<T> createParameter(String             parameterName,
                                                 Class<T>           parameterType,
                                                 EnumSet<Metadata>  parameterMetadata) {        
          if ((parameterName == null) || (parameterName.trim().length() == 0)) {
              String s = "Parameter name cannot be null or empty";
              throw new IllegalArgumentException(s);
          }
          
          if (parameterType == null) {
              String s = String.format("Null type specified for parameter '%s'", 
                                       parameterName);
              throw new IllegalArgumentException(s);            
          }
  
          Parameter<T> parameter =  new Parameter<T>(this,
                                                     parameterName, 
                                                     parameterType, 
                                                     parameterMetadata);
          _parameters.add(parameter);
  
          return parameter;
      }
docs: Creates an {@link WebSocketExtensionParamter} of the specified type.
  
  @param <T>                 generic parameter type
  @param parameterName       name of the parameter
  @param parameterType       Class object representing the parameter type
  @param parameterMetadata   characteristics of the parameter
  @return Parameter of the specified type