public boolean matches(String propertyName) {
    if (star) {
      return true;
    }
    if (expression != null) {
      String fieldString = expression.getDefaultAlias().getStringValue();
      if (fieldString.equals(propertyName)) {
        return true;
      }
      if (rightWildcard && propertyName.startsWith(fieldString)) {
        return true;
      }
    }
    return false;
  }
public boolean matches ( String propertyName ) { if ( star ) { return true ; } if ( expression != null ) { String fieldString = expression . getDefaultAlias ( ) . getStringValue ( ) ; if ( fieldString . equals ( propertyName ) ) { return true ; } if ( rightWildcard && propertyName . startsWith ( fieldString ) ) { return true ; } } return false ; }
given a property name, calculates if this property name matches this nested projection item, eg.
<ul>
<li>this is a *, so it matches any property name</li>
<li>the field name for this projection item is the same as the input property name</li>
<li>this item has a wildcard and the partial field is a prefix of the input property name</li>
</ul>

@param propertyName

@return