/** * Returns a {@link MapParams} contains all the key values in the given map. */ @SuppressWarnings({ "unchecked", "rawtypes" }) static MapParams of(Map map) { return new MapParams(map); }
@Override public Object get(int i) throws IllegalStateException { if(!isIndexed()){ throw new IllegalStateException("Not an indexed parameters because this map is null or not an instance of 'LinkedHashMap'"); } int index=0; for(Entry<String, Object> entry : raw.entrySet()){ if(index == i){ return entry.getValue(); }else{ index++; } } throw new IndexOutOfBoundsException("The given index " + i + " is out of bounds"); }
protected Params params(Map<String,Object> map) { return null == map ? null : new MapParams(map); } }
@Override public Params getParams() { return new MapParams(toMap()); }
public void render(StringBuilder out,Map<String, Object> params) { render(out,new MapParams(params)); } }
public String render(Map<String, Object> params){ return render(new MapParams(params)); }
protected void createCompositeIdCommand() { MapParams p = new MapParams(); List<Params> ps = new ArrayList<Params>(); for(Object id : ids) { if(id != null) { ps.add(context.getParameterStrategy().createIdParameters(context, em, id)); } } String sql = createCompositeFindListSql(p, ps); this.sqlCommand = context.getSqlFactory().createSqlCommand(context, sql); this.idParameters = p; }
@SuppressWarnings("unchecked") public Params createParams(Object param) throws IllegalStateException { if(null == param){ return new ParamsMap(); } if(param instanceof Params){ return (Params)param; } if(param instanceof ParamsGetter){ return ((ParamsGetter) param).getParams(); } if(param instanceof Map){ return new MapParams((Map<String,Object>)param); } if(param instanceof DynaBean) { return new DynaParams((DynaBean)param); } if(isBeanParameters(param.getClass())){ return new BeanParams(param); } throw new UnsupportedParametersException("unsupported parameters type '" + param.getClass().getName() + "'"); }
@Override @SuppressWarnings({"rawtypes","unchecked"}) public Params createIdParameters(OrmContext context, EntityMapping em, Object id) throws InvalidParametersException { if(null == id){ throw new InvalidParametersException("The id value must not be null"); } String[] keys = em.getKeyFieldNames(); if(id.getClass().isArray()){ Object[] array = Converts.toObjectArray(id); if(array.length != keys.length){ throw new InvalidParameterException("The passed in array's length " + array.length + " not equals to keys size " + keys.length); } return new ArrayParams(Converts.toObjectArray(id)); }else if(id instanceof Map){ return new MapParams((Map)id); }else { if(null != em.getEntityClass() && em.getEntityClass().isAssignableFrom(id.getClass())){ return new BeanParams(id); }else if(keys.length == 1){ return new ArrayParams(id); }else{ throw new UnsupportedParametersException("The class '" + id.getClass().getName() + "' not supported as id parameter"); } } }