ProofCheckerFactoryImpl.java
01 /* This file is part of the project "Hilbert II" - http://www.qedeq.org
02  *
03  * Copyright 2000-2013,  Michael Meyling <mime@qedeq.org>.
04  *
05  * "Hilbert II" is free software; you can redistribute
06  * it and/or modify it under the terms of the GNU General Public
07  * License as published by the Free Software Foundation; either
08  * version 2 of the License, or (at your option) any later version.
09  *
10  * This program is distributed in the hope that it will be useful,
11  * but WITHOUT ANY WARRANTY; without even the implied warranty of
12  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13  * GNU General Public License for more details.
14  */
15 
16 package org.qedeq.kernel.bo.logic;
17 
18 import org.qedeq.base.io.Version;
19 import org.qedeq.kernel.bo.logic.proof.checker.ProofChecker0Impl;
20 import org.qedeq.kernel.bo.logic.proof.checker.ProofChecker1Impl;
21 import org.qedeq.kernel.bo.logic.proof.checker.ProofChecker2Impl;
22 import org.qedeq.kernel.bo.logic.proof.common.ProofChecker;
23 import org.qedeq.kernel.bo.logic.proof.common.ProofCheckerFactory;
24 
25 
26 
27 /**
28  * Factory implementation for {@link ProofChecker}s.
29  *
30  @author  Michael Meyling
31  */
32 public class ProofCheckerFactoryImpl implements ProofCheckerFactory {
33 
34     public boolean isRuleVersionSupported(final String ruleVersion) {
35         try {
36             new Version(ruleVersion);
37         catch (RuntimeException e) {
38             return false;
39         }
40         if ("0.00.00".equals(ruleVersion)) {
41             return true;
42         else if ("0.01.00".equals(ruleVersion)) {
43             return true;
44         else if ("0.02.00".equals(ruleVersion)) {
45             return true;
46         }
47         return false;
48     }
49 
50     public ProofChecker createProofChecker(final Version ruleVersion) {
51         if (ruleVersion.equals("0.00.00")) {
52             return new ProofChecker0Impl();
53         else if (ruleVersion.equals("0.01.00")) {
54             return new ProofChecker1Impl();
55         else if (ruleVersion.equals("0.02.00")) {
56             return new ProofChecker2Impl();
57         }
58         // not found, so we take the best one we have
59         return new ProofChecker2Impl();
60     }
61 
62 
63 }