⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 crawlsettingssaxhandler.java

📁 这是个爬虫和lucece相结合最好了
💻 JAVA
📖 第 1 页 / 共 2 页
字号:
            } else if (handlerStack.peek() instanceof RefinementHandler) {                ((Refinement) stack.peek()).setDescription(value);            } else {                illegalElementError(name);            }        }    }    private class OrganizationHandler extends ElementHandler {        public void endElement(String name) throws SAXException {            if (handlerStack.peek() instanceof MetaHandler) {                settings.setOrganization(value);            } else if (handlerStack.peek() instanceof RefinementHandler) {                ((Refinement) stack.peek()).setOrganization(value);            } else {                illegalElementError(name);            }        }    }    private class OperatorHandler extends ElementHandler {        public void endElement(String name) throws SAXException {            if (handlerStack.peek() instanceof MetaHandler) {                settings.setOperator(value);            } else if (handlerStack.peek() instanceof RefinementHandler) {                ((Refinement) stack.peek()).setOperator(value);            } else {                illegalElementError(name);            }        }    }    private class AudienceHandler extends ElementHandler {        public void endElement(String name) throws SAXException {            if (handlerStack.peek() instanceof MetaHandler) {                settings.setAudience(value);            } else if (handlerStack.peek() instanceof RefinementHandler) {                ((Refinement) stack.peek()).setAudience(value);            } else {                illegalElementError(name);            }        }    }    private class DateHandler extends ElementHandler {        public void endElement(String name) throws SAXException {            if (handlerStack.peek() instanceof MetaHandler) {                try {                    settings.setLastSavedTime(ArchiveUtils                            .parse14DigitDate(value));                } catch (ParseException e) {                    throw new SAXException(e);                }            } else {                illegalElementError(name);            }        }    }    // Refinement handlers    private class RefinementListHandler extends ElementHandler {        public void startElement(String name) throws SAXException {            if (!(handlerStack.peek() instanceof RootHandler)) {                illegalElementError(name);            }        }    }    private class RefinementHandler extends ElementHandler {        public void startElement(String name, Attributes atts)                throws SAXException {            stack.push(new Refinement(settings, atts                    .getValue(XMLSettingsHandler.XML_ELEMENT_REFERENCE)));        }    }    private class ReferenceHandler extends ElementHandler {        public void endElement(String name) throws SAXException {            if (handlerStack.peek() instanceof RefinementHandler) {                ((Refinement) stack.peek()).setReference(value);            } else {                illegalElementError(name);            }        }    }    private class LimitsHandler extends ElementHandler {    }    private class TimespanHandler extends ElementHandler {        public void startElement(String name, Attributes atts)                throws SAXException {            if (stack.peek() instanceof Refinement) {                String from = atts                        .getValue(XMLSettingsHandler.XML_ATTRIBUTE_FROM);                String to = atts.getValue(XMLSettingsHandler.XML_ATTRIBUTE_TO);                try {                    TimespanCriteria timespan = new TimespanCriteria(from, to);                    ((Refinement) stack.peek()).addCriteria(timespan);                } catch (ParseException e) {                    throw new SAXException(e);                }            } else {                illegalElementError(name);            }        }    }    private class PortnumberHandler extends ElementHandler {        public void endElement(String name) throws SAXException {            if (handlerStack.peek() instanceof LimitsHandler) {                ((Refinement) stack.peek()).addCriteria(new PortnumberCriteria(value));            } else {                illegalElementError(name);            }        }    }    private class URIMatcherHandler extends ElementHandler {        public void endElement(String name) throws SAXException {            if (handlerStack.peek() instanceof LimitsHandler) {                ((Refinement) stack.peek()).addCriteria(new RegularExpressionCriteria(value));            } else {                illegalElementError(name);            }        }    }    // Handlers for objects and attributes    private class ModuleHandler extends ElementHandler {        public void startElement(String name, Attributes atts)                throws SAXException {            ModuleType module;            if (name.equals(XMLSettingsHandler.XML_ELEMENT_CONTROLLER)) {                module = settingsHandler.getOrder();            } else {                module = settingsHandler.getSettingsObject(null).getModule(                        atts.getValue(XMLSettingsHandler.XML_ATTRIBUTE_NAME));            }            stack.push(module);        }        public void endElement(String name) throws SAXException {            stack.pop();        }    }    private class NewModuleHandler extends ElementHandler {        public void startElement(String name, Attributes atts)                throws SAXException {            ComplexType parentModule = (ComplexType) stack.peek();            String moduleName = atts                    .getValue(XMLSettingsHandler.XML_ATTRIBUTE_NAME);            String moduleClass = atts                    .getValue(XMLSettingsHandler.XML_ATTRIBUTE_CLASS);            try {                ModuleType module = SettingsHandler                        .instantiateModuleTypeFromClassName(moduleName,                                moduleClass);                try {                    parentModule.setAttribute(settings, module);                } catch (AttributeNotFoundException e) {                    // Attribute was not found, but the complex type might                    // be a MapType and then we are allowed to add new                    // elements.                    try {                        parentModule.addElement(settings, module);                    } catch (IllegalStateException ise) {                        // An attribute in the settings file is not in the                        // ComplexType's definition, log and skip.                        logger.log(Level.WARNING,"Module '" + moduleName + "' in '"                                + locator.getSystemId() + "', line: "                                + locator.getLineNumber() + ", column: "                                + locator.getColumnNumber()                                + " is not defined in '"                                + parentModule.getName() + "'.");                        throw new SAXException(new AttributeNotFoundException(                                ise.getMessage()));                    }                }                stack.push(module);            } catch (InvocationTargetException e) {                logger.log(Level.WARNING,"Couldn't instantiate " + moduleName                        + ", from class: " + moduleClass + "' in '"                        + locator.getSystemId() + "', line: "                        + locator.getLineNumber() + ", column: "                        + locator.getColumnNumber(), e);                throw new SAXException(e);            } catch (InvalidAttributeValueException e) {                throw new SAXException(e);            }        }        public void endElement(String name) throws SAXException {            stack.pop();        }    }    private class MapHandler extends ElementHandler {        public void startElement(String name, Attributes atts)                throws SAXException {            String mapName = atts                    .getValue(XMLSettingsHandler.XML_ATTRIBUTE_NAME);            ComplexType parentModule = (ComplexType) stack.peek();            try {                stack.push(parentModule.getAttribute(settings, mapName));            } catch (AttributeNotFoundException e) {                throw new SAXException(e);            }        }        public void endElement(String name) throws SAXException {            stack.pop();        }    }    private class SimpleElementHandler extends ElementHandler {        public void startElement(String name, Attributes atts)                throws SAXException {            stack.push(atts.getValue(XMLSettingsHandler.XML_ATTRIBUTE_NAME));        }        public void endElement(String name) throws SAXException {            String elementName = (String) stack.pop();            Object container = stack.peek();            if (container instanceof ComplexType) {                try {                    try {                        ((ComplexType) container).setAttribute(settings,                                new Attribute(elementName, value));                    } catch (AttributeNotFoundException e) {                        // Attribute was not found, but the complex type might                        // be a MapType and then we are allowed to add new                        // elements.                        try {                            ((ComplexType) container).addElement(settings,                                    new SimpleType(elementName, "", value));                        } catch (IllegalStateException ise) {                            logger.warning("Unknown attribute '" + elementName                                    + "' in '" + locator.getSystemId()                                    + "', line: " + locator.getLineNumber()                                    + ", column: " + locator.getColumnNumber());                        }                    }                } catch (InvalidAttributeValueException e) {                    try {                        logger.warning("Illegal value '"                                + value                                + "' for attribute '"                                + elementName                                + "' in '"                                + locator.getSystemId()                                + "', line: "                                + locator.getLineNumber()                                + ", column: "                                + locator.getColumnNumber()                                + ", Value reset to default value: "                                + ((ComplexType) container).getAttribute(                                        settings, elementName));                    } catch (AttributeNotFoundException e1) {                        throw new SAXException(e1);                    }                }            } else {                if (container == null) {                	// We can get here if an override is referring to a global                    // filter since removed.  Log it as severe; operator will                    // probably want to know of all overrides with references                    // to a global filter since removed.                    logger.severe("Empty container (Was a referenced parent" +                        " filter removed?).  Element details: elementName " +                        elementName + ", name " + name);                } else {                	((ListType) container).add(value);                }            }        }    }    private class ListHandler extends ElementHandler {        public void startElement(String name, Attributes atts)                throws SAXException {            String listName = atts                    .getValue(XMLSettingsHandler.XML_ATTRIBUTE_NAME);            ComplexType parentModule = (ComplexType) stack.peek();            ListType list;            try {                list = (ListType) parentModule.getAttribute(settings, listName);            } catch (AttributeNotFoundException e) {                throw new SAXException(e);            }            list.clear();            stack.push(list);        }        public void endElement(String name) throws SAXException {            stack.pop();        }    }    /*     * (non-Javadoc)     *     * @see org.archive.crawler.settings.ValueErrorHandler#handleValueError(org.archive.crawler.settings.Constraint.FailedCheck)     */    public void handleValueError(FailedCheck error) {        logger.warning(error.getMessage() + "\n Attribute: '"                + error.getOwner().getName() + ":"                + error.getDefinition().getName() + "'\n Value:     '" + value                + "'\n File:      '" + locator.getSystemId() + "', line: "                + locator.getLineNumber() + ", column: "                + locator.getColumnNumber());    }}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -