diff --git a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/spi/v3_1/TransactionBoundQueryContext.scala b/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/spi/v3_1/TransactionBoundQueryContext.scala index d64793423a8f1..5e21567dcb2c4 100644 --- a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/spi/v3_1/TransactionBoundQueryContext.scala +++ b/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/spi/v3_1/TransactionBoundQueryContext.scala @@ -55,7 +55,7 @@ import org.neo4j.kernel.api.index.InternalIndexState import org.neo4j.kernel.api.proc.{QualifiedName => KernelQualifiedName} import org.neo4j.kernel.api.schema_new.IndexQuery import org.neo4j.kernel.api.schema_new.SchemaDescriptorFactory -import org.neo4j.kernel.api.schema_new.constaints.{ConstraintBoundary, ConstraintDescriptorFactory} +import org.neo4j.kernel.api.schema_new.constaints.{ConstraintBoundary, ConstraintDescriptor, ConstraintDescriptorFactory, UniquenessConstraintDescriptor} import org.neo4j.kernel.api.schema_new.index.NewIndexDescriptorFactory import org.neo4j.kernel.impl.core.NodeManager import org.neo4j.kernel.impl.locking.ResourceTypes diff --git a/community/kernel/src/main/java/org/neo4j/kernel/api/constraints/NodePropertyConstraint.java b/community/kernel/src/main/java/org/neo4j/kernel/api/constraints/NodePropertyConstraint.java index ff515b70409c0..2652aa84876c7 100644 --- a/community/kernel/src/main/java/org/neo4j/kernel/api/constraints/NodePropertyConstraint.java +++ b/community/kernel/src/main/java/org/neo4j/kernel/api/constraints/NodePropertyConstraint.java @@ -21,10 +21,14 @@ import org.neo4j.kernel.api.TokenNameLookup; import org.neo4j.kernel.api.schema_new.LabelSchemaDescriptor; +import org.neo4j.kernel.api.schema_new.constaints.ConstraintDescriptor; /** * Base class describing property constraint on nodes. + * + * @deprecated use {@link ConstraintDescriptor} instead. */ +@Deprecated public abstract class NodePropertyConstraint implements PropertyConstraint { protected final LabelSchemaDescriptor descriptor; diff --git a/community/kernel/src/main/java/org/neo4j/kernel/api/constraints/NodePropertyExistenceConstraint.java b/community/kernel/src/main/java/org/neo4j/kernel/api/constraints/NodePropertyExistenceConstraint.java index 0aecf54ee65a0..15b9cdeb2122d 100644 --- a/community/kernel/src/main/java/org/neo4j/kernel/api/constraints/NodePropertyExistenceConstraint.java +++ b/community/kernel/src/main/java/org/neo4j/kernel/api/constraints/NodePropertyExistenceConstraint.java @@ -22,10 +22,14 @@ import org.neo4j.kernel.api.TokenNameLookup; import org.neo4j.kernel.api.exceptions.schema.CreateConstraintFailureException; import org.neo4j.kernel.api.schema_new.LabelSchemaDescriptor; +import org.neo4j.kernel.api.schema_new.constaints.NodeExistenceConstraintDescriptor; /** * Description of constraint enforcing nodes to contain a certain property. + * + * @deprecated use {@link NodeExistenceConstraintDescriptor} instead. */ +@Deprecated public class NodePropertyExistenceConstraint extends NodePropertyConstraint { public NodePropertyExistenceConstraint( LabelSchemaDescriptor descriptor ) diff --git a/community/kernel/src/main/java/org/neo4j/kernel/api/constraints/PropertyConstraint.java b/community/kernel/src/main/java/org/neo4j/kernel/api/constraints/PropertyConstraint.java index c45d381933624..d8315669476e6 100644 --- a/community/kernel/src/main/java/org/neo4j/kernel/api/constraints/PropertyConstraint.java +++ b/community/kernel/src/main/java/org/neo4j/kernel/api/constraints/PropertyConstraint.java @@ -22,10 +22,14 @@ import org.neo4j.kernel.api.TokenNameLookup; import org.neo4j.kernel.api.exceptions.schema.CreateConstraintFailureException; import org.neo4j.kernel.api.schema_new.SchemaDescriptor; +import org.neo4j.kernel.api.schema_new.constaints.ConstraintDescriptor; /** * Interface describing a property constraint. + * + * @deprecated use {@link ConstraintDescriptor} instead. */ +@Deprecated public interface PropertyConstraint { interface ChangeVisitor diff --git a/community/kernel/src/main/java/org/neo4j/kernel/api/constraints/RelationshipPropertyConstraint.java b/community/kernel/src/main/java/org/neo4j/kernel/api/constraints/RelationshipPropertyConstraint.java index 1cffbe90fe916..624527b7866ef 100644 --- a/community/kernel/src/main/java/org/neo4j/kernel/api/constraints/RelationshipPropertyConstraint.java +++ b/community/kernel/src/main/java/org/neo4j/kernel/api/constraints/RelationshipPropertyConstraint.java @@ -21,10 +21,14 @@ import org.neo4j.kernel.api.schema_new.RelationTypeSchemaDescriptor; import org.neo4j.kernel.api.schema_new.SchemaDescriptor; +import org.neo4j.kernel.api.schema_new.constaints.ConstraintDescriptor; /** * Base class describing property constraint on relationships. + * + * @deprecated use {@link ConstraintDescriptor} instead. */ +@Deprecated public abstract class RelationshipPropertyConstraint implements PropertyConstraint { protected final RelationTypeSchemaDescriptor descriptor; diff --git a/community/kernel/src/main/java/org/neo4j/kernel/api/constraints/RelationshipPropertyExistenceConstraint.java b/community/kernel/src/main/java/org/neo4j/kernel/api/constraints/RelationshipPropertyExistenceConstraint.java index 9c1fab30b472e..56e19573c5802 100644 --- a/community/kernel/src/main/java/org/neo4j/kernel/api/constraints/RelationshipPropertyExistenceConstraint.java +++ b/community/kernel/src/main/java/org/neo4j/kernel/api/constraints/RelationshipPropertyExistenceConstraint.java @@ -22,10 +22,14 @@ import org.neo4j.kernel.api.TokenNameLookup; import org.neo4j.kernel.api.exceptions.schema.CreateConstraintFailureException; import org.neo4j.kernel.api.schema_new.RelationTypeSchemaDescriptor; +import org.neo4j.kernel.api.schema_new.constaints.RelExistenceConstraintDescriptor; /** * Description of constraint enforcing relationships to contain a certain property. + * + * @deprecated use {@link RelExistenceConstraintDescriptor} instead. */ +@Deprecated public class RelationshipPropertyExistenceConstraint extends RelationshipPropertyConstraint { public RelationshipPropertyExistenceConstraint( RelationTypeSchemaDescriptor descriptor ) diff --git a/community/kernel/src/main/java/org/neo4j/kernel/api/constraints/UniquenessConstraint.java b/community/kernel/src/main/java/org/neo4j/kernel/api/constraints/UniquenessConstraint.java index f6797c00de308..f84f96efc8a3e 100644 --- a/community/kernel/src/main/java/org/neo4j/kernel/api/constraints/UniquenessConstraint.java +++ b/community/kernel/src/main/java/org/neo4j/kernel/api/constraints/UniquenessConstraint.java @@ -21,12 +21,16 @@ import org.neo4j.kernel.api.TokenNameLookup; import org.neo4j.kernel.api.schema_new.LabelSchemaDescriptor; +import org.neo4j.kernel.api.schema_new.constaints.UniquenessConstraintDescriptor; import org.neo4j.kernel.api.schema_new.index.NewIndexDescriptor; import org.neo4j.kernel.api.schema_new.index.NewIndexDescriptorFactory; /** * Description of uniqueness constraint over nodes given a label and a property key id. + * + * @deprecated use {@link UniquenessConstraintDescriptor} instead. */ +@Deprecated public class UniquenessConstraint extends NodePropertyConstraint { public UniquenessConstraint( LabelSchemaDescriptor descriptor ) diff --git a/community/kernel/src/main/java/org/neo4j/kernel/api/exceptions/schema/AlreadyConstrainedException.java b/community/kernel/src/main/java/org/neo4j/kernel/api/exceptions/schema/AlreadyConstrainedException.java index d95acc0100f08..0866ebdb7d85d 100644 --- a/community/kernel/src/main/java/org/neo4j/kernel/api/exceptions/schema/AlreadyConstrainedException.java +++ b/community/kernel/src/main/java/org/neo4j/kernel/api/exceptions/schema/AlreadyConstrainedException.java @@ -20,9 +20,9 @@ package org.neo4j.kernel.api.exceptions.schema; import org.neo4j.kernel.api.TokenNameLookup; -import org.neo4j.kernel.api.constraints.NodePropertyConstraint; -import org.neo4j.kernel.api.constraints.PropertyConstraint; import org.neo4j.kernel.api.exceptions.Status; +import org.neo4j.kernel.api.schema_new.LabelSchemaDescriptor; +import org.neo4j.kernel.api.schema_new.constaints.ConstraintDescriptor; import static java.lang.String.format; @@ -35,30 +35,31 @@ public class AlreadyConstrainedException extends SchemaKernelException private static final String INDEX_CONTEXT_FORMAT = "Label '%s' and property '%s' have a unique constraint defined on them, so an index is " + "already created that matches this."; - private final PropertyConstraint constraint; + private final ConstraintDescriptor constraint; private final OperationContext context; - public AlreadyConstrainedException( PropertyConstraint constraint, OperationContext context, TokenNameLookup tokenNameLookup ) + public AlreadyConstrainedException( ConstraintDescriptor constraint, OperationContext context, + TokenNameLookup tokenNameLookup ) { super( Status.Schema.ConstraintAlreadyExists, constructUserMessage( context, tokenNameLookup, constraint ) ); this.constraint = constraint; this.context = context; } - public PropertyConstraint constraint() + public ConstraintDescriptor constraint() { return constraint; } - private static String constructUserMessage( OperationContext context, TokenNameLookup tokenNameLookup, PropertyConstraint constraint ) + private static String constructUserMessage( OperationContext context, TokenNameLookup tokenNameLookup, + ConstraintDescriptor constraint ) { switch ( context ) { case INDEX_CREATION: // is is safe to cast here because we only support indexes on nodes atm - NodePropertyConstraint nodePropertyConstraint = (NodePropertyConstraint) constraint; return messageWithLabelAndPropertyName( tokenNameLookup, INDEX_CONTEXT_FORMAT, - nodePropertyConstraint.descriptor() ); + (LabelSchemaDescriptor) constraint.schema() ); case CONSTRAINT_CREATION: return ALREADY_CONSTRAINED_MESSAGE_PREFIX + constraint.userDescription( tokenNameLookup ); diff --git a/community/kernel/src/main/java/org/neo4j/kernel/api/exceptions/schema/DropConstraintFailureException.java b/community/kernel/src/main/java/org/neo4j/kernel/api/exceptions/schema/DropConstraintFailureException.java index 7bb589981f981..03fbb637ee752 100644 --- a/community/kernel/src/main/java/org/neo4j/kernel/api/exceptions/schema/DropConstraintFailureException.java +++ b/community/kernel/src/main/java/org/neo4j/kernel/api/exceptions/schema/DropConstraintFailureException.java @@ -20,21 +20,21 @@ package org.neo4j.kernel.api.exceptions.schema; import org.neo4j.kernel.api.TokenNameLookup; -import org.neo4j.kernel.api.constraints.PropertyConstraint; import org.neo4j.kernel.api.exceptions.KernelException; import org.neo4j.kernel.api.exceptions.Status; +import org.neo4j.kernel.api.schema_new.constaints.ConstraintDescriptor; public class DropConstraintFailureException extends SchemaKernelException { - private final PropertyConstraint constraint; + private final ConstraintDescriptor constraint; - public DropConstraintFailureException( PropertyConstraint constraint, Throwable cause ) + public DropConstraintFailureException( ConstraintDescriptor constraint, Throwable cause ) { super( Status.Schema.ConstraintDropFailed, cause, "Unable to drop constraint %s: %s", constraint, cause.getMessage() ); this.constraint = constraint; } - public PropertyConstraint constraint() + public ConstraintDescriptor constraint() { return constraint; } diff --git a/community/kernel/src/main/java/org/neo4j/kernel/api/exceptions/schema/NoSuchConstraintException.java b/community/kernel/src/main/java/org/neo4j/kernel/api/exceptions/schema/NoSuchConstraintException.java index 9be3499cba634..826a634d54999 100644 --- a/community/kernel/src/main/java/org/neo4j/kernel/api/exceptions/schema/NoSuchConstraintException.java +++ b/community/kernel/src/main/java/org/neo4j/kernel/api/exceptions/schema/NoSuchConstraintException.java @@ -20,17 +20,17 @@ package org.neo4j.kernel.api.exceptions.schema; import org.neo4j.kernel.api.TokenNameLookup; -import org.neo4j.kernel.api.constraints.PropertyConstraint; import org.neo4j.kernel.api.exceptions.Status; +import org.neo4j.kernel.api.schema_new.constaints.ConstraintDescriptor; import static java.lang.String.format; public class NoSuchConstraintException extends SchemaKernelException { - private final PropertyConstraint constraint; + private final ConstraintDescriptor constraint; private static final String message = "No such constraint %s."; - public NoSuchConstraintException( PropertyConstraint constraint ) + public NoSuchConstraintException( ConstraintDescriptor constraint ) { super( Status.Schema.ConstraintNotFound, format( message, constraint ) ); this.constraint = constraint; diff --git a/community/kernel/src/main/java/org/neo4j/kernel/api/schema_new/constaints/ConstraintBoundary.java b/community/kernel/src/main/java/org/neo4j/kernel/api/schema_new/constaints/ConstraintBoundary.java index 507e7e6cf9c61..6f023f53142d7 100644 --- a/community/kernel/src/main/java/org/neo4j/kernel/api/schema_new/constaints/ConstraintBoundary.java +++ b/community/kernel/src/main/java/org/neo4j/kernel/api/schema_new/constaints/ConstraintBoundary.java @@ -19,9 +19,6 @@ */ package org.neo4j.kernel.api.schema_new.constaints; -import java.util.Iterator; - -import org.neo4j.helpers.collection.Iterators; import org.neo4j.kernel.api.constraints.NodePropertyConstraint; import org.neo4j.kernel.api.constraints.NodePropertyExistenceConstraint; import org.neo4j.kernel.api.constraints.PropertyConstraint; @@ -59,37 +56,6 @@ public static RelationshipPropertyConstraint mapRelationship( ConstraintDescript .computeWith( new BoundaryTransformer( descriptor ) ); } - public static ConstraintDescriptor map( PropertyConstraint constraint ) - { - if ( constraint instanceof UniquenessConstraint ) - { - UniquenessConstraint c = (UniquenessConstraint) constraint; - return ConstraintDescriptorFactory.uniqueForSchema( c.descriptor() ); - } - if ( constraint instanceof NodePropertyExistenceConstraint ) - { - NodePropertyExistenceConstraint c = (NodePropertyExistenceConstraint) constraint; - return ConstraintDescriptorFactory.existsForSchema( c.descriptor() ); - } - if ( constraint instanceof RelationshipPropertyExistenceConstraint ) - { - RelationshipPropertyExistenceConstraint c = (RelationshipPropertyExistenceConstraint) constraint; - return ConstraintDescriptorFactory.existsForSchema( c.descriptor() ); - } - throw new IllegalStateException( "Unknown constraint type "+ constraint.getClass().getSimpleName() ); - } - - public static Iterator mapToNew( - Iterator constraints ) - { - return Iterators.map( ConstraintBoundary::map, constraints ); - } - - public static Iterator map( Iterator constraints ) - { - return Iterators.map( ConstraintBoundary::map, constraints ); - } - private static class BoundaryTransformer implements SchemaComputer { private final ConstraintDescriptor descriptor; diff --git a/community/kernel/src/main/java/org/neo4j/kernel/builtinprocs/SchemaProcedure.java b/community/kernel/src/main/java/org/neo4j/kernel/builtinprocs/SchemaProcedure.java index 07ab24e584787..c28ae08bee0e1 100644 --- a/community/kernel/src/main/java/org/neo4j/kernel/builtinprocs/SchemaProcedure.java +++ b/community/kernel/src/main/java/org/neo4j/kernel/builtinprocs/SchemaProcedure.java @@ -42,7 +42,6 @@ import org.neo4j.kernel.api.ReadOperations; import org.neo4j.kernel.api.Statement; import org.neo4j.kernel.api.StatementTokenNameLookup; -import org.neo4j.kernel.api.constraints.PropertyConstraint; import org.neo4j.kernel.api.schema_new.constaints.ConstraintBoundary; import org.neo4j.kernel.api.schema_new.constaints.ConstraintDescriptor; import org.neo4j.kernel.api.schema_new.index.NewIndexDescriptor; @@ -97,8 +96,8 @@ public GraphResult buildSchemaGraph() ArrayList constraints = new ArrayList<>(); while ( nodePropertyConstraintIterator.hasNext() ) { - PropertyConstraint constraint = ConstraintBoundary.map( nodePropertyConstraintIterator.next() ); - constraints.add(constraint.userDescription( statementTokenNameLookup ) ); + ConstraintDescriptor constraint = nodePropertyConstraintIterator.next(); + constraints.add(constraint.prettyPrint( statementTokenNameLookup ) ); } properties.put( "constraints", constraints ); diff --git a/community/kernel/src/main/java/org/neo4j/kernel/impl/api/DataIntegrityValidatingStatementOperations.java b/community/kernel/src/main/java/org/neo4j/kernel/impl/api/DataIntegrityValidatingStatementOperations.java index c1df58e187c1a..baba04770645f 100644 --- a/community/kernel/src/main/java/org/neo4j/kernel/impl/api/DataIntegrityValidatingStatementOperations.java +++ b/community/kernel/src/main/java/org/neo4j/kernel/impl/api/DataIntegrityValidatingStatementOperations.java @@ -23,7 +23,6 @@ import org.neo4j.kernel.api.Statement; import org.neo4j.kernel.api.StatementTokenNameLookup; -import org.neo4j.kernel.api.constraints.UniquenessConstraint; import org.neo4j.kernel.api.exceptions.schema.AlreadyConstrainedException; import org.neo4j.kernel.api.exceptions.schema.AlreadyIndexedException; import org.neo4j.kernel.api.exceptions.schema.CreateConstraintFailureException; @@ -199,7 +198,7 @@ public void constraintDrop( KernelStatement state, ConstraintDescriptor descript } catch ( NoSuchConstraintException e ) { - throw new DropConstraintFailureException( ConstraintBoundary.map( descriptor ), e ); + throw new DropConstraintFailureException( descriptor , e ); } schemaWriteDelegate.constraintDrop( state, descriptor ); } @@ -213,9 +212,8 @@ private void assertIndexDoesNotExist( KernelStatement state, OperationContext co { if ( existingIndex.type() == UNIQUE ) { - throw new AlreadyConstrainedException( - new UniquenessConstraint( descriptor ), context, - new StatementTokenNameLookup( state.readOperations() ) ); + throw new AlreadyConstrainedException( ConstraintDescriptorFactory.uniqueForSchema( descriptor ), + context, new StatementTokenNameLookup( state.readOperations() ) ); } throw new AlreadyIndexedException( descriptor, context ); } @@ -235,8 +233,8 @@ private void assertConstraintDoesNotExist( KernelStatement state, ConstraintDesc { if ( schemaReadDelegate.constraintExists( state, constraint ) ) { - throw new AlreadyConstrainedException( ConstraintBoundary.map( constraint ), - OperationContext.CONSTRAINT_CREATION, new StatementTokenNameLookup( state.readOperations() ) ); + throw new AlreadyConstrainedException( constraint, OperationContext.CONSTRAINT_CREATION, + new StatementTokenNameLookup( state.readOperations() ) ); } } @@ -245,7 +243,7 @@ private void assertConstraintExists( KernelStatement state, ConstraintDescriptor { if ( !schemaReadDelegate.constraintExists( state, constraint ) ) { - throw new NoSuchConstraintException( ConstraintBoundary.map( constraint ) ); + throw new NoSuchConstraintException( constraint ); } } diff --git a/community/kernel/src/main/java/org/neo4j/kernel/impl/api/operations/SchemaReadOperations.java b/community/kernel/src/main/java/org/neo4j/kernel/impl/api/operations/SchemaReadOperations.java index eaee17dffc7e0..a109cad5bf022 100644 --- a/community/kernel/src/main/java/org/neo4j/kernel/impl/api/operations/SchemaReadOperations.java +++ b/community/kernel/src/main/java/org/neo4j/kernel/impl/api/operations/SchemaReadOperations.java @@ -22,9 +22,6 @@ import java.util.Iterator; import org.neo4j.kernel.api.Statement; -import org.neo4j.kernel.api.constraints.NodePropertyConstraint; -import org.neo4j.kernel.api.constraints.PropertyConstraint; -import org.neo4j.kernel.api.constraints.RelationshipPropertyConstraint; import org.neo4j.kernel.api.exceptions.index.IndexNotFoundKernelException; import org.neo4j.kernel.api.exceptions.schema.SchemaRuleNotFoundException; import org.neo4j.kernel.api.index.InternalIndexState; @@ -89,8 +86,7 @@ PopulationProgress indexGetPopulationProgress( KernelStatement state, NewIndexDe String indexGetFailure( Statement state, NewIndexDescriptor descriptor ) throws IndexNotFoundKernelException; /** - * Get all constraints applicable to label and propertyKeys. There are only {@link NodePropertyConstraint} - * for the time being. + * Get all constraints applicable to label and propertyKeys. */ Iterator constraintsGetForSchema( KernelStatement state, SchemaDescriptor descriptor ); @@ -100,20 +96,17 @@ PopulationProgress indexGetPopulationProgress( KernelStatement state, NewIndexDe boolean constraintExists( KernelStatement state, ConstraintDescriptor descriptor ); /** - * Get all constraints applicable to label. There are only {@link NodePropertyConstraint} - * for the time being. + * Get all constraints applicable to label. */ Iterator constraintsGetForLabel( KernelStatement state, int labelId ); /** - * Get all constraints applicable to relationship type. There are only {@link RelationshipPropertyConstraint} - * for the time being. + * Get all constraints applicable to relationship type. */ Iterator constraintsGetForRelationshipType( KernelStatement state, int typeId ); /** - * Get all constraints. There are only {@link PropertyConstraint} - * for the time being. + * Get all constraints. */ Iterator constraintsGetAll( KernelStatement state ); diff --git a/community/kernel/src/main/java/org/neo4j/kernel/impl/coreapi/schema/SchemaImpl.java b/community/kernel/src/main/java/org/neo4j/kernel/impl/coreapi/schema/SchemaImpl.java index aae4c6d552acf..e050ac7d3cc18 100644 --- a/community/kernel/src/main/java/org/neo4j/kernel/impl/coreapi/schema/SchemaImpl.java +++ b/community/kernel/src/main/java/org/neo4j/kernel/impl/coreapi/schema/SchemaImpl.java @@ -20,6 +20,7 @@ package org.neo4j.kernel.impl.coreapi.schema; import java.util.ArrayList; +import java.util.Arrays; import java.util.Collection; import java.util.Iterator; import java.util.List; @@ -42,11 +43,6 @@ import org.neo4j.kernel.api.Statement; import org.neo4j.kernel.api.StatementTokenNameLookup; import org.neo4j.kernel.api.TokenWriteOperations; -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.RelationshipPropertyExistenceConstraint; -import org.neo4j.kernel.api.constraints.UniquenessConstraint; import org.neo4j.kernel.api.exceptions.InvalidTransactionTypeKernelException; import org.neo4j.kernel.api.exceptions.KernelException; import org.neo4j.kernel.api.exceptions.LabelNotFoundKernelException; @@ -65,9 +61,11 @@ import org.neo4j.kernel.api.schema_new.LabelSchemaDescriptor; import org.neo4j.kernel.api.schema_new.RelationTypeSchemaDescriptor; import org.neo4j.kernel.api.schema_new.SchemaDescriptorFactory; -import org.neo4j.kernel.api.schema_new.constaints.ConstraintBoundary; import org.neo4j.kernel.api.schema_new.constaints.ConstraintDescriptor; import org.neo4j.kernel.api.schema_new.constaints.ConstraintDescriptorFactory; +import org.neo4j.kernel.api.schema_new.constaints.NodeExistenceConstraintDescriptor; +import org.neo4j.kernel.api.schema_new.constaints.RelExistenceConstraintDescriptor; +import org.neo4j.kernel.api.schema_new.constaints.UniquenessConstraintDescriptor; import org.neo4j.kernel.api.schema_new.index.NewIndexDescriptor; import org.neo4j.kernel.impl.api.operations.KeyReadOperations; import org.neo4j.storageengine.api.schema.PopulationProgress; @@ -82,7 +80,6 @@ import static org.neo4j.helpers.collection.Iterators.asCollection; import static org.neo4j.helpers.collection.Iterators.map; import static org.neo4j.kernel.impl.coreapi.schema.PropertyNameUtils.getOrCreatePropertyKeyIds; -import static org.neo4j.kernel.impl.coreapi.schema.PropertyNameUtils.getPropertyKeys; public class SchemaImpl implements Schema { @@ -360,41 +357,41 @@ private Iterable asConstraintDefinitions( Iterator IMPORTS = Arrays.asList( - UniquenessConstraint.class.getCanonicalName(), + ConstraintDescriptorFactory.class.getCanonicalName(), + UniquenessConstraintDescriptor.class.getCanonicalName(), + RelExistenceConstraintDescriptor.class.getCanonicalName(), + NodeExistenceConstraintDescriptor.class.getCanonicalName(), LabelSchemaDescriptor.class.getCanonicalName(), SchemaDescriptorFactory.class.getCanonicalName(), NewIndexDescriptor.class.getCanonicalName(), @@ -107,25 +111,24 @@ else if ( arg instanceof LabelSchemaDescriptor ) builder.append( format( "SchemaDescriptorFactory.forLabel( %d, %s )", labelId, asString( descriptor.getPropertyIds() ) ) ); } - else if ( arg instanceof UniquenessConstraint ) + else if ( arg instanceof UniquenessConstraintDescriptor ) { - UniquenessConstraint constraint = (UniquenessConstraint) arg; - int labelId = constraint.label(); - builder.append( format( "new UniquenessConstraint( SchemaDescriptorFactory.forLabel( %d, %s ) )", labelId, - asString( constraint.descriptor().getPropertyIds() ) ) ); + UniquenessConstraintDescriptor constraint = (UniquenessConstraintDescriptor) arg; + int labelId = constraint.schema().getLabelId(); + builder.append( format( "ConstraintDescriptorFactory.uniqueForLabel( %d, %s )", + labelId, + asString( constraint.schema().getPropertyIds() ) ) ); } - else if ( arg instanceof NodePropertyExistenceConstraint ) + else if ( arg instanceof NodeExistenceConstraintDescriptor ) { - NodePropertyExistenceConstraint constraint = (NodePropertyExistenceConstraint) arg; - int labelId = constraint.label(); + NodeExistenceConstraintDescriptor constraint = (NodeExistenceConstraintDescriptor) arg; + int labelId = constraint.schema().getLabelId(); builder.append( format( "new NodePropertyExistenceConstraint( SchemaDescriptorFactory.forLabel( %d, %s ) )", - labelId, asString( constraint.descriptor().getPropertyIds() ) ) ); + labelId, asString( constraint.schema().getPropertyIds() ) ) ); } - else if ( arg instanceof RelationshipPropertyExistenceConstraint ) + else if ( arg instanceof RelExistenceConstraintDescriptor ) { - RelationTypeSchemaDescriptor descriptor = (RelationTypeSchemaDescriptor) ( - (RelationshipPropertyExistenceConstraint) arg) - .descriptor(); + RelationTypeSchemaDescriptor descriptor = ((RelExistenceConstraintDescriptor) arg).schema(); int relTypeId = descriptor.getRelTypeId(); builder.append( format( "new RelationshipPropertyExistenceConstraint( SchemaDescriptorFactory.forLabel( %d, %s ) )", diff --git a/community/kernel/src/main/java/org/neo4j/kernel/impl/util/dbstructure/DbStructureCollector.java b/community/kernel/src/main/java/org/neo4j/kernel/impl/util/dbstructure/DbStructureCollector.java index 5fc50f31493ac..2e14f78acc329 100644 --- a/community/kernel/src/main/java/org/neo4j/kernel/impl/util/dbstructure/DbStructureCollector.java +++ b/community/kernel/src/main/java/org/neo4j/kernel/impl/util/dbstructure/DbStructureCollector.java @@ -27,11 +27,11 @@ import org.neo4j.helpers.collection.Iterators; import org.neo4j.helpers.collection.Pair; -import org.neo4j.kernel.api.constraints.NodePropertyExistenceConstraint; -import org.neo4j.kernel.api.constraints.RelationshipPropertyExistenceConstraint; -import org.neo4j.kernel.api.constraints.UniquenessConstraint; import org.neo4j.kernel.api.schema_new.LabelSchemaDescriptor; import org.neo4j.kernel.api.schema_new.SchemaDescriptorFactory; +import org.neo4j.kernel.api.schema_new.constaints.NodeExistenceConstraintDescriptor; +import org.neo4j.kernel.api.schema_new.constaints.RelExistenceConstraintDescriptor; +import org.neo4j.kernel.api.schema_new.constaints.UniquenessConstraintDescriptor; import org.neo4j.kernel.api.schema_new.index.NewIndexDescriptor; import static java.lang.String.format; @@ -43,9 +43,9 @@ public class DbStructureCollector implements DbStructureVisitor private final TokenMap relationshipTypes = new TokenMap( "relationship types" ); private final IndexDescriptorMap regularIndices = new IndexDescriptorMap( "regular" ); private final IndexDescriptorMap uniqueIndices = new IndexDescriptorMap( "unique" ); - private final Set uniquenessConstraints = new HashSet<>(); - private final Set nodePropertyExistenceConstraints = new HashSet<>(); - private final Set relPropertyExistenceConstraints = new HashSet<>(); + private final Set uniquenessConstraints = new HashSet<>(); + private final Set nodePropertyExistenceConstraints = new HashSet<>(); + private final Set relPropertyExistenceConstraints = new HashSet<>(); private final Map nodeCounts = new HashMap<>(); private final Map relCounts = new HashMap<>(); private long allNodesCount = -1L; @@ -89,8 +89,8 @@ public Iterator> knownUniqueConstraints() { //TODO: Add support for composite indexes return Iterators.map( uniquenessConstraint -> { - String label = labels.byIdOrFail( uniquenessConstraint.label() ); - String propertyKey = propertyKeys.byIdOrFail( uniquenessConstraint.descriptor().getPropertyId() ); + String label = labels.byIdOrFail( uniquenessConstraint.schema().getLabelId() ); + String propertyKey = propertyKeys.byIdOrFail( uniquenessConstraint.schema().getPropertyId() ); return Pair.of( label, propertyKey ); }, uniquenessConstraints.iterator() ); } @@ -100,8 +100,8 @@ public Iterator> knownNodePropertyExistenceConstraints() { //TODO: Add support for composite indexes return Iterators.map( uniquenessConstraint -> { - String label = labels.byIdOrFail( uniquenessConstraint.label() ); - String propertyKey = propertyKeys.byIdOrFail( uniquenessConstraint.descriptor().getPropertyId() ); + String label = labels.byIdOrFail( uniquenessConstraint.schema().getLabelId() ); + String propertyKey = propertyKeys.byIdOrFail( uniquenessConstraint.schema().getPropertyId() ); return Pair.of( label, propertyKey ); }, nodePropertyExistenceConstraints.iterator() ); } @@ -181,7 +181,7 @@ public void visitUniqueIndex( NewIndexDescriptor descriptor, String userDescript } @Override - public void visitUniqueConstraint( UniquenessConstraint constraint, String userDescription ) + public void visitUniqueConstraint( UniquenessConstraintDescriptor constraint, String userDescription ) { if ( !uniquenessConstraints.add( constraint ) ) { @@ -192,7 +192,8 @@ public void visitUniqueConstraint( UniquenessConstraint constraint, String userD } @Override - public void visitNodePropertyExistenceConstraint( NodePropertyExistenceConstraint constraint, String userDescription ) + public void visitNodePropertyExistenceConstraint( NodeExistenceConstraintDescriptor constraint, + String userDescription ) { if ( !nodePropertyExistenceConstraints.add( constraint ) ) { @@ -203,7 +204,8 @@ public void visitNodePropertyExistenceConstraint( NodePropertyExistenceConstrain } @Override - public void visitRelationshipPropertyExistenceConstraint( RelationshipPropertyExistenceConstraint constraint, String userDescription ) + public void visitRelationshipPropertyExistenceConstraint( RelExistenceConstraintDescriptor constraint, + String userDescription ) { if ( !relPropertyExistenceConstraints.add( constraint ) ) { diff --git a/community/kernel/src/main/java/org/neo4j/kernel/impl/util/dbstructure/DbStructureVisitor.java b/community/kernel/src/main/java/org/neo4j/kernel/impl/util/dbstructure/DbStructureVisitor.java index f3c1afbfb7d12..af8df9df2a166 100644 --- a/community/kernel/src/main/java/org/neo4j/kernel/impl/util/dbstructure/DbStructureVisitor.java +++ b/community/kernel/src/main/java/org/neo4j/kernel/impl/util/dbstructure/DbStructureVisitor.java @@ -19,9 +19,9 @@ */ package org.neo4j.kernel.impl.util.dbstructure; -import org.neo4j.kernel.api.constraints.NodePropertyExistenceConstraint; -import org.neo4j.kernel.api.constraints.RelationshipPropertyExistenceConstraint; -import org.neo4j.kernel.api.constraints.UniquenessConstraint; +import org.neo4j.kernel.api.schema_new.constaints.NodeExistenceConstraintDescriptor; +import org.neo4j.kernel.api.schema_new.constaints.RelExistenceConstraintDescriptor; +import org.neo4j.kernel.api.schema_new.constaints.UniquenessConstraintDescriptor; import org.neo4j.kernel.api.schema_new.index.NewIndexDescriptor; public interface DbStructureVisitor @@ -33,9 +33,9 @@ public interface DbStructureVisitor void visitIndex( NewIndexDescriptor descriptor, String userDescription, double uniqueValuesPercentage, long size ); void visitUniqueIndex( NewIndexDescriptor descriptor, String userDescription, double uniqueValuesPercentage, long size ); - void visitUniqueConstraint( UniquenessConstraint constraint, String userDescription ); - void visitNodePropertyExistenceConstraint( NodePropertyExistenceConstraint constraint, String userDescription ); - void visitRelationshipPropertyExistenceConstraint( RelationshipPropertyExistenceConstraint constraint, + void visitUniqueConstraint( UniquenessConstraintDescriptor constraint, String userDescription ); + void visitNodePropertyExistenceConstraint( NodeExistenceConstraintDescriptor constraint, String userDescription ); + void visitRelationshipPropertyExistenceConstraint( RelExistenceConstraintDescriptor constraint, String userDescription ); void visitAllNodesCount( long nodeCount ); diff --git a/community/kernel/src/main/java/org/neo4j/kernel/impl/util/dbstructure/GraphDbStructureGuide.java b/community/kernel/src/main/java/org/neo4j/kernel/impl/util/dbstructure/GraphDbStructureGuide.java index 2282a4bb5bbf8..bdd3560bebb40 100644 --- a/community/kernel/src/main/java/org/neo4j/kernel/impl/util/dbstructure/GraphDbStructureGuide.java +++ b/community/kernel/src/main/java/org/neo4j/kernel/impl/util/dbstructure/GraphDbStructureGuide.java @@ -31,14 +31,12 @@ import org.neo4j.kernel.api.Statement; import org.neo4j.kernel.api.StatementTokenNameLookup; import org.neo4j.kernel.api.TokenNameLookup; -import org.neo4j.kernel.api.constraints.NodePropertyExistenceConstraint; -import org.neo4j.kernel.api.constraints.PropertyConstraint; -import org.neo4j.kernel.api.constraints.RelationshipPropertyExistenceConstraint; -import org.neo4j.kernel.api.constraints.UniquenessConstraint; import org.neo4j.kernel.api.exceptions.KernelException; import org.neo4j.kernel.api.exceptions.index.IndexNotFoundKernelException; -import org.neo4j.kernel.api.schema_new.constaints.ConstraintBoundary; import org.neo4j.kernel.api.schema_new.constaints.ConstraintDescriptor; +import org.neo4j.kernel.api.schema_new.constaints.NodeExistenceConstraintDescriptor; +import org.neo4j.kernel.api.schema_new.constaints.RelExistenceConstraintDescriptor; +import org.neo4j.kernel.api.schema_new.constaints.UniquenessConstraintDescriptor; import org.neo4j.kernel.api.schema_new.index.NewIndexDescriptor; import org.neo4j.kernel.impl.core.ThreadToStatementContextBridge; import org.neo4j.kernel.internal.GraphDatabaseAPI; @@ -168,21 +166,21 @@ private void showUniqueConstraints( DbStructureVisitor visitor, ReadOperations r Iterator constraints = read.constraintsGetAll(); while ( constraints.hasNext() ) { - PropertyConstraint constraint = ConstraintBoundary.map( constraints.next() ); - String userDescription = constraint.userDescription( nameLookup ); + ConstraintDescriptor constraint = constraints.next(); + String userDescription = constraint.prettyPrint( nameLookup ); - if ( constraint instanceof UniquenessConstraint ) + if ( constraint instanceof UniquenessConstraintDescriptor ) { - visitor.visitUniqueConstraint( (UniquenessConstraint) constraint, userDescription ); + visitor.visitUniqueConstraint( (UniquenessConstraintDescriptor) constraint, userDescription ); } - else if ( constraint instanceof NodePropertyExistenceConstraint ) + else if ( constraint instanceof NodeExistenceConstraintDescriptor ) { - NodePropertyExistenceConstraint existenceConstraint = (NodePropertyExistenceConstraint) constraint; + NodeExistenceConstraintDescriptor existenceConstraint = (NodeExistenceConstraintDescriptor) constraint; visitor.visitNodePropertyExistenceConstraint( existenceConstraint, userDescription ); } - else if ( constraint instanceof RelationshipPropertyExistenceConstraint ) + else if ( constraint instanceof RelExistenceConstraintDescriptor ) { - RelationshipPropertyExistenceConstraint existenceConstraint = (RelationshipPropertyExistenceConstraint) constraint; + RelExistenceConstraintDescriptor existenceConstraint = (RelExistenceConstraintDescriptor) constraint; visitor.visitRelationshipPropertyExistenceConstraint( existenceConstraint, userDescription ); } else diff --git a/community/kernel/src/main/java/org/neo4j/unsafe/batchinsert/internal/BatchInserterImpl.java b/community/kernel/src/main/java/org/neo4j/unsafe/batchinsert/internal/BatchInserterImpl.java index 4f62e13f2ba99..dbc859eec7489 100644 --- a/community/kernel/src/main/java/org/neo4j/unsafe/batchinsert/internal/BatchInserterImpl.java +++ b/community/kernel/src/main/java/org/neo4j/unsafe/batchinsert/internal/BatchInserterImpl.java @@ -53,7 +53,6 @@ import org.neo4j.io.pagecache.PageCache; import org.neo4j.io.pagecache.tracing.PageCacheTracer; import org.neo4j.io.pagecache.tracing.cursor.PageCursorTracerSupplier; -import org.neo4j.kernel.api.constraints.UniquenessConstraint; import org.neo4j.kernel.api.exceptions.KernelException; import org.neo4j.kernel.api.exceptions.index.IndexEntryConflictException; import org.neo4j.kernel.api.exceptions.schema.AlreadyConstrainedException; @@ -71,6 +70,7 @@ import org.neo4j.kernel.api.schema_new.SchemaDescriptorFactory; import org.neo4j.kernel.api.schema_new.constaints.ConstraintDescriptor; import org.neo4j.kernel.api.schema_new.constaints.ConstraintDescriptorFactory; +import org.neo4j.kernel.api.schema_new.constaints.UniquenessConstraintDescriptor; import org.neo4j.kernel.api.schema_new.index.NewIndexDescriptor; import org.neo4j.kernel.api.schema_new.index.NewIndexDescriptorFactory; import org.neo4j.kernel.configuration.Config; @@ -550,25 +550,24 @@ public ConstraintCreator createDeferredConstraint( Label label ) return new BaseNodeConstraintCreator( new BatchSchemaActions(), label ); } - private void createUniquenessConstraintRule( UniquenessConstraint constraint ) + private void createUniquenessConstraintRule( LabelSchemaDescriptor schemaDescriptor ) { // TODO: Do not create duplicate index long indexRuleId = schemaStore.nextId(); long constraintRuleId = schemaStore.nextId(); - int propertyKeyId = constraint.indexDescriptor().schema().getPropertyId(); IndexRule indexRule = IndexRule.constraintIndexRule( indexRuleId, - NewIndexDescriptorFactory.uniqueForLabel( constraint.label(), propertyKeyId ), + NewIndexDescriptorFactory.uniqueForSchema( schemaDescriptor ), this.schemaIndexProviders.getDefaultProvider().getProviderDescriptor(), constraintRuleId ); ConstraintRule constraintRule = ConstraintRule.constraintRule( constraintRuleId, - ConstraintDescriptorFactory.uniqueForLabel( constraint.label(), propertyKeyId ), + ConstraintDescriptorFactory.uniqueForSchema( schemaDescriptor ), indexRuleId ); @@ -1124,7 +1123,7 @@ public ConstraintDefinition createPropertyUniquenessConstraint( IndexDefinition LabelSchemaDescriptor descriptor = SchemaDescriptorFactory.forLabel( labelId, propertyKeyIds ); validateUniquenessConstraintCanBeCreated( labelId, propertyKeyIds ); - createUniquenessConstraintRule( new UniquenessConstraint( descriptor ) ); + createUniquenessConstraintRule( descriptor ); return new UniquenessConstraintDefinition( this, indexDefinition ); } diff --git a/community/kernel/src/test/java/org/neo4j/kernel/builtinprocs/SchemaProcedureIT.java b/community/kernel/src/test/java/org/neo4j/kernel/builtinprocs/SchemaProcedureIT.java index a87912a6d3388..296817aeb0ab2 100644 --- a/community/kernel/src/test/java/org/neo4j/kernel/builtinprocs/SchemaProcedureIT.java +++ b/community/kernel/src/test/java/org/neo4j/kernel/builtinprocs/SchemaProcedureIT.java @@ -97,10 +97,10 @@ public void testLabelIndex() throws Throwable ArrayList nodes = (ArrayList) next[0]; assertTrue( nodes.size() == 1 ); assertThat( nodes.get( 0 ).getLabels(), contains( equalTo( Label.label( "Person" ) ) ) ); - assertEquals( nodes.get( 0 ).getAllProperties().get( "name" ), new String( "Person" ) ); - assertEquals( nodes.get( 0 ).getAllProperties().get( "indexes" ), Arrays.asList( "name" ) ); - assertEquals( nodes.get( 0 ).getAllProperties().get( "constraints" ), - Arrays.asList( "CONSTRAINT ON ( person:Person ) ASSERT person.age IS UNIQUE" ) ); + assertEquals( new String( "Person" ), nodes.get( 0 ).getAllProperties().get( "name" ) ); + assertEquals( Arrays.asList( "name" ), nodes.get( 0 ).getAllProperties().get( "indexes" ) ); + assertEquals( Arrays.asList( "CONSTRAINT ON ( person:Person ) ASSERT person.age IS UNIQUE" ), + nodes.get( 0 ).getAllProperties().get( "constraints" ) ); } } diff --git a/community/kernel/src/test/java/org/neo4j/kernel/impl/api/store/SchemaCacheTest.java b/community/kernel/src/test/java/org/neo4j/kernel/impl/api/store/SchemaCacheTest.java index 0387807080898..8ff653070bf1d 100644 --- a/community/kernel/src/test/java/org/neo4j/kernel/impl/api/store/SchemaCacheTest.java +++ b/community/kernel/src/test/java/org/neo4j/kernel/impl/api/store/SchemaCacheTest.java @@ -28,10 +28,8 @@ import org.neo4j.helpers.collection.Iterables; import org.neo4j.helpers.collection.Iterators; -import org.neo4j.kernel.api.constraints.PropertyConstraint; import org.neo4j.kernel.api.schema_new.LabelSchemaDescriptor; import org.neo4j.kernel.api.schema_new.SchemaDescriptorFactory; -import org.neo4j.kernel.api.schema_new.constaints.ConstraintBoundary; import org.neo4j.kernel.api.schema_new.constaints.ConstraintDescriptor; import org.neo4j.kernel.api.schema_new.constaints.ConstraintDescriptorFactory; import org.neo4j.kernel.api.schema_new.index.NewIndexDescriptor; diff --git a/community/kernel/src/test/java/org/neo4j/kernel/impl/util/dbstructure/CineastsDbStructure.java b/community/kernel/src/test/java/org/neo4j/kernel/impl/util/dbstructure/CineastsDbStructure.java index 3ca38e82ca8c7..a05ceb63241c0 100644 --- a/community/kernel/src/test/java/org/neo4j/kernel/impl/util/dbstructure/CineastsDbStructure.java +++ b/community/kernel/src/test/java/org/neo4j/kernel/impl/util/dbstructure/CineastsDbStructure.java @@ -20,9 +20,7 @@ package org.neo4j.kernel.impl.util.dbstructure; import org.neo4j.helpers.collection.Visitable; -import org.neo4j.kernel.api.constraints.UniquenessConstraint; -import org.neo4j.kernel.api.schema_new.LabelSchemaDescriptor; -import org.neo4j.kernel.api.schema_new.SchemaDescriptorFactory; +import org.neo4j.kernel.api.schema_new.constaints.ConstraintDescriptorFactory; import org.neo4j.kernel.api.schema_new.index.NewIndexDescriptorFactory; // @@ -84,7 +82,8 @@ public void accept( DbStructureVisitor visitor ) visitor.visitIndex( NewIndexDescriptorFactory.forLabel( 3, 5 ), ":Actor(name)", 1.0d, 44689L ); visitor.visitIndex( NewIndexDescriptorFactory.forLabel( 4, 5 ), ":Director(name)", 1.0d, 6010L ); visitor.visitUniqueIndex( NewIndexDescriptorFactory.forLabel( 2, 3 ), ":User(login)", 1.0d, 45L ); - visitor.visitUniqueConstraint( new UniquenessConstraint( SchemaDescriptorFactory.forLabel( 2, 3 ) ), "CONSTRAINT ON ( user:User ) ASSERT user.login IS UNIQUE" ); + visitor.visitUniqueConstraint( ConstraintDescriptorFactory.uniqueForLabel( 2, 3 ), + "CONSTRAINT ON ( " + "user:User ) ASSERT user.login IS UNIQUE" ); visitor.visitAllNodesCount( 63042L ); visitor.visitNodeCount( 0, "Movie", 12862L ); visitor.visitNodeCount( 1, "Person", 50179L ); diff --git a/community/kernel/src/test/java/org/neo4j/kernel/impl/util/dbstructure/DbStructureArgumentFormatterTest.java b/community/kernel/src/test/java/org/neo4j/kernel/impl/util/dbstructure/DbStructureArgumentFormatterTest.java index 3b4613c656b43..47d7a98a8efd6 100644 --- a/community/kernel/src/test/java/org/neo4j/kernel/impl/util/dbstructure/DbStructureArgumentFormatterTest.java +++ b/community/kernel/src/test/java/org/neo4j/kernel/impl/util/dbstructure/DbStructureArgumentFormatterTest.java @@ -23,9 +23,8 @@ import java.io.IOException; -import org.neo4j.kernel.api.constraints.UniquenessConstraint; -import org.neo4j.kernel.api.schema_new.LabelSchemaDescriptor; import org.neo4j.kernel.api.schema_new.SchemaDescriptorFactory; +import org.neo4j.kernel.api.schema_new.constaints.ConstraintDescriptorFactory; import org.neo4j.kernel.api.schema_new.index.NewIndexDescriptorFactory; import static org.junit.Assert.assertEquals; @@ -73,8 +72,8 @@ public void shouldFormatIndexDescriptors() @Test public void shouldFormatUniquenessConstraints() { - assertEquals( "new UniquenessConstraint( SchemaDescriptorFactory.forLabel( 23, 42 ) )", - formatArgument( new UniquenessConstraint( SchemaDescriptorFactory.forLabel( 23, 42 ) ) ) ); + assertEquals( "ConstraintDescriptorFactory.uniqueForLabel( 23, 42 ) )", formatArgument( + ConstraintDescriptorFactory.uniqueForSchema( SchemaDescriptorFactory.forLabel( 23, 42 ) ) ) ); } private String formatArgument( Object arg ) diff --git a/community/kernel/src/test/java/org/neo4j/kernel/impl/util/dbstructure/DbStructureCollectorTest.java b/community/kernel/src/test/java/org/neo4j/kernel/impl/util/dbstructure/DbStructureCollectorTest.java index 28d6b944e36fe..73822a916a183 100644 --- a/community/kernel/src/test/java/org/neo4j/kernel/impl/util/dbstructure/DbStructureCollectorTest.java +++ b/community/kernel/src/test/java/org/neo4j/kernel/impl/util/dbstructure/DbStructureCollectorTest.java @@ -22,8 +22,7 @@ import org.junit.Test; import org.neo4j.helpers.collection.Iterators; -import org.neo4j.kernel.api.constraints.UniquenessConstraint; -import org.neo4j.kernel.api.schema_new.SchemaDescriptorFactory; +import org.neo4j.kernel.api.schema_new.constaints.ConstraintDescriptorFactory; import org.neo4j.kernel.api.schema_new.index.NewIndexDescriptorFactory; import static java.util.Arrays.asList; @@ -44,8 +43,7 @@ public void collectsDbStructure() collector.visitRelationshipType( 1, "LIVES_IN" ); collector.visitRelationshipType( 2, "FRIEND" ); collector.visitUniqueIndex( NewIndexDescriptorFactory.forLabel( 1, 1 ), ":Person(name)", 1.0d, 1L ); - collector.visitUniqueConstraint( new UniquenessConstraint( SchemaDescriptorFactory.forLabel( 2, 1 ) ), - ":Person(name)" ); + collector.visitUniqueConstraint( ConstraintDescriptorFactory.uniqueForLabel( 2, 1 ), ":Person(name)" ); collector.visitIndex( NewIndexDescriptorFactory.forLabel( 2, 2 ), ":City(income)", 0.2d, 1L ); collector.visitAllNodesCount( 50 ); collector.visitNodeCount( 1, "Person", 20 ); diff --git a/community/kernel/src/test/java/org/neo4j/kernel/impl/util/dbstructure/DbStructureInvocationTracingAcceptanceTest.java b/community/kernel/src/test/java/org/neo4j/kernel/impl/util/dbstructure/DbStructureInvocationTracingAcceptanceTest.java index e3c6ee28e8f62..d9409cc936d84 100644 --- a/community/kernel/src/test/java/org/neo4j/kernel/impl/util/dbstructure/DbStructureInvocationTracingAcceptanceTest.java +++ b/community/kernel/src/test/java/org/neo4j/kernel/impl/util/dbstructure/DbStructureInvocationTracingAcceptanceTest.java @@ -45,9 +45,7 @@ import javax.tools.ToolProvider; import org.neo4j.helpers.collection.Visitable; -import org.neo4j.kernel.api.constraints.UniquenessConstraint; -import org.neo4j.kernel.api.schema_new.LabelSchemaDescriptor; -import org.neo4j.kernel.api.schema_new.SchemaDescriptorFactory; +import org.neo4j.kernel.api.schema_new.constaints.ConstraintDescriptorFactory; import org.neo4j.kernel.api.schema_new.index.NewIndexDescriptorFactory; import static org.junit.Assert.assertEquals; @@ -134,8 +132,8 @@ private void exerciseVisitor( Function visitor ) visitor.apply( null ).visitRelationshipType( 1, "REJECTS" ); visitor.apply( null ).visitIndex( NewIndexDescriptorFactory.forLabel( 0, 1 ), ":Person(age)", 0.5d, 1L ); visitor.apply( null ).visitUniqueIndex( NewIndexDescriptorFactory.forLabel( 0, 0 ), ":Person(name)", 0.5d, 1L ); - visitor.apply( null ).visitUniqueConstraint( new UniquenessConstraint( - SchemaDescriptorFactory.forLabel( 1, 0 ) ), ":Party(name)" ); + visitor.apply( null ) + .visitUniqueConstraint( ConstraintDescriptorFactory.uniqueForLabel( 1, 0 ), ":Party(name)" ); visitor.apply( null ).visitAllNodesCount( 55 ); visitor.apply( null ).visitNodeCount( 0, "Person", 50 ); visitor.apply( null ).visitNodeCount( 0, "Party", 5 ); diff --git a/community/kernel/src/test/java/org/neo4j/kernel/impl/util/dbstructure/GraphDbStructureGuideTest.java b/community/kernel/src/test/java/org/neo4j/kernel/impl/util/dbstructure/GraphDbStructureGuideTest.java index 995e9e6fca543..9e9b7767e107f 100644 --- a/community/kernel/src/test/java/org/neo4j/kernel/impl/util/dbstructure/GraphDbStructureGuideTest.java +++ b/community/kernel/src/test/java/org/neo4j/kernel/impl/util/dbstructure/GraphDbStructureGuideTest.java @@ -35,10 +35,9 @@ import org.neo4j.kernel.api.ReadOperations; import org.neo4j.kernel.api.SchemaWriteOperations; import org.neo4j.kernel.api.Statement; -import org.neo4j.kernel.api.constraints.UniquenessConstraint; import org.neo4j.kernel.api.exceptions.InvalidTransactionTypeKernelException; import org.neo4j.kernel.api.schema_new.SchemaDescriptorFactory; -import org.neo4j.kernel.api.schema_new.constaints.ConstraintBoundary; +import org.neo4j.kernel.api.schema_new.constaints.UniquenessConstraintDescriptor; import org.neo4j.kernel.api.schema_new.index.NewIndexDescriptor; import org.neo4j.kernel.api.schema_new.index.NewIndexDescriptorFactory; import org.neo4j.kernel.impl.core.ThreadToStatementContextBridge; @@ -142,7 +141,7 @@ public void visitsUniqueConstraintsAndIndices() throws Exception commitAndReOpen(); - UniquenessConstraint constraint = createUniqueConstraint( labelId, pkId ); + UniquenessConstraintDescriptor constraint = createUniqueConstraint( labelId, pkId ); NewIndexDescriptor descriptor = NewIndexDescriptorFactory.uniqueForLabel( labelId, pkId ); // WHEN @@ -228,12 +227,9 @@ private NewIndexDescriptor createSchemaIndex( int labelId, int pkId ) throws Exc return schemaWrite().indexCreate( SchemaDescriptorFactory.forLabel( labelId, pkId ) ); } - private UniquenessConstraint createUniqueConstraint( int labelId, int pkId ) throws Exception + private UniquenessConstraintDescriptor createUniqueConstraint( int labelId, int pkId ) throws Exception { - return ConstraintBoundary.mapUnique( - schemaWrite().uniquePropertyConstraintCreate( - SchemaDescriptorFactory.forLabel( labelId, pkId ) ) - ); + return schemaWrite().uniquePropertyConstraintCreate( SchemaDescriptorFactory.forLabel( labelId, pkId ) ); } private int createLabeledNodes( String labelName, int amount ) throws Exception