else if ("isCaseInsensitiveLike:".equals(selectorName)) {
else if (EOQualifierFactory.isSelectorNameEqual("isCaseInsensitiveLike", selectorName)) {
  public static Node createNodeFromQualifierMap(EOModelMap _qualifierMap) {    Node node = null;    if (_qualifierMap != null) {      String className = _qualifierMap.getString("class", true); //$NON-NLS-1$      if ("EOAndQualifier".equals(className) || "com.webobjects.eocontrol.EOAndQualifier".equals(className)) { //$NON-NLS-1$ //$NON-NLS-2$        node = new ASTAnd(EOQualifierFactory.createNodesFromQualifierMaps(_qualifierMap.getList("qualifiers"))); //$NON-NLS-1$      }      else if ("EOOrQualifier".equals(className) || "com.webobjects.eocontrol.EOOrQualifier".equals(className)) { //$NON-NLS-1$ //$NON-NLS-2$        node = new ASTOr(EOQualifierFactory.createNodesFromQualifierMaps(_qualifierMap.getList("qualifiers"))); //$NON-NLS-1$      }      else if ("EONotQualifier".equals(className) || "com.webobjects.eocontrol.EONotQualifier".equals(className)) { //$NON-NLS-1$ //$NON-NLS-2$        node = new ASTNot(EOQualifierFactory.createNodeFromQualifierMap(new EOModelMap(_qualifierMap.getMap("qualifier")))); //$NON-NLS-1$      }      else if ("EOKeyValueQualifier".equals(className) || "com.webobjects.eocontrol.EOKeyValueQualifier".equals(className)) { //$NON-NLS-1$ //$NON-NLS-2$        String key = _qualifierMap.getString("key", true); //$NON-NLS-1$        Object rawValue = _qualifierMap.get("value"); //$NON-NLS-1$        Object value;        if (rawValue instanceof Map) {          EOModelMap valueMap = new EOModelMap((Map) rawValue);          String valueClass = valueMap.getString("class", true); //$NON-NLS-1$          if ("EONull".equals(valueClass) || "com.webobjects.eocontrol.EONull".equals(className)) { //$NON-NLS-1$            value = null;          }          else if ("EOQualifierVariable".equals(valueClass) || "com.webobjects.eocontrol.EOQualifierVariable".equals(className)) { //$NON-NLS-1$            String variableKey = valueMap.getString("_key", true); //$NON-NLS-1$            value = new ASTNamedParameter(variableKey);          }          else if ("NSNumber".equals(valueClass)) { //$NON-NLS-1$            value = valueMap.get("value"); //$NON-NLS-1$          }          else {            throw new IllegalArgumentException("Unknown EOKeyValueQualifier value class " + valueClass);          }        }        else {          value = rawValue;        }        String selectorName = _qualifierMap.getString("selectorName", true); //$NON-NLS-1$        ASTObjPath objPath = new ASTObjPath(key);        if ("isEqualTo:".equals(selectorName)) { //$NON-NLS-1$          node = new ASTEqual(objPath, value);        }        else if ("isNotEqualTo:".equals(selectorName)) { //$NON-NLS-1$          node = new ASTNotEqual(objPath, value);        }        else if ("isLessThan:".equals(selectorName)) { //$NON-NLS-1$          node = new ASTLess(objPath, value);        }        else if ("isGreaterThan:".equals(selectorName)) { //$NON-NLS-1$          node = new ASTGreater(objPath, value);        }        else if ("isLessThanOrEqualTo:".equals(selectorName)) { //$NON-NLS-1$          node = new ASTLessOrEqual(objPath, value);        }        else if ("isGreaterThanOrEqualTo:".equals(selectorName)) { //$NON-NLS-1$          node = new ASTGreaterOrEqual(objPath, value);        }        else if ("doesContain:".equals(selectorName)) { //$NON-NLS-1$          //node = new ASTEqual(objPath, value);          throw new IllegalArgumentException("Not sure what 'doesContain:' maps onto.");        }        else if ("isLike:".equals(selectorName)) { //$NON-NLS-1$          node = new ASTLike(objPath, value);        }        else if ("isCaseInsensitiveLike:".equals(selectorName)) { //$NON-NLS-1$          node = new ASTLikeIgnoreCase(objPath, value);        }        else {          throw new IllegalArgumentException("Unknown selectorName '" + selectorName + "'.");        }      }      else {        throw new IllegalArgumentException("Unknown qualifier className '" + className + "'.");      }    }    return node;  }