package kfs.kfsDbi;

/**
 *
 * @author pavedrim
 */
public class kfsPhone extends kfsString {

    public kfsPhone(String name, String label, int pos) {
        super(name, label, 20, pos, defaultCharSet);
    }
    
    public boolean isValid(kfsRowData rd) {
        return true;
    }
               
    @Override
    public void setString(String s, kfsRowData rd) {
        super.setString(convertPhone(s), rd);
    }

    public static String convertPhone(String s) {
        if ((s == null) || (s.isEmpty())) {
            return "";
        }
        s = s.replaceAll("\\s", "");
        if (s.startsWith("+")) {
            s = s.substring(1);
        }
        if (s.startsWith(".")) {
            s = s.substring(1);
        }
        if (s.startsWith("00")) {
            s = s.substring(2);
        }
        if (s.startsWith("0")) {
            s = s.substring(1);
        }
        if (s.startsWith("Tel.")) {
            s = s.substring(4);
        }
        if (s.isEmpty()) {
            return s;
        }

        if (s.startsWith("420")) {
            return s;
        } else if (isCzCellPhone(s)) {
            return "420" + s;
        }
        return s;
    }
    
    public static boolean isCzCellPhone(String s) {
        return //
                s.startsWith("77") || //
                s.startsWith("72") || //
                s.startsWith("73") || //
                s.startsWith("601") || //
                s.startsWith("602") || //
                s.startsWith("603") || //
                s.startsWith("604") || //
                s.startsWith("605") || //
                s.startsWith("606") || //
                s.startsWith("607") || //
                s.startsWith("608");
    }
}

@@ -197,36 +197,32 @@
 CharSet);%0A    %7D%0A
-    
 %0A    public bool
@@ -277,31 +277,16 @@
 ;%0A    %7D%0A
-               
 %0A    @Ov
@@ -1094,15 +1094,16 @@
 hone
+2
 (s)) %7B%0A
-
     
@@ -1162,20 +1162,16 @@
 ;%0A    %7D%0A
-    
 %0A    pub
@@ -1207,32 +1207,222 @@
 one(String s) %7B%0A
+        if (s.startsWith(%22420%22)) %7B%0A            return isCzCellPhone2(s.substring(3));%0A        %7D%0A        return isCzCellPhone2(s);%0A    %7D%0A%0A    public static boolean isCzCellPhone2(String s) %7B%0A
         return /

add more efficient CZ Cell check