public void removeConstraint(final int idx) { //If the constraint being is a parent of another correct the other constraint's parent accordingly FieldConstraint constraintToRemove = this.constraints[idx]; if ( constraintToRemove instanceof SingleFieldConstraint ) { final SingleFieldConstraint sfc = (SingleFieldConstraint) constraintToRemove; FieldConstraint parent = sfc.getParent(); for ( FieldConstraint child : this.constraints ) { if ( child instanceof SingleFieldConstraint ) { SingleFieldConstraint sfcChild = (SingleFieldConstraint) child; if ( sfcChild.getParent() == constraintToRemove ) { sfcChild.setParent( parent ); break; } } } } final FieldConstraint[] newList = new FieldConstraint[this.constraints.length - 1]; int newIdx = 0; for ( int i = 0; i < this.constraints.length; i++ ) { if ( i != idx ) { newList[newIdx] = this.constraints[i]; newIdx++; } } this.constraints = newList; }
public void removeConstraint(final int idx) { //If the constraint being is a parent of another correct the other constraint's parent accordingly FieldConstraint constraintToRemove = this.constraints[idx]; if ( constraintToRemove instanceof SingleFieldConstraint ) { final SingleFieldConstraint sfc = (SingleFieldConstraint) constraintToRemove; FieldConstraint parent = sfc.getParent(); for ( FieldConstraint child : this.constraints ) { if ( child instanceof SingleFieldConstraint ) { SingleFieldConstraint sfcChild = (SingleFieldConstraint) child; if ( sfcChild.getParent() == constraintToRemove ) { sfcChild.setParent( parent ); break; } } } } final FieldConstraint[] newList = new FieldConstraint[this.constraints.length - 1]; int newIdx = 0; for ( int i = 0; i < this.constraints.length; i++ ) { if ( i != idx ) { newList[newIdx] = this.constraints[i]; newIdx++; } } this.constraints = newList; }
|| constr.getConstraintValueType() == BaseSingleFieldConstraint.TYPE_EXPR_BUILDER_VALUE || constr instanceof SingleFieldConstraintEBLeftSide ) { SingleFieldConstraint parent = (SingleFieldConstraint) constr.getParent(); StringBuilder parentBuf = new StringBuilder(); while ( parent != null ) { parentBuf.insert( 0, fieldName + "." ); parent = (SingleFieldConstraint) parent.getParent();
|| constr.getConstraintValueType() == BaseSingleFieldConstraint.TYPE_EXPR_BUILDER_VALUE || constr instanceof SingleFieldConstraintEBLeftSide ) { SingleFieldConstraint parent = (SingleFieldConstraint) constr.getParent(); StringBuilder parentBuf = new StringBuilder(); while ( parent != null ) { parentBuf.insert( 0, fieldName + "." ); parent = (SingleFieldConstraint) parent.getParent();
@Test public void testRemoveConstraintWithNonNullParent() { final FactPattern fp = new FactPattern(); final SingleFieldConstraint con1 = new SingleFieldConstraint( "parent" ); fp.addConstraint( con1 ); final SingleFieldConstraint con2 = new SingleFieldConstraint(); con2.setParent( con1 ); fp.addConstraint( con2 ); final SingleFieldConstraint con3 = new SingleFieldConstraint(); con3.setParent( con2 ); fp.addConstraint( con3 ); assertEquals( 3, fp.constraintList.constraints.length ); fp.removeConstraint( 1 ); assertEquals( 2, fp.constraintList.constraints.length ); assertEquals( con1, fp.constraintList.constraints[0] ); assertEquals( con3, fp.constraintList.constraints[1] ); assertNull( ((SingleFieldConstraint) fp.constraintList.constraints[0]).getParent() ); assertEquals( con1, ((SingleFieldConstraint) fp.constraintList.constraints[1]).getParent() ); }
@Test public void testRemoveConstraintWithNullParent() { final FactPattern fp = new FactPattern(); final SingleFieldConstraint con1 = new SingleFieldConstraint( "parent" ); fp.addConstraint( con1 ); final SingleFieldConstraint con2 = new SingleFieldConstraint(); con2.setParent( con1 ); fp.addConstraint( con2 ); final SingleFieldConstraint con3 = new SingleFieldConstraint(); con3.setParent( con2 ); fp.addConstraint( con3 ); assertEquals( 3, fp.constraintList.constraints.length ); fp.removeConstraint( 0 ); assertEquals( 2, fp.constraintList.constraints.length ); assertEquals( con2, fp.constraintList.constraints[0] ); assertEquals( con3, fp.constraintList.constraints[1] ); assertNull( ((SingleFieldConstraint) fp.constraintList.constraints[0]).getParent() ); assertEquals( con2, ((SingleFieldConstraint) fp.constraintList.constraints[1]).getParent() ); }