serviceLink = beanType.getEjbLink();
} else if (beanType.getServletLink() != null) {
serviceLink = beanType.getServletLink();
}
PortInfo portInfo = serviceLinkPortInfoMap.get(serviceLink);
if (portInfo == null) {
portInfo = new PortInfo();
portInfo.setServiceLink(serviceLink);
serviceLinkPortInfoMap.put(serviceLink, portInfo);
}
if (port.getServiceEndpointInterface() != null) {
String sei = port.getServiceEndpointInterface();
portInfo.setServiceEndpointInterfaceName(sei);
}
if (port.getPortComponentName() != null) {
portInfo.setPortName(port.getPortComponentName());
}
if (port.getProtocolBinding() != null) {
portInfo.setProtocolBinding(port.getProtocolBinding());
}
portInfo.setServiceName(serviceName);
if (wsdlFile != null) {
portInfo.setWsdlFile(wsdlFile);
}
if (port.getHandlerChains() != null) {
portInfo.setHandlerChainsInfo(handlerChainsInfoBuilder.build(port.getHandlerChains()));
}
if (port.getWsdlPort() != null) {
portInfo.setWsdlPort(port.getWsdlPort());
}
if (port.getWsdlService() != null) {
portInfo.setWsdlService(port.getWsdlService());
}
String location = servletLocations.get(serviceLink);
portInfo.setLocation(location);
Addressing addressing = port.getAddressing();
if (addressing != null) {
AddressingFeatureInfo addressingFeatureInfo = portInfo.getAddressingFeatureInfo();
if (addressingFeatureInfo == null) {
addressingFeatureInfo = new AddressingFeatureInfo();
portInfo.setAddressingFeatureInfo(addressingFeatureInfo);
}
if (addressing.getEnabled() != null) {
addressingFeatureInfo.setEnabled(addressing.getEnabled());
}
if (addressing.getRequired() != null) {
addressingFeatureInfo.setRequired(addressing.getRequired());
}
if (addressing.getResponses() != null) {
addressingFeatureInfo.setResponses(AddressingFeature.Responses.valueOf(addressing.getResponses().name()));
}
}
if (port.getEnableMtom() != null || port.getMtomThreshold() != null) {
MTOMFeatureInfo mtomFeatureInfo = portInfo.getMtomFeatureInfo();
if (mtomFeatureInfo == null) {
mtomFeatureInfo = new MTOMFeatureInfo();
portInfo.setMtomFeatureInfo(mtomFeatureInfo);
}
if (port.getEnableMtom() != null) {
mtomFeatureInfo.setEnabled(port.getEnableMtom());
}
if (port.getMtomThreshold() != null) {
mtomFeatureInfo.setThreshold(port.getMtomThreshold());
}
}
if (port.getRespectBinding() != null && port.getRespectBinding().getEnabled() != null) {
RespectBindingFeatureInfo respectBindingFeatureInfo = portInfo.getRespectBindingFeatureInfo();
if (respectBindingFeatureInfo == null) {
respectBindingFeatureInfo = new RespectBindingFeatureInfo();
portInfo.setRespectBindingFeatureInfo(respectBindingFeatureInfo);
}
respectBindingFeatureInfo.setEnabled(port.getRespectBinding().getEnabled());
}
}
}