boolean (Library library1, Library library2) { if (library1 == library2) return true; if (library1 == null || library2 == null) return false; final LibraryTable table = library1.getTable(); if (table != null) { if (library2.getTable() != table) return false; final String name = library1.getName(); return name != null && name.equals(library2.getName()); } if (library2.getTable() != null) return false; for (OrderRootType type : OrderRootType.getAllTypes()) { if (!Arrays.equals(library1.getUrls(type), library2.getUrls(type))) { return false; } } return true; }