Changes to Java API in Neo4j 5

This page lists all changes to Java API between Neo4j 4.4 and Neo4j 5.x.

Changes to classes, interfaces, and enums

List of removals and additions
Class Change Action

FormattedLogFormat

Removed

Format is configured in the Log4j 2 configuration file.

Logger

Removed

Use Log directly.

OnlineBackup

Removed

Use standalone tool.

TransactionStreamingStrategy

Removed

Used by online backup.

ClusterDatabaseManagementService

Removed

Use EnterpriseDatabaseManagementService.

ClusterDatabaseManagementServiceBuilder

Removed

Use EnterpriseDatabaseManagementServiceBuilder.

InProcessNeo4j

Removed

Accidentally added to the public API.

CypherParserVersion

Removed

Enum used in removed setting.

DriverApi

Removed

Enum used in removed setting.

Mode

Removed

Enum used in removed setting.

SchemaIndex

Removed

Enum used in removed setting.

NamedService

New

Used to provide a .getName() to a @ServiceProvider.

SeedProvider

New

Entry point for seed providers. See SeedProvider.

Neo4jDatabaseManagementServiceBuilder

New

Common interface for *DatabaseManagementServiceBuilder.

InstanceModeConstraint

New

New enum used in settings.

SystemDatabaseMode

New

New enum used in settings.

Changes to methods

org.neo4j.logging.Log

The following methods are removed:

Method Change Action

Logger errorLogger()

Removed

Use Log.error(…​) directly.

Logger warnLogger()

Removed

Use Log.warn(…​) directly.

Logger infoLogger()

Removed

Use Log.info(…​) directly.

Logger debugLogger()

Removed

Use Log.debug(…​) directly.

org.neo4j.graphdb.config.Setting<T>

The following method is removed:

Method Change Action

boolean internal()

Removed

Not used anymore. Used to mark settings as internal hidden settings.

org.neo4j.graphdb.Entity

The following methods are added. They are visible from the inheriting Node and Relationship:

Method Change Action

String getElementId()

New

Returns the unique element ID. Guaranteed to be unique only within a transaction.

void delete()

New

Moved from Node and Relationship to the common interface.

org.neo4j.graphdb.schema.IndexType

The following index type is removed:

Index type Change Action

IndexType.BTREE

Removed

Is replaced by IndexType.RANGE.

org.neo4j.graphdb.spatial.Coordinate

The following method is removed:

Method Change Action

List<Double> getCoordinate()

Removed

Replaced by the two following methods:
double[] getCoordinate() — Get the coordinates. To be used only to read the values.
double[] getCoordinateCopy() — Get a copy of the coordinates. Can safely be modified and stored.

org.neo4j.graphdb.Transaction

The following methods are added:

Method Change Action

Node getNodeByElementId(String)

New

Looks up a node by element ID.

Relationship getRelationshipByElementId(String)

New

Looks up a relationship by element ID.

org.neo4j.harness.junit.extension.Neo4jExtensionBuilder

The following methods are removed:

Method Change Action

Neo4jExtensionBuilder copyFrom(File)

Removed

Use Neo4jExtensionBuilder.copyFrom(Path).

Neo4jExtensionBuilder withFolder(File)

Removed

Use Neo4jExtensionBuilder.withFolder(Path).

Neo4jExtensionBuilder withExtensionFactories(Iterable<ExtensionFactory<?>>)

Removed

Removed.

Neo4jExtensionBuilder withFixture(File)

Removed

Use Neo4jExtensionBuilder.withFixture(Path).

org.neo4j.harness.junit.rule.Neo4jRule

The following methods are removed:

Method Change Action

Neo4jRule(File)

Removed

Use Neo4jRule(Path).

Neo4jRule copyFrom(File)

Removed

Use Neo4jRule.copyFrom(Path).

Neo4jRule withExtensionFactories(Iterable<ExtensionFactory<?>>)

Removed

Removed.

Neo4jRule withFixture(File)

Removed

Use Neo4jRule.withFixture(Path).

org.neo4j.harness.Neo4jBuilders

The following method is removed:

Method Change Action

Neo4jBuilder newInProcessBuilder(File)

Removed

Use Neo4jBuilders.newInProcessBuilder(Path).

org.neo4j.harness.Neo4jConfigurator<T>

The following methods are removed:

Method Change Action

