001// ______________________________________________________ 002// Generated by sql2java - https://github.com/10km/sql2java-2-6-7 (custom branch) 003// modified by guyadong from 004// sql2java original version https://sourceforge.net/projects/sql2java/ 005// JDBC driver used at code generation time: com.mysql.jdbc.Driver 006// template: base.dbconverter.generic.java.vm 007// ______________________________________________________ 008package net.gdface.facelog.db; 009import java.lang.reflect.ParameterizedType; 010import java.lang.reflect.Type; 011import net.gdface.facelog.db.IBeanConverter; 012import net.gdface.facelog.db.IDbConverter; 013 014import net.gdface.facelog.db.DeviceBean; 015import net.gdface.facelog.db.DeviceGroupBean; 016import net.gdface.facelog.db.FaceBean; 017import net.gdface.facelog.db.FeatureBean; 018import net.gdface.facelog.db.ImageBean; 019import net.gdface.facelog.db.LogBean; 020import net.gdface.facelog.db.PermitBean; 021import net.gdface.facelog.db.PersonBean; 022import net.gdface.facelog.db.PersonGroupBean; 023import net.gdface.facelog.db.StoreBean; 024import net.gdface.facelog.db.LogLightBean; 025/** 026 * generic type converter of {@link IDbConverter} implementation<br> 027 * usage:<pre>new BaseDbConverterGeneric<Model1,Model2,Model3,Model4,Model5,Model6,Model7,Model8,Model9,Model10,Model11>(){};</pre> 028 * @author guyadong 029 * 030 * @param <R_DEVICE> native type for fl_device 031 * @param <R_DEVICEGROUP> native type for fl_device_group 032 * @param <R_FACE> native type for fl_face 033 * @param <R_FEATURE> native type for fl_feature 034 * @param <R_IMAGE> native type for fl_image 035 * @param <R_LOG> native type for fl_log 036 * @param <R_PERMIT> native type for fl_permit 037 * @param <R_PERSON> native type for fl_person 038 * @param <R_PERSONGROUP> native type for fl_person_group 039 * @param <R_STORE> native type for fl_store 040 * @param <R_LOGLIGHT> native type for fl_log_light 041 * 042 */ 043public abstract class BaseDbConverterGeneric< 044 R_DEVICE, 045 R_DEVICEGROUP, 046 R_FACE, 047 R_FEATURE, 048 R_IMAGE, 049 R_LOG, 050 R_PERMIT, 051 R_PERSON, 052 R_PERSONGROUP, 053 R_STORE, 054 R_LOGLIGHT> 055 implements IDbConverter<R_DEVICE,R_DEVICEGROUP,R_FACE,R_FEATURE,R_IMAGE,R_LOG,R_PERMIT,R_PERSON,R_PERSONGROUP,R_STORE,R_LOGLIGHT>, Constant{ 056 private final IBeanConverter<DeviceBean,R_DEVICE> converterDeviceBean; 057 private final IBeanConverter<DeviceGroupBean,R_DEVICEGROUP> converterDeviceGroupBean; 058 private final IBeanConverter<FaceBean,R_FACE> converterFaceBean; 059 private final IBeanConverter<FeatureBean,R_FEATURE> converterFeatureBean; 060 private final IBeanConverter<ImageBean,R_IMAGE> converterImageBean; 061 private final IBeanConverter<LogBean,R_LOG> converterLogBean; 062 private final IBeanConverter<PermitBean,R_PERMIT> converterPermitBean; 063 private final IBeanConverter<PersonBean,R_PERSON> converterPersonBean; 064 private final IBeanConverter<PersonGroupBean,R_PERSONGROUP> converterPersonGroupBean; 065 private final IBeanConverter<StoreBean,R_STORE> converterStoreBean; 066 private final IBeanConverter<LogLightBean,R_LOGLIGHT> converterLogLightBean; 067 private static Class<?> getRawClass(Type type){ 068 if(type instanceof Class<?>){ 069 return (Class<?>) type; 070 } else if(type instanceof ParameterizedType){ 071 return getRawClass(((ParameterizedType) type).getRawType()); 072 } else{ 073 throw new IllegalArgumentException("invalid type"); 074 } 075 } 076 /** 077 * usage: <pre>new BaseDbConverterGeneric<Model...>(javaFields...){};</pre> 078 * each 'javaFields' parameter is a comma splice string,including all field name of right type,<br> 079 * if null or empty, use default string of each table 080 */ 081 @SuppressWarnings("unchecked") 082 public BaseDbConverterGeneric(String javaFieldsOfDevice, 083 String javaFieldsOfDeviceGroup, 084 String javaFieldsOfFace, 085 String javaFieldsOfFeature, 086 String javaFieldsOfImage, 087 String javaFieldsOfLog, 088 String javaFieldsOfPermit, 089 String javaFieldsOfPerson, 090 String javaFieldsOfPersonGroup, 091 String javaFieldsOfStore, 092 String javaFieldsOfLogLight){ 093 094 if(null == javaFieldsOfDevice || javaFieldsOfDevice.isEmpty()){ 095 javaFieldsOfDevice = FL_DEVICE_JAVA_FIELDS; 096 } 097 if(null == javaFieldsOfDeviceGroup || javaFieldsOfDeviceGroup.isEmpty()){ 098 javaFieldsOfDeviceGroup = FL_DEVICE_GROUP_JAVA_FIELDS; 099 } 100 if(null == javaFieldsOfFace || javaFieldsOfFace.isEmpty()){ 101 javaFieldsOfFace = FL_FACE_JAVA_FIELDS; 102 } 103 if(null == javaFieldsOfFeature || javaFieldsOfFeature.isEmpty()){ 104 javaFieldsOfFeature = FL_FEATURE_JAVA_FIELDS; 105 } 106 if(null == javaFieldsOfImage || javaFieldsOfImage.isEmpty()){ 107 javaFieldsOfImage = FL_IMAGE_JAVA_FIELDS; 108 } 109 if(null == javaFieldsOfLog || javaFieldsOfLog.isEmpty()){ 110 javaFieldsOfLog = FL_LOG_JAVA_FIELDS; 111 } 112 if(null == javaFieldsOfPermit || javaFieldsOfPermit.isEmpty()){ 113 javaFieldsOfPermit = FL_PERMIT_JAVA_FIELDS; 114 } 115 if(null == javaFieldsOfPerson || javaFieldsOfPerson.isEmpty()){ 116 javaFieldsOfPerson = FL_PERSON_JAVA_FIELDS; 117 } 118 if(null == javaFieldsOfPersonGroup || javaFieldsOfPersonGroup.isEmpty()){ 119 javaFieldsOfPersonGroup = FL_PERSON_GROUP_JAVA_FIELDS; 120 } 121 if(null == javaFieldsOfStore || javaFieldsOfStore.isEmpty()){ 122 javaFieldsOfStore = FL_STORE_JAVA_FIELDS; 123 } 124 if(null == javaFieldsOfLogLight || javaFieldsOfLogLight.isEmpty()){ 125 javaFieldsOfLogLight = FL_LOG_LIGHT_JAVA_FIELDS; 126 } 127 Type[] typeArguments = ((ParameterizedType)getClass().getGenericSuperclass()).getActualTypeArguments(); 128 this.converterDeviceBean = new BeanConverterUtils.DeviceBeanConverter<R_DEVICE>(DeviceBean.class, 129 (Class<R_DEVICE>)getRawClass(typeArguments[0]),javaFieldsOfDevice); 130 this.converterDeviceGroupBean = new BeanConverterUtils.DeviceGroupBeanConverter<R_DEVICEGROUP>(DeviceGroupBean.class, 131 (Class<R_DEVICEGROUP>)getRawClass(typeArguments[1]),javaFieldsOfDeviceGroup); 132 this.converterFaceBean = new BeanConverterUtils.FaceBeanConverter<R_FACE>(FaceBean.class, 133 (Class<R_FACE>)getRawClass(typeArguments[2]),javaFieldsOfFace); 134 this.converterFeatureBean = new BeanConverterUtils.FeatureBeanConverter<R_FEATURE>(FeatureBean.class, 135 (Class<R_FEATURE>)getRawClass(typeArguments[3]),javaFieldsOfFeature); 136 this.converterImageBean = new BeanConverterUtils.ImageBeanConverter<R_IMAGE>(ImageBean.class, 137 (Class<R_IMAGE>)getRawClass(typeArguments[4]),javaFieldsOfImage); 138 this.converterLogBean = new BeanConverterUtils.LogBeanConverter<R_LOG>(LogBean.class, 139 (Class<R_LOG>)getRawClass(typeArguments[5]),javaFieldsOfLog); 140 this.converterPermitBean = new BeanConverterUtils.PermitBeanConverter<R_PERMIT>(PermitBean.class, 141 (Class<R_PERMIT>)getRawClass(typeArguments[6]),javaFieldsOfPermit); 142 this.converterPersonBean = new BeanConverterUtils.PersonBeanConverter<R_PERSON>(PersonBean.class, 143 (Class<R_PERSON>)getRawClass(typeArguments[7]),javaFieldsOfPerson); 144 this.converterPersonGroupBean = new BeanConverterUtils.PersonGroupBeanConverter<R_PERSONGROUP>(PersonGroupBean.class, 145 (Class<R_PERSONGROUP>)getRawClass(typeArguments[8]),javaFieldsOfPersonGroup); 146 this.converterStoreBean = new BeanConverterUtils.StoreBeanConverter<R_STORE>(StoreBean.class, 147 (Class<R_STORE>)getRawClass(typeArguments[9]),javaFieldsOfStore); 148 this.converterLogLightBean = new BeanConverterUtils.LogLightBeanConverter<R_LOGLIGHT>(LogLightBean.class, 149 (Class<R_LOGLIGHT>)getRawClass(typeArguments[10]),javaFieldsOfLogLight); 150 } 151 public BaseDbConverterGeneric(){ 152 this(null,null,null,null,null,null,null,null,null,null,null); 153 } 154 @Override 155 public <L,R>IBeanConverter<L,R>getBeanConverter(Class<L> lClass,Class<R> rClass){ 156 throw new UnsupportedOperationException(); 157 } 158 159 @Override 160 public <L,R>void setBeanConverter(Class<L> lClass,Class<R> rClass,IBeanConverter<L,R>converter){ 161 throw new UnsupportedOperationException(); 162 } 163 164 @Override 165 public IBeanConverter<DeviceBean, R_DEVICE> getDeviceBeanConverter() { 166 return converterDeviceBean; 167 } 168 @Override 169 public IBeanConverter<DeviceGroupBean, R_DEVICEGROUP> getDeviceGroupBeanConverter() { 170 return converterDeviceGroupBean; 171 } 172 @Override 173 public IBeanConverter<FaceBean, R_FACE> getFaceBeanConverter() { 174 return converterFaceBean; 175 } 176 @Override 177 public IBeanConverter<FeatureBean, R_FEATURE> getFeatureBeanConverter() { 178 return converterFeatureBean; 179 } 180 @Override 181 public IBeanConverter<ImageBean, R_IMAGE> getImageBeanConverter() { 182 return converterImageBean; 183 } 184 @Override 185 public IBeanConverter<LogBean, R_LOG> getLogBeanConverter() { 186 return converterLogBean; 187 } 188 @Override 189 public IBeanConverter<PermitBean, R_PERMIT> getPermitBeanConverter() { 190 return converterPermitBean; 191 } 192 @Override 193 public IBeanConverter<PersonBean, R_PERSON> getPersonBeanConverter() { 194 return converterPersonBean; 195 } 196 @Override 197 public IBeanConverter<PersonGroupBean, R_PERSONGROUP> getPersonGroupBeanConverter() { 198 return converterPersonGroupBean; 199 } 200 @Override 201 public IBeanConverter<StoreBean, R_STORE> getStoreBeanConverter() { 202 return converterStoreBean; 203 } 204 @Override 205 public IBeanConverter<LogLightBean, R_LOGLIGHT> getLogLightBeanConverter() { 206 return converterLogLightBean; 207 } 208}