001// ______________________________________________________
002// Generated by codegen - https://gitee.com/l0km/codegen 
003// template: decorator/decorator.class.vm
004// ______________________________________________________
005package net.gdface.sdk.fse;
006/**
007 * decorator pattern 装饰者模式实现{@link FeatureSe}接口<br>
008 * 转发所有{@link FeatureSe}接口方法到{@link #delegate()}指定的实例,<br>
009 * unchecked后缀的方法将所有显式申明的异常封装到{@link RuntimeException}抛出<br>
010 * 计算机生成代码(generated by automated tools DecoratorGenerator @author guyadong)<br>
011 * @author guyadong
012 *
013 */
014public class FeatureSeDecorator implements FeatureSe{
015    private final FeatureSe delegate;
016    
017    public FeatureSeDecorator(FeatureSe delegate) {
018        super();
019        if(null == delegate){
020            throw new NullPointerException("delegate is null");
021        }
022        this.delegate = delegate;
023    }
024    /**
025     * 将 {@code FeatureSe} 对象封装为 FeatureSeDecorator 实例<br>
026     * 如果 {@code FeatureSe} 已经是 FeatureSeDecorator 则返回 FeatureSe}
027     * @param instance
028     * @return FeatureSeDecorator 实例
029     */
030    public static final FeatureSeDecorator makeDecorator(FeatureSe instance){
031        if(instance instanceof FeatureSeDecorator){
032            return (FeatureSeDecorator)instance;
033        }
034        return new FeatureSeDecorator(instance);
035    }
036
037    /**
038     * @return FeatureSe 返回被装饰的{@link FeatureSe}实例
039     */
040    public FeatureSe delegate() {
041        return delegate;
042    }    
043
044    @Override
045    public boolean addFeature (byte[] featureId,byte[] feature,String imgMD5) {
046        return delegate().addFeature(featureId,feature,imgMD5);
047    }
048
049    @Override
050    public boolean addFeature (byte[] featureId,byte[] feature,long appid) {
051        return delegate().addFeature(featureId,feature,appid);
052    }
053
054    @Override
055    public void clearAll () {
056         delegate().clearAll();
057    }
058
059    @Override
060    public CodeBean getFeature (byte[] featureId) {
061        return delegate().getFeature(featureId);
062    }
063
064    @Override
065    public CodeBean getFeatureByHex (String featureId) {
066        return delegate().getFeatureByHex(featureId);
067    }
068
069    @Override
070    public boolean removeFeature (byte[] featureId) {
071        return delegate().removeFeature(featureId);
072    }
073
074    @Override
075    public boolean removeFeatureByHex (String featureId) {
076        return delegate().removeFeatureByHex(featureId);
077    }
078
079    @Override
080    public CodeBean[] searchCode (byte[] code,double sim,int rows) {
081        return delegate().searchCode(code,sim,rows);
082    }
083
084    @Override
085    public int size () {
086        return delegate().size();
087    }
088}