//Dstl (c) Crown Copyright 2017 package uk.gov.dstl.baleen.contentmanipulators.helpers; import org.apache.uima.UimaContext; import org.apache.uima.resource.ResourceInitializationException; import uk.gov.dstl.baleen.uima.UimaMonitor; import uk.gov.dstl.baleen.uima.utils.UimaUtils; /** * A base implementation of a content manipulator which provides a monitor for logging to. * * As per {@link ContentManipulator} only manipulate is required. * */ public abstract class AbstractContentManipulator implements ContentManipulator { private UimaMonitor monitor; @Override public void initialize(UimaContext context) throws ResourceInitializationException { ContentManipulator.super.initialize(context); String pipelineName = UimaUtils.getPipelineName(context); this.monitor = createMonitor(pipelineName); } @Override public void destroy() { ContentManipulator.super.destroy(); } /** * Get monitor to write to. * * @return monitor */ protected UimaMonitor getMonitor() { return monitor; } /** * Create a monitor based on the pipeline name. * * @param pipelineName * @return monitor (non null) */ protected UimaMonitor createMonitor(String pipelineName) { return new UimaMonitor(pipelineName, this.getClass()); } }