001    /*
002     * Copyright (c) 2005 Your Corporation. All Rights Reserved.
003     */
004    package org.activemq.transport.stomp;
005    
006    import org.activemq.message.ActiveMQDestination;
007    
008    import java.io.DataInput;
009    import java.io.IOException;
010    import java.util.Properties;
011    
012    public class Unsubscribe implements Command
013    {
014        private static final HeaderParser parser = new HeaderParser();
015        private final StompWireFormat format;
016    
017        Unsubscribe(StompWireFormat format)
018        {
019            this.format = format;
020        }
021    
022        public PacketEnvelope build(String commandLine, DataInput in) throws IOException
023        {
024            Properties headers = parser.parse(in);
025            while (in.readByte() == 0) {}
026    
027            String dest_name = headers.getProperty(Stomp.Headers.Unsubscribe.DESTINATION);
028            ActiveMQDestination destination = DestinationNamer.convert(dest_name);
029    
030            Subscription s =  format.getSubscriptionFor(destination);
031            return new PacketEnvelope(s.close(), headers);
032        }
033    }