T copyFrom(File)

Removed

Use Neo4jConfigurator.copyFrom(Path).

T withExtensionFactories(Iterable<ExtensionFactory<?>>)

Removed

Removed.

T withFixture(File)

Removed

Use Neo4jConfigurator.withFixture(Path).

T withWorkingDir(File)

Removed

Use Neo4jConfigurator.withWorkingDir(Path).

com.neo4j.harness.junit.rule.EnterpriseNeo4jRule

The deprecated constructor that took a File is removed:

Method Change Action

EnterpriseNeo4jRule(File)

Removed

Use EnterpriseNeo4jRule(Path).

org.neo4j.kernel.api.exceptions.Status

The following status codes are added:

Status code Change Description

Database.HomeDatabaseNotFound

New

The home database provided does not currently exist.

Request.DeprecatedFormat

New

The requested format is deprecated.

Schema.HintedIndexNotFound

New

The hinted index does not exist, please check the schema.

Statement.ParameterNotProvided

New

Did not supply query with enough parameters.

Statement.UnsupportedOperationError

New

The following status codes are removed:

Statement.MissingAlias Removed

Transaction.TransientTransactionFailure

Removed

Some status codes are renamed to indicate changed severity from WARNING to INFORMATION:

Old name New name

Statement.CartesianProductWarning

Statement.CartesianProduct

Statement.DynamicPropertyWarning

Statement.DynamicProperty

Statement.EagerOperatorWarning

Statement.EagerOperator

Statement.ExhaustiveShortestPathWarning

Statement.ExhaustiveShortestPath

Statement.ExperimentalFeature

Statement.RuntimeExperimental

Statement.NoApplicableIndexWarning

Statement.NoApplicableIndex

Statement.SubqueryVariableShadowingWarning

Statement.SubqueryVariableShadowing

Statement.UnboundedVariableLengthPatternWarning

Statement.UnboundedVariableLengthPattern

Renamed classes, interfaces, and enums

Old name New name

com.neo4j.configuration.ServerGroupName

class com.neo4j.configuration.ServerTag

com.neo4j.configuration.CausalClusteringSettings

com.neo4j.configuration.ClusterSettings

com.neo4j.configuration.FabricEnterpriseSettings

com.neo4j.fabric.configuration.FabricEnterpriseSettings

org.neo4j.graphdb.event.DatabaseEventListener

The following two methods do not have a default implementation anymore and need to be implemented by listeners:

  • void databaseCreate(DatabaseEventContext)

  • void databaseDrop(DatabaseEventContext)

org.neo4j.graphdb.GraphDatabaseService

A new method is added, which is a non-blocking variant of the already existing method with the same name:

  • boolean isAvailable()

org.neo4j.graphdb.Node

The following methods are changed to return a ResourceIterable instead of an Iterable:

Method Change

ResourceIterable<Relationship> getRelationships()

New

ResourceIterable<Relationship> getRelationships(Direction)

New

ResourceIterable<Relationship> getRelationships(RelationshipType…​)

New

ResourceIterable<Relationship> getRelationships(Direction, RelationshipType…​)

New

Iterable<Relationship> getRelationships()

Removed

Iterable<Relationship> getRelationships(Direction)

Removed

Iterable<Relationship> getRelationships(RelationshipType…​)

Removed

Iterable<Relationship> getRelationships(Direction, RelationshipType…​)

Removed

org.neo4j.dbms.api.DatabaseManagementServiceBuilder

This class now implements Neo4jDatabaseManagementServiceBuilder, which is the new preferred interface to use. As part of this change, the following fields and methods are removed since they exposed internal implementations:

  • Config.Builder config

  • List<DatabaseEventListener> databaseEventListeners

  • DependencyResolver dependencies

  • List<ExtensionFactory<?>> extensions

  • Path homeDirectory

  • Monitors monitors

  • Map<String,URLAccessRule> urlAccessRules

  • LogProvider userLogProvider

  • DatabaseManagementServiceBuilder(File)

  • DatabaseManagementServiceBuilder(Path, Predicate<Class<? extends ExtensionFactory>>)

  • DatabaseManagementServiceBuilder loadPropertiesFromFile(String)

  • DatabaseManagementServiceBuilder setConfigRaw(Map<String,String>)

  • DatabaseManagementServiceBuilder setExternalDependencies(DependencyResolver)

  • DatabaseManagementServiceBuilder setMonitors(Monitors)

  • DatabaseManagementServiceBuilder addURLAccessRule(String, URLAccessRule)

  • DatabaseManagementService newDatabaseManagementService(Config, ExternalDependencies)

  • DbmsInfo getDbmsInfo(Config)

  • String getEdition()

  • Function<GlobalModule,AbstractEditionModule> getEditionFactory(Config)

  • Config augmentConfig(Config)

  • ExternalDependencies databaseDependencies()

