private boolean checkEach( Object want1, String name1, List list1, String name2, List list2, List result) { boolean ok = true; try { int index2 = list2.indexOf(want1); if (index2 < 0) { f.format( " ** %s %s 0x%x (%s) not in %s %n", want1.getClass().getName(), want1, want1.hashCode(), name1, name2); ok = false; } else { // found it in second list Object want2 = list2.get(index2); int index1 = list1.indexOf(want2); if (index1 < 0) { // can this happen ?? f.format( " ** %s %s 0x%x (%s) not in %s %n", want2.getClass().getName(), want2, want2.hashCode(), name2, name1); ok = false; } else { // found it in both lists Object want = list1.get(index1); if (!want.equals(want1)) { f.format( " ** %s %s 0x%x (%s) not equal to %s 0x%x (%s) %n", want1.getClass().getName(), want1, want1.hashCode(), name1, want2, want2.hashCode(), name2); ok = false; } else { if (showEach) f.format(" OK <%s> equals <%s>%n", want1, want2); if (result != null) { result.add(want1); result.add(want2); } } } } } catch (Throwable t) { t.printStackTrace(); f.format(" *** Throwable= %s %n", t.getMessage()); } return ok; }
private void compareDataset(CompareDialog.Data data) { if (data.name == null) return; NetcdfFile compareFile = null; try { compareFile = NetcdfDataset.openFile(data.name, null); Formatter f = new Formatter(); CompareNetcdf2 cn = new CompareNetcdf2(f, data.showCompare, data.showDetails, data.readData); if (data.howMuch == CompareDialog.HowMuch.All) cn.compare(ds, compareFile); else { NestedTable nested = nestedTableList.get(0); Variable org = getCurrentVariable(nested.table); if (org == null) return; Variable ov = compareFile.findVariable(org.getFullNameEscaped()); if (ov != null) cn.compareVariable(org, ov); } infoTA.setText(f.toString()); infoTA.gotoTop(); infoWindow.setTitle("Compare"); infoWindow.show(); } catch (Throwable ioe) { ByteArrayOutputStream bos = new ByteArrayOutputStream(10000); ioe.printStackTrace(new PrintStream(bos)); infoTA.setText(bos.toString()); infoTA.gotoTop(); infoWindow.show(); } finally { if (compareFile != null) try { compareFile.close(); } catch (Exception eek) { } } }