Start line:  
End line:  

Snippet Preview

Snippet HTML Code

Stack Overflow Questions
  /*
   * Licensed to the Apache Software Foundation (ASF) under one
   * or more contributor license agreements.  See the NOTICE file
   * distributed with this work for additional information
   * regarding copyright ownership.  The ASF licenses this file
   * to you under the Apache License, Version 2.0 (the
   * "License"); you may not use this file except in compliance
   * with the License.  You may obtain a copy of the License at
   * 
  *   http://www.apache.org/licenses/LICENSE-2.0
  * 
  * Unless required by applicable law or agreed to in writing,
  * software distributed under the License is distributed on an
  * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
  * KIND, either express or implied.  See the License for the
  * specific language governing permissions and limitations
  * under the License.    
  */
 
 package org.apache.tuscany.sca.interfacedef.wsdl.impl;
 
 import java.util.List;
 
 
Introspector for creating WSDLInterface definitions from WSDL PortTypes.

Version:
$Rev: 912034 $ $Date: 2010-02-20 01:38:00 +0200 (Sat, 20 Feb 2010) $
 
     private static final QName POLICY_REQUIRES 			= new QName("http://docs.oasis-open.org/ns/opencsa/sca/200912""requires");
     
     private static final QName CALLBACK_ATTRIBUTE 		= new QName("http://docs.oasis-open.org/ns/opencsa/sca/200912""callback" );
     
     private WSDLFactory wsdlFactory;
     private XSDFactory xsdFactory;
     private PolicyFactory policyFactory;
     
     public WSDLInterfaceIntrospectorImpl(FactoryExtensionPoint modelFactoriesWSDLFactory wsdlFactory) {
         this. = modelFactories.getFactory(XSDFactory.class);
         this. = modelFactories.getFactory(PolicyFactory.class);
         this. = wsdlFactory;
     }
 
     // FIXME: Do we want to deal with document-literal wrapped style based on the JAX-WS Specification?
     private List<OperationintrospectOperations(PortType portTypeWSDLDefinition wsdlDefinitionModelResolver resolverMonitor monitorthrows InvalidWSDLException {
         List<Operationoperations = new ArrayList<Operation>();
         for (Object o : portType.getOperations()) {
             javax.wsdl.Operation wsdlOp = (javax.wsdl.Operation)o;
             Operation operation = getOperation(wsdlOpwsdlDefinitionresolvermonitor);
             operations.add(operation);
         }
         return operations;
     }
 
     public void introspectPortType(WSDLInterface wsdlInterfacePortType portTypeWSDLDefinition wsdlDefinitionModelResolver resolverMonitor monitorthrows InvalidWSDLException {
         processIntents(wsdlInterfaceportType);
         WSDLInterface callback = processCallbackAttributeportTyperesolvermonitor );
         wsdlInterface.setPortType(portType);
         wsdlInterface.setCallbackInterface(callback);
         wsdlInterface.getOperations().addAll(introspectOperations(portTypewsdlDefinitionresolvermonitor));
     }
 
     public static Operation getOperation(javax.wsdl.Operation wsdlOp,
                                          WSDLDefinition wsdlDefinition,
                                          ModelResolver resolver,
                                          XSDFactory xsdFactory,
                                          Monitor monitorthrows InvalidWSDLException {
         WSDLOperationIntrospectorImpl op = new WSDLOperationIntrospectorImpl(xsdFactorywsdlOpwsdlDefinitionnullresolvermonitor);
         return op.getOperation();
     }
    
    
Process an extension

Parameters:
portType the portType
Returns:
Callback:
attribute on a WSDL portType declaration - the callback attribute must contain the QName of another portType
 
     private WSDLInterface processCallbackAttributePortType portTypeModelResolver resolverMonitor monitor ) {
         Object o =  portType.getExtensionAttribute();
         if(o != null && o instanceof QName) { 
         	WSDLInterface wsdlInterface = .createWSDLInterface();
        	wsdlInterface.setUnresolved(true);
        	wsdlInterface.setName( (QName)o );
        	wsdlInterface = WSDLInterfaceProcessor.resolveWSDLInterfacewsdlInterfaceresolvermonitor );
        	
        	return wsdlInterface;
        } else {
        	return null;
        } // end if 
    } // end method processCallbackAttribute
    
    private void processIntents(WSDLInterface wsdlInterfacePortType portType) {
        Object o;
        try {
            o =  portType.getExtensionAttribute();
        } catch (NoSuchMethodError e) {
            // That method does not exist on older WSDL4J levels
            o = null;
        }
        if(o != null && o instanceof Vector) {
            Vector<QNamepolicyAttributes = (Vector<QName>) o;
            
            Enumeration<QNamepolicyItents = policyAttributes.elements();
            while (policyItents.hasMoreElements()) {
                QName intentName = policyItents.nextElement();
                // Add each intent to the list
                Intent intent = .createIntent();
                intent.setName(intentName);
                wsdlInterface.getRequiredIntents().add(intent);
            }
            
        }
    }
    
New to GrepCode? Check out our FAQ X