001// ______________________________________________________
002// Generated by codegen - https://gitee.com/l0km/codegen 
003// template: thrift/client_thrifty/perstruct/exception.decorator.class.vm
004// ______________________________________________________
005package net.gdface.facelog.decorator.client;
006import net.gdface.thrift.ThriftDecorator;
007import net.gdface.thrift.exception.BaseServiceException;
008
009import java.io.PrintStream;
010import java.io.PrintWriter;
011import com.facebook.swift.codec.ThriftStruct;
012import static com.google.common.base.Preconditions.checkNotNull;
013
014/**
015 * decorator pattern 装饰者模式代理{@link net.gdface.facelog.DuplicateRecordException}<br>
016 * 代理对象必须有默认构造方法,String参数构造方法可选,必须是普通类型,不可以有@ThriftStruct注释<br>
017 * 转发所有{@link net.gdface.facelog.DuplicateRecordException}get/set方法到{@link #delegate()}指定的实例,<br>
018 * 计算机生成代码(generated by automated tools ThriftServiceDecoratorGenerator @author guyadong)<br>
019 * @author guyadong
020 *
021 */
022@ThriftStruct
023public final class DuplicateRecordException extends BaseServiceException 
024    implements ThriftDecorator<net.gdface.facelog.DuplicateRecordException> {
025    private static final long serialVersionUID = 1L;
026    private final net.gdface.facelog.DuplicateRecordException delegate;
027
028    public DuplicateRecordException(){
029        this(new net.gdface.facelog.DuplicateRecordException());
030    }
031    public DuplicateRecordException(String message){
032        this(new net.gdface.facelog.DuplicateRecordException(message));
033    }
034    public DuplicateRecordException(net.gdface.facelog.DuplicateRecordException delegate) {
035        super(checkNotNull(delegate,"delegate is null").getMessage(),delegate.getCause());
036        // 检查被装饰类是否有@ThriftStruct注释
037        if(delegate.getClass().isAnnotationPresent(ThriftStruct.class)){
038            throw new IllegalArgumentException(
039                String.format("NOT ALLOW %s have @ThriftStruct annotation",delegate.getClass().getName()));
040        }
041        this.delegate = delegate;
042    }
043    /**
044     * 返回被装饰的{@link net.gdface.facelog.DuplicateRecordException}实例
045     * @return
046     */
047    @Override
048    public net.gdface.facelog.DuplicateRecordException delegate() {
049        return delegate;
050    }
051    @Override
052    public void printStackTrace() {
053        delegate().printStackTrace();
054    }
055    @Override
056    public void printStackTrace(PrintStream s) {
057        delegate().printStackTrace(s);
058    }
059    @Override
060    public void printStackTrace(PrintWriter s) {
061        delegate().printStackTrace(s);
062    }
063    @Override
064    public StackTraceElement[] getStackTrace() {
065        return delegate().getStackTrace();
066    }
067    @Override
068    public Throwable initCause(Throwable cause) {
069        return delegate().initCause(cause);
070    }
071    @Override
072    public int hashCode() {
073        return delegate().hashCode();
074    }
075    @Override
076    public boolean equals(Object obj) {
077        return delegate().equals(obj);
078    }
079    @Override
080    public String toString() {
081        return delegate().toString();
082    }
083}