diff options
Diffstat (limited to 'java/src/com/google/android/icing/IcingSearchEngine.java')
-rw-r--r-- | java/src/com/google/android/icing/IcingSearchEngine.java | 63 |
1 files changed, 40 insertions, 23 deletions
diff --git a/java/src/com/google/android/icing/IcingSearchEngine.java b/java/src/com/google/android/icing/IcingSearchEngine.java index ab34f8a..4ec9cda 100644 --- a/java/src/com/google/android/icing/IcingSearchEngine.java +++ b/java/src/com/google/android/icing/IcingSearchEngine.java @@ -20,6 +20,7 @@ import com.google.android.icing.proto.DeleteByNamespaceResultProto; import com.google.android.icing.proto.DeleteBySchemaTypeResultProto; import com.google.android.icing.proto.DeleteResultProto; import com.google.android.icing.proto.DocumentProto; +import com.google.android.icing.proto.GetAllNamespacesResultProto; import com.google.android.icing.proto.GetOptimizeInfoResultProto; import com.google.android.icing.proto.GetResultProto; import com.google.android.icing.proto.GetSchemaResultProto; @@ -44,6 +45,8 @@ import com.google.android.icing.protobuf.InvalidProtocolBufferException; public final class IcingSearchEngine { private static final String TAG = "IcingSearchEngine"; + private static final ExtensionRegistryLite EXTENSION_REGISTRY_LITE = + ExtensionRegistryLite.getEmptyRegistry(); private final long nativePointer; @@ -72,8 +75,7 @@ public final class IcingSearchEngine { } try { - return InitializeResultProto.parseFrom( - initializeResultBytes, ExtensionRegistryLite.getGeneratedRegistry()); + return InitializeResultProto.parseFrom(initializeResultBytes, EXTENSION_REGISTRY_LITE); } catch (InvalidProtocolBufferException e) { Log.e(TAG, "Error parsing InitializeResultProto.", e); return InitializeResultProto.newBuilder() @@ -100,8 +102,7 @@ public final class IcingSearchEngine { } try { - return SetSchemaResultProto.parseFrom( - setSchemaResultBytes, ExtensionRegistryLite.getGeneratedRegistry()); + return SetSchemaResultProto.parseFrom(setSchemaResultBytes, EXTENSION_REGISTRY_LITE); } catch (InvalidProtocolBufferException e) { Log.e(TAG, "Error parsing SetSchemaResultProto.", e); return SetSchemaResultProto.newBuilder() @@ -121,8 +122,7 @@ public final class IcingSearchEngine { } try { - return GetSchemaResultProto.parseFrom( - getSchemaResultBytes, ExtensionRegistryLite.getGeneratedRegistry()); + return GetSchemaResultProto.parseFrom(getSchemaResultBytes, EXTENSION_REGISTRY_LITE); } catch (InvalidProtocolBufferException e) { Log.e(TAG, "Error parsing GetSchemaResultProto.", e); return GetSchemaResultProto.newBuilder() @@ -142,8 +142,7 @@ public final class IcingSearchEngine { } try { - return GetSchemaTypeResultProto.parseFrom( - getSchemaTypeResultBytes, ExtensionRegistryLite.getGeneratedRegistry()); + return GetSchemaTypeResultProto.parseFrom(getSchemaTypeResultBytes, EXTENSION_REGISTRY_LITE); } catch (InvalidProtocolBufferException e) { Log.e(TAG, "Error parsing GetSchemaTypeResultProto.", e); return GetSchemaTypeResultProto.newBuilder() @@ -163,7 +162,7 @@ public final class IcingSearchEngine { } try { - return PutResultProto.parseFrom(putResultBytes, ExtensionRegistryLite.getGeneratedRegistry()); + return PutResultProto.parseFrom(putResultBytes, EXTENSION_REGISTRY_LITE); } catch (InvalidProtocolBufferException e) { Log.e(TAG, "Error parsing PutResultProto.", e); return PutResultProto.newBuilder() @@ -183,7 +182,7 @@ public final class IcingSearchEngine { } try { - return GetResultProto.parseFrom(getResultBytes, ExtensionRegistryLite.getGeneratedRegistry()); + return GetResultProto.parseFrom(getResultBytes, EXTENSION_REGISTRY_LITE); } catch (InvalidProtocolBufferException e) { Log.e(TAG, "Error parsing GetResultProto.", e); return GetResultProto.newBuilder() @@ -193,6 +192,27 @@ public final class IcingSearchEngine { } @NonNull + public GetAllNamespacesResultProto getAllNamespaces() { + byte[] getAllNamespacesResultBytes = nativeGetAllNamespaces(nativePointer); + if (getAllNamespacesResultBytes == null) { + Log.e(TAG, "Received null GetAllNamespacesResultProto from native."); + return GetAllNamespacesResultProto.newBuilder() + .setStatus(StatusProto.newBuilder().setCode(StatusProto.Code.INTERNAL)) + .build(); + } + + try { + return GetAllNamespacesResultProto.parseFrom( + getAllNamespacesResultBytes, EXTENSION_REGISTRY_LITE); + } catch (InvalidProtocolBufferException e) { + Log.e(TAG, "Error parsing GetAllNamespacesResultProto.", e); + return GetAllNamespacesResultProto.newBuilder() + .setStatus(StatusProto.newBuilder().setCode(StatusProto.Code.INTERNAL)) + .build(); + } + } + + @NonNull public SearchResultProto search( @NonNull SearchSpecProto searchSpec, @NonNull ScoringSpecProto scoringSpec, @@ -211,8 +231,7 @@ public final class IcingSearchEngine { } try { - return SearchResultProto.parseFrom( - searchResultBytes, ExtensionRegistryLite.getGeneratedRegistry()); + return SearchResultProto.parseFrom(searchResultBytes, EXTENSION_REGISTRY_LITE); } catch (InvalidProtocolBufferException e) { Log.e(TAG, "Error parsing SearchResultProto.", e); return SearchResultProto.newBuilder() @@ -232,8 +251,7 @@ public final class IcingSearchEngine { } try { - return DeleteResultProto.parseFrom( - deleteResultBytes, ExtensionRegistryLite.getGeneratedRegistry()); + return DeleteResultProto.parseFrom(deleteResultBytes, EXTENSION_REGISTRY_LITE); } catch (InvalidProtocolBufferException e) { Log.e(TAG, "Error parsing DeleteResultProto.", e); return DeleteResultProto.newBuilder() @@ -254,7 +272,7 @@ public final class IcingSearchEngine { try { return DeleteByNamespaceResultProto.parseFrom( - deleteByNamespaceResultBytes, ExtensionRegistryLite.getGeneratedRegistry()); + deleteByNamespaceResultBytes, EXTENSION_REGISTRY_LITE); } catch (InvalidProtocolBufferException e) { Log.e(TAG, "Error parsing DeleteByNamespaceResultProto.", e); return DeleteByNamespaceResultProto.newBuilder() @@ -275,7 +293,7 @@ public final class IcingSearchEngine { try { return DeleteBySchemaTypeResultProto.parseFrom( - deleteBySchemaTypeResultBytes, ExtensionRegistryLite.getGeneratedRegistry()); + deleteBySchemaTypeResultBytes, EXTENSION_REGISTRY_LITE); } catch (InvalidProtocolBufferException e) { Log.e(TAG, "Error parsing DeleteBySchemaTypeResultProto.", e); return DeleteBySchemaTypeResultProto.newBuilder() @@ -295,8 +313,7 @@ public final class IcingSearchEngine { } try { - return PersistToDiskResultProto.parseFrom( - persistToDiskResultBytes, ExtensionRegistryLite.getGeneratedRegistry()); + return PersistToDiskResultProto.parseFrom(persistToDiskResultBytes, EXTENSION_REGISTRY_LITE); } catch (InvalidProtocolBufferException e) { Log.e(TAG, "Error parsing PersistToDiskResultProto.", e); return PersistToDiskResultProto.newBuilder() @@ -316,8 +333,7 @@ public final class IcingSearchEngine { } try { - return OptimizeResultProto.parseFrom( - optimizeResultBytes, ExtensionRegistryLite.getGeneratedRegistry()); + return OptimizeResultProto.parseFrom(optimizeResultBytes, EXTENSION_REGISTRY_LITE); } catch (InvalidProtocolBufferException e) { Log.e(TAG, "Error parsing OptimizeResultProto.", e); return OptimizeResultProto.newBuilder() @@ -338,7 +354,7 @@ public final class IcingSearchEngine { try { return GetOptimizeInfoResultProto.parseFrom( - getOptimizeInfoResultBytes, ExtensionRegistryLite.getGeneratedRegistry()); + getOptimizeInfoResultBytes, EXTENSION_REGISTRY_LITE); } catch (InvalidProtocolBufferException e) { Log.e(TAG, "Error parsing GetOptimizeInfoResultProto.", e); return GetOptimizeInfoResultProto.newBuilder() @@ -358,8 +374,7 @@ public final class IcingSearchEngine { } try { - return ResetResultProto.parseFrom( - resetResultBytes, ExtensionRegistryLite.getGeneratedRegistry()); + return ResetResultProto.parseFrom(resetResultBytes, EXTENSION_REGISTRY_LITE); } catch (InvalidProtocolBufferException e) { Log.e(TAG, "Error parsing ResetResultProto.", e); return ResetResultProto.newBuilder() @@ -383,6 +398,8 @@ public final class IcingSearchEngine { private static native byte[] nativeGet(long nativePointer, String namespace, String uri); + private static native byte[] nativeGetAllNamespaces(long nativePointer); + private static native byte[] nativeSearch( long nativePointer, byte[] searchSpecBytes, byte[] scoringSpecBytes, byte[] resultSpecBytes); |