question: public NameSearch findMatchingName ( final Set < String > names ) { final NameSearch ret = new NameSearch ( names ) ; Expression name = getObject ( 0 ) ; if ( name != null ) { if ( ret . search ( name ) ) { return ret ; } } if ( ! ret . found ( ) ) { name = getSubject ( 0 ) ; if ( name != null ) { if ( ret . search ( name ) ) { return ret ; } } } if ( ! ret . found ( ) ) { name = getSubject ( 1 ) ; if ( name != null ) { if ( ret . search ( name ) ) { return ret ; } } } if ( ! ret . found ( ) ) { name = getUnknownTypeExpression ( 0 ) ; if ( name != null ) { if ( ! name . hasAmount ( ) ) { Expression num = getNumeral ( 0 ) ; if ( num != null ) { name . setAmount ( num . getAmount ( ) ) ; } } if ( ret . search ( name ) ) { return ret ; } } } return ret ; }
target:  Searches for a matching name in the given Set.