/** @return a string representing a Fieldable's flags. */
 private static String getFieldFlags(Fieldable f) {
   StringBuilder flags = new StringBuilder();
   flags.append((f != null && f.isIndexed()) ? FieldFlag.INDEXED.getAbbreviation() : '-');
   flags.append((f != null && f.isTokenized()) ? FieldFlag.TOKENIZED.getAbbreviation() : '-');
   flags.append((f != null && f.isStored()) ? FieldFlag.STORED.getAbbreviation() : '-');
   flags.append((false) ? FieldFlag.MULTI_VALUED.getAbbreviation() : '-'); // SchemaField Specific
   flags.append(
       (f != null && f.isTermVectorStored())
           ? FieldFlag.TERM_VECTOR_STORED.getAbbreviation()
           : '-');
   flags.append(
       (f != null && f.isStoreOffsetWithTermVector())
           ? FieldFlag.TERM_VECTOR_OFFSET.getAbbreviation()
           : '-');
   flags.append(
       (f != null && f.isStorePositionWithTermVector())
           ? FieldFlag.TERM_VECTOR_POSITION.getAbbreviation()
           : '-');
   flags.append((f != null && f.getOmitNorms()) ? FieldFlag.OMIT_NORMS.getAbbreviation() : '-');
   flags.append((f != null && f.isLazy()) ? FieldFlag.LAZY.getAbbreviation() : '-');
   flags.append((f != null && f.isBinary()) ? FieldFlag.BINARY.getAbbreviation() : '-');
   flags.append(
       (false) ? FieldFlag.SORT_MISSING_FIRST.getAbbreviation() : '-'); // SchemaField Specific
   flags.append(
       (false) ? FieldFlag.SORT_MISSING_LAST.getAbbreviation() : '-'); // SchemaField Specific
   return flags.toString();
 }
 // org source =>  Luke:Util.java
 private static String fieldFlag(Fieldable f) {
   if (f == null) {
     return "--------------";
   }
   StringBuffer flags = new StringBuffer();
   if (f.isIndexed()) flags.append("I");
   else flags.append("-");
   IndexOptions opts = f.getIndexOptions();
   if (f.isIndexed() && opts != null) {
     switch (opts) {
       case DOCS_ONLY:
         flags.append("d--");
         break;
       case DOCS_AND_FREQS:
         flags.append("df-");
         break;
       case DOCS_AND_FREQS_AND_POSITIONS:
         flags.append("dfp");
     }
   } else {
     flags.append("---");
   }
   if (f.isTokenized()) flags.append("T");
   else flags.append("-");
   if (f.isStored()) flags.append("S");
   else flags.append("-");
   if (f.isTermVectorStored()) flags.append("V");
   else flags.append("-");
   if (f.isStoreOffsetWithTermVector()) flags.append("o");
   else flags.append("-");
   if (f.isStorePositionWithTermVector()) flags.append("p");
   else flags.append("-");
   if (f.getOmitNorms()) flags.append("-");
   else flags.append("N");
   if (f.isLazy()) flags.append("L");
   else flags.append("-");
   if (f.isBinary()) flags.append("B");
   else flags.append("-");
   if (f instanceof NumericField) flags.append("#");
   else flags.append("-");
   return flags.toString();
 }