package com.gh.mygreen.xlsmapper;
import java.lang.annotation.Annotation;
import org.apache.poi.ss.usermodel.Sheet;
import com.gh.mygreen.xlsmapper.fieldprocessor.FieldAdaptor;
import com.gh.mygreen.xlsmapper.fieldprocessor.FieldProcessor;
import com.gh.mygreen.xlsmapper.fieldprocessor.LoadingFieldProcessor;
import com.gh.mygreen.xlsmapper.fieldprocessor.SavingFieldProcessor;
/**
* フィールドに対するアノテーション、プロセッサーなどを保持するクラス。
*
* @author T.TSUCHIE
*
*/
public class FieldAdaptorProxy {
private final Annotation annotation;
private final FieldProcessor processor;
private final FieldAdaptor adaptor;
public FieldAdaptorProxy(final Annotation annotation, FieldProcessor processor, FieldAdaptor adaptor) {
this.annotation = annotation;
this.processor = processor;
this.adaptor = adaptor;
}
public boolean equals(final Object obj) {
if(obj instanceof FieldAdaptor) {
return ((FieldAdaptor)obj).equals(obj);
}
return super.equals(obj);
}
public Annotation getAnnotation() {
return annotation;
}
public FieldProcessor getProcessor() {
return processor;
}
public LoadingFieldProcessor getProcessorAsLoading() {
return (LoadingFieldProcessor) processor;
}
public SavingFieldProcessor getProcessorAsSaving() {
return (SavingFieldProcessor) processor;
}
public FieldAdaptor getAdaptor() {
return adaptor;
}
public void loadProcess(final Sheet sheet, final Object beanObj, final XlsMapperConfig config, final LoadingWorkObject work) throws XlsMapperException {
getProcessorAsLoading().loadProcess(sheet, beanObj, getAnnotation(), adaptor, config, work);
}
public void saveProcess(final Sheet sheet, final Object beanObj, final XlsMapperConfig config, final SavingWorkObject work) throws XlsMapperException {
getProcessorAsSaving().saveProcess(sheet, beanObj, getAnnotation(), adaptor, config, work);
}
}