code: public static String deidentify(String text, int left, int right, int fromLeft, int fromRight) {
  		if (left == 0 && right == 0 && fromLeft == 0 && fromRight == 0) {
  			return StringUtils.repeat('*', text.length());
  		} else if (left > 0 && right == 0 && fromLeft == 0 && fromRight == 0) {
  			return deidentifyLeft(text, left);
  		} else if (left == 0 && right > 0 && fromLeft == 0 && fromRight == 0) {
  			return deidentifyRight(text, right);
  		}else if (left > 0 && right > 0 && fromLeft == 0 && fromRight == 0) {
  			return deidentifyEdge(text, left, right);
  		}else if (left == 0 && right == 0 && fromLeft > 0 && fromRight == 0) {
  			return deidentifyFromLeft(text, fromLeft);
  		}else if (left == 0 && right == 0 && fromLeft == 0 && fromRight > 0) {
  			return deidentifyFromRight(text, fromRight);
  		}else if (left == 0 && right == 0 && fromLeft > 0 && fromRight > 0) {
  			return deidentifyMiddle(text, fromLeft, fromRight);
  		}
  
  		return text;
  	}
docs: Deidentify.
  
  @param text the text
  @param left the left
  @param right the right
  @param fromLeft the from left
  @param fromRight the from right
  @return the string
  
  @since 2.0.0