001/** 002 * GRANITE DATA SERVICES 003 * Copyright (C) 2006-2013 GRANITE DATA SERVICES S.A.S. 004 * 005 * This file is part of the Granite Data Services Platform. 006 * 007 * Granite Data Services is free software; you can redistribute it and/or 008 * modify it under the terms of the GNU Lesser General Public 009 * License as published by the Free Software Foundation; either 010 * version 2.1 of the License, or (at your option) any later version. 011 * 012 * Granite Data Services is distributed in the hope that it will be useful, 013 * but WITHOUT ANY WARRANTY; without even the implied warranty of 014 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser 015 * General Public License for more details. 016 * 017 * You should have received a copy of the GNU Lesser General Public 018 * License along with this library; if not, write to the Free Software 019 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, 020 * USA, or see <http://www.gnu.org/licenses/>. 021 */ 022package flex.messaging.messages; 023 024import java.util.HashMap; 025 026/** 027 * @author Franck WOLFF 028 */ 029public class AsyncMessage extends AbstractMessage { 030 031 private static final long serialVersionUID = 1L; 032 033 public static final String SUBTOPIC_HEADER = "DSSubtopic"; 034 public static final String DESTINATION_CLIENT_ID_HEADER = "DSDstClientId"; 035 036 private String correlationId; 037 038 public AsyncMessage() { 039 super(); 040 041 setHeaders(new HashMap<String, Object>()); 042 } 043 044 public AsyncMessage(Message request) { 045 this(request, false); 046 } 047 048 public AsyncMessage(Message request, boolean keepClientId) { 049 super(request, keepClientId); 050 051 setHeaders(new HashMap<String, Object>()); 052 this.correlationId = request.getMessageId(); 053 } 054 055 public String getCorrelationId() { 056 return correlationId; 057 } 058 059 public void setCorrelationId(String correlationId) { 060 this.correlationId = correlationId; 061 } 062 063 @Override 064 public AsyncMessage clone() { 065 AsyncMessage msg = new AsyncMessage(); 066 msg.setBody(getBody()); 067 msg.setClientId(getClientId()); 068 msg.setCorrelationId(getCorrelationId()); 069 msg.setDestination(getDestination()); 070 msg.setMessageId(getMessageId()); 071 msg.setHeaders(new HashMap<String, Object>(getHeaders())); 072 msg.setTimestamp(getTimestamp()); 073 msg.setTimeToLive(getTimeToLive()); 074 return msg; 075 } 076 077 @Override 078 public String toString() { 079 return toString(""); 080 } 081 082 public String toString(String indent) { 083 StringBuilder sb = new StringBuilder(512); 084 sb.append(getClass().getName()).append(" {"); 085 toString(sb, indent, null); 086 sb.append('\n').append(indent).append('}'); 087 return sb.toString(); 088 } 089 090 @Override 091 protected void toString(StringBuilder sb, String indent, String bodyMessage) { 092 sb.append('\n').append(indent).append(" correlationId = ").append(correlationId); 093 super.toString(sb, indent, bodyMessage); 094 } 095}