Preprocessors.java
package pro.verron.officestamper.preset;
import org.docx4j.openpackaging.packages.WordprocessingMLPackage;
import org.docx4j.wml.ProofErr;
import pro.verron.officestamper.api.CommentHooker;
import pro.verron.officestamper.api.OfficeStamperException;
import pro.verron.officestamper.api.PlaceholderHooker;
import pro.verron.officestamper.api.PreProcessor;
import pro.verron.officestamper.preset.preprocessors.malformedcomments.RemoveMalformedComments;
import pro.verron.officestamper.preset.preprocessors.prooferror.RemoveProofErrors;
import pro.verron.officestamper.preset.preprocessors.rmlang.RemoveLang;
import pro.verron.officestamper.preset.preprocessors.similarrun.MergeSameStyleRuns;
/// A helper class that provides pre-processing functionality for [WordprocessingMLPackage] documents.
public class Preprocessors {
private Preprocessors() {
throw new OfficeStamperException("Preprocessors cannot be instantiated");
}
/// Returns a [PreProcessor] object that merges same style runs that are next to each other in a
/// [WordprocessingMLPackage] document.
///
/// @return a [PreProcessor] object that merges similar runs.
public static PreProcessor mergeSimilarRuns() {
return new MergeSameStyleRuns();
}
/// Returns a [PreProcessor] object that removes all [ProofErr] elements from the [WordprocessingMLPackage]
/// document.
///
/// @return a [PreProcessor] object that removes [ProofErr] elements.
public static PreProcessor removeLanguageProof() {
return new RemoveProofErrors();
}
/// Returns a [PreProcessor] object that removes all language informations such as grammatical and orthographics
/// markers in a [WordprocessingMLPackage] document.
///
/// @return a [PreProcessor] object that removes language markers.
public static PreProcessor removeLanguageInfo() {
return new RemoveLang();
}
/// Returns a [PreProcessor] object that removes comments information that is not conforming to the expected
/// patterns.
///
/// @return a [PreProcessor] object that removes malformed comments markers.
public static PreProcessor removeMalformedComments() {
return new RemoveMalformedComments();
}
/// Returns a [PreProcessor] object that prepares inline placeholders based on the provided regex and element name.
///
/// @param regex the regular expression used to identify placeholders in the document
/// @param element the name of the smart tag element to be used for the placeholders
///
/// @return a [PreProcessor] object that prepares inline placeholders.
public static PreProcessor preparePlaceholders(String regex, String element) {
return new PlaceholderHooker(regex, element);
}
/// Returns a [PreProcessor] object that prepares comment processors for use with the stamper.
///
/// @return a [PreProcessor] object that prepares comment processors.
public static PreProcessor prepareCommentProcessor() {
return new CommentHooker();
}
}