📄 vcardparser.java
字号:
sum += ret;
return sum;
}
}
private int parseParamList(int offset)
{
int ret = 0;
int sum = 0;
ret = parseParam(offset);
if(ret == -1)
return -1;
offset += ret;
sum += ret;
int offsetTemp = offset;
int sumTemp = sum;
do
{
ret = removeWs(offsetTemp);
offsetTemp += ret;
sumTemp += ret;
ret = parseString(offsetTemp, ";", false);
if(ret == -1)
return sum;
offsetTemp += ret;
sumTemp += ret;
ret = removeWs(offsetTemp);
offsetTemp += ret;
sumTemp += ret;
ret = parseParam(offsetTemp);
if(ret != -1)
{
offsetTemp += ret;
sumTemp += ret;
sum = sumTemp;
} else
{
return sum;
}
} while(true);
}
private int parseParam(int offset)
{
int ret = 0;
int sum = 0;
ret = parseParam0(offset);
if(ret != -1)
{
sum += ret;
return sum;
}
ret = parseParam1(offset);
if(ret != -1)
{
sum += ret;
return sum;
}
ret = parseParam2(offset);
if(ret != -1)
{
sum += ret;
return sum;
}
ret = parseParam3(offset);
if(ret != -1)
{
sum += ret;
return sum;
}
ret = parseParam4(offset);
if(ret != -1)
{
sum += ret;
return sum;
}
ret = parseParam5(offset);
if(ret != -1)
{
sum += ret;
return sum;
}
int start = offset;
ret = parseKnownType(offset);
if(ret == -1)
return -1;
offset += ret;
sum += ret;
if(mBuilder != null)
{
mBuilder.propertyParamType(null);
mBuilder.propertyParamValue(mBuffer.substring(start, offset));
}
return sum;
}
private int parseParam0(int offset)
{
int ret = 0;
int sum = 0;
int start = offset;
ret = parseString(offset, "TYPE", true);
if(ret == -1)
return -1;
offset += ret;
sum += ret;
if(mBuilder != null)
mBuilder.propertyParamType(mBuffer.substring(start, offset));
ret = removeWs(offset);
offset += ret;
sum += ret;
ret = parseString(offset, "=", false);
if(ret == -1)
return -1;
offset += ret;
sum += ret;
ret = removeWs(offset);
offset += ret;
sum += ret;
start = offset;
ret = parsePTypeVal(offset);
if(ret == -1)
return -1;
offset += ret;
sum += ret;
if(mBuilder != null)
mBuilder.propertyParamValue(mBuffer.substring(start, offset));
return sum;
}
private int parseParam1(int offset)
{
int ret = 0;
int sum = 0;
int start = offset;
ret = parseString(offset, "VALUE", true);
if(ret == -1)
return -1;
offset += ret;
sum += ret;
if(mBuilder != null)
mBuilder.propertyParamType(mBuffer.substring(start, offset));
ret = removeWs(offset);
offset += ret;
sum += ret;
ret = parseString(offset, "=", false);
if(ret == -1)
return -1;
offset += ret;
sum += ret;
ret = removeWs(offset);
offset += ret;
sum += ret;
start = offset;
ret = parsePValueVal(offset);
if(ret == -1)
return -1;
offset += ret;
sum += ret;
if(mBuilder != null)
mBuilder.propertyParamValue(mBuffer.substring(start, offset));
return sum;
}
private int parseParam2(int offset)
{
int ret = 0;
int sum = 0;
int start = offset;
ret = parseString(offset, "ENCODING", true);
if(ret == -1)
return -1;
offset += ret;
sum += ret;
if(mBuilder != null)
mBuilder.propertyParamType(mBuffer.substring(start, offset));
ret = removeWs(offset);
offset += ret;
sum += ret;
ret = parseString(offset, "=", false);
if(ret == -1)
return -1;
offset += ret;
sum += ret;
ret = removeWs(offset);
offset += ret;
sum += ret;
start = offset;
ret = parsePEncodingVal(offset);
if(ret == -1)
return -1;
offset += ret;
sum += ret;
if(mBuilder != null)
mBuilder.propertyParamValue(mBuffer.substring(start, offset));
return sum;
}
private int parseParam3(int offset)
{
int ret = 0;
int sum = 0;
int start = offset;
ret = parseString(offset, "CHARSET", true);
if(ret == -1)
return -1;
offset += ret;
sum += ret;
if(mBuilder != null)
mBuilder.propertyParamType(mBuffer.substring(start, offset));
ret = removeWs(offset);
offset += ret;
sum += ret;
ret = parseString(offset, "=", false);
if(ret == -1)
return -1;
offset += ret;
sum += ret;
ret = removeWs(offset);
offset += ret;
sum += ret;
start = offset;
ret = parseCharsetVal(offset);
if(ret == -1)
return -1;
offset += ret;
sum += ret;
if(mBuilder != null)
mBuilder.propertyParamValue(mBuffer.substring(start, offset));
return sum;
}
private int parseParam4(int offset)
{
int ret = 0;
int sum = 0;
int start = offset;
ret = parseString(offset, "LANGUAGE", true);
if(ret == -1)
return -1;
offset += ret;
sum += ret;
if(mBuilder != null)
mBuilder.propertyParamType(mBuffer.substring(start, offset));
ret = removeWs(offset);
offset += ret;
sum += ret;
ret = parseString(offset, "=", false);
if(ret == -1)
return -1;
offset += ret;
sum += ret;
ret = removeWs(offset);
offset += ret;
sum += ret;
start = offset;
ret = parseLangVal(offset);
if(ret == -1)
return -1;
offset += ret;
sum += ret;
if(mBuilder != null)
mBuilder.propertyParamValue(mBuffer.substring(start, offset));
return sum;
}
private int parseParam5(int offset)
{
int ret = 0;
int sum = 0;
int start = offset;
ret = parseXWord(offset);
if(ret == -1)
return -1;
offset += ret;
sum += ret;
if(mBuilder != null)
mBuilder.propertyParamType(mBuffer.substring(start, offset));
ret = removeWs(offset);
offset += ret;
sum += ret;
ret = parseString(offset, "=", false);
if(ret == -1)
return -1;
offset += ret;
sum += ret;
ret = removeWs(offset);
offset += ret;
sum += ret;
start = offset;
ret = parseWord(offset);
if(ret == -1)
return -1;
offset += ret;
sum += ret;
if(mBuilder != null)
mBuilder.propertyParamValue(mBuffer.substring(start, offset));
return sum;
}
private int parseKnownType(int offset)
{
String word = getWord(offset);
if(mKnownTypeSet.contains(word.toUpperCase()))
return word.length();
else
return -1;
}
private int parsePTypeVal(int offset)
{
int ret = 0;
int sum = 0;
ret = parseKnownType(offset);
if(ret != -1)
{
sum += ret;
return sum;
}
ret = parseXWord(offset);
if(ret != -1)
{
sum += ret;
return sum;
} else
{
sum += ret;
return sum;
}
}
private int parseName(int offset)
{
int ret = 0;
ret = parseXWord(offset);
if(ret != -1)
return ret;
String word = getWord(offset).toUpperCase();
if(mName.contains(word))
return word.length();
else
return -1;
}
private int parseGroups(int offset)
{
int ret = 0;
int sum = 0;
ret = parseWord(offset);
if(ret == -1)
return -1;
offset += ret;
sum += ret;
do
{
ret = parseString(offset, ".", false);
if(ret == -1)
break;
int ret1 = parseWord(offset);
if(ret1 == -1)
break;
offset += ret + ret1;
sum += ret + ret1;
} while(true);
return sum;
}
private String escapeTranslator(String str)
{
if(null == str)
{
return null;
} else
{
String tmp = str.replace("\\\\", "\n\r\n");
tmp = tmp.replace("\\;", ";");
tmp = tmp.replace("\\:", ":");
tmp = tmp.replace("\\,", ",");
tmp = tmp.replace("\n\r\n", "\\");
return tmp;
}
}
private static final HashSet mKnownTypeSet = new HashSet(Arrays.asList(new String[] {
"DOM", "INTL", "POSTAL", "PARCEL", "HOME", "WORK", "PREF", "VOICE", "FAX", "MSG",
"CELL", "PAGER", "BBS", "MODEM", "CAR", "ISDN", "VIDEO", "AOL", "APPLELINK", "ATTMAIL",
"CIS", "EWORLD", "INTERNET", "IBMMAIL", "MCIMAIL", "POWERSHARE", "PRODIGY", "TLX", "X400", "GIF",
"CGM", "WMF", "BMP", "MET", "PMB", "DIB", "PICT", "TIFF", "PDF", "PS",
"JPEG", "QTIME", "MPEG", "MPEG2", "AVI", "WAVE", "AIFF", "PCM", "X509", "PGP"
}));
private static final HashSet mName = new HashSet(Arrays.asList(new String[] {
"LOGO", "PHOTO", "LABEL", "FN", "TITLE", "SOUND", "VERSION", "TEL", "EMAIL", "TZ",
"GEO", "NOTE", "URL", "BDAY", "ROLE", "REV", "UID", "KEY", "MAILER"
}));
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -