KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > apache > activemq > filter > WildcardDestinationFilter


1 /**
2  *
3  * Licensed to the Apache Software Foundation (ASF) under one or more
4  * contributor license agreements. See the NOTICE file distributed with
5  * this work for additional information regarding copyright ownership.
6  * The ASF licenses this file to You under the Apache License, Version 2.0
7  * (the "License"); you may not use this file except in compliance with
8  * the License. You may obtain a copy of the License at
9  *
10  * http://www.apache.org/licenses/LICENSE-2.0
11  *
12  * Unless required by applicable law or agreed to in writing, software
13  * distributed under the License is distributed on an "AS IS" BASIS,
14  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15  * See the License for the specific language governing permissions and
16  * limitations under the License.
17  */

18
19 package org.apache.activemq.filter;
20
21 import org.apache.activemq.command.ActiveMQDestination;
22
23
24 /**
25  * Matches messages which contain wildcards like "A.B.*.*"
26  *
27  * @version $Revision: 1.2 $
28  */

29 public class WildcardDestinationFilter extends DestinationFilter {
30
31     private String JavaDoc[] prefixes;
32
33     /**
34      * An array of paths containing * characters
35      *
36      * @param prefixes
37      */

38     public WildcardDestinationFilter(String JavaDoc[] prefixes) {
39         this.prefixes = new String JavaDoc[prefixes.length];
40         for (int i = 0; i < prefixes.length; i++) {
41             String JavaDoc prefix = prefixes[i];
42             if (!prefix.equals("*")) {
43                 this.prefixes[i] = prefix;
44             }
45         }
46     }
47
48     public boolean matches(ActiveMQDestination destination) {
49         String JavaDoc[] path = DestinationPath.getDestinationPaths(destination);
50         int length = prefixes.length;
51         if (path.length == length) {
52             for (int i = 0, size = length; i < size; i++) {
53                 String JavaDoc prefix = prefixes[i];
54                 if (prefix != null && !prefix.equals(path[i])) {
55                     return false;
56                 }
57             }
58             return true;
59         }
60         return false;
61     }
62
63
64     public String JavaDoc getText() {
65         return DestinationPath.toString(prefixes);
66     }
67
68     public String JavaDoc toString() {
69         return super.toString() + "[destination: " + getText() + "]";
70     }
71
72     public boolean isWildcard() {
73         return true;
74     }
75 }
76
Popular Tags