// Path: bionetdb-core/src/main/java/org/opencb/bionetdb/core/exceptions/BioNetDBException.java
// public class BioNetDBException extends Exception {
// 
//     public BioNetDBException(String message) {
//         super(message);
//     }
// 
//     public BioNetDBException(String message, Throwable cause) {
//         super(message, cause);
//     }
// 
//     public BioNetDBException(Throwable cause) {
//         super(cause);
//     }
// 
// }


import org.apache.commons.collections4.CollectionUtils;
import org.opencb.bionetdb.core.exceptions.BioNetDBException;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
    }

    public Node getNode(long uid) {
        return network.getNodes().get(nodesIndex.get(uid));
    }

    public List<Node> getNodes() {
        return network.getNodes();
    }

    public List<Node> getNodes(String id) {
        List<Node> nodes = new ArrayList<>();
        for (long uid: nodesUids.get(id)) {
            nodes.add(getNode(uid));
        }
        return nodes;
    }

    public List<Node> getNodes(Node.Label label) {
        List<Node> nodes = new ArrayList<>();
        for (Node node: network.getNodes()) {
            if (CollectionUtils.isNotEmpty(node.getLabels())) {
                if (node.getLabels().contains(label)) {
                    nodes.add(node);
                }
            }
        }
        return nodes;
    }

// Path: bionetdb-core/src/main/java/org/opencb/bionetdb/core/exceptions/BioNetDBException.java
// public class BioNetDBException extends Exception {
// 
//     public BioNetDBException(String message) {
//         super(message);
//     }
// 
//     public BioNetDBException(String message, Throwable cause) {
//         super(message, cause);
//     }
// 
//     public BioNetDBException(Throwable cause) {
//         super(cause);
//     }
// 
// }


// Path: bionetdb-core/src/main/java/org/opencb/bionetdb/core/models/network/NetworkManager.java
import org.apache.commons.collections4.CollectionUtils;
import org.opencb.bionetdb.core.exceptions.BioNetDBException;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

    }

    public Node getNode(long uid) {
        return network.getNodes().get(nodesIndex.get(uid));
    }

    public List<Node> getNodes() {
        return network.getNodes();
    }

    public List<Node> getNodes(String id) {
        List<Node> nodes = new ArrayList<>();
        for (long uid: nodesUids.get(id)) {
            nodes.add(getNode(uid));
        }
        return nodes;
    }

    public List<Node> getNodes(Node.Label label) {
        List<Node> nodes = new ArrayList<>();
        for (Node node: network.getNodes()) {
            if (CollectionUtils.isNotEmpty(node.getLabels())) {
                if (node.getLabels().contains(label)) {
                    nodes.add(node);
                }
            }
        }
        return nodes;
    }

    public void setNode(Node node) throws BioNetDBException {