Bag has a contains method, so you can just do this: network.getEdges(agentA, null).contains(agentB) Joey On Thu, Sep 26, 2013 at 12:07 PM, Tony Bigbee <[log in to unmask]> wrote: > I couldn't find a method in sim.field.network.Network like > areNeighbors(Object o1, Object o2). > > So a starting point would be to use Network's getEdges method and iterate > through the returned Bag looking for the other agent node in the edges. > You could write a thin wrapper method to do the job and you would have a > reusable component, like: > > public boolean areNeighbors(Network network, Object agentA, Object agentB) > { > Bag edges = network.getEdges(agentA, null); //obtain all edges that > have agentA; the bag may be empty but it won't be null > Iterator<Edge> iter = edges.iterator(); > while (iter.hasNext()) { //iterate > through all edges until we find agentB > Edge e = iter.next(); > if (e.getOtherNode(agentA)==agentB) { //use agentA as one > node and see if the other node is agentB > return true; //found > it > } > } > return false; //did not find it > } > > Then to achieve what you originally asked: > > if ( !areNeighbors(mynetwork, agentA,agentB)) { > mynetwork.addEdge(agentA,agentB,null); > } > > Tony > > > > On Thu, Sep 26, 2013 at 3:54 AM, Beth Kar <[log in to unmask]> wrote: > >> Hello! >> I am a newbie to mason (and java) and I am trying to dynamically create an >> undirected network. I want to add an edge between two nodes using the >> following code: >> >> mynetwork.addEdge(AgentA, AgentB, null). >> >> How can I check with an if-then statement before hand if that edge exists >> before adding it? >> >> p.s. If ( edge between AgentA and AgentB doesn't exist) { >> mynetwork.addEdge(AgentA, AgentB, null)} >> >> How do I represent the phrase 'edge between AgentA and AgentB doesn't >> exist' >> in java? >> >> Thank you in advance for your help! >> Beth. >> > >