/* * Copyright (c) 2016. Lorem ipsum dolor sit amet, consectetur adipiscing elit. * Morbi non lorem porttitor neque feugiat blandit. Ut vitae ipsum eget quam lacinia accumsan. * Etiam sed turpis ac ipsum condimentum fringilla. Maecenas magna. * Proin dapibus sapien vel ante. Aliquam erat volutpat. Pellentesque sagittis ligula eget metus. * Vestibulum commodo. Ut rhoncus gravida arcu. */ package com.markjmind.uni.mapper.annotiation.adapter; import android.util.Log; import com.markjmind.uni.common.Store; import com.markjmind.uni.exception.ErrorMessage; import com.markjmind.uni.exception.UinMapperException; import com.markjmind.uni.mapper.FieldInjectAdapter; import com.markjmind.uni.mapper.annotiation.Param; import java.lang.reflect.Field; /** * <br>捲土重來<br> * * @author 오재웅(JaeWoong-Oh) * @email markjmind@gmail.com * @since 2016-02-15 */ public class ParamAdapter extends FieldInjectAdapter<Param> { private Store<?> param; public ParamAdapter(Store param){ this.param = param; } @Override public Class<Param> getAnnotationType() { return Param.class; } @Override public void injectField(Param annotation, Field field, Object targetObject) { String key = annotation.value(); if(key.trim().length()==0){ key = field.getName(); } if(param.containsKey(key)) { Object value = param.get(key); try { if(value!=null) { setField(field, value); } } catch (Exception e) { Log.i("dsd", field.getType().getName()); if (value == null && ("int".equals(field.getType().getName()) || "long".equals(field.getType().getName()) || "float".equals(field.getType().getName()) || "double".equals(field.getType().getName()) )) { throw new UinMapperException(ErrorMessage.Runtime.injectParamNull(getObject().getClass(), field), e); } else { throw new UinMapperException(ErrorMessage.Runtime.injectParam(getObject().getClass(), field.getName()), e); } } } } }