Advertisement
Guest User

Untitled

a guest
Oct 31st, 2014
156
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 2.20 KB | None | 0 0
  1.  
  2.     public static String convertNumericToSymbolicNotation(String mode) {
  3.         if (!mode.matches("[0-7]+")) {
  4.             throw new IllegalArgumentException("Invalid characters in string " + mode);
  5.         }
  6.         char[] arr = mode.toCharArray();
  7.         final int length = arr.length;
  8.         if (length != 3 && length != 4) {
  9.             throw new IllegalArgumentException("Invalid length. Expected 3 or 4, got " + length);
  10.         }
  11.  
  12.         final String special;
  13.         if (length == 4) {
  14.             special = parseSpecialFromChar(arr[0]);
  15.             arr = mode.substring(1).toCharArray();
  16.         } else {
  17.             special = "---";
  18.         }
  19.  
  20.         String p = "";
  21.  
  22.         for (int i = 0; i < 3; i++) {
  23.  
  24.             char s = special.charAt(i);
  25.             L.i("FOO", "s=" + s + "|c=" + arr[i]);
  26.             switch (arr[i]) {
  27.             case '0':
  28.                 p += s == '-' ? "---" : "--" + Character.toUpperCase(s);
  29.                 break;
  30.             case '1':
  31.                 p += s == '-' ? "--x" : "--" + s;
  32.                 break;
  33.             case '2':
  34.                 p += "-w-";
  35.                 break;
  36.             case '3':
  37.                 p += s == '-' ? "-wx" : "-w" + s;
  38.                 break;
  39.             case '4':
  40.                 p += s == '-' ? "r--" : "r-" + Character.toUpperCase(s);
  41.                 break;
  42.             case '5':
  43.                 p += s == '-' ? "r-x" : "r-" + s;
  44.                 break;
  45.             case '6':
  46.                 p += "rw-";
  47.                 break;
  48.             case '7':
  49.                 p += s == '-' ? "rwx" : "rw" + s;
  50.                 break;
  51.             }
  52.         }
  53.  
  54.         return p;
  55.     }
  56.  
  57.     private static String parseSpecialFromChar(char c) {
  58.         L.i("FOO", "c="+c);
  59.         switch (c) {
  60.         case '0':
  61.             return "---";
  62.         case '1':
  63.             return "--t";
  64.         case '2':
  65.             return "-s-";
  66.         case '3':
  67.             return "-st";
  68.         case '4':
  69.             return "s--";
  70.         case '5':
  71.             return "s-t";
  72.         case '6':
  73.             return "ss-";
  74.         case '7':
  75.             return "sst";
  76.         default:
  77.             return "---";
  78.         }
  79.     }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement