View Javadoc

1   /*
2    * Copyright 1999-2006 Faculty of Mathematics, Physics and Informatics, Comenius
3    * University, Bratislava. This file is protected by the Mozilla Public License
4    * version 1.1 (the License); you may not use this file except in compliance
5    * with the License. You may obtain a copy of the License at
6    * http://euromath2.sourceforge.net/license.html Unless required by applicable
7    * law or agreed to in writing, software distributed under the License is
8    * distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
9    * KIND, either express or implied. See the License for the specific language
10   * governing permissions and limitations under the License.
11   */
12  package sk.uniba.euromath.document.schema;
13  import sk.uniba.euromath.document.schema.plug.IAttributeRuleP;
14  import sk.uniba.euromath.document.schema.plug.IBaseRuleP;
15  import sk.uniba.euromath.document.schema.plug.INewElementRuleP;
16  /***
17   * Represents a base rule. Not intended to be subclassed nor instantiated by
18   * clients.
19   * @author Martin Vysny
20   */
21  public class BaseRule {
22  	/***
23  	 * Hidden constructor to prevent instantiation.
24  	 */
25  	protected BaseRule() {
26  		super();
27  	}
28  	/***
29  	 * Converts the <code>BaseRuleP</code> instance into appropriate
30  	 * <code>BaseRule</code> instance.
31  	 * @param rule the 'plug' rule
32  	 * @return the rule
33  	 */
34  	public final static BaseRule valueOf(IBaseRuleP rule) {
35  		return (rule instanceof INewElementRuleP ? (BaseRule) new NewElementRule(
36  				(INewElementRuleP) rule)
37  				: new AttributeRule((IAttributeRuleP) rule));
38  	}
39  }