content: package aliview.utils;
  
  import org.apache.log4j.Logger;
  
  import aliview.alignment.Alignment;
  
  
  public class ArrayUtilities {
  	private static final Logger logger = Logger.getLogger(ArrayUtilities.class);
  
  	public static final int count(boolean[] array, boolean target){
  		if(array == null){
  			return 0;
  		}
  		int count = 0;
  		for(boolean val: array){
  			if(val == target){
  				count ++;
  			}
  		}
  		return count;
  	}
  
  	public static byte[] replaceAll(byte[] byteArray, char find, byte replace) {
  		if(byteArray == null){
  			return null;
  		}
  
  		for(int n = 0; n < byteArray.length; n++){
  			if(byteArray[n] == find){
  				byteArray[n] = replace;
  			}
  		}
  		return byteArray;
  	}
  
  	public static byte[] replaceAll(byte[] byteArray, byte find, byte replace) {
  		if(byteArray == null){
  			return null;
  		}
  
  		for(int n = 0; n < byteArray.length; n++){
  			if(byteArray[n] == find){
  				byteArray[n] = replace;
  			}
  		}
  		return byteArray;
  	}
  
  
  	public static byte[] insertAt(byte[] array, int pos, byte[] newBytes) {
  		if(array == null || newBytes == null || newBytes.length == 0){
  			return array;
  		}
  
  
  
  		//		logger.info("array" + array);
  		//		logger.info("pos" + pos);
  		//		logger.info("newBytes" + newBytes);
  		//		logger.info("array" + array.length);
  		//		logger.info("newBytes" + newBytes.length);
  
  
  		byte[] newArray = new byte[array.length + newBytes.length];
  
  		// copy first part of array
  		System.arraycopy(array, 0, newArray, 0, pos); // insert at means first part is to pos - 1
  
  		// copy inserts
  		System.arraycopy(newBytes, 0, newArray, pos, newBytes.length);
  
  		// copy last
  		System.arraycopy(array, pos, newArray, pos + newBytes.length, array.length - pos);
  
  		return newArray;
  	}
  
  
  
  
  }
  