package com.airlock.iam.base.misc.masking;

import org.apache.commons.lang3.StringUtils;

public final class IdMaskerUtil {
   private static final char MASK_CHARACTER = '*';

   private IdMaskerUtil() {
   }

   public static String maskFromStart(String inputToMask, int visibleDigitsAtEnd) {
      if (!StringUtils.isBlank(inputToMask) && visibleDigitsAtEnd >= 0) {
         char[] chars = inputToMask.toCharArray();
         int digitIndexFromRightStartingWithOne = 0;

         for (int i = chars.length - 1; i >= 0; i--) {
            char c = chars[i];
            if (Character.isDigit(c) || Character.isLetter(c)) {
               if (++digitIndexFromRightStartingWithOne > visibleDigitsAtEnd) {
                  chars[i] = '*';
               }
            }
         }

         return new String(chars);
      } else {
         return inputToMask;
      }
   }
}
