+++ /dev/null
-/*
- * Created on Jul 11, 2008
- *
- * Copyright (c) 2008, the JUNG Project and the Regents of the University
- * of California
- * All rights reserved.
- *
- * This software is open-source under the BSD license; see either
- * "license.txt" or
- * http://jung.sourceforge.net/license.txt for a description.
- */
-package edu.uci.ics.jung.algorithms.scoring.util;
-
-import org.apache.commons.collections15.Transformer;
-
-import edu.uci.ics.jung.graph.Graph;
-import edu.uci.ics.jung.graph.util.EdgeType;
-
-/**
- * Assigns weights to directed edges (the edge of the vertex/edge pair) depending on
- * whether the vertex is the edge's source or its destination.
- * If the vertex v is the edge's source, assigns 1/outdegree(v).
- * Otherwise, assigns 1/indegree(w).
- * Throws <code>IllegalArgumentException</code> if the edge is not directed.
- */
-public class UniformInOut<V,E> implements Transformer<VEPair<V,E>, Double>
-{
- /**
- * The graph for which the edge weights are defined.
- */
- protected Graph<V,E> graph;
-
- /**
- * Creates an instance for the specified graph.
- * @param graph the graph for which the edge weights will be defined
- */
- public UniformInOut(Graph<V,E> graph)
- {
- this.graph = graph;
- }
-
- /**
- * @see org.apache.commons.collections15.Transformer#transform(Object)
- * @throws IllegalArgumentException
- */
- public Double transform(VEPair<V,E> ve_pair)
- {
- V v = ve_pair.getV();
- E e = ve_pair.getE();
- if (graph.getEdgeType(e) != EdgeType.DIRECTED)
- throw new IllegalArgumentException("This transformer only" +
- " operates on directed edges");
- return 1.0 / (graph.isSource(v, e) ?
- graph.outDegree(v) :
- graph.inDegree(v));
- }
-}