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

📄 operatorservice.java

📁 著名的开源仿真软件yale
💻 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> *    &lt;operators&gt;<br> *    &nbsp;&nbsp;&lt;operator &gt;<br> *    &nbsp;&nbsp;&nbsp;&nbsp;name="longOperatorName" <br> *    &nbsp;&nbsp;&nbsp;&nbsp;short="shortOperatorName" <br> *    &nbsp;&nbsp;&nbsp;&nbsp;path="java.classpath.operator" <br>  *    /&gt;<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 + -