Package com.inet.pdfc.generator.model
Class Modification
java.lang.Object
com.inet.pdfc.generator.model.Modification
- All Implemented Interfaces:
Serializable
A
A modification can span several lines or whole pages. It's only restricted by another modification or a set of matched elements.
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:
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionstatic enumThe type of the modification which side has modifications and whether the changes do apply- This is loosely coupled to the severity type ofDiffGroups. -
Constructor Summary
ConstructorsConstructorDescriptionModification(DiffGroup.GroupType sourceType, com.inet.pdfc.model.PagedElement affectedFirst, com.inet.pdfc.model.PagedElement affectedSecond, List<AttributeDifference<?>> changes) Creates a modification description for a pair of elements.Modification(DiffGroup.GroupType sourceType, List<com.inet.pdfc.model.PagedElement> affectedFirst, List<com.inet.pdfc.model.PagedElement> affectedSecond, List<AttributeDifference<?>> changes) Creates a modification description for a list of elements. -
Method Summary
Modifier and TypeMethodDescriptionList<com.inet.pdfc.model.PagedElement>getAffectedElements(boolean first) Returns a list of element, affected by this modification in either document<T extends AttributeDifference<?>>
TgetAttributeDifference(Class<T> type) Returns a certain tyoe of changes which was applied to all affected elements.Returns a list of changes which was applied to all affected elements.com.inet.pdfc.model.ElementTypeReturns the base type of the elements in this modification.getDifferencePages(boolean first) Return the difference pageNumbers or null if no elements exist for this documentReturns a log message which describes this modification.Returns the type of modification described by this instancebooleanA flag, for merge the pageElements to one elementsbooleanReturns whether or not this difference will be displayed in any rendered output.voidsetShouldMerge(boolean shouldMerge) A flag, for merge the pageElements to one elementsvoidsetVisible(boolean visible) Defines whether or not this difference will be displayed in any rendered output.toString()
-
Constructor Details
-
Modification
public Modification(DiffGroup.GroupType sourceType, List<com.inet.pdfc.model.PagedElement> affectedFirst, List<com.inet.pdfc.model.PagedElement> affectedSecond, List<AttributeDifference<?>> changes) Creates a modification description for a list of elements.- Parameters:
sourceType- the sourceDiffGroup.GroupTypetype, must not benullaffectedFirst- the affected elements in the first document, may benullaffectedSecond- the affected elements in the second document, may benullchanges- the list if attribute changes, must not be null or empty, if the sourceType isDiffGroup.GroupType.ModifiedorDiffGroup.GroupType.MetadataChanged- Throws:
IllegalArgumentException- in case of inconsistent data:- affected element on both sides to type
DiffGroup.GroupType.AddedOrRemoved - no changes for type
DiffGroup.GroupType.MetadataChangedorDiffGroup.GroupType.Modified - changes for type
DiffGroup.GroupType.AddedOrRemovedorDiffGroup.GroupType.Replaced
- affected element on both sides to type
- Since:
- 3.0
-
Modification
public Modification(DiffGroup.GroupType sourceType, com.inet.pdfc.model.PagedElement affectedFirst, com.inet.pdfc.model.PagedElement affectedSecond, List<AttributeDifference<?>> changes) Creates a modification description for a pair of elements.- Parameters:
sourceType- the sourceDiffGroup.GroupTypetype, must not benullaffectedFirst- the affected element in the first document, must not be notnullaffectedSecond- the affected element in the second document, must not be notnullchanges- the list if attribute changes, must not benullor empty- Throws:
IllegalArgumentException- in case of inconsistent data:- no changes
- one of the affected elements is null
- Since:
- 3.0
-
-
Method Details
-
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
-
getModificationType
Returns the type of modification described by this instance- Returns:
- the type of modification described by this instance
- Since:
- 3.0
- See Also:
-
getDifferencePages
Return the difference pageNumbers or null if no elements exist for this document- Parameters:
first-truefor the first document,false- Returns:
- the difference pageNumbers
- Since:
- 4.0
-
getSourceType
- Returns:
DiffGroup.GroupTypeof theDiffGroupwhich contains thisModification- Since:
- 3.0
- See Also:
-
getAffectedElements
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
nullbut 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
Returns a list of changes which was applied to all affected elements. This method will only return a list if theModification.ModificationTypeisModification.ModificationType.attributeDifference, otherwise it will returnnull.
NOTE: Each differnces in the returned list is of a different class. Please have a loot at thecom.inet.pdfc.generator.model.diffpackage for all available types.- Returns:
- the changes made to the elements, may be
null - Since:
- 3.0
-
getAttributeDifference
Returns a certain tyoe of changes which was applied to all affected elements. This method will only return aAttributeDifferenceif theModification.ModificationTypeisModification.ModificationType.attributeDifferenceand there is a change of exactly that type, otherwise it will returnnull.- Type Parameters:
T- the actual difference implementation type- Parameters:
type- the exact type of theAttributeDifferenceto get- Returns:
- the change made to the elements, may be
null - Since:
- 3.0
-
getMessage
Returns a log message which describes this modification. The message will be localized using the defaultLocale.
This message is meant for convenience and is equal to
new ModificationFormatter().format( this )- Returns:
- a localized modification message
- Since:
- 3.0
-
toString
-
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 differentDiffGroup.GroupTypes to allow to hide distinct differences.- Returns:
trueif the difference is to be rendered,falseif 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 differentDiffGroup.GroupTypes to allow to hide distinct differences.- Parameters:
visible-trueif the difference is to be rendered,falseif the difference must not be shown in any graphical output- Since:
- 20.04
-