Class XmlCompressor

java.lang.Object
com.iizix.js.build.compressors.XmlCompressor
All Implemented Interfaces:
Compressor

public class XmlCompressor extends Object implements Compressor
Class that compresses given XML source by removing comments, extra spaces and line breaks while preserving content within CDATA blocks.
Author:
Sergiy Kovalchuk
  • Field Details

    • tempCdataBlock

      protected static final String tempCdataBlock
      See Also:
    • cdataPattern

      protected static final Pattern cdataPattern
    • commentPattern

      protected static final Pattern commentPattern
    • intertagPattern

      protected static final Pattern intertagPattern
    • tagEndSpacePattern

      protected static final Pattern tagEndSpacePattern
    • multispacePattern

      protected static final Pattern multispacePattern
    • tagPropertyPattern

      protected static final Pattern tagPropertyPattern
    • tempCdataPattern

      protected static final Pattern tempCdataPattern
  • Constructor Details

    • XmlCompressor

      public XmlCompressor()
  • Method Details

    • compress

      public String compress(String xml)
      The main method that compresses given XML source and returns compressed result.
      Specified by:
      compress in interface Compressor
      Parameters:
      xml - XML content to compress
      Returns:
      compressed content.
    • preserveBlocks

      protected String preserveBlocks(String xml, List<String> cdataBlocks)
    • returnBlocks

      protected String returnBlocks(String xml, List<String> cdataBlocks)
    • processXml

      protected String processXml(String xml)
    • removeSpacesInsideTags

      protected String removeSpacesInsideTags(String xml)
    • removeIntertagSpaces

      protected String removeIntertagSpaces(String xml)
    • removeComments

      protected String removeComments(String xml)
    • isEnabled

      public boolean isEnabled()
      Returns true if compression is enabled.
      Returns:
      true if compression is enabled.
    • setEnabled

      public void setEnabled(boolean enabled)
      If set to false all compression will be bypassed. Might be useful for testing purposes. Default is true.
      Parameters:
      enabled - set false to bypass all compression
    • isRemoveComments

      public boolean isRemoveComments()
      Returns true if all XML comments will be removed.
      Returns:
      true if all XML comments will be removed
    • setRemoveComments

      public void setRemoveComments(boolean removeComments)
      If set to true all XML comments will be removed. Default is true.
      Parameters:
      removeComments - set true to remove all XML comments
    • isRemoveIntertagSpaces

      public boolean isRemoveIntertagSpaces()
      Returns true if all inter-tag whitespace characters will be removed.
      Returns:
      true if all inter-tag whitespace characters will be removed.
    • setRemoveIntertagSpaces

      public void setRemoveIntertagSpaces(boolean removeIntertagSpaces)
      If set to true all inter-tag whitespace characters will be removed. Default is true.
      Parameters:
      removeIntertagSpaces - set true to remove all inter-tag whitespace characters