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

📄 expressionevaluator.java

📁 iiitAccessServer是一个用Java编写的基于规则的企业鉴别系统。它作为一个服务器工作
💻 JAVA
字号:
/******************************************************************************* * Copyright (C) 2002, 2003 * ingenieurbuero fuer innovative informationstechnik (iiit) * Dipl.-Ing. Joerg Beckmann, Dortmund, Germany * * 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. * * version $Id: ExpressionEvaluator.java,v 1.5 2003/04/13 21:09:56 joerg Exp $ ******************************************************************************/package de.iiit.access.server;import de.iiit.access.common.api.*;import de.iiit.access.server.api.*;import de.iiit.access.server.plugins.parser.*;import de.iiit.cache.*;import java.util.*;/** This class evaluates expression. It can be used by server plug-ins * like TcpServer to evaluate the expression received from a client. * @version $Revision: 1.5 $ $Date: 2003/04/13 21:09:56 $ */public class ExpressionEvaluator{    /** CVS Version Tag */    private static final String vcid = "$Id: ExpressionEvaluator.java,v 1.5 2003/04/13 21:09:56 joerg Exp $";        private static CachePluginIf    cache  = null;    private Parser parser = new Parser();        /** Creates a new instance of ExpressionResolver */    public ExpressionEvaluator()    {        if (cache == null)            cache = AccessServer.getCachePlugin();    }        /** Evaluates one expression.     * @param name The name of the user for whom the expression shall be evaluated     * @param expression The expression to evaluate     * @throws ParserException This exception is thrown if there is something wrong     * with the expression. The most common cases are syntax errors or     * circular references within the expression.     * @return true if the user is member of the set described by the expression and false     * otherwise.     */        public boolean evaluateExpression(String name, String expression) throws ParserException    {        boolean answer = false;                if (cache != null)        {            try            {                answer = cache.getUserRight(name, expression);            }            catch(CacheFaultException e)            {                Set s = parser.evaluateExpression(expression, name);                answer = (s != null && s.contains(name));                            cache.addUserRight(name, expression, answer);            }        }        else        {            Set s = parser.evaluateExpression(expression, name);            answer = (s != null && s.contains(name));        }                return answer;    }}/** * $Log: ExpressionEvaluator.java,v $ * Revision 1.5  2003/04/13 21:09:56  joerg * Package structure modified * * Revision 1.4  2003/04/13 20:28:01  joerg * Package structure modified * * Revision 1.3  2003/04/13 20:16:41  joerg * Package structure modified * * Revision 1.2  2003/01/01 21:04:17  joerg * Copyright-Statement aktualisiert * * Revision 1.1  2002/12/19 15:24:23  joerg * Reparatur des CVS-Repositories * * Revision 1.10  2002/12/09 19:29:17  joerg * Versionsdaten in allen JavaDoc-Klassenbeschreibungen ergaenzt * * Revision 1.9  2002/12/09 16:32:26  joerg * JavaDoc Kommentare ergaenzt * * Revision 1.8  2002/11/27 16:42:26  joerg * Parameteruebergabe geaendert, um circulaere Recursion * zu erkennen * * Revision 1.7  2002/11/26 14:40:05  joerg * Kleine Optimierungen * * Revision 1.6  2002/11/26 10:56:13  joerg * Package exprparser durch parser erstzt. * * Revision 1.5  2002/11/20 11:09:12  joerg * ParserExceptions werden jetzt durchgereicht * Benutzung des Caches ist jetzt optional * Fehler beseitigt * * Revision 1.4  2002/11/19 20:25:18  joerg * Cache-Zugriffe nutzen jetzt das Plugin * * Revision 1.3  2002/11/17 22:06:21  joerg * Initialisierung des NameResolvers entfernt. * * Revision 1.2  2002/11/06 11:11:05  joerg * Von Singelton auf 'normales' Object umgestellt * * Revision 1.1  2002/11/04 09:38:09  joerg * Klasse ExpressionResolver ins Package AccessServer verschoben * und in ExpressionEvaluator umbenannt. * * Revision 1.1  2002/11/03 21:55:42  joerg * Neue Klasse fuer Thread-sichere Aufloesung von Ausdruecken. * */

⌨️ 快捷键说明

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