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: idbconverter.java.vm
007// ______________________________________________________
008package net.gdface.facelog.db;
009
010/**
011 * converter between general type({@code <L>}) and native type ({@code <R>}) for  all Beans
012 * @author guyadong
013 *
014 */
015public interface IDbConverter<
016                            N_DEVICE,
017                            N_DEVICEGROUP,
018                            N_FACE,
019                            N_FEATURE,
020                            N_IMAGE,
021                            N_LOG,
022                            N_PERMIT,
023                            N_PERSON,
024                            N_PERSONGROUP,
025                            N_STORE,
026                            N_LOGLIGHT> {
027    /**
028     * return a converter {@code DeviceBean -> N_DEVICE}
029     * @return
030     */
031    public abstract IBeanConverter<DeviceBean, N_DEVICE> getDeviceBeanConverter();
032    /**
033     * return a converter {@code DeviceGroupBean -> N_DEVICEGROUP}
034     * @return
035     */
036    public abstract IBeanConverter<DeviceGroupBean, N_DEVICEGROUP> getDeviceGroupBeanConverter();
037    /**
038     * return a converter {@code FaceBean -> N_FACE}
039     * @return
040     */
041    public abstract IBeanConverter<FaceBean, N_FACE> getFaceBeanConverter();
042    /**
043     * return a converter {@code FeatureBean -> N_FEATURE}
044     * @return
045     */
046    public abstract IBeanConverter<FeatureBean, N_FEATURE> getFeatureBeanConverter();
047    /**
048     * return a converter {@code ImageBean -> N_IMAGE}
049     * @return
050     */
051    public abstract IBeanConverter<ImageBean, N_IMAGE> getImageBeanConverter();
052    /**
053     * return a converter {@code LogBean -> N_LOG}
054     * @return
055     */
056    public abstract IBeanConverter<LogBean, N_LOG> getLogBeanConverter();
057    /**
058     * return a converter {@code PermitBean -> N_PERMIT}
059     * @return
060     */
061    public abstract IBeanConverter<PermitBean, N_PERMIT> getPermitBeanConverter();
062    /**
063     * return a converter {@code PersonBean -> N_PERSON}
064     * @return
065     */
066    public abstract IBeanConverter<PersonBean, N_PERSON> getPersonBeanConverter();
067    /**
068     * return a converter {@code PersonGroupBean -> N_PERSONGROUP}
069     * @return
070     */
071    public abstract IBeanConverter<PersonGroupBean, N_PERSONGROUP> getPersonGroupBeanConverter();
072    /**
073     * return a converter {@code StoreBean -> N_STORE}
074     * @return
075     */
076    public abstract IBeanConverter<StoreBean, N_STORE> getStoreBeanConverter();
077    /**
078     * return a converter {@code LogLightBean -> N_LOGLIGHT}
079     * @return
080     */
081    public abstract IBeanConverter<LogLightBean, N_LOGLIGHT> getLogLightBeanConverter();
082
083    /**
084     * return a converter {@code L - > R}
085     * @param <L> general type
086     * @param <R> native type
087     * @param lClass
088     * @param rClass
089     * @return
090     */
091    public abstract<L, R> IBeanConverter<L,R> getBeanConverter(Class<L> lClass,Class<R> rClass);
092    /**
093     * set converter 
094     * @param <L> general type
095     * @param <R> native type
096     * @param lClass
097     * @param rClass
098     * @param converter
099     */
100    public abstract <L, R> void setBeanConverter(Class<L> lClass, Class<R> rClass, IBeanConverter<L,R>converter);
101
102}