Skip to content

Commit

Permalink
Remove java usages of the old constraint framework
Browse files Browse the repository at this point in the history
  • Loading branch information
ragadeeshu committed Mar 17, 2017
1 parent 9fce3d7 commit 4a292f2
Show file tree
Hide file tree
Showing 27 changed files with 150 additions and 182 deletions.
Expand Up @@ -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
Expand Down
Expand Up @@ -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;
Expand Down
Expand Up @@ -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 )
Expand Down
Expand Up @@ -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
Expand Down
Expand Up @@ -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;
Expand Down
Expand Up @@ -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 )
Expand Down
Expand Up @@ -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 )
Expand Down
Expand Up @@ -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;

Expand All @@ -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 );
Expand Down
Expand Up @@ -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;
}
Expand Down
Expand Up @@ -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;
Expand Down
Expand Up @@ -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;
Expand Down Expand Up @@ -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 <T extends PropertyConstraint> Iterator<ConstraintDescriptor> mapToNew(
Iterator<T> constraints )
{
return Iterators.map( ConstraintBoundary::map, constraints );
}

public static Iterator<PropertyConstraint> map( Iterator<ConstraintDescriptor> constraints )
{
return Iterators.map( ConstraintBoundary::map, constraints );
}

private static class BoundaryTransformer implements SchemaComputer<PropertyConstraint>
{
private final ConstraintDescriptor descriptor;
Expand Down
Expand Up @@ -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;
Expand Down Expand Up @@ -97,8 +96,8 @@ public GraphResult buildSchemaGraph()
ArrayList<String> 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 );

Expand Down
Expand Up @@ -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;
Expand Down Expand Up @@ -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 );
}
Expand All @@ -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 );
}
Expand All @@ -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() ) );
}
}

Expand All @@ -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 );
}
}

Expand Down
Expand Up @@ -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;
Expand Down Expand Up @@ -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<ConstraintDescriptor> constraintsGetForSchema( KernelStatement state, SchemaDescriptor descriptor );

Expand All @@ -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<ConstraintDescriptor> 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<ConstraintDescriptor> constraintsGetForRelationshipType( KernelStatement state, int typeId );

/**
* Get all constraints. There are only {@link PropertyConstraint}
* for the time being.
* Get all constraints.
*/
Iterator<ConstraintDescriptor> constraintsGetAll( KernelStatement state );

Expand Down

0 comments on commit 4a292f2

Please sign in to comment.