public int count(){ return vals.length + RT.count(ext); }
public int count(){ return 1 + RT.count(_more); }
public int count(){ return 1 + RT.count(_more); }
static public Object[] seqToPassedArray(ISeq seq, Object[] passed){ Object[] dest = passed; int len = count(seq); if (len > dest.length) { dest = (Object[]) Array.newInstance(passed.getClass().getComponentType(), len); } for(int i = 0; seq != null; ++i, seq = seq.next()) dest[i] = seq.first(); if (len < passed.length) { dest[len] = null; } return dest; }
static Object getFromOrig(Object coll, Object key, Object notFound){ if(coll == null) return notFound; else if(coll instanceof Map) { Map m = (Map) coll; if(m.containsKey(key)) return m.get(key); return notFound; } else if(coll instanceof IPersistentSet) { IPersistentSet set = (IPersistentSet) coll; if(set.contains(key)) return set.get(key); return notFound; } else if(key instanceof Number && (coll instanceof String || coll.getClass().isArray())) { int n = ((Number) key).intValue(); return n >= 0 && n < count(coll) ? nth(coll, n) : notFound; } return notFound; }
static public Object[] object_array(Object sizeOrSeq){ if(sizeOrSeq instanceof Number) return new Object[((Number) sizeOrSeq).intValue()]; else { ISeq s = RT.seq(sizeOrSeq); int size = RT.count(s); Object[] ret = new Object[size]; for(int i = 0; i < size && s != null; i++, s = s.next()) ret[i] = s.first(); return ret; } }
static Object getFrom(Object coll, Object key){ if(coll == null) return null; else if(coll instanceof Map) { Map m = (Map) coll; return m.get(key); } else if(coll instanceof IPersistentSet) { IPersistentSet set = (IPersistentSet) coll; return set.get(key); } else if(key instanceof Number && (coll instanceof String || coll.getClass().isArray())) { int n = ((Number) key).intValue(); if(n >= 0 && n < count(coll)) return nth(coll, n); return null; } else if(Protocol.satisfiesILookup(coll)) return Protocol.bridgeILookupGet(coll, key, null); return null; }
@WarnBoxedMath(false) static public double[] double_array(Object sizeOrSeq){ if(sizeOrSeq instanceof Number) return new double[((Number) sizeOrSeq).intValue()]; else { ISeq s = RT.seq(sizeOrSeq); int size = RT.count(s); double[] ret = new double[size]; for(int i = 0; i < size && s != null; i++, s = s.next()) ret[i] = ((Number) s.first()).doubleValue(); return ret; } }
@WarnBoxedMath(false) static public int[] int_array(Object sizeOrSeq){ if(sizeOrSeq instanceof Number) return new int[((Number) sizeOrSeq).intValue()]; else { ISeq s = RT.seq(sizeOrSeq); int size = RT.count(s); int[] ret = new int[size]; for(int i = 0; i < size && s != null; i++, s = s.next()) ret[i] = ((Number) s.first()).intValue(); return ret; } }
@WarnBoxedMath(false) static public short[] short_array(Object sizeOrSeq){ if(sizeOrSeq instanceof Number) return new short[((Number) sizeOrSeq).intValue()]; else { ISeq s = RT.seq(sizeOrSeq); int size = RT.count(s); short[] ret = new short[size]; for(int i = 0; i < size && s != null; i++, s = s.next()) ret[i] = ((Number) s.first()).shortValue(); return ret; } }
@WarnBoxedMath(false) static public float[] float_array(Object sizeOrSeq){ if(sizeOrSeq instanceof Number) return new float[((Number) sizeOrSeq).intValue()]; else { ISeq s = RT.seq(sizeOrSeq); int size = RT.count(s); float[] ret = new float[size]; for(int i = 0; i < size && s != null; i++, s = s.next()) ret[i] = ((Number) s.first()).floatValue(); return ret; } }
@WarnBoxedMath(false) static public byte[] byte_array(Object sizeOrSeq){ if(sizeOrSeq instanceof Number) return new byte[((Number) sizeOrSeq).intValue()]; else { ISeq s = RT.seq(sizeOrSeq); int size = RT.count(s); byte[] ret = new byte[size]; for(int i = 0; i < size && s != null; i++, s = s.next()) ret[i] = ((Number) s.first()).byteValue(); return ret; } }
@WarnBoxedMath(false) static public long[] long_array(Object sizeOrSeq){ if(sizeOrSeq instanceof Number) return new long[((Number) sizeOrSeq).intValue()]; else { ISeq s = RT.seq(sizeOrSeq); int size = RT.count(s); long[] ret = new long[size]; for(int i = 0; i < size && s != null; i++, s = s.next()) ret[i] = ((Number) s.first()).longValue(); return ret; } }
static Object getFrom(Object coll, Object key, Object notFound){ if(coll == null) return notFound; else if(coll instanceof Map) { Map m = (Map) coll; if(m.containsKey(key)) return m.get(key); return notFound; } else if(coll instanceof IPersistentSet) { IPersistentSet set = (IPersistentSet) coll; if(set.contains(key)) return set.get(key); return notFound; } else if(key instanceof Number && (coll instanceof String || coll.getClass().isArray())) { int n = ((Number) key).intValue(); return n >= 0 && n < count(coll) ? nth(coll, n) : notFound; } else if(Protocol.satisfiesILookup(coll)) return Protocol.bridgeILookupGet(coll, key, notFound); return notFound; }
static public Def createSlotMap(ISeq keys){ if(keys == null) throw new IllegalArgumentException("Must supply keys"); int c = RT.count(keys); Object[] v = new Object[2*c]; int i = 0; for(ISeq s = keys; s != null; s = s.next(), i++) { v[2*i] = s.first(); v[2*i+1] = i; } return new Def(keys, RT.map(v)); }
static public Def createSlotMap(ISeq keys){ if(keys == null) throw new IllegalArgumentException("Must supply keys"); int c = RT.count(keys); Object[] v = new Object[2*c]; int i = 0; for(ISeq s = keys; s != null; s = s.next(), i++) { v[2*i] = s.first(); v[2*i+1] = i; } return new Def(keys, RT.map(v)); }
@WarnBoxedMath(false) static public char[] char_array(Object sizeOrSeq){ if(sizeOrSeq instanceof Number) return new char[((Number) sizeOrSeq).intValue()]; else { ISeq s = RT.seq(sizeOrSeq); int size = RT.count(s); char[] ret = new char[size]; for(int i = 0; i < size && s != null; i++, s = s.next()) ret[i] = (Character) s.first(); return ret; } }
@WarnBoxedMath(false) static public boolean[] boolean_array(Object sizeOrSeq){ if(sizeOrSeq instanceof Number) return new boolean[((Number) sizeOrSeq).intValue()]; else { ISeq s = RT.seq(sizeOrSeq); int size = RT.count(s); boolean[] ret = new boolean[size]; for(int i = 0; i < size && s != null; i++, s = s.next()) ret[i] = (Boolean)s.first(); return ret; } }