/** * ** Returns a new URIArg with this URIArg's arguments encoded into a ** single RTProperties * added with a specified key [CHECK] ** @param rtpKey The key to add the encoded args at * ** @param exclKeys keys to exclude from encoding ** @return A new URIArg with non excluded * arguments encoded */ public URIArg rtpEncode(String rtpKey, String... exclKeys) { URIArg rtpUrl = new URIArg(this.getURI()); RTProperties rtp = new RTProperties(); for (KeyVal kv : this.getKeyValList()) { String kn = kv.getKey(); if (ListTools.contains(exclKeys, kn)) { rtpUrl.addArg(kv); } else { rtp.setString(kn, kv.getValue()); } } rtpUrl.addArg(rtpKey, rtp); return rtpUrl; }
/** * ** Returns a new URIArg with this URIArg's arguments decoded from a ** single RTProperties * added a specified key [CHECK] ** @param rtpKey The key of the RTProperties to decode the * encoded args from ** @return A new URIArg with non excluded arguments encoded */ public URIArg rtpDecode(String rtpKey) { URIArg cpyUrl = new URIArg(this.getURI()); for (KeyVal kv : this.getKeyValList()) { String kn = kv.getKey(); if (!kn.equals(rtpKey)) { cpyUrl.addArg(kv); } else { RTProperties rtp = URIArg.parseRTP(kv.getValue()); for (Object rpk : rtp.getPropertyKeys()) { String rk = rpk.toString(); String rv = rtp.getString(rk, ""); cpyUrl.addArg(rk, rv); } } } return cpyUrl; }