@Override public Descriptor getEntityMetadata(String typeName) { return serializationContext.getMessageDescriptor(typeName); }
public ProtobufMatcher(SerializationContext serializationContext, IndexedFieldProvider<Descriptor> indexedFieldProvider) { super(new ProtobufPropertyHelper(serializationContext, indexedFieldProvider)); this.serializationContext = serializationContext; this.wrappedMessageDescriptor = serializationContext.getMessageDescriptor(WrappedMessage.PROTOBUF_TYPE_NAME); }
@Override public void onEnd() { if (payloadStarted) { processMissingFields(); } else { payloadStarted = true; if (payload != null) { if (entityTypeName == null) { throw new IllegalStateException("Descriptor name is missing"); } payloadMessageDescriptor = serializationContext.getMessageDescriptor(entityTypeName); messageContext = new MessageContext<>(null, null, payloadMessageDescriptor); } } }
public void testProtobufFieldIndexingMetadata() throws Exception { SerializationContext serCtx = ProtobufMetadataManagerImpl.getSerializationContext(cacheManager); serCtx.registerProtoFiles(FileDescriptorSource.fromString("user_definition.proto", PROTO_DEFINITIONS)); ProtobufFieldIndexingMetadata userIndexedFieldProvider = new ProtobufFieldIndexingMetadata(serCtx.getMessageDescriptor("User")); ProtobufFieldIndexingMetadata addressIndexedFieldProvider = new ProtobufFieldIndexingMetadata(serCtx.getMessageDescriptor("User.Address")); // try top level attributes assertTrue(userIndexedFieldProvider.isIndexed(new String[]{"name"})); assertFalse(userIndexedFieldProvider.isIndexed(new String[]{"surname"})); assertTrue(addressIndexedFieldProvider.isIndexed(new String[]{"street"})); assertFalse(addressIndexedFieldProvider.isIndexed(new String[]{"postCode"})); // try nested attributes assertTrue(userIndexedFieldProvider.isIndexed(new String[]{"indexedAddresses", "street"})); assertFalse(userIndexedFieldProvider.isIndexed(new String[]{"indexedAddresses", "postCode"})); assertFalse(userIndexedFieldProvider.isIndexed(new String[]{"unindexedAddresses", "street"})); assertFalse(userIndexedFieldProvider.isIndexed(new String[]{"unindexedAddresses", "postCode"})); }