@@ -0,0 +1,2963 @@
+/**%0A * END USER LICENSE AGREEMENT (%E2%80%9CEULA%E2%80%9D)%0A *%0A * READ THIS AGREEMENT CAREFULLY (date: 9/13/2011):%0A * http://www.akiban.com/licensing/20110913%0A *%0A * BY INSTALLING OR USING ALL OR ANY PORTION OF THE SOFTWARE, YOU ARE ACCEPTING%0A * ALL OF THE TERMS AND CONDITIONS OF THIS AGREEMENT. YOU AGREE THAT THIS%0A * AGREEMENT IS ENFORCEABLE LIKE ANY WRITTEN AGREEMENT SIGNED BY YOU.%0A *%0A * IF YOU HAVE PAID A LICENSE FEE FOR USE OF THE SOFTWARE AND DO NOT AGREE TO%0A * THESE TERMS, YOU MAY RETURN THE SOFTWARE FOR A FULL REFUND PROVIDED YOU (A) DO%0A * NOT USE THE SOFTWARE AND (B) RETURN THE SOFTWARE WITHIN THIRTY (30) DAYS OF%0A * YOUR INITIAL PURCHASE.%0A *%0A * IF YOU WISH TO USE THE SOFTWARE AS AN EMPLOYEE, CONTRACTOR, OR AGENT OF A%0A * CORPORATION, PARTNERSHIP OR SIMILAR ENTITY, THEN YOU MUST BE AUTHORIZED TO SIGN%0A * FOR AND BIND THE ENTITY IN ORDER TO ACCEPT THE TERMS OF THIS AGREEMENT. THE%0A * LICENSES GRANTED UNDER THIS AGREEMENT ARE EXPRESSLY CONDITIONED UPON ACCEPTANCE%0A * BY SUCH AUTHORIZED PERSONNEL.%0A *%0A * IF YOU HAVE ENTERED INTO A SEPARATE WRITTEN LICENSE AGREEMENT WITH AKIBAN FOR%0A * USE OF THE SOFTWARE, THE TERMS AND CONDITIONS OF SUCH OTHER AGREEMENT SHALL%0A * PREVAIL OVER ANY CONFLICTING TERMS OR CONDITIONS IN THIS AGREEMENT.%0A */%0A%0Apackage com.akiban.qp.row;%0A%0Aimport com.akiban.ais.model.UserTable;%0Aimport com.akiban.qp.rowtype.RowType;%0Aimport com.akiban.server.types.ValueSource;%0Aimport com.akiban.server.types3.pvalue.PValueSource;%0A%0Apublic class DelegateRow implements Row %7B%0A    private final Row delegate;%0A%0A    public DelegateRow(Row delegate) %7B%0A        this.delegate = delegate;%0A    %7D%0A%0A    public Row getDelegate() %7B%0A        return delegate;%0A    %7D%0A%0A    //%0A    // Row%0A    //%0A%0A    @Override%0A    public RowType rowType() %7B%0A        return delegate.rowType();%0A    %7D%0A%0A    @Override%0A    public HKey hKey() %7B%0A        return delegate.hKey();%0A    %7D%0A%0A    @Override%0A    public HKey ancestorHKey(UserTable table) %7B%0A        return delegate.ancestorHKey(table);%0A    %7D%0A%0A    @Override%0A    public boolean ancestorOf(RowBase that) %7B%0A        return delegate.ancestorOf(that);%0A    %7D%0A%0A    @Override%0A    public boolean containsRealRowOf(UserTable userTable) %7B%0A        return delegate.containsRealRowOf(userTable);%0A    %7D%0A%0A    @Override%0A    public Row subRow(RowType subRowType) %7B%0A        return delegate.subRow(subRowType);%0A    %7D%0A%0A    @Override%0A    public int compareTo(RowBase row, int leftStartIndex, int rightStartIndex, int fieldCount) %7B%0A        return delegate.compareTo(row, leftStartIndex, rightStartIndex, fieldCount);%0A    %7D%0A%0A    @Override%0A    public PValueSource pvalue(int index) %7B%0A        return delegate.pvalue(index);%0A    %7D%0A%0A    @Override%0A    public ValueSource eval(int index) %7B%0A        return delegate.eval(index);%0A    %7D%0A%0A    @Override%0A    public void acquire() %7B%0A        delegate.acquire();%0A    %7D%0A%0A    @Override%0A    public boolean isShared() %7B%0A        return delegate.isShared();%0A    %7D%0A%0A    @Override%0A    public void release() %7B%0A        delegate.release();%0A    %7D%0A%7D%0A

Add delegate row helper class