boolean sentenceMatchExpression(final Expression other){
  final String matchString=other.getNormalized();
  if (matchString.contains(JOKER)) {
    if (matchString.equals(JOKER)) {
      if (!matchesJokerString(getTypeString(),other.getTypeString())) {
        return false;
      }
    }
 else {
      if (!matchesJokerString(getNormalized(),matchString)) {
        return false;
      }
    }
  }
 else   if (other.getMatcher() != null) {
    return original.equals(other.original);
  }
 else   if (!matchesNormalized(other)) {
    return false;
  }
  return true;
}

boolean sentenceMatchExpression ( final Expression other ) { final String matchString = other . getNormalized ( ) ; if ( matchString . contains ( JOKER ) ) { if ( matchString . equals ( JOKER ) ) { if ( ! matchesJokerString ( getTypeString ( ) , other . getTypeString ( ) ) ) { return false ; } } else { if ( ! matchesJokerString ( getNormalized ( ) , matchString ) ) { return false ; } } } else if ( other . getMatcher ( ) != null ) { return original . equals ( other . original ) ; } else if ( ! matchesNormalized ( other ) ) { return false ; } return true ; }
check if the expression matches the given matching expression . < p > the matching object can contain explicit expressions , which are compared after normalizing , or expressiontype specifiers like " ver " or " sub * " in upper case . this defines the joker matching algorithm for sentence matching , which chooses automatically between word and type matching , depending on which of word and word type string is given .
