📄 piperesolvermessage.java
字号:
/* * Copyright (c) 2002 Sun Microsystems, Inc. All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * * 1. Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in * the documentation and/or other materials provided with the * distribution. * * 3. The end-user documentation included with the redistribution, * if any, must include the following acknowledgment: * "This product includes software developed by the * Sun Microsystems, Inc. for Project JXTA." * Alternately, this acknowledgment may appear in the software itself, * if and wherever such third-party acknowledgments normally appear. * * 4. The names "Sun", "Sun Microsystems, Inc.", "JXTA" and "Project JXTA" must * not be used to endorse or promote products derived from this * software without prior written permission. For written * permission, please contact Project JXTA at http://www.jxta.org. * * 5. Products derived from this software may not be called "JXTA", * nor may "JXTA" appear in their name, without prior written * permission of Sun. * * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE * DISCLAIMED. IN NO EVENT SHALL SUN MICROSYSTEMS OR * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * ==================================================================== * * This software consists of voluntary contributions made by many * individuals on behalf of Project JXTA. For more * information on Project JXTA, please see * <http://www.jxta.org/>. * * This license is based on the BSD license adopted by the Apache Foundation. * * $Id: PipeResolverMessage.java,v 1.3 2004/05/07 00:03:14 hamada Exp $ */package net.jxta.protocol;import java.util.Collections;import java.util.HashSet;import java.util.Set;import net.jxta.document.Document;import net.jxta.document.MimeMediaType;import net.jxta.id.ID;import net.jxta.peer.PeerID;import net.jxta.pipe.PipeID;/** * This abstract class defines the PipeResolver Message. * * <p/>This message is part of the Pipe Resolver Protocol. * * @see net.jxta.pipe.PipeService * @see net.jxta.protocol.PipeAdvertisement * @see <a href="http://spec.jxta.org/nonav/v1.0/docbook/JXTAProtocols.html#proto-pbp" target='_blank'>JXTA Protocols Specification : Standard JXTA Protocols</a> * */public abstract class PipeResolverMessage { /** * The type of message this object is communicating. */ private MessageType msgType = null; /** * The pipe which is the subject of this message. */ private ID pipeid = ID.nullID; /** * The type of the pipe which is the subject of this message. */ private String pipeType = null; /** * <ul> * <li>For query : The peer ids which should respond to this query.</li> * <li>For response : The peer id on which is responding.</li> * </ul> */ private Set peerids = new HashSet(); /** * For responses, if true then this message indicates the pipe is present * otherwise the pipe is not present. */ private boolean found = true; /** * <ul> * <li>For query : The peer advertisement of the querying peer.</li> * <li>For response : The peer advertisement of the responding peer.</li> * </ul> */ private PeerAdvertisement inputPeerAdv = null; /** * An enumeration class for message types. */ public static class MessageType implements Cloneable { /** * A query message */ public static final MessageType QUERY = new MessageType() { public String toString() { return "Pipe Resolver Query Message"; } }; /** * A response message */ public static final MessageType ANSWER = new MessageType() { public String toString() { return "Pipe Resolver Answer Message"; } }; /** * only the intrinsically declared types are supported. */ private MessageType() {} /** * {@inheritDoc} * * <p/>immutable and thus clone just returns <tt>this</tt>. */ public Object clone() { return this; } /** * {@inheritDoc} * * <p/>only match ourselves. */ public boolean equals(Object target) { return (this == target); } } /** * Creates a new unintialized pipe resolver message */ public PipeResolverMessage() { super(); } /** * returns the Message type. This will match the XML doctype declaration. * * @return a string */ public static String getMessageType() { return "jxta:PipeResolver"; } /** * Write message into a document. asMimeType is a mime media-type * specification and provides the form of the document which is being * requested. Two standard document forms are defined. "text/plain" encodes * the document in "pretty-print" format for human viewing and "text/xml" * which provides an XML format. * * @param asMimeType MimeMediaType format representation requested * @return Document the document to be used in the construction */ public abstract Document getDocument( MimeMediaType asMimeType ); /** * Returns whether this message is a query or a response. * * @return the type of this message. */ public MessageType getMsgType() { return msgType; } /** * Sets the message type of this message. * * @param type the type this message is to be. */ public void setMsgType( MessageType type ) { msgType = type; } /** * Return the id of the pipe which is the subject of this message. * * @return the id of the pipe which is the subject of this message. */ public ID getPipeID() { return pipeid; } /** * Set the id of pipe which is to be subject of this message. * * @param id the pipe id which is the subject of this message. */ public void setPipeID( ID id ) { if( !(id instanceof PipeID) ) throw new IllegalArgumentException( "can only set to pipe ids." ); pipeid = id; } /** * Return the pipe type of the pipe which is the subject of this message. * * @return the pipe type of the pipe which is the subject of this message. */ public String getPipeType() { return pipeType; } /** * Set the pipe type of the pipe which is the subject of this message. * * @param type The pipe type of the pipe which is to be the subject of this * message. */ public void setPipeType( String type ) { pipeType = type; } // Query /** * Returns a {@link java.util.Set} (possibly empty) containing the peer ids * which should respond to this query. * * @return set containing the peer ids to which this peer is directed. */ public Set getPeerIDs() { return Collections.unmodifiableSet( peerids ); } /** * Add a peer to the set of peers to which this query is directed. * * @param id the peer id to add. */ public void addPeerID( ID id ) { if( !(id instanceof PeerID) ) throw new IllegalArgumentException( "can only add peer ids" ); peerids.add( id ); } // Answer /** * If true then the pipe was found ont he */ public boolean isFound() { return found; } public void setFound( boolean isFound ) { found = isFound; } public PeerAdvertisement getInputPeerAdv() { return inputPeerAdv; } public void setInputPeerAdv( PeerAdvertisement peerAdv) { inputPeerAdv = peerAdv; }}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -