Package org.apache.solr.common

# 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 Summary

Modifier and Type
Method
Description
`default void`
`_forEachEntry(String path, BiConsumer fun)`
Iterate through the entries of a navigable Object at a certain path
`default void`
`_forEachEntry(BiConsumer fun)`
Iterate through each entry in this object
`default void`
`_forEachEntry(List<String> path, BiConsumer fun)`
Iterate through the entries of a navigable Object at a certain path
`default Object`
`_get(String path)`
Get a child object value using json path.
`default Object`
`_get(List<String> path, Object def)`
Get a child object value using json path
`default String`
`_getStr(String path)`
get the value as a String.
`default String`
`_getStr(List<String> path, String def)`
`default int`
`_size()`
`static NavigableObject`
`wrap(Object obj)`
Casts or wraps the argument into a NavigableObject if possible, never returning null.

## 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.