org.apache.solr.common

## Interface NavigableObject

All Known Subinterfaces:
  MapWriter, ReflectMapWriter, SimpleMap<T>

All Known Implementing Classes:
  AnalysisResponseBase, AppendedSolrParams, AutoScalingConfig, AutoScalingConfig.ActionConfig, AutoScalingConfig.TriggerConfig, AutoScalingConfig.TriggerListenerConfig, BaseCloudSolrClient.RouteResponse, BiJoinStream, CalculatorStream, CartesianProductStream, Cell, CellStream, Clause, CloudSolrClient.RouteResponse, CloudSolrStream, ClusterPropInfo, ClusterPropInfo.ClusterInfo, ClusterPropInfo.CollectionDefaults, ClusterPropInfo.DefaultsInfo, 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.List, CollectionAdminRequest.ListAliases, CollectionAdminRequest.ListBackup, CollectionAdminRequest.ListSnapshots, CollectionAdminRequest.Migrate, CollectionAdminRequest.MigrateClusterState, CollectionAdminRequest.Modify, CollectionAdminRequest.MoveReplica, CollectionAdminRequest.OverseerStatus, CollectionAdminRequest.RebalanceLeaders, CollectionAdminRequest.ReindexCollection, CollectionAdminRequest.Reload, CollectionAdminRequest.RemoveRole, CollectionAdminRequest.Rename, CollectionAdminRequest.ReplaceNode, CollectionAdminRequest.RequestStatus, CollectionAdminRequest.RequestStatusResponse, CollectionAdminRequest.Restore, CollectionAdminRequest.SetAliasProperty, CollectionAdminRequest.ShardSpecificAdminRequest, CollectionAdminRequest.SplitShard, CollectionAdminRequest.UtilizeNode, CollectionAdminResponse, CommitStream, ComplementStream, Condition, ConditionalKeyMapWriter, ConditionalMapWriter, ConfigSetAdminResponse, ConfigSetAdminResponse.List, CoreAdminResponse, CreateConfigInfo, CsvStream, DaemonStream, DbscanEvaluator.ClusterTuple, DeepRandomStream, DefaultSolrParams, DelegationTokenResponse, DelegationTokenResponse.Cancel, DelegationTokenResponse.Get, DelegationTokenResponse.Renew, DeleteBackupPayload, DeleteStream, DocumentAnalysisResponse, DrillStream, EchoStream, EvalStream, ExceptionStream, ExecutorStream, Facet2DStream, FacetStream, FeaturesSelectionStream, FetchStream, FieldAnalysisResponse, GatherNodesStream, GetStream, HashJoinStream, HashRollupStream, HavingStream, HealthCheckResponse, InnerJoinStream, IntersectStream, JDBCStream, JoinStream, KmeansEvaluator.ClusterTuple, KnnRegressionEvaluator.KnnRegressionTuple, KnnStream, Lang.LocalInputStream, LeftOuterJoinStream, LetStream, LinkedHashMapWriter, LinkedSimpleHashMap, ListBackupPayload, ListStream, LoessEvaluator.LoessRegressionTuple, LukeResponse, MapSolrParams, MapWriterMap, MergeStream, ModelStream, ModifiableSolrParams, MoveReplicaSuggester, MultiMapSolrParams, NamedList, NoneSuggester, NoOpStream, NullStream, OLSRegressionEvaluator.MultipleRegressionTuple, OuterHashJoinStream, Package.AddVersion, Package.DelVersion, Pair, ParallelListStream, ParallelStream, PerReplicaStates, PerReplicaStates.State, PlotStream, PluginMeta, Policy, Policy.Session, Preference, PriorityStream, PushBackStream, QueryResponse, RandomFacadeStream, RandomStream, RankStream, ReducerStream, RegressionEvaluator.RegressionTuple, ReplicaInfo, RequiredSolrParams, RollupStream, Row, 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, ScoreNodesStream, SealedClause, SearchFacadeStream, SearchStream, SelectStream, ShardTerms, ShortestPathStream, ShuffleStream, SignificantTermsStream, SimpleOrderedMap, SimpleSolrResponse, SolrClientNodeStateProvider, SolrDocument, SolrDocumentBase, SolrInputDocument, SolrParams, SolrPingResponse, SolrQuery, SolrResponse, SolrResponseBase, SolrStream, SortStream, SqlStream, StatsStream, Suggester, Suggester.SuggestionInfo, TextLogitStream, TextLogitStream.TermsStream, TimeSeriesStream, TopicStream, TsvStream, Tuple, TupleStream, TupStream, UniqueStream, UnsupportedSuggester, UpdateResponse, UpdateStream, V2Request, V2Response, ValidatingJsonMap, VersionedData, Violation, WrappedSimpleMap, ZplotStream

    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

All Methods Instance Methods Default Methods
`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 void` `_forEachEntry(String path, BiConsumer fun)` Iterate through the entries of a navigable Object at a certain path
`default Object` `_get(List<String> path, Object def)` Get a child object value using json path
`default Object` `_get(String path, Object def)` Get a child object value using json path.
`default String` `_getStr(List<String> path, String def)`
`default String` `_getStr(String path, String def)` get the value as a String.
`default int` `_size()`

### Method Detail

#### _get

    default Object _get(String path,
                        Object def)

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
  `def` - the default
Returns:
  the found value or default

#### _getStr

    default String _getStr(String path,
                           String def)

get the value as a String. useful in tests

Parameters:
  `path` - the full path
  `def` - default value

#### _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()