Пример #1
0
  public static SNode setTarget(SNode node, String role, SNode targetNode, boolean child) {
    if (node != null) {
      if (child) {
        SNode oldChild = SNodeOperations.getChild(node, role);
        if (oldChild != null) {
          node.removeChild(oldChild);
        }

        if (targetNode != null) {
          SNode targetParent = targetNode.getParent();
          if (targetParent != node) {
            if (targetParent != null) {
              targetParent.removeChild(targetNode);
            }
            node.addChild(role, targetNode);
          }
        }
      } else {
        SNodeAccessUtil.setReferenceTarget(node, role, targetNode);
      }
    }
    return targetNode;
  }