public IPersistentSet cons(Object o){ if(contains(o)) return this; return new PersistentHashSet(meta(),impl.assoc(o,o)); }
public static PersistentHashSet create(Object... init){ PersistentHashSet ret = EMPTY; for(int i = 0; i < init.length; i++) { ret = (PersistentHashSet) ret.cons(init[i]); } return ret; }
TransientSet() { this.delegate = (ITransientSet) PersistentHashSet.EMPTY.asTransient(); }
@Override public boolean contains(Type t) { if (t==this) return true; if (t instanceof Nothing) return true; if (t instanceof Value) { Value<?> ev=(Value<?>) t; return values.contains(ev.value); } if (t instanceof ValueSet) { @SuppressWarnings("rawtypes") PersistentHashSet tvs=((ValueSet) t).values; return tvs.containsAll(values); } return false; }
public PersistentHashSet withMeta(IPersistentMap meta){ return new PersistentHashSet(meta, impl); }
@Override public boolean canBeNull() { return values.contains(null); }
static public IPersistentSet set(Object... init){ return PersistentHashSet.createWithCheck(init); }
@SafeVarargs static <T> ClojureSet<T> create(T... ts) { return create(PersistentHashSet.create(ts)); }
public PersistentHashSet withMeta(IPersistentMap meta){ return new PersistentHashSet(meta, impl); }
public Object invoke(Object reader, Object leftbracket, Object opts, Object pendingForms) { PushbackReader r = (PushbackReader) reader; return PersistentHashSet.createWithCheck(readDelimitedList('}', r, true, opts, ensurePending(pendingForms))); }
public static <T> Type create(Collection<T> values) { int n=values.size(); if (n==0) return Nothing.INSTANCE; if (n==1) return Value.create(values.iterator().next()); return new ValueSet<T>(PersistentHashSet.create(RT.seq(values))); }
public IPersistentSet disjoin(Object key) { if(contains(key)) return new PersistentHashSet(meta(),impl.without(key)); return this; }
public static PersistentHashSet create(List init){ PersistentHashSet ret = EMPTY; for(Object key : init) { ret = (PersistentHashSet) ret.cons(key); } return ret; }
public static PersistentHashSet createPersistentHashSet(PersistentHashMap map) { return new PersistentHashSet(PersistentHashMap.EMPTY, map); }
@Override public boolean checkInstance(Object o) { return values.contains(o); }
public static PersistentHashSet create(Object... init){ ITransientSet ret = (ITransientSet)EMPTY.asTransient(); for(int i = 0; i < init.length; i++) { ret = (ITransientSet)ret.conj(init[i]); } return (PersistentHashSet)ret.persistent(); }