package org.apache.poi.xssf.usermodel.helpers; import java.lang.reflect.InvocationHandler; import java.lang.reflect.Method; import org.openxmlformats.schemas.spreadsheetml.x2006.main.CTCol; import org.openxmlformats.schemas.spreadsheetml.x2006.main.CTCols; public class CTColProxy implements InvocationHandler { private CTColsProxy cols=null; private final CTCol proxied; public CTColProxy(CTCol col){ this.proxied=col; } public CTColProxy(CTCol col, CTColsProxy cols){ this.proxied=col; this.cols=cols; } @Override public Object invoke(Object proxy, Method method, Object[] args) throws Throwable { if (method.getName().startsWith("setMax") || method.getName().startsWith("setMin") ) { updateColsRange((Long) args[0]); } return method.invoke(proxied, args); } public CTCols getCols() { return (CTCols) cols; } public void setCols(CTColsProxy cols) { this.cols = cols; } private void updateColsRange(Long value){ if(cols==null)return; if(cols.getMax()==null || cols.getMax()value)cols.setMin(value); } }