/** * Returns a persistent immutable version of this TransientMap. This operation is performed in * constant time. Note that after this method is called, this transient instance will no longer * be usable and attempts to modify it will fail. */ public ClojureMap<K, V> toPersistent() { return ClojureMap.wrap(delegate.persistent()); } }
public IPersistentCollection persistent() { return new PersistentHashSet(null, impl.persistent()); } }
public Object persistent() { return new PersistentHashSet(null, impl.persistent()); } }
static public IPersistentMap create(Map other){ ITransientMap ret = EMPTY.asTransient(); for(Object o : other.entrySet()) { Map.Entry e = (Entry) o; ret = ret.assoc(e.getKey(), e.getValue()); } return ret.persistent(); }
static public IPersistentMap create(Map other){ ITransientMap ret = EMPTY.asTransient(); for(Object o : other.entrySet()) { Map.Entry e = (Entry) o; ret = ret.assoc(e.getKey(), e.getValue()); } return ret.persistent(); }
static public IPersistentMap create(Map other){ ITransientMap ret = EMPTY.asTransient(); for(Object o : other.entrySet()) { Map.Entry e = (Entry) o; ret = ret.assoc(e.getKey(), e.getValue()); } return ret.persistent(); }
static public IPersistentMap create(Map other){ ITransientMap ret = EMPTY.asTransient(); for(Object o : other.entrySet()) { Map.Entry e = (Entry) o; ret = ret.assoc(e.getKey(), e.getValue()); } return ret.persistent(); }
public void addDefaultImports() { boolean done = false; while (!done) { IPersistentMap oldI = mappings.get(); ITransientMap newI = (ITransientMap)((IEditableCollection) RT.DEFAULT_IMPORTS).asTransient(); Set oes = ((Map)oldI).entrySet(); // for(Map.Entry entry : (Set<Map.Entry>) oes) { // System.out.println("has " + entry.toString()); // } for(Map.Entry entry : (Set<Map.Entry>) oes) { newI.assoc(entry.getKey(), entry.getValue()); } done = mappings.compareAndSet(oldI, (IPersistentMap)(newI.persistent())); } }
public static PersistentHashMap create(Object... init){ ITransientMap ret = EMPTY.asTransient(); for(int i = 0; i < init.length; i += 2) { ret = ret.assoc(init[i], init[i + 1]); } return (PersistentHashMap) ret.persistent(); }
public static PersistentHashMap create(Object... init){ ITransientMap ret = EMPTY.asTransient(); for(int i = 0; i < init.length; i += 2) { ret = ret.assoc(init[i], init[i + 1]); } return (PersistentHashMap) ret.persistent(); }
public static PersistentHashMap createWithCheck(Object... init){ ITransientMap ret = EMPTY.asTransient(); for(int i = 0; i < init.length; i += 2) { ret = ret.assoc(init[i], init[i + 1]); if(ret.count() != i/2 + 1) throw new IllegalArgumentException("Duplicate key: " + init[i]); } return (PersistentHashMap) ret.persistent(); }
public static PersistentHashMap createWithCheck(Object... init){ ITransientMap ret = EMPTY.asTransient(); for(int i = 0; i < init.length; i += 2) { ret = ret.assoc(init[i], init[i + 1]); if(ret.count() != i/2 + 1) throw new IllegalArgumentException("Duplicate key: " + init[i]); } return (PersistentHashMap) ret.persistent(); }
@Override public RingHandler finish(SelectionKey key) { if (!bodyParts.isEmpty()) { int sz = 0; for (byte[] b : bodyParts) { sz += b.length; } byte[] body = new byte[sz]; int pos = 0; for (byte[] b : bodyParts) { System.arraycopy(b, 0, body, pos, b.length); pos += b.length; } // TODO implement streaming request = request.assoc(BODY_DATA, new ByteArrayInputStream(body)); bodyParts.clear(); } request = request.assoc(REQ_HEADERS, headers.persistent()); RingTask task = new RingTask(key, fn, new HttpEncoder(config), request.persistent()); executor.execute(task); return this; }
static public PersistentHashMap createWithCheck(ISeq items){ ITransientMap ret = EMPTY.asTransient(); for(int i=0; items != null; items = items.next().next(), ++i) { if(items.next() == null) throw new IllegalArgumentException(String.format("No value supplied for key: %s", items.first())); ret = ret.assoc(items.first(), RT.second(items)); if(ret.count() != i + 1) throw new IllegalArgumentException("Duplicate key: " + items.first()); } return (PersistentHashMap) ret.persistent(); }
static public PersistentHashMap createWithCheck(ISeq items){ ITransientMap ret = EMPTY.asTransient(); for(int i=0; items != null; items = items.next().next(), ++i) { if(items.next() == null) throw new IllegalArgumentException(String.format("No value supplied for key: %s", items.first())); ret = ret.assoc(items.first(), RT.second(items)); if(ret.count() != i + 1) throw new IllegalArgumentException("Duplicate key: " + items.first()); } return (PersistentHashMap) ret.persistent(); }
static public PersistentHashMap create(ISeq items){ ITransientMap ret = EMPTY.asTransient(); for(; items != null; items = items.next().next()) { if(items.next() == null) throw new IllegalArgumentException(String.format("No value supplied for key: %s", items.first())); ret = ret.assoc(items.first(), RT.second(items)); } return (PersistentHashMap) ret.persistent(); }
static public PersistentHashMap create(ISeq items){ ITransientMap ret = EMPTY.asTransient(); for(; items != null; items = items.next().next()) { if(items.next() == null) throw new IllegalArgumentException(String.format("No value supplied for key: %s", items.first())); ret = ret.assoc(items.first(), RT.second(items)); } return (PersistentHashMap) ret.persistent(); }
public IPersistentMap invoke(IPersistentMap req) { Object resp = fn.invoke(req); if (resp instanceof IPersistentMap) { return (IPersistentMap) resp; } else { return PersistentArrayMap.EMPTY.asTransient() .assoc(STATUS, 200) .assoc(BODY_DATA, resp) .assoc(REQ_HEADERS, PersistentArrayMap.EMPTY) .persistent(); } }
public static IPersistentMap resp(long status, Object...args) { ITransientMap rslt = PersistentArrayMap.EMPTY.asTransient() .assoc(RingProtocol.STATUS, status); ITransientMap headers = PersistentArrayMap.EMPTY.asTransient(); for (int i = 1; i < args.length; i+=2) { headers = headers.assoc(args[i-1].toString().toLowerCase(), args[i]); } rslt = rslt.assoc(RingProtocol.REQ_HEADERS, headers.persistent()); if ((args.length % 2) != 0) { rslt = rslt.assoc(RingProtocol.BODY_DATA, args[args.length-1]); } return rslt.persistent(); }