public FeatureVector classify(Object __example) {
    if (!(__example instanceof Word)) {
      String type = __example == null ? "null" : __example.getClass().getName();
      System.err.println(
          "Classifier 'WordTypeInformation(Word)' defined on line 71 of CommonFeatures.lbj received '"
              + type
              + "' as input.");
      new Exception().printStackTrace();
      System.exit(1);
    }

    if (__example == WordTypeInformation.exampleCache) return WordTypeInformation.cache;

    Word word = (Word) __example;
    FeatureVector __result = new FeatureVector();
    String __id;
    String __value;

    int i;
    Word w = word, last = word;
    for (i = 0; i <= 2 && last != null; ++i) {
      last = (Word) last.next;
    }
    for (i = 0; i > -2 && w.previous != null; --i) {
      w = (Word) w.previous;
    }
    for (; w != last; w = (Word) w.next, ++i) {
      boolean allCapitalized = true, allDigits = true, allNonLetters = true;
      for (int j = 0; j < w.form.length(); ++j) {
        allCapitalized &= Character.isUpperCase(w.form.charAt(j));
        allDigits &= Character.isDigit(w.form.charAt(j));
        allNonLetters &= !Character.isLetter(w.form.charAt(j));
      }
      __id = this.name + ("c" + i);
      __value = "" + (allCapitalized);
      __result.addFeature(
          new DiscreteFeature(
              this.containingPackage, __id, __value, valueIndexOf(__value), (short) 2));
      __id = this.name + ("d" + i);
      __value = "" + (allDigits);
      __result.addFeature(
          new DiscreteFeature(
              this.containingPackage, __id, __value, valueIndexOf(__value), (short) 2));
      __id = this.name + ("p" + i);
      __value = "" + (allNonLetters);
      __result.addFeature(
          new DiscreteFeature(
              this.containingPackage, __id, __value, valueIndexOf(__value), (short) 2));
    }

    WordTypeInformation.exampleCache = __example;
    WordTypeInformation.cache = __result;

    return __result;
  }
  public FeatureVector[] classify(Object[] examples) {
    for (int i = 0; i < examples.length; ++i)
      if (!(examples[i] instanceof Word)) {
        System.err.println(
            "Classifier 'WordTypeInformation(Word)' defined on line 71 of CommonFeatures.lbj received '"
                + examples[i].getClass().getName()
                + "' as input.");
        new Exception().printStackTrace();
        System.exit(1);
      }

    return super.classify(examples);
  }