/**
  * This is called from the UI processors. Since we have the user entered information at the
  * creation flow the UI object is passed and is converted to this intermediate object for the rest
  * of the processing logic.
  *
  * @param paramModel the param model
  * @return This has been made a static factory to enable object pooling and controlled creation.
  * @throws WSDLException the wSDL exception
  */
 public static SOAIntfMetadata create(ServiceFromWsdlParamModel paramModel) throws WSDLException {
   SOAIntfMetadata metadata = new SOAIntfMetadata();
   metadata.setPublicServiceName(paramModel.getPublicServiceName());
   metadata.setServiceName(paramModel.getServiceName());
   metadata.setTypeNamespace(paramModel.getTypeNamespace());
   metadata.setTypeFolding(paramModel.getTypeFolding());
   metadata.setServiceVersion(paramModel.getServiceVersion());
   metadata.setServiceInterface(paramModel.getServiceInterface());
   metadata.setServiceLayer(paramModel.getServiceLayer());
   metadata.setSourceType(SOAProjectConstants.InterfaceSourceType.WSDL);
   metadata.setWsdlSourceType(paramModel.getWSDLSourceType());
   metadata.setOriginalWSDLUrl(paramModel.getOriginalWsdlUrl());
   metadata.setMetadataVersion(SOAProjectConstants.PROPS_DEFAULT_PROPERTY_VERSION);
   metadata.setNamespaceToPackageMappings(paramModel.getNamespaceToPacakgeMappings());
   metadata.setServiceNamespacePart(paramModel.getNamespacePart());
   metadata.setServiceDomainName(paramModel.getServiceDomain());
   SOAIntfUtil.setInformationFromWsdl(paramModel.getOriginalWsdlUrl(), metadata);
   return metadata;
 }