code: public boolean isActive() throws BuildException, IllegalStateException {
      final Project project = getProject();
      if (!CUtil.isActive(project, this.ifProp, this.unlessProp)) {
        return false;
      }
      if (isReference() && !((ProcessorDef) getCheckedRef(ProcessorDef.class, "ProcessorDef")).isActive()) {
          return false;
      }
      //
      // walk through any extended definitions
      //
      final ProcessorDef[] defaultProviders = getDefaultProviders(null);
      for (final ProcessorDef defaultProvider : defaultProviders) {
        if (!defaultProvider.isActive()) {
          return false;
        }
      }
      return true;
    }
docs: Determine if this def should be used.
  
  Definition will be active if the "if" variable (if specified) is set and
  the "unless" variable (if specified) is not set and that all reference
  or extended definitions are active
  
  @return true if processor is active
  @throws IllegalStateException
  if not properly initialized
  @throws BuildException
  if "if" or "unless" variable contains suspicious values
  "false" or "no" which indicates possible confusion