def METHOD_NAME(self, data : Data):
    # Add self loops if the degree returns for only a subset of nodes
    if degree(data.edge_index[1]).size(0) != data.x.size(0):
        edge_index_ = add_remaining_self_loops(data.edge_index, num_nodes=data.x.size(0))[0]
    else:
        edge_index_ = data.edge_index
    if self.centrality_measure == 'degree':
        edge_index_ = to_undirected(edge_index_)
        node_deg = degree(edge_index_[1])
        node_c = node_deg
    elif self.centrality_measure == 'pr':
        node_pr = compute_pr(edge_index_)
        node_c = node_pr
    elif self.centrality_measure == 'evc':
        node_evc = eigenvector_centrality(data)
        node_c = node_evc
    else:
        # Don't allow masking if centrality measure is not specified
        # GCA official implementation uses a full-one mask, but we mandate the user to remove AdaNodePerturbation from the view_fn
        raise Exception("Centrality measure option '{}' is not available!".format(self.centrality_measure))
    return node_c