
io.github.oliviercailloux.j_voting.graph.ForwardingGraph Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of j-voting Show documentation
Show all versions of j-voting Show documentation
General classes for dealing with social choice theory.
The newest version!
package io.github.oliviercailloux.j_voting.graph;
import java.util.Set;
import com.google.common.graph.AbstractGraph;
import com.google.common.graph.ElementOrder;
import com.google.common.graph.EndpointPair;
import com.google.common.graph.Graph;
/**
* A class to allow {@link Graph} implementations to be backed by a BaseGraph.
* This class is a copy
* of a Guava class which is not currently planned to be released as a
* general-purpose forwarding class.
*
* @author James Sexton
*/
public abstract class ForwardingGraph extends AbstractGraph {
protected abstract Graph delegate();
@Override
public Set nodes() {
return delegate().nodes();
}
/**
* Defer to {@link AbstractGraph#edges()} (based on {@link #successors(Object)})
* for full edges() implementation.
*/
@Override
protected long edgeCount() {
return delegate().edges().size();
}
@Override
public boolean isDirected() {
return delegate().isDirected();
}
@Override
public boolean allowsSelfLoops() {
return delegate().allowsSelfLoops();
}
@Override
public ElementOrder nodeOrder() {
return delegate().nodeOrder();
}
@Override
public Set adjacentNodes(N node) {
return delegate().adjacentNodes(node);
}
@Override
public Set predecessors(N node) {
return delegate().predecessors(node);
}
@Override
public Set successors(N node) {
return delegate().successors(node);
}
@Override
public int degree(N node) {
return delegate().degree(node);
}
@Override
public int inDegree(N node) {
return delegate().inDegree(node);
}
@Override
public int outDegree(N node) {
return delegate().outDegree(node);
}
@Override
public boolean hasEdgeConnecting(N nodeU, N nodeV) {
return delegate().hasEdgeConnecting(nodeU, nodeV);
}
@Override
public boolean hasEdgeConnecting(EndpointPair endpoints) {
return delegate().hasEdgeConnecting(endpoints);
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy