Coverage details for edu.uci.ics.jung.graph.impl.HypervertexBPG

LineHitsSource
1 /*
2  * Copyright (c) 2003, the JUNG Project and the Regents of the University
3  * of California
4  * All rights reserved.
5  *
6  * This software is open-source under the BSD license; see either
7  * "license.txt" or
8  * http://jung.sourceforge.net/license.txt for a description.
9  */
10 /*
11  * Created on Dec 11, 2003
12  */
13 package edu.uci.ics.jung.graph.impl;
14  
15 import java.util.HashSet;
16 import java.util.Iterator;
17 import java.util.Set;
18  
19 import edu.uci.ics.jung.graph.*;
20  
21 /**
22  * A Hypervertex has zero or more hyperEdges attached to it, and
23  * is a member of a Hypergraph.
24  *
25  * @author danyelf
26  */
27 public class HypervertexBPG extends AbstractHyperUnitBPG implements Hypervertex {
28  
2921    public HypervertexBPG() {
3021    }
31     
32     HypervertexBPG( BipartiteVertex bpv, HypergraphBPG hypergraphBPG ) {
333        super( bpv, hypergraphBPG );
343    }
35     
36     public Set getIncidentElements()
37     {
380        return getIncidentEdges();
39     }
40     
41     /**
42      * @see edu.uci.ics.jung.graph.ArchetypeVertex#getNeighbors()
43      */
44     public Set getNeighbors() {
45         // ask the underlying vertex for the two-step-away neighbors
46         // and then get the corresponding HyperVertex
4713        Set oldNeighbors = vertex.getNeighbors();
48  
4913        Set realNeighbors = new HashSet();
5013        for (Iterator iter = oldNeighbors.iterator(); iter.hasNext();) {
5114            Vertex v = (Vertex) iter.next();
5214            realNeighbors.addAll( v.getNeighbors() );
53         }
54  
5513        realNeighbors.remove( vertex );
5613        return graph.translateUnderlyingVertices( realNeighbors );
57     }
58  
59  
60     /**
61      * @see edu.uci.ics.jung.graph.ArchetypeVertex#getIncidentEdges()
62      */
63     public Set getIncidentEdges() {
646        return graph.translateUnderlyingEdges( vertex.getNeighbors() );
65     }
66  
67     /**
68      * Returns the number of edges adjacent to this vertex
69      * @see edu.uci.ics.jung.graph.ArchetypeVertex#degree()
70      */
71     public int degree() {
726        return vertex.degree();
73     }
74  
75  
76     /**
77      * @see edu.uci.ics.jung.graph.ArchetypeVertex#getEqualVertex(edu.uci.ics.jung.graph.ArchetypeGraph)
78      */
79     public ArchetypeVertex getEqualVertex(ArchetypeGraph g) {
803        HypergraphBPG bpg = (HypergraphBPG) g;
81         // check if that graph's underlying vertex is the same as this one's.
823        return bpg.getVertexCorrespondingTo( underlying_vertex() );
83     }
84  
85     /**
86      * @deprecated As of version 1.4, renamed to getEqualVertex(g).
87      */
88     public ArchetypeVertex getEquivalentVertex(ArchetypeGraph g)
89     {
900        return getEqualVertex(g);
91     }
92  
93     /**
94      * Not a very efficient implementation
95      * @see edu.uci.ics.jung.graph.ArchetypeVertex#isNeighborOf(edu.uci.ics.jung.graph.ArchetypeVertex)
96      */
97     public boolean isNeighborOf(ArchetypeVertex v) {
984        return getNeighbors().contains(v);
99     }
100  
101  
102     /**
103      * @see edu.uci.ics.jung.graph.ArchetypeVertex#isIncident(edu.uci.ics.jung.graph.ArchetypeEdge)
104      */
105     public boolean isIncident(ArchetypeEdge e) {
1063        HyperedgeBPG hepbg = (HyperedgeBPG) e;
1073        return underlying_vertex().isNeighborOf(hepbg.underlying_vertex());
108     }
109  
110     /**
111      * @see edu.uci.ics.jung.graph.ArchetypeVertex#findEdge(ArchetypeVertex)
112      */
113     public ArchetypeEdge findEdge(ArchetypeVertex v)
114     {
1150        Set incident_edges = getIncidentEdges();
116         
1170        for (Iterator iter = incident_edges.iterator(); iter.hasNext(); )
118         {
1190            ArchetypeEdge e = (ArchetypeEdge)iter.next();
1200            if (e.isIncident(v))
1210                return e;
122         }
1230        return null;
124     }
125     
126     /**
127      * @see edu.uci.ics.jung.graph.ArchetypeVertex#findEdgeSet(ArchetypeVertex)
128      */
129     public Set findEdgeSet(ArchetypeVertex v)
130     {
1310        Set incident_edges = getIncidentEdges();
132         
1330        Set connecting_edges = new HashSet();
1340        for (Iterator iter = incident_edges.iterator(); iter.hasNext(); )
135         {
1360            ArchetypeEdge e = (ArchetypeEdge)iter.next();
1370            if (e.isIncident(v))
1380                connecting_edges.add(e);
139         }
1400        return connecting_edges;
141     }
142  
143     /**
144      * Not a very efficient implemenation: for each edge, counts the
145      * neighbors.
146      * @see edu.uci.ics.jung.graph.ArchetypeVertex#numNeighbors()
147      */
148     public int numNeighbors() {
1496        return getNeighbors().size();
150     }
151  
152  
153     /**
154      * @see edu.uci.ics.jung.graph.ArchetypeVertex#copy(edu.uci.ics.jung.graph.ArchetypeGraph)
155      */
156     public ArchetypeVertex copy(ArchetypeGraph g) {
1570        HypergraphBPG hg = (HypergraphBPG) g;
1580        HypervertexBPG hv = new HypervertexBPG();
1590        hg.addVertex( hv );
1600        hv.importUserData(this);
1610        return hv;
162     }
163  
164     public boolean connectEdge(Hyperedge e)
165     {
1660        return e.connectVertex(this);
167     }
168     
169     public boolean disconnectEdge(Hyperedge e)
170     {
1710        return e.disconnectVertex(this);
172     }
173  
174 }

this report was generated by version 1.0.5 of jcoverage.
visit www.jcoverage.com for updates.

copyright © 2003, jcoverage ltd. all rights reserved.
Java is a trademark of Sun Microsystems, Inc. in the United States and other countries.