/* * Copyright (C) 2009 Camptocamp * * This file is part of MapFish Server * * MapFish Server is free software: you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * MapFish Server is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public License * along with MapFish Server. If not, see <http://www.gnu.org/licenses/>. */ package org.mapfish.print.config; import java.net.MalformedURLException; import java.net.SocketException; import java.net.URI; import java.net.UnknownHostException; /** * Allows to check that a given URL matches a DNS address (textual format). */ public class DnsHostMatcher extends HostMatcher { private String host = null; /** * Check the given URI to see if it matches. * * @return True if it matches. */ public boolean validate(URI uri) throws UnknownHostException, SocketException, MalformedURLException { if (!uri.getHost().equals(host)) { return false; } return super.validate(uri); } public String toString() { final StringBuilder sb = new StringBuilder(); sb.append("DnsHostMatcher"); sb.append("{host='").append(host).append('\''); if (port >= 0) { sb.append(", port=").append(port); } if (pathRegex != null) { sb.append(", pathRegexp=").append(pathRegex); } sb.append('}'); return sb.toString(); } public void setHost(String host) { this.host = host; } @Override public int hashCode() { final int prime = 31; int result = super.hashCode(); result = prime * result + ((host == null) ? 0 : host.hashCode()); return result; } @Override public boolean equals(Object obj) { if (this == obj) return true; if (!super.equals(obj)) return false; if (getClass() != obj.getClass()) return false; DnsHostMatcher other = (DnsHostMatcher) obj; if (host == null) { if (other.host != null) return false; } else if (!host.equals(other.host)) return false; return true; } }