Mobile SDK join the fields with quote, which is not documented at all.
@param p
@return
768760
protected String signRSAWithQuote(final List<StringPair> p) {
        String param = join(p, false, true);
        String sign = rsaSign(param);
        return sign;
    }
1123183
public final TextBuilder p(int i) {
        if (null != __buffer) __append(i);
        else __caller.p(i);
        return this;
    }
348903
public final ValueWithPos<String> formatCommonInternational(
      final ValueWithPos<String> pphoneNumber) {
    return valueWithPosDefaults(
        this.formatCommonInternationalWithPos(this.parsePhoneNumber(pphoneNumber)), pphoneNumber);
  }
392402
public DocPath resolve(String p) {
        if (p == null || p.isEmpty())
            return this;
        if (path.isEmpty())
            return new DocPath(p);
        return new DocPath(path + "/" + p);
    }
98822
public void add(final String p) throws DevFailed {
	synchronized (this) {

	    final Vector v = factory.instanciate(p);
	    final Iterator it = v.iterator();
	    while (it.hasNext()) {
		add_i((GroupElement) it.next());
	    }

	}
    }
439035
public static String concat(Object... params) {
		StringBuffer finalMessage = new StringBuffer();
		for (Object object : params) {
			finalMessage.append(JKObjectUtil.toString(object, true));
		}
		return finalMessage.toString();
	}
26889
public final ValueWithPos<String> formatRfc3966(final ValueWithPos<String> pphoneNumber) {
    return valueWithPosDefaults(this.formatRfc3966WithPos(this.parsePhoneNumber(pphoneNumber)),
        pphoneNumber);
  }
980144
private static StringBuilder simpleQuote(final StringBuilder sb, final String value) {
		for (int i = 0; i < value.length(); ++i) {
			final char c = value.charAt(i);
			switch (c) {
				case '\\':
				case '^':
				case '$':
				case '.':
				case '|':
				case '?':
				case '*':
				case '+':
				case '(':
				case ')':
				case '[':
				case '{':
					sb.append('\\');
				default:
					sb.append(c);
			}
		}
		return sb;
	}
1175050
public <P extends ParaObject> P me() {
		Map<String, Object> data = getEntity(invokeGet("_me", null), Map.class);
		return ParaObjectUtils.setAnnotatedFields(data);
	}
1084007
protected final PrcBankStatementLineSave<RS> lazyGetPrcBankStatementLineSave(
    final Map<String, Object> pAddParam) throws Exception {
    @SuppressWarnings("unchecked")
    PrcBankStatementLineSave<RS> proc = (PrcBankStatementLineSave<RS>)
      this.processorsMap.get(PrcBankStatementLineSave.class.getSimpleName());
    if (proc == null) {
      proc = new PrcBankStatementLineSave<RS>();
      proc.setSrvOrm(getSrvOrm());
      proc.setSrvI18n(getSrvI18n());
      proc.setSrvAccEntry(getSrvAccEntry());
      proc.setPrcPurchaseInvoiceSave(lazyGetPrcPurchaseInvoiceSave(pAddParam));
      proc.setPrcSalesInvoiceSave(lazyGetPrcSalesInvoiceSave(pAddParam));
      //assigning fully initialized object:
      this.processorsMap
        .put(PrcBankStatementLineSave.class.getSimpleName(), proc);
    }
    return proc;
  }
1278459
public static String quote(String s)
    {
        if (s==null)
            return null;
        if (s.length()==0)
            return "\"\"";

        StringBuffer b=new StringBuffer(s.length()+8);
        quote(b,s);
        return b.toString();

    }
1141471
protected final PrcBankStatementLineGfe<RS> lazyGetPrcBankStatementLineGfe(
    final Map<String, Object> pAddParam) throws Exception {
    @SuppressWarnings("unchecked")
    PrcBankStatementLineGfe<RS> proc = (PrcBankStatementLineGfe<RS>)
      this.processorsMap.get(PrcBankStatementLineGfe.class.getSimpleName());
    if (proc == null) {
      proc = new PrcBankStatementLineGfe<RS>();
      proc.setSrvOrm(getSrvOrm());
      proc.setSrvTypeCode(getSrvTypeCode());
      @SuppressWarnings("unchecked")
      PrcEntityPbEditDelete<RS, BankStatementLine> procDlg =
    (PrcEntityPbEditDelete<RS, BankStatementLine>) this.fctBnEntitiesProcessors
  .lazyGet(pAddParam, PrcEntityPbEditDelete.class.getSimpleName());
      proc.setPrcEntityPbEditDelete(procDlg);
      //assigning fully initialized object:
      this.processorsMap
        .put(PrcBankStatementLineGfe.class.getSimpleName(), proc);
    }
    return proc;
  }
