public NullInfoRegistry add(NullInfoRegistry other){
  if ((other.tagBits & NULL_FLAG_MASK) == 0) {
    return this;
  }
  this.tagBits|=NULL_FLAG_MASK;
  this.nullBit1|=other.nullBit1;
  this.nullBit2|=other.nullBit2;
  this.nullBit3|=other.nullBit3;
  this.nullBit4|=other.nullBit4;
  if (other.extra != null) {
    if (this.extra == null) {
      this.extra=new long[extraLength][];
      for (int i=2, length=other.extra[2].length; i < extraLength; i++) {
        System.arraycopy(other.extra[i],0,(this.extra[i]=new long[length]),0,length);
      }
    }
 else {
      int length=this.extra[2].length, otherLength=other.extra[2].length;
      if (otherLength > length) {
        for (int i=2; i < extraLength; i++) {
          System.arraycopy(this.extra[i],0,(this.extra[i]=new long[otherLength]),0,length);
          System.arraycopy(other.extra[i],length,this.extra[i],length,otherLength - length);
        }
      }
 else       if (otherLength < length) {
        length=otherLength;
      }
      for (int i=2; i < extraLength; i++) {
        for (int j=0; j < length; j++) {
          this.extra[i][j]|=other.extra[i][j];
        }
      }
    }
  }
  return this;
}

public NullInfoRegistry add ( NullInfoRegistry other ) { if ( ( other . tagBits & NULL_FLAG_MASK ) == 0 ) { return this ; } this . tagBits |= NULL_FLAG_MASK ; this . nullBit1 |= other . nullBit1 ; this . nullBit2 |= other . nullBit2 ; this . nullBit3 |= other . nullBit3 ; this . nullBit4 |= other . nullBit4 ; if ( other . extra != null ) { if ( this . extra == null ) { this . extra = new long [ extraLength ] [ ] ; for ( int i = 2 , length = other . extra [ 2 ] . length ; i < extraLength ; i ++ ) { System . arraycopy ( other . extra [ i ] , 0 , ( this . extra [ i ] = new long [ length ] ) , 0 , length ) ; } } else { int length = this . extra [ 2 ] . length , otherLength = other . extra [ 2 ] . length ; if ( otherLength > length ) { for ( int i = 2 ; i < extraLength ; i ++ ) { System . arraycopy ( this . extra [ i ] , 0 , ( this . extra [ i ] = new long [ otherLength ] ) , 0 , length ) ; System . arraycopy ( other . extra [ i ] , length , this . extra [ i ] , length , otherLength - length ) ; } } else if ( otherLength < length ) { length = otherLength ; } for ( int i = 2 ; i < extraLength ; i ++ ) { for ( int j = 0 ; j < length ; j ++ ) { this . extra [ i ] [ j ] |= other . extra [ i ] [ j ] ; } } } } return this ; }
add the information held by another nullinforegistry instance to this , then return this .
