19 package org.sleuthkit.datamodel;
 
   21 import java.util.Arrays;
 
   22 import java.util.HashSet;
 
   24 import org.apache.commons.lang3.StringUtils;
 
   34         private static final Set<String> TELEPHONY_CHARS = 
new HashSet<>(Arrays.asList(
 
   35                         "-", 
"(", 
")", 
"#", 
"*", 
"," 
   38         private static final int MIN_PHONENUMBER_LEN = 3;
 
   63                 if (StringUtils.isEmpty(phoneNumber)) {
 
   71                 String normalizedNumber = phoneNumber.trim();
 
   72                 normalizedNumber = normalizedNumber.replaceAll(
"\\s+", 
""); 
 
   73                 normalizedNumber = normalizedNumber.replaceAll(
"[\\-()]", 
""); 
 
   76                 if (normalizedNumber.length() < MIN_PHONENUMBER_LEN) {
 
   80                 return normalizedNumber;
 
   95                 if (StringUtils.isEmpty(emailAddress)) {
 
  103                 return emailAddress.toLowerCase().replace(
";", 
"").trim();
 
  124                 return !StringUtils.isEmpty(accountUniqueID);
 
  139                 if (StringUtils.isEmpty(phoneNum)) {
 
  143                 String trimmedPhoneNum = phoneNum.trim();
 
  147                 for (
int i = 0; i < trimmedPhoneNum.length(); i++) {
 
  148                         if (!((trimmedPhoneNum.charAt(i) == 
'+' && i == 0)              
 
  149                                         || isValidPhoneChar(trimmedPhoneNum.charAt(i)))) {
 
  164         private static boolean isValidPhoneChar(
char ch) {
 
  165                 return Character.isSpaceChar(ch)
 
  166                                 || Character.isDigit(ch)
 
  167                                 || TELEPHONY_CHARS.contains(String.valueOf(ch));
 
  188                 if (StringUtils.isEmpty(emailAddress)) {
 
  192                 if (emailAddress.contains(
"@") == 
false 
  193                                 || emailAddress.contains(
".") == false ) {
 
  198                 String[] tokens = emailAddress.split(
"@");
 
  199                 if (tokens.length < 2
 
  200                                 || StringUtils.isEmpty(tokens[0])
 
  201                                 || StringUtils.isEmpty(tokens[1])) {
 
  206                 String[] tokens2 = tokens[1].split(
"\\.");
 
  207                 return !(tokens2.length < 2
 
  208                                 || StringUtils.isEmpty(tokens2[0])
 
  209                                 || StringUtils.isEmpty(tokens2[1]));
 
static String normalizeEmailAddress(String emailAddress)
 
static boolean isValidPhoneNumber(String phoneNum)
 
static String normalizePhoneNum(String phoneNumber)
 
static final Account.Type PHONE
 
static boolean isValidEmailAddress(String emailAddress)
 
static boolean isValidAccountId(Account.Type accountType, String accountUniqueID)
 
static final Account.Type EMAIL