Changes to Neo4j settings

com.neo4j.configuration.OnlineBackupSettings

Setting Change

Setting<TransactionStreamingStrategy> incremental_backup_strategy

Removed

Setting<Duration> store_copy_max_retry_time_per_request

New

com.neo4j.configuration.MetricsSettings

All settings to enable and disable a metric type are replaced by metrics_filter, which takes a regex of what metrics to enable:

Setting Change

Setting<List<GlobbingPattern>> metrics_filter

New

Setting<Boolean> bolt_messages_enabled

Removed

Setting<Boolean> causal_clustering_enabled

Removed

Setting<Boolean> cypher_planning_enabled

Removed

Setting<Boolean> database_counts_enabled

Removed

Setting<Boolean> database_operation_count_enabled

Removed

Setting<Boolean> jvm_buffers_enabled

Removed

Setting<Boolean> jvm_file_descriptors_enabled

Removed

Setting<Boolean> jvm_gc_enabled

Removed

Setting<Boolean> jvm_heap_enabled

Removed

Setting<Boolean> jvm_memory_enabled

Removed

Setting<Boolean> jvm_pause_time_enabled

Removed

Setting<Boolean> jvm_threads_enabled

Removed

Setting<Boolean> metrics_namespaces_enabled

Removed

Setting<Boolean> neo_check_pointing_enabled

Removed

Setting<Boolean> neo_counts_enabled

Removed

Setting<Boolean> neo_memory_pools_enabled

Removed

Setting<Boolean> neo_page_cache_enabled

Removed

Setting<Boolean> neo_server_enabled

Removed

Setting<Boolean> neo_store_size_enabled

Removed

Setting<Boolean> neo_transaction_logs_enabled

Removed

Setting<Boolean> neo_tx_enabled

Removed

com.neo4j.configuration.OnlineBackupSettings

Setting Change

Setting<Duration> store_copy_max_retry_time_per_request

New

Setting<TransactionStreamingStrategy> incremental_backup_strategy

Removed

com.neo4j.configuration.SecuritySettings

Setting Change

Setting<String> key_name

New

Setting<SecureString> keystore_password

New

Setting<Path> keystore_path

New

Setting<String> ldap_authorization_nested_groups_search_filter

New

Setting<Boolean> ldap_authorization_nested_groups_enabled

New

Setting<Boolean> ldap_authentication_use_samaccountname

Removed

As part of the logging changes, the following settings are removed and moved to the Log4j 2 configuration file:

Setting Change

Setting<Path> security_log_filename

Removed

Setting<FormattedLogFormat> security_log_format

Removed

Setting<Level> security_log_level

Removed

Setting<Integer> store_security_log_max_archives

Removed

Setting<Duration> store_security_log_rotation_delay

Removed

Setting<Long> store_security_log_rotation_threshold

Removed

com.neo4j.configuration.SecuritySettings.OIDCSetting

Setting Change

String name()

New

Setting<URI> redirect_uri

Removed

com.neo4j.configuration.EnterpriseEditionSettings

Setting Change

int MAX_PRIMARIES = 11

New

int MAX_SECONDARIES = 20

New

int MIN_PRIMARIES = 1

New

int MIN_SECONDARIES = 0

New

Setting<Set<String>> initial_allowed_databases

New

Setting<String> initial_database_allocator

New

Setting<Integer> initial_default_primaries_count

New

Setting<Integer> initial_default_secondaries_count

New

Setting<Set<String>> initial_denied_databases

New

Setting<InstanceModeConstraint> initial_mode_constraint

New

Setting<List<ServerTag>> server_groups

New

Setting<SystemDatabaseMode> system_database_mode

New

Setting<Boolean> enable_clustering_in_standalone

Removed

Setting<List<String>> dynamic_setting_whitelist

Removed

