/* * 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 com.markjmind.uni.mapper.ClassInjectAdapter; import com.markjmind.uni.mapper.annotiation.Progress; import com.markjmind.uni.progress.ProgressBuilder; import com.markjmind.uni.progress.UniProgress; /** * <br>捲土重來<br> * * @author 오재웅(JaeWoong-Oh) * @email markjmind@gmail.com * @since 2016-02-26 */ public class ProgressAdapter extends ClassInjectAdapter<Progress> { private ProgressBuilder progress; public ProgressAdapter(ProgressBuilder progress){ this.progress = progress; } @Override public void injectClass(Progress annotation, Class targetClass, Object targetObject) { if(progress!=null) { Class<UniProgress> type = (Class<UniProgress>) annotation.type(); int mode = annotation.mode(); if (!type.equals(Progress.None.class)) { try { UniProgress info = (UniProgress) type.newInstance(); progress.set(mode, info); } catch (InstantiationException e) { e.printStackTrace(); } catch (IllegalAccessException e) { e.printStackTrace(); } } else { int res = annotation.res(); if (res != -1) { progress.set(mode, res); } } if (progress.get() != null) { progress.get().onBind(); } } } @Override public Class<Progress> getAnnotationType() { return Progress.class; } }