// License: GPL. For details, see LICENSE file.
package org.openstreetmap.josm.plugins.tracer2;
import java.util.Collection;
import java.util.LinkedList;
import java.util.List;
import org.openstreetmap.josm.command.AddCommand;
import org.openstreetmap.josm.command.ChangeCommand;
import org.openstreetmap.josm.command.Command;
import org.openstreetmap.josm.command.DeleteCommand;
import org.openstreetmap.josm.command.MoveCommand;
import org.openstreetmap.josm.data.osm.OsmPrimitive;
import org.openstreetmap.josm.data.osm.Way;
public class TracerDebug {
private static String FormatPrimitive(String strIn) {
while (strIn.contains("{")) {
strIn = strIn.replace("{", "xxxxx");
}
return strIn.replaceAll("xxxxx", "\r\n {");
}
public void OutputOsmPrimitive(Collection<OsmPrimitive> cOsmPrimitive) {
if (cOsmPrimitive != null) {
for (OsmPrimitive p : cOsmPrimitive) {
System.out.println(" OsmPrimitive: " + FormatPrimitive(p.toString()));
}
}
}
public void OutputOsmExtendsPrimitive(Collection<? extends OsmPrimitive> cOsmPrimitive) {
if (cOsmPrimitive != null) {
for (OsmPrimitive p : cOsmPrimitive) {
System.out.println(" OsmPrimitive x: " + FormatPrimitive(p.toString()));
}
}
}
public void OutputCommands(LinkedList<Command> cmds) {
for (Command c : cmds) {
System.out.println("");
Collection<OsmPrimitive> cp1 = null;
Collection<OsmPrimitive> cp2 = null;
Collection<OsmPrimitive> cp3 = null;
Collection<? extends OsmPrimitive> cpx = null;
List<OsmPrimitive> lp1 = new LinkedList<>();
List<OsmPrimitive> lp2 = new LinkedList<>();
List<OsmPrimitive> lp3 = new LinkedList<>();
List<OsmPrimitive> lp = new LinkedList<>();
cp1 = lp1;
cp2 = lp2;
cp3 = lp3;
cpx = lp;
//OsmPrimitive op = new OsmPrimitive();
OsmPrimitive op1 = new Way();
System.out.println("Command: " + c.toString());
if (c instanceof AddCommand) {
AddCommand x = (AddCommand) c;
x.fillModifiedData(cp1, cp2, cp3);
OutputOsmPrimitive(cp1);
OutputOsmPrimitive(cp2);
OutputOsmPrimitive(cp3);
cpx = x.getParticipatingPrimitives();
OutputOsmExtendsPrimitive(cpx);
} else if (c instanceof ChangeCommand) { // order is important!
ChangeCommand x = (ChangeCommand) c;
x.fillModifiedData(cp1, cp2, cp3);
x.getOrig(op1);
OutputOsmPrimitive(cp1);
OutputOsmPrimitive(cp2);
OutputOsmPrimitive(cp3);
cpx = x.getParticipatingPrimitives();
OutputOsmExtendsPrimitive(cpx);
} else if (c instanceof DeleteCommand) {
DeleteCommand x = (DeleteCommand) c;
x.fillModifiedData(cp1, cp2, cp3);
OutputOsmPrimitive(cp1);
OutputOsmPrimitive(cp2);
OutputOsmPrimitive(cp3);
cpx = x.getParticipatingPrimitives();
OutputOsmExtendsPrimitive(cpx);
} else if (c instanceof MoveCommand) { // order is important!
MoveCommand x = (MoveCommand) c;
x.fillModifiedData(cp1, cp2, cp3);
OutputOsmPrimitive(cp1);
OutputOsmPrimitive(cp2);
OutputOsmPrimitive(cp3);
cpx = x.getParticipatingPrimitives();
OutputOsmExtendsPrimitive(cpx);
} else {
c.fillModifiedData(cp1, cp2, cp3);
OutputOsmPrimitive(cp1);
OutputOsmPrimitive(cp2);
OutputOsmPrimitive(cp3);
cpx = c.getParticipatingPrimitives();
OutputOsmExtendsPrimitive(cpx);
}
}
}
}