code: public ICondition getEffectiveCondition( ICondition contextCondition)
      {
      ICondition condition = getCondition();
      ICondition effCondition;
  
      if( condition == null && contextCondition == null)
        {
        effCondition = ICondition.ALWAYS;
        }
  
      else if( condition == null && contextCondition != null)
        {
        // Nothing to add to context
        effCondition = contextCondition;
        }
  
      else if( condition != null && (contextCondition == null || contextCondition.equals( condition)))
        {
        // Nothing to add to current condition
        effCondition = condition;
        }
  
      else
        {
        // Create new conjunction with context condition.
        AllOf conjunction = new AllOf();
        Stream.of( condition, contextCondition)
          .flatMap( c -> c instanceof AllOf? toStream( ((AllOf) c).getConditions()) : Stream.of(c))
          .forEach( c -> conjunction.add( c));
  
        effCondition = conjunction;
        }
  
      return effCondition;
      }
docs: Returns the effective condition that defines when this element is applicable,
  given the specified context condition.