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

org.jivesoftware.smackx.packet.DelayInformation Maven / Gradle / Ivy

Go to download

Smack is an Open Source XMPP (Jabber) client library for instant messaging and presence. This library provides the client side functionality as specified in the core XMPP specifications as related to the client side of said specifications.

The newest version!
/**
 * $RCSfile$
 * $Revision: 11823 $
 * $Date: 2010-08-15 08:20:48 -0500 (Sun, 15 Aug 2010) $
 *
 * Copyright 2003-2007 Jive Software.
 *
 * All rights reserved. Licensed 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.jivesoftware.smackx.packet;

import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.TimeZone;

import org.jivesoftware.smack.packet.PacketExtension;

/**
 * Represents timestamp information about data stored for later delivery. A DelayInformation will 
 * always includes the timestamp when the packet was originally sent and may include more 
 * information such as the JID of the entity that originally sent the packet as well as the reason
 * for the delay.

* * For more information see XEP-0091 * and XEP-0203. * * @author Gaston Dombiak */ public class DelayInformation implements PacketExtension { /** * Date format according to the obsolete XEP-0091 specification. * XEP-0091 recommends to use this old format for date-time instead of * the one specified in XEP-0082. *

* Date formats are not synchronized. Since multiple threads access the format concurrently, * it must be synchronized externally. */ public static final DateFormat XEP_0091_UTC_FORMAT = new SimpleDateFormat( "yyyyMMdd'T'HH:mm:ss"); static { XEP_0091_UTC_FORMAT.setTimeZone(TimeZone.getTimeZone("UTC")); } private Date stamp; private String from; private String reason; /** * Creates a new instance with the specified timestamp. * @param stamp the timestamp */ public DelayInformation(Date stamp) { super(); this.stamp = stamp; } /** * Returns the JID of the entity that originally sent the packet or that delayed the * delivery of the packet or null if this information is not available. * * @return the JID of the entity that originally sent the packet or that delayed the * delivery of the packet. */ public String getFrom() { return from; } /** * Sets the JID of the entity that originally sent the packet or that delayed the * delivery of the packet or null if this information is not available. * * @param from the JID of the entity that originally sent the packet. */ public void setFrom(String from) { this.from = from; } /** * Returns the timestamp when the packet was originally sent. The returned Date is * be understood as UTC. * * @return the timestamp when the packet was originally sent. */ public Date getStamp() { return stamp; } /** * Returns a natural-language description of the reason for the delay or null if * this information is not available. * * @return a natural-language description of the reason for the delay or null. */ public String getReason() { return reason; } /** * Sets a natural-language description of the reason for the delay or null if * this information is not available. * * @param reason a natural-language description of the reason for the delay or null. */ public void setReason(String reason) { this.reason = reason; } public String getElementName() { return "x"; } public String getNamespace() { return "jabber:x:delay"; } public String toXML() { StringBuilder buf = new StringBuilder(); buf.append("<").append(getElementName()).append(" xmlns=\"").append(getNamespace()).append( "\""); buf.append(" stamp=\""); synchronized (XEP_0091_UTC_FORMAT) { buf.append(XEP_0091_UTC_FORMAT.format(stamp)); } buf.append("\""); if (from != null && from.length() > 0) { buf.append(" from=\"").append(from).append("\""); } buf.append(">"); if (reason != null && reason.length() > 0) { buf.append(reason); } buf.append(""); return buf.toString(); } }





© 2015 - 2024 Weber Informatics LLC | Privacy Policy