View Javadoc

1   /*
2    wsmo4j - a WSMO API and Reference Implementation
3    Copyright (c) 2005, University of Innsbruck, Austria
4    This library is free software; you can redistribute it and/or modify it under
5    the terms of the GNU Lesser General Public License as published by the Free
6    Software Foundation; either version 2.1 of the License, or (at your option)
7    any later version.
8    This library is distributed in the hope that it will be useful, but WITHOUT
9    ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
10   FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more
11   details.
12   You should have received a copy of the GNU Lesser General Public License along
13   with this library; if not, write to the Free Software Foundation, Inc.,
14   59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
15   */
16  package org.deri.wsmo4j.logicalexpression.util;
17  
18  
19  import org.omwg.logicalexpression.*;
20  
21  
22  /**
23   * Utility to check if a specific operator is included in a logical expression.
24   *
25   * <pre>
26   * Created on Aug 2, 2005
27   * Committed by $Author: marin_dimitrov $
28   * </pre>
29   *
30   * @author Holger Lausen (holger.lausen@deri.org)
31   *
32   * @version $Revision: 896 $ $Date: 2005-09-09 18:51:42 +0300 (Fri, 09 Sep 2005) $
33   */
34  public class ExpressionContainmentUtil {
35  
36      /**
37       * Checks if a specific operator is contained within a logical expression.
38       * @param logexp logical expression that will be checked
39       * @param operator operator that will be checked for (e.g. CompoundExpression.AND)
40       * @return true if an compound expression with specified operator is contained.
41       */
42      public static boolean contains(LogicalExpression logexp, Class operator) {
43          return contains(logexp, new Class[] {operator});
44      }
45  
46      /**
47       * Checks if a specific operator is contained within a logical expression.
48       * @param logexp logical expression that will be checked
49       * @param operators array of operators that will be checked for
50       *        (e.g. new int[] {CompoundExpression.AND,CompoundExpression.OR)
51       * @return true if an compound expression with specified operator is contained.
52       */
53      public static boolean contains(LogicalExpression logexp, Class[] operators) {
54          VisitorContainsCheck vCC = new VisitorContainsCheck(operators);
55          logexp.accept(vCC);
56          return vCC.isContained();
57      }
58  
59  }