private static Iterable<SNodeId> getNodeIdsForNodeGroupChange( @NotNull NodeGroupChange ngc, @Nullable Tuples._2<SNodeId, List<SNodeId>> lastParentAndNewChildrenIds) { List<SNodeId> childrenIds; if (lastParentAndNewChildrenIds == null || neq_5iuzi5_a0a1a72(lastParentAndNewChildrenIds._0(), ngc.getParentNodeId())) { List<? extends SNode> children = IterableUtil.asList( ngc.getChangeSet() .getNewModel() .getNode(ngc.getParentNodeId()) .getChildren(ngc.getRole())); childrenIds = ListSequence.fromList(children) .select( new ISelector<SNode, SNodeId>() { public SNodeId select(SNode n) { return n.getNodeId(); } }) .toListSequence(); } else { childrenIds = lastParentAndNewChildrenIds._1(); } return ListSequence.fromList(childrenIds).page(ngc.getResultBegin(), ngc.getResultEnd()); }
private boolean nodeGroupChangesSymmetric(NodeGroupChange mine, NodeGroupChange repository) { if (mine.getBegin() == repository.getBegin() && mine.getEnd() == repository.getEnd()) { if (mine.getResultEnd() - mine.getResultBegin() == repository.getResultEnd() - repository.getResultBegin()) { List<? extends SNode> myChildren = IterableUtil.asList( myMyModel.getNode(mine.getParentNodeId()).getChildren(mine.getRole())); List<? extends SNode> repositoryChildren = IterableUtil.asList( myRepositoryModel .getNode(repository.getParentNodeId()) .getChildren(repository.getRole())); for (int o = 0; o < mine.getResultEnd() - mine.getResultBegin(); o++) { if (!(SNodeCompare.nodeEquals( myChildren.get(mine.getResultBegin() + o), repositoryChildren.get(repository.getResultBegin() + o)))) { return false; } } return true; } } return false; }