package test; import java.io.File; import java.util.Arrays; import java.util.HashMap; import java.util.Map; import org.junit.Test; import org.korsakow.domain.mapper.input.MapperHelper; import org.korsakow.ide.XPathHelper; import org.korsakow.ide.util.DomUtil; import org.korsakow.ide.util.Util; import org.w3c.dom.Document; import org.w3c.dom.Element; import org.w3c.dom.Node; public class CheckReferentialIntegrity { static class Meta { public String type; public long id; public Meta(String type, long id) { this.type = type; this.id = id; } } // ? is this // @Test // public void test() throws Exception { // File file = new File("/Users/d/Library/Mail Downloads/php4PHzxc/MyProject/Korsakow.krw"); // Document doc = DomUtil.parseXML(file); // Map<Long, Meta> meta = new HashMap<Long, Meta>(); // for (Node node : XPathHelper.xpathAsList(doc, "//id")) { // Meta m = new Meta(((Element)node.getParentNode()).getTagName(), Long.parseLong(node.getTextContent())); // meta.put(m.id, m); // } // for (Node node : XPathHelper.xpathAsList(doc, "//" + Util.join(Arrays.asList(MapperHelper.REFERENCING_ELEMENTS), "| //"))) { // String tagName = ((Element)node).getTagName(); // long id = Long.parseLong(node.getTextContent()); // System.out.println(tagName + " = " + meta.get(id).type); // } // for (Meta m : meta.values()) { // for (Node node : XPathHelper.xpathAsList(doc, "//*[text()=?]", m.id)) { // final String tagName = ((Element)node).getTagName(); // if ("id".equals(tagName)) // continue; // System.out.println(tagName + " / " + m.id); // } // } // } }