@SuppressWarnings("unchecked")
  public List<String> asStringArray(RuleContext ruleContext)
  {
    if (ruleContext.getEvents().isDebugEnabled())
    {
      ruleContext.getEvents().debug("   " + TYPE + ".asStringArray: input model path=" + mPath);
    }
    Element collection = (Element) ruleContext.getInputModel().selectSingleNode(mPath);
    if (null == collection)
    {
      if (ruleContext.getEvents().isWarnEnabled())
      {
        ruleContext.getEvents().warn("   " + TYPE + ": Path specified not found in the input model:" + mPath);
      }
      return new ArrayList<String>();
    }

    List<Element> valueElements = collection.elements(CompareTypeCollection.ELEMENT_ENTRY);
    if (null != valueElements)
    {
      // a_List of entries
      ArrayList<String> values = new ArrayList<String>(valueElements.size());
      for (Element e : valueElements)
      {
        values.add(e.getText());
      }

      return values;
    }

    // a_Comma delimited
    ArrayList<String> values = new ArrayList<String>();
    StringTokenizer tokens = new StringTokenizer(collection.getText());
    while (tokens.hasMoreTokens())
    {
      values.add(tokens.nextToken());
    }
    return values;
  }