private List < String > searchTokens ( SNode n , long cnr ) { List < String > result = new LinkedList < String > ( ) ; if ( n instanceof SToken ) { result . add ( n . getId ( ) ) ; if ( componentOfToken . get ( n . getId ( ) ) == null ) { List < Long > newlist = new LinkedList < Long > ( ) ; newlist . add ( cnr ) ; componentOfToken . put ( n . getId ( ) , newlist ) ; } else { List < Long > newlist = componentOfToken . get ( n . getId ( ) ) ; if ( ! newlist . contains ( cnr ) ) { newlist . add ( cnr ) ; } } } else { List < SRelation < SNode , SNode > > outgoing = n . getGraph ( ) . getOutRelations ( n . getId ( ) ) ; if ( outgoing != null ) { for ( SRelation < ? extends SNode , ? extends SNode > e : outgoing ) { if ( ! ( e instanceof SPointingRelation ) && e . getSource ( ) instanceof SNode && e . getTarget ( ) instanceof SNode ) { List < String > Med = searchTokens ( ( SNode ) e . getTarget ( ) , cnr ) ; for ( String s : Med ) { if ( ! result . contains ( s ) ) { result . add ( s ) ; } } } } } } return result ; }
Collects all Token dominated or covered by all outgoing Edges of AnnisNode a