All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.sun.xml.ws.handler.LogicalMessageContextImpl Maven / Gradle / Ivy

/*
 * Copyright (c) 1997, 2019 Oracle and/or its affiliates. All rights reserved.
 *
 * This program and the accompanying materials are made available under the
 * terms of the Eclipse Distribution License v. 1.0, which is available at
 * http://www.eclipse.org/org/documents/edl-v10.php.
 *
 * SPDX-License-Identifier: BSD-3-Clause
 */

package com.sun.xml.ws.handler;

import com.sun.xml.ws.api.message.Message;
import com.sun.xml.ws.api.message.Packet;
import com.sun.xml.ws.api.WSBinding;
import com.sun.xml.ws.spi.db.BindingContext;

import javax.xml.ws.LogicalMessage;
import javax.xml.ws.handler.LogicalMessageContext;

/**
 * Implementation of LogicalMessageContext. This class is used at runtime
 * to pass to the handlers for processing logical messages.
 *
 * 

This Class delegates most of the fuctionality to Packet * * @see Packet * * @author WS Development Team */ class LogicalMessageContextImpl extends MessageUpdatableContext implements LogicalMessageContext { private LogicalMessageImpl lm; private WSBinding binding; // private JAXBContext defaultJaxbContext; private BindingContext defaultJaxbContext; public LogicalMessageContextImpl(WSBinding binding, BindingContext defaultJAXBContext, Packet packet) { super(packet); this.binding = binding; this.defaultJaxbContext = defaultJAXBContext; } public LogicalMessage getMessage() { if(lm == null) lm = new LogicalMessageImpl(defaultJaxbContext, packet); return lm; } void setPacketMessage(Message newMessage){ if(newMessage != null) { packet.setMessage(newMessage); lm = null; } } protected void updateMessage() { //If LogicalMessage is not acccessed, its not modified. if(lm != null) { //Check if LogicalMessageImpl has changed, if so construct new one // Packet are handled through MessageContext if(lm.isPayloadModifed()){ Message msg = packet.getMessage(); Message updatedMsg = lm.getMessage(msg.getHeaders(),msg.getAttachments(),binding); packet.setMessage(updatedMsg); } lm = null; } } }





© 2015 - 2024 Weber Informatics LLC | Privacy Policy