/** * Returns a {@link BeanParams} contains all the properties in the given bean.. */ static BeanParams bean(Object bean) { return new BeanParams(bean); }
@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"); } } }