All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.psjava.ds.graph.SimpleFlowNetworkEdge Maven / Gradle / Ivy

There is a newer version: 0.1.19
Show newest version
package org.psjava.ds.graph;

import org.psjava.util.AssertStatus;

public class SimpleFlowNetworkEdge {

	public static  FlowNetworkEdge create(final V from, final V to, final FlowStatus flowStatus, final E originalOrNull) {
		return new FlowNetworkEdge() {
			FlowNetworkEdge opposite;

			@Override
			public V from() {
				return from;
			}

			@Override
			public V to() {
				return to;
			}

			@Override
			public FlowStatus getFlowStatus() {
				return flowStatus;
			}

			@Override
			public FlowNetworkEdge getOpposite() {
				AssertStatus.assertTrue(opposite != null, "Reversed edge is not set");
				return opposite;
			}

			@Override
			public void setOpposite(FlowNetworkEdge edge) {
				this.opposite = edge;
			}

			@Override
			public boolean isSkewSymmetryEdge() {
				return originalOrNull == null;
			}

			@Override
			public E getOriginalCapacityEdge() {
				return originalOrNull;
			}

			@Override
			public String toString() {
				return DirectedEdgeToString.toString(this) + "(" + getFlowStatus() + ")";
			}
		};
	}

}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy