package sk.stuba.fiit.perconik.activity.serializers.test; import org.eclipse.jdt.junit.model.ITestCaseElement; import org.eclipse.jdt.junit.model.ITestElement; import org.eclipse.jdt.junit.model.ITestElementContainer; import org.eclipse.jdt.junit.model.ITestRunSession; import org.eclipse.jdt.junit.model.ITestSuiteElement; import sk.stuba.fiit.perconik.activity.serializers.AbstractConfigurableMultiSerializer; import sk.stuba.fiit.perconik.data.content.StructuredContent; import static sk.stuba.fiit.perconik.activity.serializers.Serializations.putObjectIdentity; import static sk.stuba.fiit.perconik.activity.serializers.test.TestCaseElementSerializer.putTestCaseElement; import static sk.stuba.fiit.perconik.activity.serializers.test.TestElementContainerSerializer.putTestElementContainer; import static sk.stuba.fiit.perconik.activity.serializers.test.TestElementSerializer.putTestElement; import static sk.stuba.fiit.perconik.activity.serializers.test.TestRunSessionSerializer.putTestRunSession; import static sk.stuba.fiit.perconik.activity.serializers.test.TestSuiteElementSerializer.putTestSuiteElement; abstract class AbstractTestElementSerializer<T extends ITestElement> extends AbstractConfigurableMultiSerializer<T> { AbstractTestElementSerializer(final Option ... options) { super(options); } AbstractTestElementSerializer(final Iterable<Option> options) { super(options); } @Override protected final void put(final StructuredContent content, final T element) { putObjectIdentity(content, element); putTestElement(content, element, this.options); if (element instanceof ITestCaseElement) { putTestCaseElement(content, (ITestCaseElement) element, this.options); } if (element instanceof ITestElementContainer) { putTestElementContainer(content, (ITestElementContainer) element, this.options); if (element instanceof ITestRunSession) { putTestRunSession(content, (ITestRunSession) element, this.options); } if (element instanceof ITestSuiteElement) { putTestSuiteElement(content, (ITestSuiteElement) element, this.options); } } } }