Example #1
0
 public void writeSolrDocument(SolrDocument doc) throws IOException {
   List<SolrDocument> children = doc.getChildDocuments();
   int fieldsCount = 0;
   if (writableDocFields == null || writableDocFields.wantsAllFields() || ignoreWritable) {
     fieldsCount = doc.size();
   } else {
     for (Entry<String, Object> e : doc) {
       if (toWrite(e.getKey())) fieldsCount++;
     }
   }
   int sz = fieldsCount + (children == null ? 0 : children.size());
   writeTag(SOLRDOC);
   writeTag(ORDERED_MAP, sz);
   for (Map.Entry<String, Object> entry : doc) {
     String name = entry.getKey();
     if (toWrite(name)) {
       writeExternString(name);
       Object val = entry.getValue();
       writeVal(val);
     }
   }
   if (children != null) {
     try {
       ignoreWritable = true;
       for (SolrDocument child : children) {
         writeSolrDocument(child);
       }
     } finally {
       ignoreWritable = false;
     }
   }
 }
Example #2
0
 protected boolean toWrite(String key) {
   return writableDocFields == null || ignoreWritable || writableDocFields.isWritable(key);
 }