Purge.java
01 /*
02  *  Licensed to the Apache Software Foundation (ASF) under one
03  *  or more contributor license agreements.  See the NOTICE file
04  *  distributed with this work for additional information
05  *  regarding copyright ownership.  The ASF licenses this file
06  *  to you under the Apache License, Version 2.0 (the
07  *  "License"); you may not use this file except in compliance
08  *  with the License.  You may obtain a copy of the License at
09  *
10  *    http://www.apache.org/licenses/LICENSE-2.0
11  *
12  *  Unless required by applicable law or agreed to in writing,
13  *  software distributed under the License is distributed on an
14  *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
15  *  KIND, either express or implied.  See the License for the
16  *  specific language governing permissions and limitations
17  *  under the License.    
18  *
19  
20  */
21 package org.apache.qpid.tools.messagestore.commands;
22 
23 import org.apache.qpid.tools.messagestore.MessageStoreTool;
24 import org.apache.qpid.server.queue.AMQQueue;
25 
26 public class Purge extends Move
27 {
28     public Purge(MessageStoreTool tool)
29     {
30         super(tool);
31     }
32 
33     public String help()
34     {
35         return "Purge messages from a queue.\n" +
36                "The currently selected message set will be purged from the specifed queue.\n" +
37                "Alternatively the values can be provided on the command line.";
38     }
39 
40     public String usage()
41     {
42         return "purge from=<queue> [msgids=<msgids eg, 1,2,4-10>]";
43     }
44 
45     public String getCommand()
46     {
47         return "purge";
48     }
49 
50 
51     protected boolean checkRequirements(AMQQueue fromQueue, AMQQueue toQueue, java.util.List<Long> msgids)
52     {
53         if (fromQueue == null)
54         {
55             _console.println("Source queue not specifed.");
56             _console.println(usage());
57             return false;
58         }
59 
60         return true;
61     }
62 
63     protected void doCommand(AMQQueue fromQueue, long start, long end, AMQQueue toQueue)
64     {
65         fromQueue.removeMessagesFromQueue(start, end, _storeContext);
66     }
67 }