@@ -0,0 +1,1158 @@
+package org.liveontologies.proof.util;%0A%0Aimport java.util.AbstractList;%0Aimport java.util.List;%0A%0A/**%0A * A skeleton implementation for conversion of inferences%0A * %0A * @author Yevgeny Kazakov%0A *%0A * @param %3CI%3E%0A *            the type of conclusion and premises of the input inference%0A * @param %3CO%3E%0A *            the type of conclusion and premises of the output inference%0A */%0Apublic abstract class AbstractConvertedInference%3CI, O%3E implements Inference%3CO%3E %7B%0A%0A%09private final Inference%3CI%3E input_;%0A%0A%09public AbstractConvertedInference(Inference%3CI%3E input) %7B%0A%09%09this.input_ = input;%0A%09%7D%0A%0A%09public Inference%3CI%3E getInput() %7B%0A%09%09return input_;%0A%09%7D%0A%0A%09@Override%0A%09public String getName() %7B%0A%09%09return input_.getName();%0A%09%7D%0A%0A%09@Override%0A%09public O getConclusion() %7B%0A%09%09return convert(input_.getConclusion());%0A%09%7D%0A%0A%09@Override%0A%09public List%3C? extends O%3E getPremises() %7B%0A%09%09final List%3C? extends I%3E inputPremises = input_.getPremises();%0A%09%09return new AbstractList%3CO%3E() %7B%0A%0A%09%09%09@Override%0A%09%09%09public O get(int index) %7B%0A%09%09%09%09return convert(inputPremises.get(index));%0A%09%09%09%7D%0A%0A%09%09%09@Override%0A%09%09%09public int size() %7B%0A%09%09%09%09return inputPremises.size();%0A%09%09%09%7D%0A%09%09%7D;%0A%09%7D%0A%0A%09protected abstract O convert(I conclusion);%0A%0A%7D%0A

Add abstract generic inference converter class