Class TestError
- java.lang.Object
-
- org.openstreetmap.josm.data.validation.TestError
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static classTestError.BuilderA builder for aTestError.
-
Field Summary
Fields Modifier and Type Field Description private intcodeInternal code used by testers to classify errorsprivate java.lang.StringdescriptionDeeper error descriptionprivate java.lang.StringdescriptionEnprivate java.util.function.Supplier<Command>fixingCommandSupplying a command to fix the errorprivate java.util.Collection<?>highlightedThe primitives or way segments to be highlightedprivate booleanignoredis this error on the ignore listprivate booleanincompletePrimitivesIf all relevant primitives are knownprivate java.lang.StringmessageThe error messageprivate java.util.Collection<? extends OsmPrimitive>primitivesThe affected primitivesprivate booleanselectedIf this error is selectedprivate SeverityseveritySeverityprivate static booleanswitchOverUsed to switch users over to new ignore system, UNIQUE_CODE_MESSAGE_STATE 1_704_067_200L → 2024-01-01 We can probably remove this and the supporting code in 2025.private TesttesterThe tester that raised this errorprivate intuniqueCodeInternal code used by testers to classify errors.
-
Constructor Summary
Constructors Constructor Description TestError(TestError.Builder builder)
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description static TestError.Builderbuilder(Test tester, Severity severity, int code)Starts building a newTestErrorprivate booleancalcIgnored()intcompareTo(TestError o)intgetCode()Gets the codejava.lang.StringgetDescription()Gets the error messageCommandgetFix()Fixes the error with the appropriate commandjava.util.Collection<?>getHighlighted()Returns The primitives or way segments to be highlightedprivate static java.util.List<java.util.List<Node>>getHiliteNodesForArea(java.awt.geom.Area area)Calculate list of node pairs describing the area.java.lang.StringgetIgnoreGroup()Gets the ignore group ID that is used to allow the user to ignore all same errorsprivate java.lang.StringgetIgnoreGroup(boolean useOriginal)Get the ignore groupjava.lang.StringgetIgnoreState()Returns the ignore state for this error.private java.lang.StringgetIgnoreState(boolean useOriginal)Get the ignore statejava.lang.StringgetIgnoreSubGroup()Gets the ignores subgroup that is more specialized thangetIgnoreGroup()private java.lang.StringgetIgnoreSubGroup(boolean useOriginal)Get the subgroup for the errorjava.lang.StringgetMessage()Gets the error messageMultipleNameVisitorgetNameVisitor()Returns a newMultipleNameVisitorfor the list of primitives affected by this error.java.util.Collection<? extends OsmPrimitive>getPrimitives()Gets the list of primitives affected by this errorSeveritygetSeverity()Gets the severity of this errorTestgetTester()Gets the tester that raised this errorintgetUniqueCode()Get the unique code for this test.private static booleanhighlightedIsEqual(java.util.Collection<?> highlighted, java.util.Collection<?> highlighted2)booleanisConcerned(java.util.Set<? extends OsmPrimitive> given)Check if any of the primitives in this error occurs in the given set of primitives.booleanisFixable()Returns true if the error can be fixed automaticallybooleanisIgnored()Checks if this error is ignoredbooleanisSelected()Returns the selection flag of this errorbooleanisSimilar(TestError other)Tests if two errors are similar, i.e., same code and description and same combination of primitives and same combination of highlighted objects, but maybe with different orders.<T extends OsmPrimitive>
java.util.stream.Stream<T>primitives(java.lang.Class<T> type)Gets all primitives of the given type affected by this errorvoidsetIgnored(boolean state)Flags this error as ignoredvoidsetSelected(boolean selected)Sets the selection flag of this error(package private) static voidsetUpdateErrorCodes(boolean updateErrorCodes)Update error codes on read and save.java.lang.StringtoString()booleanupdateIgnored()Check if this error matches an entry in the ignore list and set the ignored flag if it is.private static voidupdateIgnoreList(java.lang.String oldKey, java.lang.String newKey)Convert old keys to new keys.voidvisitHighlighted(ValidatorVisitor v)Visits all highlighted validation elements
-
-
-
Field Detail
-
switchOver
private static boolean switchOver
Used to switch users over to new ignore system, UNIQUE_CODE_MESSAGE_STATE 1_704_067_200L → 2024-01-01 We can probably remove this and the supporting code in 2025.
-
ignored
private boolean ignored
is this error on the ignore list
-
message
private final java.lang.String message
The error message
-
description
private final java.lang.String description
Deeper error description
-
descriptionEn
private final java.lang.String descriptionEn
-
primitives
private final java.util.Collection<? extends OsmPrimitive> primitives
The affected primitives
-
highlighted
private final java.util.Collection<?> highlighted
The primitives or way segments to be highlighted
-
code
private final int code
Internal code used by testers to classify errors
-
uniqueCode
private final int uniqueCode
Internal code used by testers to classify errors. Used for moving between JOSM versions.
-
selected
private boolean selected
If this error is selected
-
incompletePrimitives
private boolean incompletePrimitives
If all relevant primitives are known
-
fixingCommand
private final java.util.function.Supplier<Command> fixingCommand
Supplying a command to fix the error
-
-
Constructor Detail
-
TestError
TestError(TestError.Builder builder)
-
-
Method Detail
-
setUpdateErrorCodes
static void setUpdateErrorCodes(boolean updateErrorCodes)
Update error codes on read and save. Used for tests.- Parameters:
updateErrorCodes-trueto update error codes. SeeswitchOverfor default.
-
builder
public static TestError.Builder builder(Test tester, Severity severity, int code)
Starts building a newTestError- Parameters:
tester- The testerseverity- The severity of this errorcode- The test error reference code- Returns:
- a new test builder
- Since:
- 11129
-
getMessage
public java.lang.String getMessage()
Gets the error message- Returns:
- the error message
-
getDescription
public java.lang.String getDescription()
Gets the error message- Returns:
- the error description
-
getPrimitives
public java.util.Collection<? extends OsmPrimitive> getPrimitives()
Gets the list of primitives affected by this error- Returns:
- the list of primitives affected by this error
-
primitives
public final <T extends OsmPrimitive> java.util.stream.Stream<T> primitives(java.lang.Class<T> type)
Gets all primitives of the given type affected by this error- Type Parameters:
T- type of primitives- Parameters:
type- restrict primitives to subclasses- Returns:
- the primitives as Stream
-
getSeverity
public Severity getSeverity()
Gets the severity of this error- Returns:
- the severity of this error
-
getIgnoreState
public java.lang.String getIgnoreState()
Returns the ignore state for this error.- Returns:
- the ignore state for this error or null if any primitive is new
-
getIgnoreState
private java.lang.String getIgnoreState(boolean useOriginal)
Get the ignore state- Parameters:
useOriginal- iftrue, use the original code to get the ignore state- Returns:
- The ignore state (
getIgnoreGroup()+ ignored object list)
-
updateIgnored
public boolean updateIgnored()
Check if this error matches an entry in the ignore list and set the ignored flag if it is.- Returns:
- the new ignored state
-
calcIgnored
private boolean calcIgnored()
-
updateIgnoreList
private static void updateIgnoreList(java.lang.String oldKey, java.lang.String newKey)
Convert old keys to new keys. Only takes effect whenswitchOveris true- Parameters:
oldKey- The key to replacenewKey- The new key
-
getIgnoreSubGroup
public java.lang.String getIgnoreSubGroup()
Gets the ignores subgroup that is more specialized thangetIgnoreGroup()- Returns:
- The ignore sub group
-
getIgnoreSubGroup
private java.lang.String getIgnoreSubGroup(boolean useOriginal)
Get the subgroup for the error- Parameters:
useOriginal- iftrue, use the original code instead of the new unique codes.- Returns:
- The ignore subgroup
-
getIgnoreGroup
public java.lang.String getIgnoreGroup()
Gets the ignore group ID that is used to allow the user to ignore all same errors- Returns:
- The group id
- See Also:
getIgnoreSubGroup()
-
getIgnoreGroup
private java.lang.String getIgnoreGroup(boolean useOriginal)
Get the ignore group- Parameters:
useOriginal- iftrue, use the original code instead of a unique code + original code. Used for reading and understanding old ignore groups.- Returns:
- The ignore group.
-
setIgnored
public void setIgnored(boolean state)
Flags this error as ignored- Parameters:
state- The ignore flag
-
isIgnored
public boolean isIgnored()
Checks if this error is ignored- Returns:
trueif it is ignored
-
getTester
public Test getTester()
Gets the tester that raised this error- Returns:
- the tester that raised this error
-
getCode
public int getCode()
Gets the code- Returns:
- the code
-
getUniqueCode
public int getUniqueCode()
Get the unique code for this test. Used for ignore lists.- Returns:
- The unique code (generated with
tester.getClass().getName().hashCode() + code). - Since:
- 18636
-
isFixable
public boolean isFixable()
Returns true if the error can be fixed automatically- Returns:
- true if the error can be fixed
-
getFix
public Command getFix()
Fixes the error with the appropriate command- Returns:
- The command to fix the error
-
setSelected
public void setSelected(boolean selected)
Sets the selection flag of this error- Parameters:
selected- if this error is selected
-
visitHighlighted
public void visitHighlighted(ValidatorVisitor v)
Visits all highlighted validation elements- Parameters:
v- The visitor that should receive a visit-notification on all highlighted elements
-
getHiliteNodesForArea
private static java.util.List<java.util.List<Node>> getHiliteNodesForArea(java.awt.geom.Area area)
Calculate list of node pairs describing the area.- Parameters:
area- the area- Returns:
- list of node pairs describing the area
-
isSelected
public boolean isSelected()
Returns the selection flag of this error- Returns:
- true if this error is selected
- Since:
- 5671
-
getHighlighted
public java.util.Collection<?> getHighlighted()
Returns The primitives or way segments to be highlighted- Returns:
- The primitives or way segments to be highlighted
- Since:
- 5671
-
compareTo
public int compareTo(TestError o)
- Specified by:
compareToin interfacejava.lang.Comparable<TestError>
-
getNameVisitor
public MultipleNameVisitor getNameVisitor()
Returns a newMultipleNameVisitorfor the list of primitives affected by this error.- Returns:
- Name visitor (used in cell renderer and for sorting)
-
isSimilar
public boolean isSimilar(TestError other)
Tests if two errors are similar, i.e., same code and description and same combination of primitives and same combination of highlighted objects, but maybe with different orders.- Parameters:
other- the other error to be compared- Returns:
- true if two errors are similar
-
highlightedIsEqual
private static boolean highlightedIsEqual(java.util.Collection<?> highlighted, java.util.Collection<?> highlighted2)
-
toString
public java.lang.String toString()
- Overrides:
toStringin classjava.lang.Object
-
isConcerned
public boolean isConcerned(java.util.Set<? extends OsmPrimitive> given)
Check if any of the primitives in this error occurs in the given set of primitives.- Parameters:
given- the set of primitives- Returns:
- true if any of the primitives in this error occurs in the given set of primitives, else false
- Since:
- 18960
-
-