com.neo4j.fabric.configuration.FabricEnterpriseSettings

Setting Change

Setting<DriverApi> driver_api

Removed

com.neo4j.configuration.FabricEnterpriseSettings.GraphSetting

Setting Change

Setting<String> driver_policy

New

Setting<DriverApi> driver_api

Removed

Changes to Neo4j cluster settings

com.neo4j.configuration.ClusterNetworkSettings

Setting Change

Setting<Duration> catchup_client_inactivity_timeout

New

Setting<Duration> network_handshake_timeout

New

Setting<Integer> network_max_chunk_size

New

Setting<List<String>> network_supported_compression_algos

New

Setting<Boolean> network_use_native_transport

New

com.neo4j.configuration.KubernetesSettings

Setting Change

Setting<SocketAddress> kubernetes_address

New

Setting<Path> kubernetes_ca_crt

New

Setting<String> kubernetes_cluster_domain

New

Setting<String> kubernetes_label_selector

New

Setting<Path> kubernetes_namespace

New

Setting<String> kubernetes_service_port_name

New

Setting<Path> kubernetes_token

New

com.neo4j.configuration.ClusterSettings

A few constants are added:

Setting Change

int DEFAULT_DISCOVERY_PORT = 5000

New

int DEFAULT_RAFT_PORT = 7000

New

int DEFAULT_TRANSACTION_PORT = 6000

New

The following settings are moved to the ClusterNetworkSettings class and renamed:

Setting Change

Setting<Duration> catch_up_client_inactivity_timeout

Removed

Setting<Duration> handshake_timeout

Removed

Setting<Integer> store_copy_chunk_size

Removed

Setting<List<String>> compression_implementations

Removed

The following settings are moved to KubernetesSettings:

Setting Change

Setting<SocketAddress> kubernetes_address .>

Removed

Setting<Path> kubernetes_ca_crt

Removed

Setting<String> kubernetes_cluster_domain

Removed

Setting<String> kubernetes_label_selector

Removed

Setting<Path> kubernetes_namespace

Removed

Setting<String> kubernetes_service_port_name

Removed

Setting<Path> kubernetes_token

Removed

The following settings are added:

Setting Change

Setting<Duration> catchup_pull_interval

New

Setting<List<String>> catchup_upstream_strategy

New

Setting<String> catchup_user_defined_upstream_strategy

New

Setting<SocketAddress> cluster_advertised_address

New

Setting<SocketAddress> cluster_listen_address

New

Setting<List<SocketAddress>> discovery_initial_members

New

Setting<Level> discovery_log_level

New

Setting<Long> raft_apply_buffer_max_bytes

New

Setting<Integer> raft_apply_buffer_max_entries

New

Setting<Duration> raft_binding_timeout

New

Setting<Integer> raft_client_max_channels

New

Setting<DurationRange> raft_election_failure_detection_window

New

Setting<Long> raft_in_queue_batch_max_bytes

New

Setting<DurationRange> raft_leader_failure_detection_window

New

Setting<SelectionStrategies> raft_leader_transfer_balancing_strategy

New

Setting<ServerTag> raft_leader_transfer_priority_group

New

Setting<Integer> minimum_initial_members

New

Setting<String> raft_log_prune_strategy

New

Setting<Long> raft_log_shipping_buffer_max_bytes

New

Setting<Integer> raft_log_shipping_buffer_max_entries

New

Setting<Duration> raft_membership_join_max_lag

New

Setting<Duration> raft_membership_join_timeout

New

Setting<String> routing_load_balancing_plugin

New

Setting<Boolean> routing_load_balancing_shuffle_enabled

New

Setting<Boolean> routing_reads_on_primaries_enabled

New

Setting<Boolean> routing_reads_on_writers_enabled

New

Setting<Boolean> security_cluster_status_auth_enabled

New

Setting<List<String>> seed_from_uri_providers

New

Setting<List<ServerTag>> catchup_connect_randomly_to_server_group

New

The following settings are removed:

Setting Change

Setting<Integer> catchup_batch_size

Removed

Setting<List<ApplicationProtocolVersion>> catchup_implementations

Removed

Setting<Boolean> cluster_allow_reads_on_followers

Removed

Setting<Boolean> cluster_allow_reads_on_leader

Removed

Setting<Duration> cluster_binding_timeout

Removed

Setting<Duration> cluster_topology_refresh

