public QuadroupleBetaConstraints(final BetaNodeFieldConstraint[] constraints, boolean index) { final boolean i0 = index && isIndexable( constraints[0] ); final boolean i1 = index && isIndexable( constraints[1] ); final boolean i2 = index && isIndexable( constraints[2] ); final boolean i3 = index && isIndexable( constraints[3] );  if ( i0 ) { this.indexed0 = true; }  if ( i1 ) { if ( !i0 ) { this.indexed0 = true; swap( constraints, 1, 0 ); } else { this.indexed1 = true; } }  if ( i2 ) { if ( !i0 ) { this.indexed0 = true; swap( constraints, 2, 0 ); } else if ( !i0 && !i1) { this.indexed1 = true; swap( constraints, 2, 1 ); } else { this.indexed2 = true; } }  if ( i3 ) { if ( !i0 ) { this.indexed0 = true; swap( constraints, 3, 0 ); } else if ( !i0 && !i1) { this.indexed1 = true; swap( constraints, 3, 1 ); } else if ( !i0 && !i1 && !i2) { this.indexed2 = true; swap( constraints, 3, 2 ); } else { this.indexed3 = true; } } this.constraint0 = constraints[0]; this.context0 = this.constraint0.getContextEntry();  this.constraint1 = constraints[1]; this.context1 = this.constraint1.getContextEntry();  this.constraint2 = constraints[2]; this.context2 = this.constraint2.getContextEntry();  this.constraint3 = constraints[3]; this.context3 = this.constraint3.getContextEntry();
public QuadroupleBetaConstraints(final BetaNodeFieldConstraint[] constraints) { this( constraints, true );
    public QuadroupleBetaConstraints(final BetaNodeFieldConstraint[] constraints, boolean index) {        final boolean i0 = index && isIndexable( constraints[0] );        final boolean i1 = index && isIndexable( constraints[1] );        final boolean i2 = index && isIndexable( constraints[2] );        final boolean i3 = index && isIndexable( constraints[3] );        if ( i0 ) {            this.indexed0 = true;        }                if ( i1 ) {        	if ( !i0 ) {                this.indexed0 = true;                swap( constraints, 1, 0 );        	} else {        		this.indexed1 = true;        	}        }                if ( i2 ) {        	if ( !i0 ) {                this.indexed0 = true;                swap( constraints, 2, 0 );        	} else if ( !i0 && !i1) {        		this.indexed1 = true;        		swap( constraints, 2, 1 );        	} else {        		this.indexed2 = true;        	}        }           if ( i3 ) {        	if ( !i0 ) {                this.indexed0 = true;                swap( constraints, 3, 0 );        	} else if ( !i0 && !i1) {        		this.indexed1 = true;        		swap( constraints, 3, 1 );        	} else if ( !i0 && !i1 && !i2) {        		this.indexed2 = true;        		swap( constraints, 3, 2 );        		        	} else {        		this.indexed3 = true;        	}        }                   this.constraint0 = constraints[0];        this.context0 = this.constraint0.getContextEntry();        this.constraint1 = constraints[1];        this.context1 = this.constraint1.getContextEntry();        this.constraint2 = constraints[2];        this.context2 = this.constraint2.getContextEntry();                this.constraint3 = constraints[3];        this.context3 = this.constraint3.getContextEntry();            }