413ae921654a7f83eb5db12c8a9c0a74d0b196a5
[xmlrouter] / impl / src / main / java / org / wamblee / xmlrouter / impl / RobustFilter.java
1 package org.wamblee.xmlrouter.impl;
2
3 import java.util.logging.Level;
4 import java.util.logging.Logger;
5
6 import javax.xml.transform.dom.DOMSource;
7
8 import org.wamblee.xmlrouter.common.Id;
9 import org.wamblee.xmlrouter.config.Filter;
10
11 public class RobustFilter implements Filter {
12
13     private static final Logger LOGGER = Logger.getLogger(RobustFilter.class
14         .getName());
15
16     private Id<Filter> id;
17     private Filter filter;
18
19     public RobustFilter(Id<Filter> aId, Filter aFilter) {
20         id = aId;
21         filter = aFilter;
22     }
23
24     @Override
25     public boolean isAllowed(String aDocumentType, DOMSource aSource) {
26         try {
27             return filter.isAllowed(aDocumentType, aSource);
28         } catch (Exception e) {
29             LOGGER.log(Level.WARNING, "Filter " + id +
30                 " threw exception, assuming filter returns true", e);
31             return true;
32         }
33     }
34 }