public ITransientSet conj(Object val) { ITransientMap m = impl.assoc(val, val); if (m != impl) this.impl = m; return this; }
public ITransientSet conj(Object val) { ITransientMap m = impl.assoc(val, val); if (m != impl) this.impl = m; return this; }
/** * Add a binding from {@code key} to {@code value} to this map, overwriting any existing * binding for {@code key}. */ public void put(K key, V value) { delegate = delegate.assoc(key, value); }
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(); } }
@Override public RingHandler request(SelectionKey key, String httpVersion, HttpMethod method, String uri, String query) { NetCtx ctx = NetCtx.fromKey(key); request = PersistentArrayMap.EMPTY.asTransient() .assoc(SERVER_PORT, ctx.getServerPort()) .assoc(SERVER_NAME, ctx.getServerName()) .assoc(REMOTE_ADDR, ctx.getRemoteAddr()) .assoc(PROTOCOL, httpVersion) .assoc(URI, uri) .assoc(QUERY_STRING, query) .assoc(REQUEST_METHOD, getMethod(method)) .assoc(SCHEME, ctx.getTlsContext() != null ? HTTPS : HTTP); headers = PersistentArrayMap.EMPTY.asTransient(); // TODO SSL_CLIENT_CERT return this; }
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())); } }
@Override public RingHandler header(SelectionKey key, String name, String value) { name = name.toLowerCase(); Object v = headers.valAt(name); if (v == null) { headers = headers.assoc(name, value); } else { if (v.getClass() == String.class) { headers = headers.assoc(name, PersistentVector.create(v, value)); } else if (v instanceof PersistentVector) { PersistentVector pv = (PersistentVector) v; headers = headers.assoc(name, pv.assoc(pv.size(), value)); } } return this; }
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(); }
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(); }
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 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 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(); }