code: public boolean isSatisfiedBy(Proposition proposition) {
          if (proposition == null) {
              throw new IllegalArgumentException("proposition cannot be null");
          }
          if (this.valueComp != null && this.propertyName != null) {
              Value value = proposition.getProperty(this.propertyName);
              if (!valueComp.compare(value, this.value)) {
                  return false;
              }
          }
          return true;
      }
docs: Returns whether a proposition satisfies this constraint. If no
  property name or value comparator are specified, this method always
  returns <code>true</code>.
  
  @param proposition a proposition. Cannot be <code>null</code>.
  @return <code>true</code> if the proposition satisfies this constraint,
  <code>false</code> if not.