// Path: access-control/src/main/java/org/archive/accesscontrol/RobotsUnavailableException.java
// public class RobotsUnavailableException extends AccessControlException {
// 
//     /**
//      * 
//      */
//     private static final long serialVersionUID = -6268896797166951256L;
// 
//     public RobotsUnavailableException() {
//         super();
//         // TODO Auto-generated constructor stub
//     }
// 
//     public RobotsUnavailableException(String arg0, Throwable arg1) {
//         super(arg0, arg1);
//         // TODO Auto-generated constructor stub
//     }
// 
//     public RobotsUnavailableException(String arg0) {
//         super(arg0);
//         // TODO Auto-generated constructor stub
//     }
// 
//     public RobotsUnavailableException(Throwable arg0) {
//         super(arg0);
//         // TODO Auto-generated constructor stub
//     }
// 
// }


import java.io.IOException;
import java.util.Collection;
import org.apache.commons.httpclient.URIException;
import org.archive.accesscontrol.RobotsUnavailableException;
import org.archive.url.LaxURI;
package org.archive.accesscontrol.robotstxt;



/**
 * A client for checking whether a robot is allowed by a robots.txt file.
 * 
 * @author aosborne
 * 
 */
public abstract class RobotClient {
    /**
     * Returns true if a robot with the given user-agent is allowed to access
     * the given url.
     * 
     * @param url
     * @param userAgent
     * @return
     * @throws IOException
     * @throws RobotsUnavailableException 
     */
    public boolean isRobotPermitted(String url, String userAgent)
// Path: access-control/src/main/java/org/archive/accesscontrol/RobotsUnavailableException.java
// public class RobotsUnavailableException extends AccessControlException {
// 
//     /**
//      * 
//      */
//     private static final long serialVersionUID = -6268896797166951256L;
// 
//     public RobotsUnavailableException() {
//         super();
//         // TODO Auto-generated constructor stub
//     }
// 
//     public RobotsUnavailableException(String arg0, Throwable arg1) {
//         super(arg0, arg1);
//         // TODO Auto-generated constructor stub
//     }
// 
//     public RobotsUnavailableException(String arg0) {
//         super(arg0);
//         // TODO Auto-generated constructor stub
//     }
// 
//     public RobotsUnavailableException(Throwable arg0) {
//         super(arg0);
//         // TODO Auto-generated constructor stub
//     }
// 
// }


// Path: access-control/src/main/java/org/archive/accesscontrol/robotstxt/RobotClient.java
import java.io.IOException;
import java.util.Collection;
import org.apache.commons.httpclient.URIException;
import org.archive.accesscontrol.RobotsUnavailableException;
import org.archive.url.LaxURI;

package org.archive.accesscontrol.robotstxt;



/**
 * A client for checking whether a robot is allowed by a robots.txt file.
 * 
 * @author aosborne
 * 
 */
public abstract class RobotClient {
    /**
     * Returns true if a robot with the given user-agent is allowed to access
     * the given url.
     * 
     * @param url
     * @param userAgent
     * @return
     * @throws IOException
     * @throws RobotsUnavailableException 
     */
    public boolean isRobotPermitted(String url, String userAgent)
            throws IOException, RobotsUnavailableException {