public FileChain(String path, boolean singleNode, File... node) throws FileException {
        super(path);
        this.singleNode = singleNode;
        if (singleNode) {
            if (node.length != 1) {
                throw FileException.NODE_AND_NODEARY_MISMATCH;
            }
            pNodes = null;
            pNode = node[0];
        } else {
            pNode = null;
            pNodes = node;
        }

        if (pNodes != null) {
            for (int i = 0; i < pNodes.length; i++) {
                if (this == pNodes[i]) {
                    thisIndex = i;
                    currentIndex = i;
                }
            }
        } else {
            currentIndex = -1;
            thisIndex = -1;
        }
    }