static Map objectID_map; static long objectID(O o) { if (o == null) ret 0; Map generalMap = cast getOpt(javax(), 'generalMap); if (generalMap == null) fail("Please upgrade JavaX"); synchronized(generalMap) { Map map = cast generalMap.get("objectIDs"); if (map == null) generalMap.put("objectIDs", map = new WeakHashMap); Long l = cast map.get(o); if (l == null) { l = toLong(generalMap.get("lastObjectID"))+1; generalMap.put("lastObjectID", l); map.put(o, l); } ret l; } }