HandlerChainsDocument hcd = (HandlerChainsDocument) XmlBeansUtil.typedCopy(xml, HandlerChainsDocument.type);
HandlerChainsType handlerChains = hcd.getHandlerChains();
ServiceRefHandlerChainsType serviceRefHandlerChains = serviceRef.addNewHandlerChains();
for (HandlerChainType handlerChain : handlerChains.getHandlerChainArray()) {
ServiceRefHandlerChainType serviceRefHandlerChain = serviceRefHandlerChains.addNewHandlerChain();
if (handlerChain.getPortNamePattern() != null) {
serviceRefHandlerChain.setPortNamePattern(handlerChain.getPortNamePattern());
}
if (handlerChain.getServiceNamePattern() != null) {
serviceRefHandlerChain.setServiceNamePattern(handlerChain.getServiceNamePattern());
}
if (handlerChain.getProtocolBindings() != null) {
serviceRefHandlerChain.setProtocolBindings(handlerChain.getProtocolBindings());
}
for ( PortComponentHandlerType handler : handlerChain.getHandlerArray()) {
ServiceRefHandlerType serviceRefHandler = serviceRefHandlerChain.addNewHandler();
serviceRefHandler.setHandlerName(handler.getHandlerName());
serviceRefHandler.setHandlerClass(handler.getHandlerClass());
if (handler.getDescriptionArray().length>0) {
serviceRefHandler.setDescriptionArray(handler.getDescriptionArray());
}