742601
public ValueWithPos<PhoneNumberData> parsePhoneNumber(final ValueWithPos<String> pphoneNumber,
      final PhoneNumberInterface pphoneNumberData, final PhoneCountryData pcountryData) {
    if (pphoneNumber == null || pphoneNumberData == null) {
      return null;
    }
    int cursorpos = pphoneNumber.getPos();
    int cursorpossub = 0;
    for (int pos = 0; pos < cursorpos && pos < StringUtils.length(pphoneNumber.getValue()); pos++) {
      final char character = pphoneNumber.getValue().charAt(pos);
      if (character < '0' || character > '9') {
        cursorpossub++;
      }
    }
    cursorpos -= cursorpossub;
    boolean needsAreaCode = false;
    int minLength = 2;
    int maxLength = 15;
    pphoneNumberData.setCountryCode(null);
    pphoneNumberData.setAreaCode(null);
    pphoneNumberData.setLineNumber(null);
    pphoneNumberData.setExtension(null);
    final StringBuilder cleanupString = new StringBuilder(pphoneNumber.getValue().length());
    final boolean containsMinus = StringUtils.contains(pphoneNumber.getValue(), '-');
    boolean hasSeperator = false;
    for (final char character : StringUtils.reverse(pphoneNumber.getValue()).toCharArray()) {
      switch (character) {
        case '0':
        case '1':
        case '2':
        case '3':
        case '4':
        case '5':
        case '6':
        case '7':
        case '8':
        case '9':
          cleanupString.append(character);
          break;
        case '-':
          if (!hasSeperator) {
            cleanupString.append(character);
            hasSeperator = true;
          }
          break;
        case ' ':
          if (!hasSeperator && !containsMinus && cleanupString.length() <= 5) {
            cleanupString.append('-');
            hasSeperator = true;
          }
          break;
        default:
          // ignore all other characters
          break;
      }
    }
    String phoneNumberWork = StringUtils.reverse(cleanupString.toString());
    if (pcountryData != null) {
      if (StringUtils.isNotEmpty(pcountryData.getExitCode())
          && phoneNumberWork.startsWith(pcountryData.getExitCode())) {
        phoneNumberWork = phoneNumberWork.substring(pcountryData.getExitCode().length());
        cursorpos -= pcountryData.getExitCode().length();
      } else if (StringUtils.isNotEmpty(pcountryData.getTrunkCode())
          && phoneNumberWork.startsWith(pcountryData.getTrunkCode())) {
        phoneNumberWork = pcountryData.getCountryCodeData().getCountryCode()
            + phoneNumberWork.substring(pcountryData.getTrunkCode().length());
        if (cursorpos >= pcountryData.getTrunkCode().length()) {
          cursorpos -= pcountryData.getTrunkCode().length();
          cursorpos += StringUtils.length(pcountryData.getCountryCodeData().getCountryCode());
        }
      }
    }
    for (final PhoneCountryCodeData countryCode : CreatePhoneCountryConstantsClass.create()
        .countryCodeData()) {
      if (phoneNumberWork.startsWith(countryCode.getCountryCode())) {
        pphoneNumberData.setCountryCode(countryCode.getCountryCode());
        maxLength -= StringUtils.length(countryCode.getCountryCode());
        if (pphoneNumberData instanceof PhoneNumberExtendedInterface) {
          ((PhoneNumberExtendedInterface) pphoneNumberData)
              .setCountryName(countryCode.getCountryCodeName());
        }
        phoneNumberWork = phoneNumberWork.substring(countryCode.getCountryCode().length());
        if (phoneNumberWork.startsWith(PhoneNumberUtil.EXTENSION_SEPARATOR)) {
          phoneNumberWork = phoneNumberWork.substring(1);
        }
        if (countryCode.getPhoneCountryData() != null) {
          needsAreaCode = countryCode.getPhoneCountryData().isAreaCodeMustBeFilled();
          if (StringUtils.isNotEmpty(countryCode.getPhoneCountryData().getTrunkCode())
              && phoneNumberWork.startsWith(countryCode.getPhoneCountryData().getTrunkCode())) {
            phoneNumberWork = phoneNumberWork
                .substring(countryCode.getPhoneCountryData().getTrunkCode().length());
            if (cursorpos >= countryCode.getPhoneCountryData().getTrunkCode().length()) {
              cursorpos -= countryCode.getPhoneCountryData().getTrunkCode().length();
            }
          }
        }
        for (final PhoneAreaCodeData areaCode : countryCode.getAreaCodeData()) {
          if (areaCode.isRegEx() && phoneNumberWork.matches("^" + areaCode.getAreaCode() + ".*")) {
            final String areaCodeRemember = phoneNumberWork;
            phoneNumberWork =
                phoneNumberWork.replaceFirst(areaCode.getAreaCode(), StringUtils.EMPTY);
            pphoneNumberData.setAreaCode(areaCodeRemember.substring(0,
                areaCodeRemember.length() - phoneNumberWork.length()));
            if (pphoneNumberData instanceof PhoneNumberExtendedInterface) {
              ((PhoneNumberExtendedInterface) pphoneNumberData).setAreaName(areaCode.getAreaName());
            }
            minLength = areaCode.getMinLength();
            maxLength = areaCode.getMaxLength();
            break;
          } else if (!areaCode.isRegEx() && phoneNumberWork.startsWith(areaCode.getAreaCode())) {
            pphoneNumberData.setAreaCode(areaCode.getAreaCode());
            if (pphoneNumberData instanceof PhoneNumberExtendedInterface) {
              ((PhoneNumberExtendedInterface) pphoneNumberData).setAreaName(areaCode.getAreaName());
            }
            phoneNumberWork = phoneNumberWork.substring(areaCode.getAreaCode().length());
            minLength = areaCode.getMinLength();
            maxLength = areaCode.getMaxLength();
            break;
          }
        }

        if (phoneNumberWork.startsWith(PhoneNumberUtil.EXTENSION_SEPARATOR)) {
          phoneNumberWork = phoneNumberWork.substring(1);
        }
        if (phoneNumberWork.contains(PhoneNumberUtil.EXTENSION_SEPARATOR)) {
          final String[] splitedPhoneNumber =
              phoneNumberWork.split(PhoneNumberUtil.EXTENSION_SEPARATOR);
          pphoneNumberData.setLineNumber(splitedPhoneNumber[0]);
          if (splitedPhoneNumber.length > 1) {
            pphoneNumberData.setExtension(splitedPhoneNumber[1]);
          }
        } else {
          pphoneNumberData.setLineNumber(phoneNumberWork);
        }
        break;
      }
    }
    if (pphoneNumberData instanceof ValidationInterface) {
      int callNummerLength = StringUtils.length(pphoneNumberData.getLineNumber());
      int completeNumberLength = callNummerLength;
      if (StringUtils.isNotEmpty(pphoneNumberData.getExtension())) {
        // if we do have extensions, phone number including extension may be longer then allowed
        // number, but at least one digit counts
        callNummerLength++;
        completeNumberLength += StringUtils.length(pphoneNumberData.getExtension());
      }
      ((ValidationInterface) pphoneNumberData)
          .setValid(StringUtils.isNotEmpty(pphoneNumberData.getCountryCode())
              && StringUtils.isNotEmpty(pphoneNumberData.getLineNumber())
              && (StringUtils.isNotEmpty(pphoneNumberData.getAreaCode()) || !needsAreaCode)
              && (callNummerLength >= minLength && callNummerLength <= maxLength
                  || completeNumberLength >= minLength && completeNumberLength <= maxLength));
    }
    if (cursorpos < 0) {
      cursorpos = 0;
    } else {
      final int calculatedlength = StringUtils.length(pphoneNumberData.getCountryCode())
          + StringUtils.length(pphoneNumberData.getAreaCode())
          + StringUtils.length(pphoneNumberData.getLineNumber())
          + StringUtils.length(pphoneNumberData.getExtension());
      if (cursorpos > calculatedlength) {
        cursorpos = calculatedlength;
      }
    }
    return new ValueWithPos<>(new PhoneNumberData(pphoneNumberData), cursorpos);
  }
