Print

Print


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.
>>
>
>