Package com.jaxws.json

Source Code of com.jaxws.json.JSONMessage

package com.jaxws.json;

import java.util.Map;

import javax.xml.bind.JAXBException;
import javax.xml.bind.Unmarshaller;
import javax.xml.soap.SOAPException;
import javax.xml.soap.SOAPMessage;
import javax.xml.stream.XMLStreamException;
import javax.xml.stream.XMLStreamReader;
import javax.xml.stream.XMLStreamWriter;
import javax.xml.transform.Source;

import org.xml.sax.ContentHandler;
import org.xml.sax.ErrorHandler;
import org.xml.sax.SAXException;

import com.jaxws.json.codec.decode.WSJSONPopulator;
import com.sun.istack.Nullable;
import com.sun.xml.bind.api.Bridge;
import com.sun.xml.ws.api.message.HeaderList;
import com.sun.xml.ws.api.message.Message;
import com.sun.xml.ws.api.model.wsdl.WSDLBoundOperation;

public class JSONMessage extends Message {

  private @Nullable
  HeaderList headers;
 
  private WSDLBoundOperation operation;

  private WSJSONPopulator jsonPopulator;

  private Map<String, Object> elements;

  public JSONMessage(@Nullable HeaderList headers,WSDLBoundOperation operation,Map<String,Object>  operationParameters,
      WSJSONPopulator   jsonPopulator) {
        this.headers     = headers;
        this.operation    = operation;
        this.jsonPopulator   = jsonPopulator;
        this.elements    = operationParameters;
  }
  public boolean hasHeaders() {
    return headers != null && !headers.isEmpty();
  }

  public HeaderList getHeaders() {
    if (headers == null) {
      headers = new HeaderList();
    }
    return headers;
  }

  @Override
  public String getPayloadLocalPart() {
    return operation.getName().getLocalPart();
  }

  @Override
  public String getPayloadNamespaceURI() {
    return operation.getName().getNamespaceURI();
  }

  @Override
  public boolean hasPayload() {
    // TODO Auto-generated method stub
    return false;
  }

  @Override
  public Source readEnvelopeAsSource() {
    // TODO Auto-generated method stub
    return null;
  }

  @Override
  public Source readPayloadAsSource() {
    // TODO Auto-generated method stub
    return null;
  }

  @Override
  public SOAPMessage readAsSOAPMessage() throws SOAPException {
    // TODO Auto-generated method stub
    return null;
  }

  @Override
  public <T> T readPayloadAsJAXB(Unmarshaller unmarshaller)
      throws JAXBException {
    // TODO Auto-generated method stub
    return null;
  }

  @SuppressWarnings("unchecked")
  @Override
  public <T> T readPayloadAsJAXB(Bridge<T> bridge) throws JAXBException {
    try {
      Class<?> parameterType = (Class<?>)bridge.getTypeReference().type;
      if(!WSJSONPopulator.isJSONPrimitive(parameterType)){
              return (T) jsonPopulator.populateObject(jsonPopulator.getNewInstance(parameterType),
                  (Map<String,Object>)elements.get(bridge.getTypeReference().tagName.getLocalPart()),null,
                  null);
            } else {
              return (T) jsonPopulator.convert(parameterType, null, elements.get(bridge.getTypeReference().tagName.getLocalPart()),
                  /*seiMethod != null ? seiMethod.getAnnotation(JSONWebService.class) :*/ null, null);
            }
    } catch (Exception e) {
      // TODO Auto-generated catch block
      e.printStackTrace();
    }
    return null;
  }

  @Override
  public XMLStreamReader readPayload() throws XMLStreamException {
    // TODO Auto-generated method stub
    return null;
  }

  @Override
  public void writePayloadTo(XMLStreamWriter sw) throws XMLStreamException {
    // TODO Auto-generated method stub
    System.out.println("");
  }

  @Override
  public void writeTo(XMLStreamWriter sw) throws XMLStreamException {
    // TODO Auto-generated method stub
    System.out.println("");
  }

  @Override
  public void writeTo(ContentHandler contentHandler, ErrorHandler errorHandler)
      throws SAXException {
    // TODO Auto-generated method stub

  }

  @Override
  public Message copy() {
    // TODO Auto-generated method stub
    return null;
  }

}
TOP

Related Classes of com.jaxws.json.JSONMessage

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.