001// License: GPL. See LICENSE file for details.
002package org.openstreetmap.josm.data.validation;
003
004import org.openstreetmap.josm.command.Command;
005import org.openstreetmap.josm.data.osm.OsmPrimitive;
006
007import java.util.Collection;
008
009/**
010 * Validation error easily fixable right at its detection. The fix can be given when constructing the error.
011 * @since 6377
012 */
013public class FixableTestError extends TestError {
014    protected final Command fix;
015
016    public FixableTestError(Test tester, Severity severity, String message, int code, OsmPrimitive primitive, Command fix) {
017        super(tester, severity, message, code, primitive);
018        this.fix = fix;
019    }
020
021    public FixableTestError(Test tester, Severity severity, String message, int code, Collection<? extends OsmPrimitive> primitives, Command fix) {
022        super(tester, severity, message, code, primitives);
023        this.fix = fix;
024    }
025
026    public FixableTestError(Test tester, Severity severity, String message, int code, Collection<? extends OsmPrimitive> primitives, Collection<?> highlighted, Command fix) {
027        super(tester, severity, message, code, primitives, highlighted);
028        this.fix = fix;
029    }
030
031    public FixableTestError(Test tester, Severity severity, String message, String description, String description_en, int code, OsmPrimitive primitive, Command fix) {
032        super(tester, severity, message, description, description_en, code, primitive);
033        this.fix = fix;
034    }
035
036    public FixableTestError(Test tester, Severity severity, String message, String description, String description_en, int code, Collection<? extends OsmPrimitive> primitives, Command fix) {
037        super(tester, severity, message, description, description_en, code, primitives);
038        this.fix = fix;
039    }
040
041    public FixableTestError(Test tester, Severity severity, String message, String description, String description_en, int code, Collection<? extends OsmPrimitive> primitives, Collection<?> highlighted, Command fix) {
042        super(tester, severity, message, description, description_en, code, primitives, highlighted);
043        this.fix = fix;
044    }
045
046    @Override
047    public Command getFix() {
048        return fix;
049    }
050
051    @Override
052    public final boolean isFixable() {
053        return true;
054    }
055}