/* * JBoss, Home of Professional Open Source. * * See the LEGAL.txt file distributed with this work for information regarding copyright ownership and licensing. * * See the AUTHORS.txt file distributed with this work for a full listing of individual contributors. */ package org.teiid.designer.modelgenerator.wsdl.model.impl; import java.util.ArrayList; import java.util.Iterator; import org.teiid.designer.modelgenerator.wsdl.SoapBindingInfo; import org.teiid.designer.modelgenerator.wsdl.model.Binding; import org.teiid.designer.modelgenerator.wsdl.model.Fault; import org.teiid.designer.modelgenerator.wsdl.model.Message; import org.teiid.designer.modelgenerator.wsdl.model.Operation; /** * @since 8.0 */ public class OperationImpl extends WSDLElementImpl implements Operation { private Binding m_binding; private Message m_input; private Message m_output; private String m_style; private Fault[] m_faults; private String m_soapAction; private boolean m_canModel; private ArrayList m_messages; private SoapBindingInfo m_bindingInfo; public OperationImpl( Binding binding ) { m_binding = binding; m_faults = new Fault[0]; m_canModel = true; m_messages = new ArrayList(); } @Override public Binding getBinding() { return m_binding; } @Override public Operation copy() { Operation oper = new OperationImpl(getBinding()); oper.setName(getName()); oper.setId(getId()); oper.setStyle(getStyle()); oper.setCanModel(canModel()); oper.setSOAPAction(getSOAPAction()); for (Iterator iter = m_messages.iterator(); iter.hasNext();) { oper.addProblemMessage((String)iter.next()); } if (m_input != null) { oper.setInputMessage((Message)m_input.copy()); } if (m_output != null) { oper.setOutputMessage((Message)m_output.copy()); } Fault[] newFaults = new Fault[m_faults.length]; for (int i = 0; i < m_faults.length; i++) { newFaults[i] = (Fault)m_faults[i].copy(); } oper.setFaults(newFaults); return oper; } @Override public String toString() { StringBuffer buff = new StringBuffer(); buff.append("<operation name='"); //$NON-NLS-1$ buff.append(getName()); buff.append("' id='"); //$NON-NLS-1$ buff.append(getId()); buff.append("' style='"); //$NON-NLS-1$ buff.append(getStyle()); buff.append("' soapAction='"); //$NON-NLS-1$ buff.append(getSOAPAction()); buff.append("' canModel='"); //$NON-NLS-1$ buff.append(canModel()); buff.append("'>"); //$NON-NLS-1$ if (getInputMessage() != null) buff.append(getInputMessage().toString()); if (getOutputMessage() != null) buff.append(getOutputMessage().toString()); Fault[] faults = getFaults(); if (faults != null) { for (int i = 0; i < faults.length; i++) { buff.append(faults[i].toString()); } } buff.append("</operation>"); //$NON-NLS-1$ return buff.toString(); } @Override public Message getInputMessage() { return m_input; } @Override public void setInputMessage( Message inputMsg ) { m_input = inputMsg; } @Override public Message getOutputMessage() { return m_output; } @Override public void setOutputMessage( Message outputMsg ) { m_output = outputMsg; } @Override public String getStyle() { return m_style; } @Override public void setStyle( String style ) { m_style = style; } @Override public Fault[] getFaults() { return m_faults; } @Override public void setFaults( Fault[] faults ) { m_faults = faults; } @Override public void setSOAPAction( String action ) { m_soapAction = action; } @Override public String getSOAPAction() { return m_soapAction; } @Override public boolean canModel() { return m_canModel; } @Override public void setCanModel( boolean canModel ) { m_canModel = canModel; } @Override public void addProblemMessage( String message ) { m_messages.add(message); } @Override public String[] getProblemMessages() { String[] retVal = new String[m_messages.size()]; m_messages.toArray(retVal); return retVal; } @Override public SoapBindingInfo getSoapBindingInfo() { return m_bindingInfo; } @Override public void setSoapBindingInfo( SoapBindingInfo info ) { m_bindingInfo = info; } }