View Javadoc

1   /*   Copyright 2004 BEA Systems, Inc.
2    *
3    *   Licensed under the Apache License, Version 2.0 (the "License");
4    *   you may not use this file except in compliance with the License.
5    *   You may obtain a copy of the License at
6    *
7    *       http://www.apache.org/licenses/LICENSE-2.0
8    *
9    *   Unless required by applicable law or agreed to in writing, software
10   *   distributed under the License is distributed on an "AS IS" BASIS,
11   *   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12   *   See the License for the specific language governing permissions and
13   *   limitations under the License.
14   */
15  
16  package com.bea.xml.stream.filters;
17  
18  import javax.xml.namespace.QName;
19  import javax.xml.stream.EventFilter;
20  import javax.xml.stream.StreamFilter;
21  import javax.xml.stream.XMLStreamReader;
22  import javax.xml.stream.events.StartElement;
23  import javax.xml.stream.events.EndElement;
24  import javax.xml.stream.events.XMLEvent;
25  
26  public class NameFilter implements EventFilter, StreamFilter {
27    private QName name;
28    
29    public NameFilter(QName name) 
30    { 
31      this.name = name;
32    }
33  
34    public boolean accept(XMLEvent e) {
35      if (!e.isStartElement() && !e.isEndElement()) return false;
36      QName eName = null;
37      if (e.isStartElement())
38        eName = ((StartElement)e).getName();
39      else
40        eName = ((EndElement)e).getName();
41      if (name.equals(eName))
42        return true;
43      return false;
44    }
45  
46    public boolean accept(XMLStreamReader r) {
47      if (!r.isStartElement() && !r.isEndElement()) return false;
48      QName eName = new QName(r.getNamespaceURI(),
49                              r.getLocalName());
50      if (name.equals(eName))
51        return true;
52      return false;
53    }
54  }
55  
56