package com.sun.electric.tool.routing.metrics; import com.sun.electric.database.hierarchy.Cell; import com.sun.electric.database.network.Network; import com.sun.electric.database.topology.ArcInst; import com.sun.electric.database.topology.NodeInst; import com.sun.electric.technology.technologies.Generic; import java.util.Iterator; /** * Class to calculate number of unrouted arcs in a cell * @author Gilda Garreton */ public class UnroutedArcsMetric extends RoutingMetric<Integer> { /* (non-Javadoc) * @see com.sun.electric.tool.routing.metrics.UnroutedArcsMetric#calculate(com.sun.electric.database.hierarchy.Cell) */ public Integer calculate(Cell cell) { return processNets(cell, 0); } /* (non-Javadoc) * @see com.sun.electric.tool.routing.metrics.RoutingMetric#reduce(java.lang.Object, com.sun.electric.database.topology.ArcInst) */ @Override protected Integer reduce(Integer result, ArcInst instance, Network net) { int isUnrouted = (instance.getProto() == Generic.tech().unrouted_arc) ? 1 : 0; return result + isUnrouted; } }