package com.kaltura.client; import java.net.URLEncoder; import java.util.ArrayList; import java.util.HashMap; import java.util.Iterator; import java.util.Set; /** * Helper class that provides a collection of Kaltura parameters (key-value pairs). * * @author jpotts * */ public class KalturaParams extends HashMap<String, String> { private static final long serialVersionUID = 6630046786691120850L; public String toQueryString() { String str = ""; Set<String> s = this.keySet(); Iterator<String> it = s.iterator( ); while (it.hasNext()) { String name = (String)it.next(); String value = (String)this.get(name); try { str += (name + "=" + URLEncoder.encode (value, "UTF-8") + "&"); } catch (Exception e) { //TODO handle this } } if (str.endsWith("&")) str = str.substring(0, str.length() - 1); return str; } public void add(String objectName, KalturaParams objectProperties) { for (String key : objectProperties.keySet()) { this.put(objectName + ":" + key, objectProperties.get(key)); } } public void add(KalturaParams objectProperties) { this.putAll(objectProperties); } public void setString(String key, String value) { if(this.get(key) != null) this.remove(key); this.put(key, value); } public void addObjectIfNotNull(String key, KalturaObjectBase object) { if (object == null) return; KalturaParams params = object.toParams(); Set<String> s = params.keySet(); Iterator<String> it = s.iterator( ); while (it.hasNext()) { String name = (String)it.next(); String value = (String)params.get(name); this.put(key + ":" + name, value); } } public void addObjectIfNotNull(String key, ArrayList array) { if (array == null) return; int index = 0; for(KalturaObjectBase object : (ArrayList<KalturaObjectBase>)array) { KalturaParams params = object.toParams(); Set<String> s = params.keySet(); Iterator<String> it = s.iterator( ); while (it.hasNext()) { String name = (String)it.next(); String value = (String)params.get(name); this.put(key + ":" + index + ":" + name, value); } index++; } if (array.isEmpty()) { this.put(key + ":-", ""); } } public void addStringIfNotNull(String key, String value) { if (value != null) this.put(key, value); } public void addIntIfNotNull(String key, int value) { if (value != Integer.MIN_VALUE) this.put(key, Integer.toString(value)); } public void addFloatIfNotNull(String key, float value) { if (value != Float.MIN_VALUE) this.put(key, Float.toString(value)); } public void addBoolIfNotNull(String key, boolean value) { this.put(key, value ? "1" : "0"); } }