~ubuntu-branches/ubuntu/trusty/ivy/trusty

« back to all changes in this revision

Viewing changes to src/java/org/apache/ivy/plugins/matcher/MapMatcher.java

  • Committer: Bazaar Package Importer
  • Author(s): Varun Hiremath
  • Date: 2009-03-06 22:04:56 UTC
  • Revision ID: james.westby@ubuntu.com-20090306220456-5v37luqiuqda8ewp
Tags: upstream-2.0.0
ImportĀ upstreamĀ versionĀ 2.0.0

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
/*
 
2
 *  Licensed to the Apache Software Foundation (ASF) under one or more
 
3
 *  contributor license agreements.  See the NOTICE file distributed with
 
4
 *  this work for additional information regarding copyright ownership.
 
5
 *  The ASF licenses this file to You under the Apache License, Version 2.0
 
6
 *  (the "License"); you may not use this file except in compliance with
 
7
 *  the License.  You may obtain a copy of the License at
 
8
 *
 
9
 *      http://www.apache.org/licenses/LICENSE-2.0
 
10
 *
 
11
 *  Unless required by applicable law or agreed to in writing, software
 
12
 *  distributed under the License is distributed on an "AS IS" BASIS,
 
13
 *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 
14
 *  See the License for the specific language governing permissions and
 
15
 *  limitations under the License.
 
16
 *
 
17
 */
 
18
package org.apache.ivy.plugins.matcher;
 
19
 
 
20
import java.util.Collections;
 
21
import java.util.HashMap;
 
22
import java.util.Iterator;
 
23
import java.util.Map;
 
24
import java.util.Map.Entry;
 
25
 
 
26
public class MapMatcher {
 
27
    private Map/*<String, Matcher>*/ matchers = new HashMap();
 
28
 
 
29
    private PatternMatcher pm;
 
30
 
 
31
    private Map attributes;
 
32
 
 
33
    public MapMatcher(Map attributes, PatternMatcher pm) {
 
34
        this.attributes = attributes;
 
35
        this.pm = pm;
 
36
        for (Iterator iter = attributes.entrySet().iterator(); iter.hasNext();) {
 
37
            Entry entry = (Entry) iter.next();
 
38
            String value = (String) entry.getValue();
 
39
            if (value != null) {
 
40
                matchers.put(entry.getKey(), pm.getMatcher(value));
 
41
            }
 
42
        }
 
43
    }
 
44
 
 
45
    public boolean matches(Map/*<String,String>*/ m) {
 
46
        for (Iterator iter = matchers.entrySet().iterator(); iter.hasNext();) {
 
47
            Entry entry = (Entry) iter.next();
 
48
            
 
49
            Matcher matcher = (Matcher) entry.getValue();
 
50
            String value = (String) m.get(entry.getKey());
 
51
            if ((value == null) || !matcher.matches(value)) {
 
52
                return false;
 
53
            }
 
54
        }
 
55
        
 
56
        return true;
 
57
    }
 
58
 
 
59
    public String toString() {
 
60
        return attributes + " (" + pm.getName() + ")";
 
61
    }
 
62
 
 
63
    public Map getAttributes() {
 
64
        return Collections.unmodifiableMap(attributes);
 
65
    }
 
66
    
 
67
    public PatternMatcher getPatternMatcher() {
 
68
        return pm;
 
69
    }
 
70
}