Interface NavigableObject

All Known Subinterfaces:
MapWriter, ReflectMapWriter
All Known Implementing Classes:
AnalysisResponseBase, AppendedSolrParams, BackupCollectionPayload, CloudSolrClient.RouteResponse, ClusterPropPayload, ClusterPropPayload.Cluster, ClusterPropPayload.CollectionDefaults, ClusterPropPayload.Defaults, ClusterState, CollectionAdminRequest, CollectionAdminRequest.AddReplica, CollectionAdminRequest.AddReplicaProp, CollectionAdminRequest.AddRole, CollectionAdminRequest.AsyncCollectionAdminRequest, CollectionAdminRequest.AsyncCollectionSpecificAdminRequest, CollectionAdminRequest.AsyncShardSpecificAdminRequest, CollectionAdminRequest.Backup, CollectionAdminRequest.BalanceShardUnique, CollectionAdminRequest.ClusterProp, CollectionAdminRequest.ClusterStatus, CollectionAdminRequest.CollectionAdminRoleRequest, CollectionAdminRequest.CollectionProp, CollectionAdminRequest.ColStatus, CollectionAdminRequest.Create, CollectionAdminRequest.CreateAlias, CollectionAdminRequest.CreateCategoryRoutedAlias, CollectionAdminRequest.CreateShard, CollectionAdminRequest.CreateSnapshot, CollectionAdminRequest.CreateTimeRoutedAlias, CollectionAdminRequest.Delete, CollectionAdminRequest.DeleteAlias, CollectionAdminRequest.DeleteBackup, CollectionAdminRequest.DeleteNode, CollectionAdminRequest.DeleteReplica, CollectionAdminRequest.DeleteReplicaProp, CollectionAdminRequest.DeleteShard, CollectionAdminRequest.DeleteSnapshot, CollectionAdminRequest.DeleteStatus, CollectionAdminRequest.DimensionalRoutedAlias, CollectionAdminRequest.ForceLeader, CollectionAdminRequest.InstallShard, CollectionAdminRequest.List, CollectionAdminRequest.ListAliases, CollectionAdminRequest.ListBackup, CollectionAdminRequest.ListSnapshots, CollectionAdminRequest.Migrate, CollectionAdminRequest.MockCollTask, CollectionAdminRequest.Modify, CollectionAdminRequest.MoveReplica, CollectionAdminRequest.OverseerStatus, CollectionAdminRequest.RebalanceLeaders, CollectionAdminRequest.ReindexCollection, CollectionAdminRequest.Reload, CollectionAdminRequest.RemoveRole, CollectionAdminRequest.Rename, CollectionAdminRequest.ReplaceNode, CollectionAdminRequest.RequestApiDistributedProcessing, CollectionAdminRequest.RequestApiDistributedProcessingResponse, CollectionAdminRequest.RequestStatus, CollectionAdminRequest.RequestStatusResponse, CollectionAdminRequest.Restore, CollectionAdminRequest.SetAliasProperty, CollectionAdminRequest.ShardSpecificAdminRequest, CollectionAdminRequest.SplitShard, CollectionAdminResponse, ConditionalKeyMapWriter, ConditionalMapWriter, ConfigSetAdminResponse, ConfigSetAdminResponse.List, CoreAdminResponse, CreateShardPayload, DefaultSolrParams, DelegationTokenResponse, DelegationTokenResponse.Cancel, DelegationTokenResponse.Get, DelegationTokenResponse.Renew, DeleteBasicAuthUserPayload, DocCollection, DocumentAnalysisResponse, FieldAnalysisResponse, HealthCheckResponse, InputStreamResponse, LinkedHashMapWriter, LukeResponse, MapSolrParams, MapWriterMap, MigrateDocsPayload, ModifiableSolrParams, ModifyCollectionPayload, MoveReplicaPayload, MultiMapSolrParams, NamedList, OverseerOperationPayload, PackagePayload.AddVersion, PackagePayload.DelVersion, Pair, PerReplicaStates, PerReplicaStates.State, PluginMeta, PrepareCoreRecoveryPayload, QueryResponse, RateLimiterPayload, RebalanceLeadersPayload, RejoinLeaderElectionPayload, Replica, RequestApplyCoreUpdatesPayload, RequestBufferUpdatesPayload, RequestCoreRecoveryPayload, RequestSyncShardPayload, RequiredSolrParams, RoutingRule, SchemaResponse, SchemaResponse.CopyFieldsResponse, SchemaResponse.DynamicFieldResponse, SchemaResponse.DynamicFieldsResponse, SchemaResponse.FieldResponse, SchemaResponse.FieldsResponse, SchemaResponse.FieldTypeResponse, SchemaResponse.FieldTypesResponse, SchemaResponse.GlobalSimilarityResponse, SchemaResponse.SchemaNameResponse, SchemaResponse.SchemaVersionResponse, SchemaResponse.UniqueKeyResponse, SchemaResponse.UpdateResponse, SetRuleBasedAuthPermissionPayload, SimpleOrderedMap, SimpleSolrResponse, Slice, SolrDocument, SolrDocumentBase, SolrDocumentList, SolrInputDocument, SolrParams, SolrPingResponse, SolrQuery, SolrResponse, SolrResponseBase, SplitShardPayload, UpdateResponse, UpdateRuleBasedAuthPermissionPayload, Utils.DelegateReflectWriter, V2Request, V2Response, ValidatingJsonMap, ZkNodeProps

public interface NavigableObject
This class contains helper methods for navigating deeply nested Objects. Keep in mind that it may be expensive depending on the underlying implementation. Each level needs an extra lookup and the lookup may be as expensive as O(log(n)) to O(n) depending on the underlying impl
  • Method Details

    • _get

      default Object _get(String path)
      Get a child object value using json path. This usually ends up in String split operations use a list of strings where performance is important
      Parameters:
      path - the full path to that object such as a/b/c[4]/d etc
      Returns:
      the found value or default
    • _getStr

      default String _getStr(String path)
      get the value as a String. useful in tests
      Parameters:
      path - the full path
    • _forEachEntry

      default void _forEachEntry(String path, BiConsumer fun)
      Iterate through the entries of a navigable Object at a certain path
      Parameters:
      path - the json path
    • _forEachEntry

      default void _forEachEntry(List<String> path, BiConsumer fun)
      Iterate through the entries of a navigable Object at a certain path
      Parameters:
      path - the json path
    • _forEachEntry

      default void _forEachEntry(BiConsumer fun)
      Iterate through each entry in this object
    • _get

      default Object _get(List<String> path, Object def)
      Get a child object value using json path
      Parameters:
      path - the full path to that object such as ["a","b","c[4]","d"] etc
      def - the default
      Returns:
      the found value or default
    • _getStr

      default String _getStr(List<String> path, String def)
    • _size

      default int _size()
    • wrap

      static NavigableObject wrap(Object obj)
      Casts or wraps the argument into a NavigableObject if possible, never returning null.