1067387
public static String quote(final String string) {
        int last = 0;
        final StringBuilder sb = new StringBuilder();
        for (int i = 0; i < string.length(); i++) {
            if (needsQuoting(string.charAt(i))) {
                sb.append(string, last, i);
                last = i = quote(sb, string, i);
            }
        }
        sb.append(string, last, string.length());
        return sb.toString();
    }
312511
public static synchronized String paramParse(String para) {
        if (para == null || para.isEmpty()) {
            return para;
        }

        para = para.replace("/", "//");
        para = para.replace("'", "''");
        para = para.replace("[", "/[");
        para = para.replace("]", "/]");
        para = para.replace("%", "/%");
        para = para.replace("&", "/&");
        para = para.replace("_", "/_");
        para = para.replace("(", "/(");
        para = para.replace(")", "/)");

        return para;
    }
1347614
public static String prefixParameterToMessage(Parameter<?> p, String message) {
    return new StringBuilder(100 + message.length()) //
        .append(p instanceof Flag ? "Flag '" : "Parameter '") //
        .append(p.getOptionID().getName()) //
        .append("' ").append(message).toString();
  }
120596
public final ValueWithPos<String> formatCommonNationalWithPos(
      final ValueWithPos<PhoneNumberData> pphoneNumberData) {
    if (pphoneNumberData == null) {
      return null;
    }
    int cursor = pphoneNumberData.getPos();
    final StringBuilder resultNumber = new StringBuilder();
    if (isPhoneNumberNotEmpty(pphoneNumberData.getValue())) {
      PhoneCountryData phoneCountryData = null;
      for (final PhoneCountryCodeData country : CreatePhoneCountryConstantsClass.create()
          .countryCodeData()) {
        if (StringUtils.equals(country.getCountryCode(),
            pphoneNumberData.getValue().getCountryCode())) {
          phoneCountryData = country.getPhoneCountryData();
          break;
        }
      }
      if (phoneCountryData == null) {
        return null;
      }
      if (cursor > 0) {
        cursor -= StringUtils.length(pphoneNumberData.getValue().getCountryCode());
        cursor += StringUtils.length(phoneCountryData.getTrunkCode());
      }
      resultNumber.append(phoneCountryData.getTrunkCode());
      if (resultNumber.length() <= cursor) {
        cursor++;
      }
      resultNumber.append(' ');
      if (StringUtils.isNotBlank(pphoneNumberData.getValue().getAreaCode())) {
        final ValueWithPos<String> areaCode = this.groupIntoParts(
            new ValueWithPos<>(pphoneNumberData.getValue().getAreaCode(), cursor),
            resultNumber.length(), 2);
        cursor = areaCode.getPos();
        resultNumber.append(areaCode.getValue());
      }
      if (resultNumber.length() <= cursor) {
        cursor += 3;
      }
      resultNumber.append(" / ");
      final ValueWithPos<String> lineNumber = this.groupIntoParts(
          new ValueWithPos<>(pphoneNumberData.getValue().getLineNumber(), cursor),
          resultNumber.length(), 2);
      cursor = lineNumber.getPos();
      resultNumber.append(lineNumber.getValue());
      if (StringUtils.isNotBlank(pphoneNumberData.getValue().getExtension())) {
        if (resultNumber.length() <= cursor) {
          cursor += 3;
        }
        resultNumber.append(" - ");
        final ValueWithPos<String> extension = this.groupIntoParts(
            new ValueWithPos<>(pphoneNumberData.getValue().getExtension(), cursor),
            resultNumber.length(), 2);
        cursor = extension.getPos();
        resultNumber.append(extension.getValue());
      }
    }
    return new ValueWithPos<>(StringUtils.trimToNull(resultNumber.toString()), cursor);
  }