Start line:  
End line:  

Snippet Preview

Snippet HTML Code

Stack Overflow Questions
  package org.infinispan.query.remote.indexing;
  
  import  com.google.protobuf.Descriptors;
  import  org.apache.lucene.document.Document;
  import  org.hibernate.search.bridge.LuceneOptions;
  import  org.infinispan.commons.CacheException;
  import  org.infinispan.protostream.ProtobufParser;
  import  org.infinispan.protostream.SerializationContext;
  import  org.infinispan.protostream.TagHandler;
 

Author(s):
anistor@redhat.com
Since:
6.0
 
 class WrappedMessageTagHandler implements TagHandler {
 
    private static final int wrappedDouble = 1;
    private static final int wrappedFloat = 2;
    private static final int wrappedInt64 = 3;
    private static final int wrappedUInt64 = 4;
    private static final int wrappedInt32 = 5;
    private static final int wrappedFixed64 = 6;
    private static final int wrappedFixed32 = 7;
    private static final int wrappedBool = 8;
    private static final int wrappedString = 9;
    private static final int wrappedBytes = 10;
    private static final int wrappedUInt32 = 11;
    private static final int wrappedSFixed32 = 12;
    private static final int wrappedSFixed64 = 13;
    private static final int wrappedSInt32 = 14;
    private static final int wrappedSInt64 = 15;
    private static final int wrappedDescriptorFullName = 16;
    private static final int wrappedMessageBytes = 17;
    private static final int wrappedEnum = 18;
 
    private final Document document;
    private final LuceneOptions luceneOptions;
    private final SerializationContext serCtx;
 
    private Descriptors.Descriptor messageDescriptor;
    private byte[] bytes;
    private Object numericValue;
    private String stringValue;
 
    public WrappedMessageTagHandler(Document document, LuceneOptions luceneOptions, SerializationContext serCtx) {
       this. = document;
       this. = luceneOptions;
       this. = serCtx;
    }
 
    @Override
    public void onStart() {
    }
 
    @Override
    public void onTag(int fieldNumberString fieldName, Descriptors.FieldDescriptor.Type type, Descriptors.FieldDescriptor.JavaType javaTypeObject value) {
       switch (fieldNumber) {
          case :
              = value;
             break;
          case :
             break;
          case :
          case :
              = (Stringvalue;
             break;
          case :
          case :
          case :
          case :
          case :
          case :
          case :
          case :
          case :
          case :
          case :
          case :
              = value;
             break;
          case :
             messageDescriptor = .getMessageDescriptor((Stringvalue);
             break;
          case :
              = (byte[]) value;
             break;
          default:
             throw new IllegalStateException("Unexpected field : " + fieldNumber);
       }
    }
 
    @Override
    public void onStartNested(int fieldNumberString fieldName, Descriptors.Descriptor messageDescriptor) {
       throw new IllegalStateException("No nested message is expected");
    }
 
   public void onEndNested(int fieldNumberString fieldName, Descriptors.Descriptor messageDescriptor) {
      throw new IllegalStateException("No nested message is expected");
   }
   public void onEnd() {
      if ( != null) {
         if (messageDescriptor == null) {
            throw new IllegalStateException("Descriptor name is missing");
         }
         try {
            new ProtobufParser().parse(new IndexingTagHandler(messageDescriptor, ), messageDescriptor, );
         } catch (IOException e) {
            throw new CacheException(e);
         }
      } else if ( != null) {
         //todo [anistor] how do we index a scalar value?
         .addNumericFieldToDocument("theValue");
      } else if ( != null) {
         .addFieldToDocument("theValue");
      }
   }
New to GrepCode? Check out our FAQ X