Removed

Setting<Integer> command_applier_parallelism

Removed

Setting<List<ServerGroupName>> connect_randomly_to_server_group_strategy

Removed

Setting<ServerGroupName> default_leadership_priority_group

Removed

Setting<DurationRange> election_failure_detection_window

Removed

Setting<Boolean> enable_pre_voting

Removed

Setting<Integer> global_session_tracker_state_size

Removed

Setting<Long> in_flight_cache_max_bytes

Removed

Setting<Integer> in_flight_cache_max_entries

Removed

Setting<InFlightCacheType in_flight_cache_type

Removed

Setting<List<SocketAddress>> initial_discovery_members

Removed

Setting<Duration> join_catch_up_max_lag

Removed

Setting<Duration> join_catch_up_timeout

Removed

Setting<Integer> last_flushed_state_size

Removed

Setting<SelectionStrategies> leader_balancing

Removed

Setting<Duration> leader_election_timeout

Removed

Setting<DurationRange> leader_failure_detection_window

Removed

Setting<String> load_balancing_plugin

Removed

Setting<Boolean> load_balancing_shuffle

Removed

Setting<Integer> log_shipping_max_lag

Removed

Setting<Duration> log_shipping_retry_timeout

Removed

Setting<Integer> max_raft_channels

Removed

Setting<Level> middleware_logging_level

Removed

Setting<Integer> minimum_core_cluster_size_at_formation

Removed

Setting<Integer> minimum_core_cluster_size_at_runtime

Removed

Setting<Boolean> multi_dc_license

Removed

Setting<Duration> pull_interval

Removed

Setting<Integer> raft_handler_parallelism

Removed

Setting<List<ApplicationProtocolVersion>> raft_implementations

Removed

Setting<Long> raft_in_queue_max_batch_bytes

Removed

Setting<Integer> raft_log_entry_prefetch_buffer_max_entries

Removed

Setting<String> raft_log_implementation

Removed

Setting<String> raft_log_pruning_strategy

Removed

Setting<Integer> raft_membership_state_size

Removed

Setting<Boolean> refuse_to_be_leader

Removed

Setting<Integer> replicated_lease_state_size

Removed

Setting<Duration> replication_leader_await_timeout

Removed

Setting<Duration> replication_retry_timeout_base

Removed

Setting<Duration> replication_retry_timeout_limit

Removed

Setting<List<ServerGroupName>> server_groups

Removed

Setting<Integer> state_machine_apply_max_batch_size

Removed

Setting<Integer> state_machine_flush_window_size

Removed

Setting<Boolean> status_auth_enabled

Removed

Setting<Duration> status_throughput_window

Removed

Setting<Integer> store_copy_parallelism

Removed

Setting<Integer> term_state_size

Removed

Setting<SocketAddress> transaction_advertised_address

Removed

Setting<SocketAddress> transaction_listen_address

Removed

Setting<Duration> unknown_address_logging_throttle

Removed

Setting<List<String>> upstream_selection_strategy

Removed

Setting<String> user_defined_upstream_selection_strategy

Removed

Setting<Integer> vote_state_size

Removed

org.neo4j.configuration.connectors.BoltConnector

Setting Change

Setting<Duration> thread_pool_shutdown_wait_time

Removed

org.neo4j.configuration.GraphDatabaseSettings

The following settings are added:

Setting Change

Setting<String> initial_default_database

New

Setting<Boolean> cypher_render_plan_descriptions

New

The following settings are removed:

Setting Change

Setting<String> default_allowed

Removed

Setting<String> default_database

Removed

Setting<String> default_schema_provider

Removed

Setting<Boolean> enable_clustering_in_standalone

Removed

Setting<Boolean> allow_upgrade

Removed

Setting<CypherParserVersion> cypher_parser_version

Removed

Setting<Integer> lucene_searcher_cache_size

Removed

Setting<Mode> mode

Removed

Setting<String> pagecache_swapper

Removed

Setting<String> pagecache_warmup_prefetch_whitelist

Removed

Setting<DriverApi> routing_driver_api

Removed

Setting<String> procedure_roles

Removed

Setting<String> procedure_whitelist

Removed

Setting<Boolean> read_only

Removed

Setting<Duration> reconciler_maximum_backoff

Removed

Setting<Integer> reconciler_maximum_parallelism

Removed

