📄 operatorservice.java
字号:
/* * YALE - Yet Another Learning Environment * Copyright (C) 2002, 2003 * Simon Fischer, Ralf Klinkenberg, Ingo Mierswa, * Katharina Morik, Oliver Ritthoff * Artificial Intelligence Unit * Computer Science Department * University of Dortmund * 44221 Dortmund, Germany * email: yale@ls8.cs.uni-dortmund.de * web: http://yale.cs.uni-dortmund.de/ * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License as * published by the Free Software Foundation; either version 2 of the * License, or (at your option) any later version. * * This program 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 * General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 * USA. */package edu.udo.cs.yale.tools;import edu.udo.cs.yale.Yale;import edu.udo.cs.yale.tools.LogService;import edu.udo.cs.yale.tools.param.OperatorParams;import edu.udo.cs.yale.tools.xml.XML2ObjectParser;import edu.udo.cs.yale.tools.op.OperatorSetTag;import edu.udo.cs.yale.tools.op.OperatorTag;import edu.udo.cs.yale.tools.xml.XMLException;import java.io.File;import java.io.FileReader;import java.io.Reader;import java.io.IOException;import java.util.List;import java.util.Iterator;/** This class reads the description of the YALE operators. These descriptions are entries in a XML File like: <br> * <code> * <operators><br> * <operator ><br> * name="longOperatorName" <br> * short="shortOperatorName" <br> * path="java.classpath.operator" <br> * /><br> * </code><br> * * @author Ingo * @version 01.03.2002 */public class OperatorService { /** Namen der Klassen zu den Parametern. */ private static final Class[] TAG_CLASS = { OperatorSetTag.class, OperatorTag.class }; /** Parameternamen in der Beschreibungsdatei. */ private static final String[] TAG_NAME = { "operators", "operator" }; /** XML-Parser zum Einlesen der Operatorbeschreibungsdatei. */ private static XML2ObjectParser parser; /** Reads an operator description file. */ public static List readFile(Reader reader) { OperatorSetTag operators = null; parser = new XML2ObjectParser(TAG_NAME, TAG_CLASS); try { List blocks = parser.parseAll(reader); reader.close(); // bloecke durchgehen. Iterator i = blocks.iterator(); while (i.hasNext()) { Object o = i.next(); if (o instanceof OperatorSetTag) { operators = (OperatorSetTag)o; break; } } } catch (XMLException e) { LogService.logMessage("Cannot read operator description file", LogService.FATAL); Yale.quit(1); } catch (IOException e) { LogService.logMessage("Cannot read operator description file:" + e, LogService.FATAL); Yale.quit(1); } if (operators == null) { LogService.logMessage("Operator description file corrupted!", LogService.FATAL); Yale.quit(1); } return operators.getOperators(); } public static void registerOperators(String name, Reader operatorsXML, ClassLoader classLoader) { //if (classLoader == null) classLoader = ClassLoader.getSystemClassLoader(); if (classLoader == null) classLoader = OperatorService.class.getClassLoader(); LogService.logMessage("Loading operators from '"+name+"'.", LogService.INIT); List operators = null; try { operators = readFile(operatorsXML); } catch (Throwable e) { LogService.logMessage("Cannot read operator description file '"+name+"': "+e, LogService.ERROR); return; } try { OperatorParams.registerOperators(operators, classLoader); } catch (Throwable e) { LogService.logMessage("Cannot register operators from '"+name+"': "+e, LogService.ERROR); } }}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -