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;
}

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 ; }
searches for a matching name in the given set .
