
org.neo4j.kernel.impl.api.OperationsFacade Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of neo4j-kernel Show documentation
Show all versions of neo4j-kernel Show documentation
Neo4j kernel is a lightweight, embedded Java database designed to
store data structured as graphs rather than tables. For more
information, see http://neo4j.org.
/*
* Copyright (c) 2002-2015 "Neo Technology,"
* Network Engine for Objects in Lund AB [http://neotechnology.com]
*
* This file is part of Neo4j.
*
* Neo4j is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see .
*/
package org.neo4j.kernel.impl.api;
import java.util.Iterator;
import java.util.Map;
import org.neo4j.collection.primitive.PrimitiveIntIterator;
import org.neo4j.collection.primitive.PrimitiveLongCollections;
import org.neo4j.collection.primitive.PrimitiveLongIterator;
import org.neo4j.cursor.Cursor;
import org.neo4j.function.Function;
import org.neo4j.graphdb.Direction;
import org.neo4j.kernel.api.DataWriteOperations;
import org.neo4j.kernel.api.LegacyIndexHits;
import org.neo4j.kernel.api.ReadOperations;
import org.neo4j.kernel.api.SchemaWriteOperations;
import org.neo4j.kernel.api.StatementConstants;
import org.neo4j.kernel.api.constraints.NodePropertyConstraint;
import org.neo4j.kernel.api.constraints.NodePropertyExistenceConstraint;
import org.neo4j.kernel.api.constraints.PropertyConstraint;
import org.neo4j.kernel.api.constraints.RelationshipPropertyConstraint;
import org.neo4j.kernel.api.constraints.RelationshipPropertyExistenceConstraint;
import org.neo4j.kernel.api.constraints.UniquenessConstraint;
import org.neo4j.kernel.api.cursor.NodeItem;
import org.neo4j.kernel.api.cursor.RelationshipItem;
import org.neo4j.kernel.api.exceptions.EntityNotFoundException;
import org.neo4j.kernel.api.exceptions.LabelNotFoundKernelException;
import org.neo4j.kernel.api.exceptions.ProcedureException;
import org.neo4j.kernel.api.exceptions.PropertyKeyIdNotFoundKernelException;
import org.neo4j.kernel.api.exceptions.RelationshipTypeIdNotFoundKernelException;
import org.neo4j.kernel.api.exceptions.index.IndexNotFoundKernelException;
import org.neo4j.kernel.api.exceptions.legacyindex.LegacyIndexNotFoundKernelException;
import org.neo4j.kernel.api.exceptions.schema.AlreadyConstrainedException;
import org.neo4j.kernel.api.exceptions.schema.AlreadyIndexedException;
import org.neo4j.kernel.api.exceptions.schema.ConstraintValidationKernelException;
import org.neo4j.kernel.api.exceptions.schema.CreateConstraintFailureException;
import org.neo4j.kernel.api.exceptions.schema.DropConstraintFailureException;
import org.neo4j.kernel.api.exceptions.schema.DropIndexFailureException;
import org.neo4j.kernel.api.exceptions.schema.DuplicateIndexSchemaRuleException;
import org.neo4j.kernel.api.exceptions.schema.IllegalTokenNameException;
import org.neo4j.kernel.api.exceptions.schema.IndexBrokenKernelException;
import org.neo4j.kernel.api.exceptions.schema.IndexSchemaRuleNotFoundException;
import org.neo4j.kernel.api.exceptions.schema.SchemaRuleNotFoundException;
import org.neo4j.kernel.api.exceptions.schema.TooManyLabelsException;
import org.neo4j.kernel.api.exceptions.schema.ProcedureConstraintViolation;
import org.neo4j.kernel.api.index.IndexDescriptor;
import org.neo4j.kernel.api.index.InternalIndexState;
import org.neo4j.kernel.api.procedures.ProcedureDescriptor;
import org.neo4j.kernel.api.procedures.ProcedureSignature;
import org.neo4j.kernel.api.procedures.ProcedureSignature.ProcedureName;
import org.neo4j.kernel.api.properties.DefinedProperty;
import org.neo4j.kernel.api.properties.Property;
import org.neo4j.kernel.impl.api.operations.CountsOperations;
import org.neo4j.kernel.impl.api.operations.EntityReadOperations;
import org.neo4j.kernel.impl.api.operations.EntityWriteOperations;
import org.neo4j.kernel.impl.api.operations.KeyReadOperations;
import org.neo4j.kernel.impl.api.operations.KeyWriteOperations;
import org.neo4j.kernel.impl.api.operations.LegacyIndexReadOperations;
import org.neo4j.kernel.impl.api.operations.LegacyIndexWriteOperations;
import org.neo4j.kernel.impl.api.operations.LockOperations;
import org.neo4j.kernel.impl.api.operations.SchemaReadOperations;
import org.neo4j.kernel.impl.api.operations.SchemaStateOperations;
import org.neo4j.kernel.impl.api.store.RelationshipIterator;
import org.neo4j.kernel.impl.core.Token;
import org.neo4j.kernel.impl.locking.Locks;
import static org.neo4j.helpers.collection.Iterables.map;
public class OperationsFacade implements ReadOperations, DataWriteOperations, SchemaWriteOperations
{
final KernelStatement statement;
private final StatementOperationParts operations;
OperationsFacade( KernelStatement statement, StatementOperationParts operations )
{
this.statement = statement;
this.operations = operations;
}
final KeyReadOperations tokenRead()
{
return operations.keyReadOperations();
}
final KeyWriteOperations tokenWrite()
{
return operations.keyWriteOperations();
}
final EntityReadOperations dataRead()
{
return operations.entityReadOperations();
}
final EntityWriteOperations dataWrite()
{
return operations.entityWriteOperations();
}
final LegacyIndexWriteOperations legacyIndexWrite()
{
return operations.legacyIndexWriteOperations();
}
final LegacyIndexReadOperations legacyIndexRead()
{
return operations.legacyIndexReadOperations();
}
final SchemaReadOperations schemaRead()
{
return operations.schemaReadOperations();
}
final org.neo4j.kernel.impl.api.operations.SchemaWriteOperations schemaWrite()
{
return operations.schemaWriteOperations();
}
final SchemaStateOperations schemaState()
{
return operations.schemaStateOperations();
}
final LockOperations locking()
{
return operations.locking();
}
final CountsOperations counting()
{
return operations.counting();
}
//
@Override
public PrimitiveLongIterator nodesGetAll()
{
statement.assertOpen();
return dataRead().nodesGetAll( statement );
}
@Override
public PrimitiveLongIterator relationshipsGetAll()
{
statement.assertOpen();
return dataRead().relationshipsGetAll( statement );
}
@Override
public PrimitiveLongIterator nodesGetForLabel( int labelId )
{
statement.assertOpen();
if ( labelId == StatementConstants.NO_SUCH_LABEL )
{
return PrimitiveLongCollections.emptyIterator();
}
return dataRead().nodesGetForLabel( statement, labelId );
}
@Override
public PrimitiveLongIterator nodesGetFromIndexSeek( IndexDescriptor index, Object value )
throws IndexNotFoundKernelException
{
statement.assertOpen();
return dataRead().nodesGetFromIndexSeek( statement, index, value );
}
@Override
public PrimitiveLongIterator nodesGetFromIndexRangeSeekByNumber( IndexDescriptor index,
Number lower,
boolean includeLower,
Number upper,
boolean includeUpper )
throws IndexNotFoundKernelException
{
statement.assertOpen();
return dataRead().nodesGetFromIndexRangeSeekByNumber( statement, index, lower, includeLower, upper,
includeUpper );
}
@Override
public PrimitiveLongIterator nodesGetFromIndexRangeSeekByString( IndexDescriptor index,
String lower,
boolean includeLower,
String upper,
boolean includeUpper )
throws IndexNotFoundKernelException
{
statement.assertOpen();
return dataRead().nodesGetFromIndexRangeSeekByString( statement, index, lower, includeLower, upper,
includeUpper );
}
@Override
public PrimitiveLongIterator nodesGetFromIndexRangeSeekByPrefix( IndexDescriptor index, String prefix )
throws IndexNotFoundKernelException
{
statement.assertOpen();
return dataRead().nodesGetFromIndexRangeSeekByPrefix( statement, index, prefix );
}
@Override
public PrimitiveLongIterator nodesGetFromIndexScan( IndexDescriptor index )
throws IndexNotFoundKernelException
{
statement.assertOpen();
return dataRead().nodesGetFromIndexScan( statement, index );
}
@Override
public long nodeGetFromUniqueIndexSeek( IndexDescriptor index, Object value )
throws IndexNotFoundKernelException, IndexBrokenKernelException
{
statement.assertOpen();
return dataRead().nodeGetFromUniqueIndexSeek( statement, index, value );
}
@Override
public boolean nodeExists( long nodeId )
{
statement.assertOpen();
try ( Cursor cursor = nodeCursor( nodeId ) )
{
return cursor.next();
}
}
@Override
public boolean relationshipExists( long relId )
{
statement.assertOpen();
try ( Cursor cursor = relationshipCursor( relId ) )
{
return cursor.next();
}
}
@Override
public boolean nodeHasLabel( long nodeId, int labelId ) throws EntityNotFoundException
{
statement.assertOpen();
if ( labelId == StatementConstants.NO_SUCH_LABEL )
{
return false;
}
try ( Cursor node = dataRead().nodeCursorById( statement, nodeId ) )
{
return node.get().hasLabel( labelId );
}
}
@Override
public PrimitiveIntIterator nodeGetLabels( long nodeId ) throws EntityNotFoundException
{
statement.assertOpen();
try ( Cursor node = dataRead().nodeCursorById( statement, nodeId ) )
{
return node.get().getLabels();
}
}
@Override
public boolean nodeHasProperty( long nodeId, int propertyKeyId ) throws EntityNotFoundException
{
statement.assertOpen();
if ( propertyKeyId == StatementConstants.NO_SUCH_PROPERTY_KEY )
{
return false;
}
try ( Cursor node = dataRead().nodeCursorById( statement, nodeId ) )
{
return node.get().hasProperty( propertyKeyId );
}
}
@Override
public Object nodeGetProperty( long nodeId, int propertyKeyId ) throws EntityNotFoundException
{
statement.assertOpen();
if ( propertyKeyId == StatementConstants.NO_SUCH_PROPERTY_KEY )
{
return null;
}
try ( Cursor node = dataRead().nodeCursorById( statement, nodeId ) )
{
return node.get().getProperty( propertyKeyId );
}
}
@Override
public RelationshipIterator nodeGetRelationships( long nodeId, Direction direction, int[] relTypes )
throws EntityNotFoundException
{
statement.assertOpen();
try ( Cursor node = dataRead().nodeCursorById( statement, nodeId ) )
{
return node.get().getRelationships( direction, relTypes );
}
}
@Override
public RelationshipIterator nodeGetRelationships( long nodeId, Direction direction )
throws EntityNotFoundException
{
statement.assertOpen();
try ( Cursor node = dataRead().nodeCursorById( statement, nodeId ) )
{
return node.get().getRelationships( direction );
}
}
@Override
public int nodeGetDegree( long nodeId, Direction direction, int relType ) throws EntityNotFoundException
{
statement.assertOpen();
try ( Cursor node = dataRead().nodeCursorById( statement, nodeId ) )
{
return node.get().degree( direction, relType );
}
}
@Override
public int nodeGetDegree( long nodeId, Direction direction ) throws EntityNotFoundException
{
statement.assertOpen();
try ( Cursor node = dataRead().nodeCursorById( statement, nodeId ) )
{
return node.get().degree( direction );
}
}
@Override
public boolean nodeIsDense( long nodeId ) throws EntityNotFoundException
{
statement.assertOpen();
try ( Cursor node = dataRead().nodeCursorById( statement, nodeId ) )
{
return node.get().isDense();
}
}
@Override
public PrimitiveIntIterator nodeGetRelationshipTypes( long nodeId ) throws EntityNotFoundException
{
statement.assertOpen();
try ( Cursor node = dataRead().nodeCursorById( statement, nodeId ) )
{
return node.get().getRelationshipTypes();
}
}
@Override
public boolean relationshipHasProperty( long relationshipId, int propertyKeyId ) throws EntityNotFoundException
{
statement.assertOpen();
if ( propertyKeyId == StatementConstants.NO_SUCH_PROPERTY_KEY )
{
return false;
}
try ( Cursor relationship = dataRead().relationshipCursorById( statement, relationshipId ) )
{
return relationship.get().hasProperty( propertyKeyId );
}
}
@Override
public Object relationshipGetProperty( long relationshipId, int propertyKeyId ) throws EntityNotFoundException
{
statement.assertOpen();
if ( propertyKeyId == StatementConstants.NO_SUCH_PROPERTY_KEY )
{
return null;
}
try ( Cursor relationship = dataRead().relationshipCursorById( statement, relationshipId ) )
{
return relationship.get().getProperty( propertyKeyId );
}
}
@Override
public boolean graphHasProperty( int propertyKeyId )
{
statement.assertOpen();
if ( propertyKeyId == StatementConstants.NO_SUCH_PROPERTY_KEY )
{
return false;
}
return dataRead().graphHasProperty( statement, propertyKeyId );
}
@Override
public Object graphGetProperty( int propertyKeyId )
{
statement.assertOpen();
if ( propertyKeyId == StatementConstants.NO_SUCH_PROPERTY_KEY )
{
return null;
}
return dataRead().graphGetProperty( statement, propertyKeyId );
}
@Override
public PrimitiveIntIterator nodeGetPropertyKeys( long nodeId ) throws EntityNotFoundException
{
statement.assertOpen();
try ( Cursor node = dataRead().nodeCursorById( statement, nodeId ) )
{
return node.get().getPropertyKeys();
}
}
@Override
public PrimitiveIntIterator relationshipGetPropertyKeys( long relationshipId ) throws EntityNotFoundException
{
statement.assertOpen();
try ( Cursor relationship = dataRead().relationshipCursorById( statement, relationshipId ) )
{
return relationship.get().getPropertyKeys();
}
}
@Override
public PrimitiveIntIterator graphGetPropertyKeys()
{
statement.assertOpen();
return dataRead().graphGetPropertyKeys( statement );
}
@Override
public void relationshipVisit( long relId,
RelationshipVisitor visitor ) throws EntityNotFoundException, EXCEPTION
{
statement.assertOpen();
dataRead().relationshipVisit( statement, relId, visitor );
}
//
//
@Override
public Cursor nodeCursor( long nodeId )
{
statement.assertOpen();
return dataRead().nodeCursor( statement, nodeId );
}
@Override
public Cursor relationshipCursor( long relId )
{
statement.assertOpen();
return dataRead().relationshipCursor( statement, relId );
}
@Override
public Cursor nodeCursorGetAll()
{
statement.assertOpen();
return dataRead().nodeCursorGetAll( statement );
}
@Override
public Cursor relationshipCursorGetAll()
{
statement.assertOpen();
return dataRead().relationshipCursorGetAll( statement );
}
@Override
public Cursor nodeCursorGetForLabel( int labelId )
{
statement.assertOpen();
return dataRead().nodeCursorGetForLabel( statement, labelId );
}
@Override
public Cursor nodeCursorGetFromIndexSeek( IndexDescriptor index,
Object value ) throws IndexNotFoundKernelException
{
statement.assertOpen();
return dataRead().nodeCursorGetFromIndexSeek( statement, index, value );
}
@Override
public Cursor nodeCursorGetFromIndexScan( IndexDescriptor index ) throws IndexNotFoundKernelException
{
statement.assertOpen();
return dataRead().nodeCursorGetFromIndexScan( statement, index );
}
@Override
public Cursor nodeCursorGetFromIndexRangeSeekByNumber( IndexDescriptor index,
Number lower, boolean includeLower,
Number upper, boolean includeUpper )
throws IndexNotFoundKernelException
{
statement.assertOpen();
return dataRead().nodeCursorGetFromIndexRangeSeekByNumber( statement, index, lower, includeLower, upper,
includeUpper );
}
@Override
public Cursor nodeCursorGetFromIndexRangeSeekByString( IndexDescriptor index,
String lower, boolean includeLower,
String upper, boolean includeUpper )
throws IndexNotFoundKernelException
{
statement.assertOpen();
return dataRead().nodeCursorGetFromIndexRangeSeekByString( statement, index, lower, includeLower, upper,
includeUpper );
}
@Override
public Cursor nodeCursorGetFromIndexRangeSeekByPrefix( IndexDescriptor index, String prefix )
throws IndexNotFoundKernelException
{
statement.assertOpen();
return dataRead().nodeCursorGetFromIndexRangeSeekByPrefix( statement, index, prefix );
}
@Override
public Cursor nodeCursorGetFromUniqueIndexSeek( IndexDescriptor index, Object value )
throws IndexNotFoundKernelException, IndexBrokenKernelException
{
statement.assertOpen();
return dataRead().nodeCursorGetFromUniqueIndexSeek( statement, index, value );
}
//
//
@Override
public IndexDescriptor indexesGetForLabelAndPropertyKey( int labelId, int propertyKeyId )
throws SchemaRuleNotFoundException
{
statement.assertOpen();
IndexDescriptor descriptor = schemaRead().indexesGetForLabelAndPropertyKey( statement, labelId, propertyKeyId );
if ( descriptor == null )
{
throw new IndexSchemaRuleNotFoundException( labelId, propertyKeyId );
}
return descriptor;
}
@Override
public Iterator indexesGetForLabel( int labelId )
{
statement.assertOpen();
return schemaRead().indexesGetForLabel( statement, labelId );
}
@Override
public Iterator indexesGetAll()
{
statement.assertOpen();
return schemaRead().indexesGetAll( statement );
}
@Override
public IndexDescriptor uniqueIndexGetForLabelAndPropertyKey( int labelId, int propertyKeyId )
throws SchemaRuleNotFoundException, DuplicateIndexSchemaRuleException
{
IndexDescriptor result = null;
Iterator indexes = uniqueIndexesGetForLabel( labelId );
while ( indexes.hasNext() )
{
IndexDescriptor index = indexes.next();
if ( index.getPropertyKeyId() == propertyKeyId )
{
if ( null == result )
{
result = index;
}
else
{
throw new DuplicateIndexSchemaRuleException( labelId, propertyKeyId, true );
}
}
}
if ( null == result )
{
throw new IndexSchemaRuleNotFoundException( labelId, propertyKeyId, true );
}
return result;
}
@Override
public Iterator uniqueIndexesGetForLabel( int labelId )
{
statement.assertOpen();
return schemaRead().uniqueIndexesGetForLabel( statement, labelId );
}
@Override
public Long indexGetOwningUniquenessConstraintId( IndexDescriptor index ) throws SchemaRuleNotFoundException
{
statement.assertOpen();
return schemaRead().indexGetOwningUniquenessConstraintId( statement, index );
}
@Override
public Iterator proceduresGetAll()
{
statement.assertOpen();
// There is a mapping layer here because "inside" the kernel we use the definition object, rather than the signature,
// but we prefer to avoid leaking that outside the kernel.
return map( new Function()
{
@Override
public ProcedureSignature apply( ProcedureDescriptor o )
{
return o.signature();
}
}, schemaRead().proceduresGetAll( statement ) );
}
@Override
public ProcedureDescriptor procedureGet( ProcedureName signature ) throws ProcedureException
{
statement.assertOpen();
return schemaRead().procedureGet( statement, signature );
}
@Override
public Iterator uniqueIndexesGetAll()
{
statement.assertOpen();
return schemaRead().uniqueIndexesGetAll( statement );
}
@Override
public InternalIndexState indexGetState( IndexDescriptor descriptor ) throws IndexNotFoundKernelException
{
statement.assertOpen();
return schemaRead().indexGetState( statement, descriptor );
}
@Override
public long indexSize( IndexDescriptor descriptor ) throws IndexNotFoundKernelException
{
statement.assertOpen();
return schemaRead().indexSize( statement, descriptor );
}
@Override
public double indexUniqueValuesSelectivity( IndexDescriptor descriptor ) throws IndexNotFoundKernelException
{
statement.assertOpen();
return schemaRead().indexUniqueValuesPercentage( statement, descriptor );
}
@Override
public String indexGetFailure( IndexDescriptor descriptor ) throws IndexNotFoundKernelException
{
statement.assertOpen();
return schemaRead().indexGetFailure( statement, descriptor );
}
@Override
public Iterator constraintsGetForLabelAndPropertyKey( int labelId, int propertyKeyId )
{
statement.assertOpen();
return schemaRead().constraintsGetForLabelAndPropertyKey( statement, labelId, propertyKeyId );
}
@Override
public Iterator constraintsGetForLabel( int labelId )
{
statement.assertOpen();
return schemaRead().constraintsGetForLabel( statement, labelId );
}
@Override
public Iterator constraintsGetForRelationshipType( int typeId )
{
statement.assertOpen();
return schemaRead().constraintsGetForRelationshipType( statement, typeId );
}
@Override
public Iterator constraintsGetForRelationshipTypeAndPropertyKey( int typeId,
int propertyKeyId )
{
statement.assertOpen();
return schemaRead().constraintsGetForRelationshipTypeAndPropertyKey( statement, typeId, propertyKeyId );
}
@Override
public Iterator constraintsGetAll()
{
statement.assertOpen();
return schemaRead().constraintsGetAll( statement );
}
//
//
@Override
public int labelGetForName( String labelName )
{
statement.assertOpen();
return tokenRead().labelGetForName( statement, labelName );
}
@Override
public String labelGetName( int labelId ) throws LabelNotFoundKernelException
{
statement.assertOpen();
return tokenRead().labelGetName( statement, labelId );
}
@Override
public int propertyKeyGetForName( String propertyKeyName )
{
statement.assertOpen();
return tokenRead().propertyKeyGetForName( statement, propertyKeyName );
}
@Override
public String propertyKeyGetName( int propertyKeyId ) throws PropertyKeyIdNotFoundKernelException
{
statement.assertOpen();
return tokenRead().propertyKeyGetName( statement, propertyKeyId );
}
@Override
public Iterator propertyKeyGetAllTokens()
{
statement.assertOpen();
return tokenRead().propertyKeyGetAllTokens( statement );
}
@Override
public Iterator labelsGetAllTokens()
{
statement.assertOpen();
return tokenRead().labelsGetAllTokens( statement );
}
@Override
public int relationshipTypeGetForName( String relationshipTypeName )
{
statement.assertOpen();
return tokenRead().relationshipTypeGetForName( statement, relationshipTypeName );
}
@Override
public String relationshipTypeGetName( int relationshipTypeId ) throws RelationshipTypeIdNotFoundKernelException
{
statement.assertOpen();
return tokenRead().relationshipTypeGetName( statement, relationshipTypeId );
}
//
//
@Override
public int labelGetOrCreateForName( String labelName ) throws IllegalTokenNameException, TooManyLabelsException
{
statement.assertOpen();
return tokenWrite().labelGetOrCreateForName( statement, labelName );
}
@Override
public int propertyKeyGetOrCreateForName( String propertyKeyName ) throws IllegalTokenNameException
{
statement.assertOpen();
return tokenWrite().propertyKeyGetOrCreateForName( statement,
propertyKeyName );
}
@Override
public int relationshipTypeGetOrCreateForName( String relationshipTypeName ) throws IllegalTokenNameException
{
statement.assertOpen();
return tokenWrite().relationshipTypeGetOrCreateForName( statement, relationshipTypeName );
}
@Override
public void labelCreateForName( String labelName, int id ) throws
IllegalTokenNameException, TooManyLabelsException
{
statement.assertOpen();
tokenWrite().labelCreateForName( statement, labelName, id );
}
@Override
public void propertyKeyCreateForName( String propertyKeyName,
int id ) throws
IllegalTokenNameException
{
statement.assertOpen();
tokenWrite().propertyKeyCreateForName( statement, propertyKeyName, id );
}
@Override
public void relationshipTypeCreateForName( String relationshipTypeName,
int id ) throws
IllegalTokenNameException
{
statement.assertOpen();
tokenWrite().relationshipTypeCreateForName( statement,
relationshipTypeName, id );
}
//
//
@Override
public V schemaStateGetOrCreate( K key, Function creator )
{
return schemaState().schemaStateGetOrCreate( statement, key, creator );
}
@Override
public void schemaStateFlush()
{
schemaState().schemaStateFlush( statement );
}
//
//
@Override
public long nodeCreate()
{
statement.assertOpen();
return dataWrite().nodeCreate( statement );
}
@Override
public void nodeDelete( long nodeId ) throws EntityNotFoundException
{
statement.assertOpen();
dataWrite().nodeDelete( statement, nodeId );
}
@Override
public long relationshipCreate( int relationshipTypeId, long startNodeId, long endNodeId )
throws RelationshipTypeIdNotFoundKernelException, EntityNotFoundException
{
statement.assertOpen();
return dataWrite().relationshipCreate( statement, relationshipTypeId, startNodeId, endNodeId );
}
@Override
public void relationshipDelete( long relationshipId ) throws EntityNotFoundException
{
statement.assertOpen();
dataWrite().relationshipDelete( statement, relationshipId );
}
@Override
public boolean nodeAddLabel( long nodeId, int labelId )
throws EntityNotFoundException, ConstraintValidationKernelException
{
statement.assertOpen();
return dataWrite().nodeAddLabel( statement, nodeId, labelId );
}
@Override
public boolean nodeRemoveLabel( long nodeId, int labelId ) throws EntityNotFoundException
{
statement.assertOpen();
return dataWrite().nodeRemoveLabel( statement, nodeId, labelId );
}
@Override
public Property nodeSetProperty( long nodeId, DefinedProperty property )
throws EntityNotFoundException, ConstraintValidationKernelException
{
statement.assertOpen();
return dataWrite().nodeSetProperty( statement, nodeId, property );
}
@Override
public Property relationshipSetProperty( long relationshipId, DefinedProperty property )
throws EntityNotFoundException
{
statement.assertOpen();
return dataWrite().relationshipSetProperty( statement, relationshipId, property );
}
@Override
public Property graphSetProperty( DefinedProperty property )
{
statement.assertOpen();
return dataWrite().graphSetProperty( statement, property );
}
@Override
public Property nodeRemoveProperty( long nodeId, int propertyKeyId ) throws EntityNotFoundException
{
statement.assertOpen();
return dataWrite().nodeRemoveProperty( statement, nodeId, propertyKeyId );
}
@Override
public Property relationshipRemoveProperty( long relationshipId, int propertyKeyId ) throws EntityNotFoundException
{
statement.assertOpen();
return dataWrite().relationshipRemoveProperty( statement, relationshipId, propertyKeyId );
}
@Override
public Property graphRemoveProperty( int propertyKeyId )
{
statement.assertOpen();
return dataWrite().graphRemoveProperty( statement, propertyKeyId );
}
//
//
@Override
public IndexDescriptor indexCreate( int labelId, int propertyKeyId )
throws AlreadyIndexedException, AlreadyConstrainedException
{
statement.assertOpen();
return schemaWrite().indexCreate( statement, labelId, propertyKeyId );
}
@Override
public void indexDrop( IndexDescriptor descriptor ) throws DropIndexFailureException
{
statement.assertOpen();
schemaWrite().indexDrop( statement, descriptor );
}
@Override
public UniquenessConstraint uniquePropertyConstraintCreate( int labelId, int propertyKeyId )
throws CreateConstraintFailureException, AlreadyConstrainedException, AlreadyIndexedException
{
statement.assertOpen();
return schemaWrite().uniquePropertyConstraintCreate( statement, labelId, propertyKeyId );
}
@Override
public NodePropertyExistenceConstraint nodePropertyExistenceConstraintCreate( int labelId, int propertyKeyId )
throws CreateConstraintFailureException, AlreadyConstrainedException
{
statement.assertOpen();
return schemaWrite().nodePropertyExistenceConstraintCreate( statement, labelId, propertyKeyId );
}
@Override
public RelationshipPropertyExistenceConstraint relationshipPropertyExistenceConstraintCreate(
int relTypeId, int propertyKeyId )
throws CreateConstraintFailureException, AlreadyConstrainedException
{
statement.assertOpen();
return schemaWrite().relationshipPropertyExistenceConstraintCreate( statement, relTypeId, propertyKeyId );
}
@Override
public void constraintDrop( NodePropertyConstraint constraint ) throws DropConstraintFailureException
{
statement.assertOpen();
schemaWrite().constraintDrop( statement, constraint );
}
@Override
public void constraintDrop( RelationshipPropertyConstraint constraint ) throws DropConstraintFailureException
{
statement.assertOpen();
schemaWrite().constraintDrop( statement, constraint );
}
@Override
public void uniqueIndexDrop( IndexDescriptor descriptor ) throws DropIndexFailureException
{
statement.assertOpen();
schemaWrite().uniqueIndexDrop( statement, descriptor );
}
@Override
public void procedureCreate( ProcedureSignature signature, String language, String body )
throws ProcedureException, ProcedureConstraintViolation
{
statement.assertOpen();
schemaWrite().procedureCreate( statement, signature, language, body );
}
@Override
public void procedureDrop( ProcedureName name ) throws ProcedureConstraintViolation, ProcedureException
{
statement.assertOpen();
schemaWrite().procedureDrop( statement, name );
}
//
//
@Override
public void acquireExclusive( Locks.ResourceType type, long id )
{
statement.assertOpen();
locking().acquireExclusive( statement, type, id );
}
@Override
public void acquireShared( Locks.ResourceType type, long id )
{
statement.assertOpen();
locking().acquireShared( statement, type, id );
}
@Override
public void releaseExclusive( Locks.ResourceType type, long id )
{
statement.assertOpen();
locking().releaseExclusive( statement, type, id );
}
@Override
public void releaseShared( Locks.ResourceType type, long id )
{
statement.assertOpen();
locking().releaseShared( statement, type, id );
}
//
//
@Override
public LegacyIndexHits nodeLegacyIndexGet( String indexName, String key, Object value )
throws LegacyIndexNotFoundKernelException
{
statement.assertOpen();
return legacyIndexRead().nodeLegacyIndexGet( statement, indexName, key, value );
}
@Override
public LegacyIndexHits nodeLegacyIndexQuery( String indexName, String key, Object queryOrQueryObject )
throws LegacyIndexNotFoundKernelException
{
statement.assertOpen();
return legacyIndexRead().nodeLegacyIndexQuery( statement, indexName, key, queryOrQueryObject );
}
@Override
public LegacyIndexHits nodeLegacyIndexQuery( String indexName, Object queryOrQueryObject )
throws LegacyIndexNotFoundKernelException
{
statement.assertOpen();
return legacyIndexRead().nodeLegacyIndexQuery( statement, indexName, queryOrQueryObject );
}
@Override
public LegacyIndexHits relationshipLegacyIndexGet( String indexName, String key, Object value,
long startNode, long endNode ) throws LegacyIndexNotFoundKernelException
{
statement.assertOpen();
return legacyIndexRead().relationshipLegacyIndexGet( statement, indexName, key, value, startNode, endNode );
}
@Override
public LegacyIndexHits relationshipLegacyIndexQuery( String indexName, String key, Object queryOrQueryObject,
long startNode, long endNode ) throws LegacyIndexNotFoundKernelException
{
statement.assertOpen();
return legacyIndexRead().relationshipLegacyIndexQuery( statement, indexName, key, queryOrQueryObject,
startNode, endNode );
}
@Override
public LegacyIndexHits relationshipLegacyIndexQuery( String indexName, Object queryOrQueryObject,
long startNode, long endNode ) throws LegacyIndexNotFoundKernelException
{
statement.assertOpen();
return legacyIndexRead().relationshipLegacyIndexQuery( statement, indexName, queryOrQueryObject,
startNode, endNode );
}
@Override
public void nodeLegacyIndexCreateLazily( String indexName, Map customConfig )
{
statement.assertOpen();
legacyIndexWrite().nodeLegacyIndexCreateLazily( statement, indexName, customConfig );
}
@Override
public void nodeLegacyIndexCreate( String indexName, Map customConfig )
{
statement.assertOpen();
legacyIndexWrite().nodeLegacyIndexCreate( statement, indexName, customConfig );
}
@Override
public void relationshipLegacyIndexCreateLazily( String indexName, Map customConfig )
{
statement.assertOpen();
legacyIndexWrite().relationshipLegacyIndexCreateLazily( statement, indexName, customConfig );
}
@Override
public void relationshipLegacyIndexCreate( String indexName, Map customConfig )
{
statement.assertOpen();
legacyIndexWrite().relationshipLegacyIndexCreate( statement, indexName, customConfig );
}
@Override
public void nodeAddToLegacyIndex( String indexName, long node, String key, Object value )
throws EntityNotFoundException, LegacyIndexNotFoundKernelException
{
statement.assertOpen();
legacyIndexWrite().nodeAddToLegacyIndex( statement, indexName, node, key, value );
}
@Override
public void nodeRemoveFromLegacyIndex( String indexName, long node, String key, Object value )
throws LegacyIndexNotFoundKernelException
{
statement.assertOpen();
legacyIndexWrite().nodeRemoveFromLegacyIndex( statement, indexName, node, key, value );
}
@Override
public void nodeRemoveFromLegacyIndex( String indexName, long node, String key )
throws LegacyIndexNotFoundKernelException
{
statement.assertOpen();
legacyIndexWrite().nodeRemoveFromLegacyIndex( statement, indexName, node, key );
}
@Override
public void nodeRemoveFromLegacyIndex( String indexName, long node ) throws LegacyIndexNotFoundKernelException
{
statement.assertOpen();
legacyIndexWrite().nodeRemoveFromLegacyIndex( statement, indexName, node );
}
@Override
public void relationshipAddToLegacyIndex( String indexName, long relationship, String key, Object value )
throws EntityNotFoundException, LegacyIndexNotFoundKernelException
{
statement.assertOpen();
legacyIndexWrite().relationshipAddToLegacyIndex( statement, indexName, relationship, key, value );
}
@Override
public void relationshipRemoveFromLegacyIndex( String indexName, long relationship, String key, Object value )
throws EntityNotFoundException, LegacyIndexNotFoundKernelException
{
statement.assertOpen();
legacyIndexWrite().relationshipRemoveFromLegacyIndex( statement, indexName, relationship, key, value );
}
@Override
public void relationshipRemoveFromLegacyIndex( String indexName, long relationship, String key )
throws LegacyIndexNotFoundKernelException, EntityNotFoundException
{
statement.assertOpen();
legacyIndexWrite().relationshipRemoveFromLegacyIndex( statement, indexName, relationship, key );
}
@Override
public void relationshipRemoveFromLegacyIndex( String indexName, long relationship )
throws LegacyIndexNotFoundKernelException, EntityNotFoundException
{
statement.assertOpen();
legacyIndexWrite().relationshipRemoveFromLegacyIndex( statement, indexName, relationship );
}
@Override
public void nodeLegacyIndexDrop( String indexName ) throws LegacyIndexNotFoundKernelException
{
statement.assertOpen();
legacyIndexWrite().nodeLegacyIndexDrop( statement, indexName );
}
@Override
public void relationshipLegacyIndexDrop( String indexName ) throws LegacyIndexNotFoundKernelException
{
statement.assertOpen();
legacyIndexWrite().relationshipLegacyIndexDrop( statement, indexName );
}
@Override
public Map nodeLegacyIndexGetConfiguration( String indexName )
throws LegacyIndexNotFoundKernelException
{
statement.assertOpen();
return legacyIndexRead().nodeLegacyIndexGetConfiguration( statement, indexName );
}
@Override
public Map relationshipLegacyIndexGetConfiguration( String indexName )
throws LegacyIndexNotFoundKernelException
{
statement.assertOpen();
return legacyIndexRead().relationshipLegacyIndexGetConfiguration( statement, indexName );
}
@Override
public String nodeLegacyIndexSetConfiguration( String indexName, String key, String value )
throws LegacyIndexNotFoundKernelException
{
statement.assertOpen();
return legacyIndexWrite().nodeLegacyIndexSetConfiguration( statement, indexName, key, value );
}
@Override
public String relationshipLegacyIndexSetConfiguration( String indexName, String key, String value )
throws LegacyIndexNotFoundKernelException
{
statement.assertOpen();
return legacyIndexWrite().relationshipLegacyIndexSetConfiguration( statement, indexName, key, value );
}
@Override
public String nodeLegacyIndexRemoveConfiguration( String indexName, String key )
throws LegacyIndexNotFoundKernelException
{
statement.assertOpen();
return legacyIndexWrite().nodeLegacyIndexRemoveConfiguration( statement, indexName, key );
}
@Override
public String relationshipLegacyIndexRemoveConfiguration( String indexName, String key )
throws LegacyIndexNotFoundKernelException
{
statement.assertOpen();
return legacyIndexWrite().relationshipLegacyIndexRemoveConfiguration( statement, indexName, key );
}
@Override
public String[] nodeLegacyIndexesGetAll()
{
statement.assertOpen();
return legacyIndexRead().nodeLegacyIndexesGetAll( statement );
}
@Override
public String[] relationshipLegacyIndexesGetAll()
{
statement.assertOpen();
return legacyIndexRead().relationshipLegacyIndexesGetAll( statement );
}
//
//
@Override
public long countsForNode( int labelId )
{
statement.assertOpen();
return counting().countsForNode( statement, labelId );
}
@Override
public long countsForRelationship( int startLabelId, int typeId, int endLabelId )
{
statement.assertOpen();
return counting().countsForRelationship( statement, startLabelId, typeId, endLabelId );
}
//
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy