public BType addBuilder(int index,MType message){
  ensureMutableMessageList();
  ensureBuilders();
  SingleFieldBuilder<MType,BType,IType> builder=new SingleFieldBuilder<MType,BType,IType>(message,this,isClean);
  messages.add(index,null);
  builders.add(index,builder);
  onChanged();
  incrementModCounts();
  return builder.getBuilder();
}

public BType addBuilder ( int index , MType message ) { ensureMutableMessageList ( ) ; ensureBuilders ( ) ; SingleFieldBuilder < MType , BType , IType > builder = new SingleFieldBuilder < MType , BType , IType > ( message , this , isClean ) ; messages . add ( index , null ) ; builders . add ( index , builder ) ; onChanged ( ) ; incrementModCounts ( ) ; return builder . getBuilder ( ) ; }
inserts a new builder at the specified position in this list . shifts the element currently at that position ( if any ) and any subsequent elements to the right ( adds one to their indices ) .
