RobotsTXTLine.java
上传用户:qing5858
上传日期:2015-10-27
资源大小:6056k
文件大小:2k
源码类别:

搜索引擎

开发平台:

Java

  1. package net.javacoding.jspider.core.util.html;
  2. import java.net.URL;
  3. /**
  4.  * $Id: RobotsTXTLine.java,v 1.1 2003/02/11 17:33:03 vanrogu Exp $
  5.  */
  6. public class RobotsTXTLine {
  7.     public static final String ALLOW="allow:";
  8.     public static final String DISALLOW="disallow:";
  9.     public static final int ROBOTSTXT_RULE_ALLOW = 0;
  10.     public static final int ROBOTSTXT_RULE_DISALLOW = 1;
  11.     protected int type;
  12.     protected String resourceURI;
  13.     RobotsTXTLine(String resourceURI, int type) {
  14.         this.type = type;
  15.         this.resourceURI = resourceURI;
  16.     }
  17.     public boolean matches(URL url) {
  18.         String path = url.getPath();
  19.         if ( path.length() == 0 && resourceURI.equals("/") ) {
  20.             return true;
  21.         } else {
  22.           return url.getPath().startsWith(resourceURI);
  23.         }
  24.     }
  25.     public int getType() {
  26.         return type;
  27.     }
  28.     public String getResourceURI() {
  29.         return resourceURI;
  30.     }
  31.     public static RobotsTXTLine parse(String line) {
  32.         if (line == null) {
  33.             return null;
  34.         } else {
  35.             line = line.trim();
  36.             String lineLowerCase = line.toLowerCase();
  37.             String resourceURI = "";
  38.             int type = 0;
  39.             if (lineLowerCase.startsWith(DISALLOW)) {
  40.                 resourceURI = line.substring(DISALLOW.length()).trim();
  41.                 type = RobotsTXTLine.ROBOTSTXT_RULE_DISALLOW;
  42.             } else if (lineLowerCase.startsWith(ALLOW)) {
  43.                 resourceURI = line.substring(ALLOW.length()).trim();
  44.                 type = RobotsTXTLine.ROBOTSTXT_RULE_ALLOW;
  45.             } else {
  46.                 return null;
  47.             }
  48.             if ( resourceURI.length() > 0 ) {
  49.               return new RobotsTXTLine(resourceURI, type);
  50.             } else {
  51.                 return null;
  52.             }
  53.         }
  54.     }
  55. }