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  import java.util.Vector;
19  
20  import org.deri.wsmo4j.validator.WsmlDLValidator;
21  import org.omwg.logicalexpression.LogicalExpression;
22  import org.omwg.ontology.Variable;
23  import org.wsmo.factory.Factory;
24  import org.wsmo.validator.ValidationError;
25  import org.wsmo.validator.ValidationWarning;
26  
27  /**
28   * Utility class to extract the root/s variable/s from a WSML-DL 
29   * logical expression.
30   * 
31   * <pre>
32   * Created on Sep 27, 2006
33   * Committed by $Author: morcen $
34   * $Source$,
35   * </pre>
36   * 
37   * @author Nathalie Steinmetz, DERI Innsbruck
38   * @version $Revision: 1946 $ $Date: 2007-04-02 15:13:28 +0300 (Mon, 02 Apr 2007) $
39   */
40  public class GetRootUtil {
41  
42  	public GetRootUtil() {
43  		
44  	}
45  	
46  	/**
47  	 * Validates a given formula and gets the root variable if it is a valid 
48  	 * WSML-DL formula.
49  	 * 
50  	 * @param logExpr
51  	 * @return root Variable or null, if there is no root variable or if the 
52  	 * 		   formula is not valid WSML-DL
53  	 */
54  	public Variable getRootVariable(LogicalExpression logExpr) {
55  		WsmlDLValidator validator = new WsmlDLValidator(
56  				Factory.createLogicalExpressionFactory(null));
57  		boolean valid = validator.isValid(logExpr, new Vector <ValidationError>(), new Vector <ValidationWarning>());
58  		if (valid) {
59  			return validator.getRootVariable(logExpr);
60  		}
61  		else {
62  			return null;
63  		}
64  	}
65  	
66  }
67  /*
68   * $Log$
69   * Revision 1.3  2007/04/02 12:13:23  morcen
70   * Generics support added to wsmo-api, wsmo4j and wsmo-test
71   *
72   * Revision 1.2  2006/09/28 14:45:10  nathaliest
73   * *** empty log message ***
74   *
75   * Revision 1.1  2006/09/28 13:11:34  nathaliest
76   * added utility method to geet root variable of valid WSML-DL formula and added corresponding tests
77   *
78   * 
79   */