Class Modification

  • All Implemented Interfaces:
    java.io.Serializable

    @JsonData
    public class Modification
    extends java.lang.Object
    implements java.io.Serializable
    A Modification is the smallest change description in the differences model of i-net PDFC. It contains a set of subsequent elements which were all modified in the same manner and thus are of the same basic ElementType. 'Subsequent' refers here to left-to-right top-down order which i-net PDFC assumes as reading order. This order might by modified by filter (e.G. the 'multi column' filter), so please mind that this 'reading order' is not necessarily a strict Y-X order!
    A modification can span several lines or whole pages. It's only restricted by another modification or a set of matched elements.
    Since:
    3.0
    See Also:
    Serialized Form
    • Constructor Detail

      • Modification

        public Modification​(DiffGroup.GroupType sourceType,
                            com.inet.pdfc.model.PagedElement affectedFirst,
                            com.inet.pdfc.model.PagedElement affectedSecond,
                            java.util.List<AttributeDifference<?>> changes)
        Creates a modification description for a pair of elements.
        Parameters:
        sourceType - the source DiffGroup.GroupType type, must not be null
        affectedFirst - the affected element in the first document, must not be not null
        affectedSecond - the affected element in the second document, must not be not null
        changes - the list if attribute changes, must not be null or empty
        Throws:
        java.lang.IllegalArgumentException - in case of inconsistent data:
        • no changes
        • one of the affected elements is null
        Since:
        3.0
    • Method Detail

      • setShouldMerge

        public void setShouldMerge​(boolean shouldMerge)
        A flag, for merge the pageElements to one elements
        Parameters:
        shouldMerge - true for merge all pageElements, otherwise false
        Since:
        4.3
      • isShouldPageElementMerge

        public boolean isShouldPageElementMerge()
        A flag, for merge the pageElements to one elements
        Returns:
        true for merge all pageElements, otherwise false
        Since:
        4.3
      • getDifferencePages

        public DifferencePages getDifferencePages​(boolean first)
        Return the difference pageNumbers or null if no elements exist for this document
        Parameters:
        first - true for the first document, false
        Returns:
        the difference pageNumbers
        Since:
        4.0
      • getAffectedElements

        public java.util.List<com.inet.pdfc.model.PagedElement> getAffectedElements​(boolean first)
        Returns a list of element, affected by this modification in either document
        Parameters:
        first - true to get the effected element in the first document, false for the second document
        Returns:
        a list of affected elements, never null but may be empty
        Since:
        3.0
      • getContentType

        public com.inet.pdfc.model.ElementType getContentType()
        Returns the base type of the elements in this modification. This type can be used as a guideline for the formatter of this modification.
        As a general contract: all effected elements fulfill the condition '
        Returns:
        the base element type of this modification.
        Since:
        3.0
      • getAttributeDifferences

        public java.util.List<AttributeDifference<?>> getAttributeDifferences()
        Returns a list of changes which was applied to all affected elements. This method will only return a list if the Modification.ModificationType is Modification.ModificationType.attributeDifference, otherwise it will return null.
        NOTE: Each differnces in the returned list is of a different class. Please have a loot at the com.inet.pdfc.generator.model.diff package for all available types.
        Returns:
        the changes made to the elements, may be null
        Since:
        3.0
      • getMessage

        public java.lang.String getMessage()
        Returns a log message which describes this modification. The message will be localized using the default Locale.
        This message is meant for convenience and is equal to
        new ModificationFormatter().format( this )
        Returns:
        a localized modification message
        Since:
        3.0
      • toString

        public java.lang.String toString()
        Overrides:
        toString in class java.lang.Object
      • isVisible

        public boolean isVisible()
        Returns whether or not this difference will be displayed in any rendered output. This flag is an addition to the visibility of the different DiffGroup.GroupTypes to allow to hide distinct differences.
        Returns:
        true if the difference is to be rendered, false if the difference must not be shown in any graphical output
        Since:
        20.04
      • setVisible

        public void setVisible​(boolean visible)
        Defines whether or not this difference will be displayed in any rendered output. This flag is an addition to the visibility of the different DiffGroup.GroupTypes to allow to hide distinct differences.
        Parameters:
        visible - true if the difference is to be rendered, false if the difference must not be shown in any graphical output
        Since:
        20.04