throw new Error("not implemented");
if (area == null) return false;  if (! getBounds2D().equals(area.getBounds2D())) return false;  if (solids.size() != area.solids.size() || holes.size() != area.holes.size()) return false;  Vector pathA = new Vector(); pathA.addAll(solids); pathA.addAll(holes); Vector pathB = new Vector(); pathB.addAll(area.solids); pathB.addAll(area.holes);  int nPaths = pathA.size(); boolean[][] match = new boolean[2][nPaths];  for (int i = 0; i < nPaths; i++) { for (int j = 0; j < nPaths; j++) { Segment p1 = (Segment) pathA.elementAt(i); Segment p2 = (Segment) pathB.elementAt(j); if (! match[0][i] && ! match[1][j]) if (p1.pathEquals(p2)) match[0][i] = match[1][j] = true; } }  boolean result = true; for (int i = 0; i < nPaths; i++) result = result && match[0][i] && match[1][i]; return result;
  public boolean equals(Area a)  {    // XXX Implement.    throw new Error("not implemented");  }