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}