Setting<Boolean> reconciler_may_retry

Removed

Setting<Duration> reconciler_minimum_backoff

Removed

Setting<Integer> upgrade_processors

Removed

The setting record_format is renamed to db_format to allow future, non-record formats, to be selected:

Setting Change

Setting<String> db_format

New

Setting<String> record_format

Removed

The following settings are removed and their default values are now permanent:

Setting Change

Setting<Boolean> log_queries_allocation_logging_enabled

Removed

Setting<Boolean> log_queries_detailed_time_logging_enabled

Removed

Setting<Integer> log_queries_max_archives

Removed

Setting<Boolean> log_queries_page_detail_logging_enabled

Removed

Setting<Boolean> log_queries_parameter_full_entities

Removed

Setting<Boolean> log_queries_runtime_logging_enabled

Removed

Setting<Boolean> log_queries_transaction_id

Removed

Setting<Boolean> track_query_allocation

Removed

The setting pagecache_memory has a changed type:

Setting Change

Setting<Long> pagecache_memory

New

Setting<String> pagecache_memory

Removed

As part of the logging changes two new settings are added that will point to the Log4j 2 configuration files. All old logging settings are removed:

Setting Change

Setting<Path> server_logging_config_path

New

Setting<Path> user_logging_config_path

New

Setting<Boolean> debug_log_enabled

New

Setting<FormattedLogFormat> default_log_format

Removed

Setting<FormattedLogFormat> store_internal_log_format

Removed

Setting<FormattedLogFormat> log_query_format

Removed

Setting<FormattedLogFormat> store_user_log_format

Removed

Setting<Path> store_internal_log_path

Removed

Setting<Level> store_internal_log_level

Removed

Setting<Integer> store_internal_log_max_archives

Removed

Setting<Duration> store_internal_log_rotation_delay

Removed

Setting<Long> store_internal_log_rotation_threshold

Removed

Setting<Path> store_user_log_path

Removed

Setting<Integer> store_user_log_max_archives

Removed

Setting<Duration> store_user_log_rotation_delay

Removed

Setting<Long> store_user_log_rotation_threshold

Removed

Setting<Boolean> store_user_log_to_stdout

Removed

Setting<Path> log_queries_filename

Removed

Setting<Long> log_queries_rotation_threshold

Removed

Changes to the Traversal API

The traversal API can be accessed through Transaction.traversalDescription() and Transaction.bidirectionalTraversalDescription(). For the full documentation, see Java Reference → The traversal framework .

Added classes, interfaces, and enums as part of the Traversal API

interface org.neo4j.graphdb.traversal.BidirectionalTraversalDescription

interface

org.neo4j.graphdb.traversal.BranchCollisionDetector

enum

org.neo4j.graphdb.traversal.BranchOrderingPolicies

interface

org.neo4j.graphdb.traversal.BranchOrderingPolicy

interface

org.neo4j.graphdb.traversal.BranchState<STATE>

enum

org.neo4j.graphdb.traversal.Evaluation

interface

org.neo4j.graphdb.traversal.Evaluator

class

org.neo4j.graphdb.traversal.Evaluators

interface

org.neo4j.graphdb.traversal.InitialBranchState<STATE>

interface

org.neo4j.graphdb.traversal.PathEvaluator<STATE>

class

org.neo4j.graphdb.traversal.Paths

enum

org.neo4j.graphdb.traversal.SideSelectorPolicies

interface

org.neo4j.graphdb.traversal.TraversalBranch

interface

org.neo4j.graphdb.traversal.TraversalDescription

interface

org.neo4j.graphdb.traversal.TraversalMetadata

interface

org.neo4j.graphdb.traversal.Traverser

enum

org.neo4j.graphdb.traversal.Uniqueness

interface

org.neo4j.graphdb.traversal.UniquenessFactory

interface

org.neo4j.graphdb.traversal.UniquenessFilter

org.neo4j.graphdb.PathExpanders

A few commonly used `PathExpander`s are added:

Setting Change

allTypesAndDirections()

New

forConstantDirectionWithTypes(RelationshipType…​)

New

forDirection(Direction)

New

forType(RelationshipType)

New

forTypeAndDirection(RelationshipType, Direction)

New

forTypesAndDirections(RelationshipType, Direction, RelationshipType, Direction, Object…​)

New

printingWrapper(…​)

New