X-Git-Url: http://git.nikiroo.be/?a=blobdiff_plain;ds=sidebyside;f=src%2Fbe%2Fnikiroo%2Fjvcard%2FContact.java;h=4b46eab8afa3dcc6aa840d8c89952d0c4ef8b3b5;hb=6435013a3d3feabc7b5a4536ca766ffede0c4d5b;hp=779b60a3c596ee6ee9bcbc20b09bcf66e3d4edfd;hpb=26d254a3ac6cddbd3583cbbcbf8d43aa15c6a32e;p=jvcard.git
diff --git a/src/be/nikiroo/jvcard/Contact.java b/src/be/nikiroo/jvcard/Contact.java
index 779b60a..4b46eab 100644
--- a/src/be/nikiroo/jvcard/Contact.java
+++ b/src/be/nikiroo/jvcard/Contact.java
@@ -115,7 +115,8 @@ public class Contact extends BaseClass {
*
*
* The format is basically a list of field names separated by a pipe and
- * optionally parametrised. The parameters allows you to:
+ * optionally parametrised with the 'at' (@) symbol. The parameters allows
+ * you to:
*
*
+ * In case of lists or multiple-fields values, you can select a specific + * list or field with: + *
* You can also add a fixed text if it starts with a simple-quote ('). *
* @@ -157,6 +167,15 @@ public class Contact extends BaseClass { * * *+ * In case of lists or multiple-fields values, you can select a specific + * list or field with: + *
* You can also add a fixed text if it starts with a simple-quote ('). *
* @@ -205,6 +224,15 @@ public class Contact extends BaseClass { * * *+ * In case of lists or multiple-fields values, you can select a specific + * list or field with: + *
* You can also add a fixed text if it starts with a simple-quote ('). *
* @@ -273,6 +301,15 @@ public class Contact extends BaseClass { * * *+ * In case of lists or multiple-fields values, you can select a specific + * list or field with: + *
* You can also add a fixed text if it starts with a simple-quote ('). *
* @@ -313,6 +350,8 @@ public class Contact extends BaseClass { int size = -1; boolean binary = false; boolean expand = false; + int fieldNum = -1; + int valueNum = -1; if (field.length() > 0 && field.charAt(0) != '\'' && field.contains("@")) { @@ -326,10 +365,22 @@ public class Contact extends BaseClass { } else if (opt.equals("+")) { expand = true; numOfFieldsToExpand++; + } else if (opt.length() > 0 && opt.charAt(0) == '(') { + try { + opt = opt.substring(1, opt.length() - 1); + valueNum = Integer.parseInt(opt); + } catch (Exception e) { + } + } else if (opt.length() > 0 && opt.charAt(0) == '[') { + try { + opt = opt.substring(1, opt.length() - 1); + fieldNum = Integer.parseInt(opt); + } catch (Exception e) { + } } else { try { size = Integer.parseInt(opt); - } catch (Exception e) { + } catch (NumberFormatException e) { } } } @@ -338,6 +389,16 @@ public class Contact extends BaseClass { String value = null; if (field.length() > 0 && field.charAt(0) == '\'') { value = field.substring(1); + } else if (valueNum >= 0) { + List