package org.knopflerfish.bundle.soap.remotefw; import org.osgi.framework.*; import org.osgi.util.tracker.*; import java.util.*; import org.knopflerfish.service.log.LogRef; import org.osgi.service.startlevel.*; import java.lang.reflect.*; public class Util { public static long[] referencesToLong(ServiceReference[] srl) { if(srl == null) { return new long[0]; } long[] r = new long[srl.length]; for(int i = 0; i < srl.length; i++) { r[i] = ((Long)srl[i].getProperty(Constants.SERVICE_ID)).longValue(); } return r; } public static String encodeAsString(Object val) { if(val == null) { return "[null]"; } if(val.getClass().isArray()) { StringBuffer sb = new StringBuffer(); sb.append(val.getClass().getName()); sb.append("[#" + Array.getLength(val) + "#"); for(int i = 0; i < Array.getLength(val); i++) { Object item = Array.get(val, i); sb.append(encodeAsString(item)); if(i < Array.getLength(val) - 1) { sb.append(","); } } sb.append("#]"); } return "[@" + val.getClass().getName() + "::" + val + "@]"; } public static Object toDisplay(Object val) { if(val != null) { if(val.getClass().isArray()) { StringBuffer sb = new StringBuffer(); sb.append("["); for(int i = 0; i < Array.getLength(val); i++) { sb.append(toDisplay(Array.get(val, i))); if(i < Array.getLength(val) - 1) { sb.append(","); } } sb.append("]"); return sb.toString(); } } return val; } }