package org.apache.poi.xslf.usermodel;
import org.apache.poi.util.Internal;
import org.apache.poi.util.POILogFactory;
import org.apache.poi.util.POILogger;
import org.apache.xmlbeans.XmlCursor;
import org.apache.xmlbeans.XmlObject;
import org.openxmlformats.schemas.drawingml.x2006.main.CTBlipFillProperties;
import org.openxmlformats.schemas.drawingml.x2006.main.CTCustomGeometry2D;
import org.openxmlformats.schemas.drawingml.x2006.main.CTEffectContainer;
import org.openxmlformats.schemas.drawingml.x2006.main.CTEffectList;
import org.openxmlformats.schemas.drawingml.x2006.main.CTFillProperties;
import org.openxmlformats.schemas.drawingml.x2006.main.CTGradientFillProperties;
import org.openxmlformats.schemas.drawingml.x2006.main.CTGroupFillProperties;
import org.openxmlformats.schemas.drawingml.x2006.main.CTLineProperties;
import org.openxmlformats.schemas.drawingml.x2006.main.CTNoFillProperties;
import org.openxmlformats.schemas.drawingml.x2006.main.CTPatternFillProperties;
import org.openxmlformats.schemas.drawingml.x2006.main.CTPresetGeometry2D;
import org.openxmlformats.schemas.drawingml.x2006.main.CTShapeProperties;
import org.openxmlformats.schemas.drawingml.x2006.main.CTSolidColorFillProperties;
import org.openxmlformats.schemas.drawingml.x2006.main.CTStyleMatrixReference;
import org.openxmlformats.schemas.drawingml.x2006.main.CTTableCellProperties;
import org.openxmlformats.schemas.drawingml.x2006.main.CTTextCharacterProperties;
import org.openxmlformats.schemas.presentationml.x2006.main.CTBackgroundProperties;
@Internal
class XSLFPropertiesDelegate {
private static final POILogger LOG = POILogFactory.getLogger(XSLFPropertiesDelegate.class);
public static XSLFFillProperties getFillDelegate(XmlObject props) {
return getDelegate(XSLFFillProperties.class, props);
}
public static XSLFGeometryProperties getGeometryDelegate(XmlObject props) {
return getDelegate(XSLFGeometryProperties.class, props);
}
public static XSLFEffectProperties getEffectDelegate(XmlObject props) {
return getDelegate(XSLFEffectProperties.class, props);
}
public interface XSLFFillProperties {
CTNoFillProperties getNoFill();
boolean isSetNoFill();
void setNoFill(CTNoFillProperties noFill);
CTNoFillProperties addNewNoFill();
void unsetNoFill();
CTSolidColorFillProperties getSolidFill();
boolean isSetSolidFill();
void setSolidFill(CTSolidColorFillProperties solidFill);
CTSolidColorFillProperties addNewSolidFill();
void unsetSolidFill();
CTGradientFillProperties getGradFill();
boolean isSetGradFill();
void setGradFill(CTGradientFillProperties gradFill);
CTGradientFillProperties addNewGradFill();
void unsetGradFill();
CTBlipFillProperties getBlipFill();
boolean isSetBlipFill();
void setBlipFill(CTBlipFillProperties blipFill);
CTBlipFillProperties addNewBlipFill();
void unsetBlipFill();
CTPatternFillProperties getPattFill();
boolean isSetPattFill();
void setPattFill(CTPatternFillProperties pattFill);
CTPatternFillProperties addNewPattFill();
void unsetPattFill();
CTGroupFillProperties getGrpFill();
boolean isSetGrpFill();
void setGrpFill(CTGroupFillProperties grpFill);
CTGroupFillProperties addNewGrpFill();
void unsetGrpFill();
boolean isSetMatrixStyle();
CTStyleMatrixReference getMatrixStyle();
boolean isLineStyle();
}
public interface XSLFGeometryProperties {
CTCustomGeometry2D getCustGeom();
boolean isSetCustGeom();
void setCustGeom(CTCustomGeometry2D custGeom);
CTCustomGeometry2D addNewCustGeom();
void unsetCustGeom();
CTPresetGeometry2D getPrstGeom();
boolean isSetPrstGeom();
void setPrstGeom(CTPresetGeometry2D prstGeom);
CTPresetGeometry2D addNewPrstGeom();
void unsetPrstGeom();
}
public interface XSLFEffectProperties {
CTEffectList getEffectLst();
boolean isSetEffectLst();
void setEffectLst(CTEffectList effectLst);
CTEffectList addNewEffectLst();
void unsetEffectLst();
CTEffectContainer getEffectDag();
boolean isSetEffectDag();
void setEffectDag(CTEffectContainer effectDag);
CTEffectContainer addNewEffectDag();
void unsetEffectDag();
}
private static class ShapeDelegate implements XSLFFillProperties, XSLFGeometryProperties, XSLFEffectProperties {
final CTShapeProperties props;
ShapeDelegate(CTShapeProperties props) {
this.props = props;
}
@Override
public CTNoFillProperties getNoFill() {
return props.getNoFill();
}
@Override
public boolean isSetNoFill() {
return props.isSetNoFill();
}
@Override
public void setNoFill(CTNoFillProperties noFill) {
props.setNoFill(noFill);
}
@Override
public CTNoFillProperties addNewNoFill() {
return props.addNewNoFill();
}
@Override
public void unsetNoFill() {
props.unsetNoFill();
}
@Override
public CTSolidColorFillProperties getSolidFill() {
return props.getSolidFill();
}
@Override
public boolean isSetSolidFill() {
return props.isSetSolidFill();
}
@Override
public void setSolidFill(CTSolidColorFillProperties solidFill) {
props.setSolidFill(solidFill);
}
@Override
public CTSolidColorFillProperties addNewSolidFill() {
return props.addNewSolidFill();
}
@Override
public void unsetSolidFill() {
props.unsetSolidFill();
}
@Override
public CTGradientFillProperties getGradFill() {
return props.getGradFill();
}
@Override
public boolean isSetGradFill() {
return props.isSetGradFill();
}
@Override
public void setGradFill(CTGradientFillProperties gradFill) {
props.setGradFill(gradFill);
}
@Override
public CTGradientFillProperties addNewGradFill() {
return props.addNewGradFill();
}
@Override
public void unsetGradFill() {
props.unsetGradFill();
}
@Override
public CTBlipFillProperties getBlipFill() {
return props.getBlipFill();
}
@Override
public boolean isSetBlipFill() {
return props.isSetBlipFill();
}
@Override
public void setBlipFill(CTBlipFillProperties blipFill) {
props.setBlipFill(blipFill);
}
@Override
public CTBlipFillProperties addNewBlipFill() {
return props.addNewBlipFill();
}
@Override
public void unsetBlipFill() {
props.unsetBlipFill();
}
@Override
public CTPatternFillProperties getPattFill() {
return props.getPattFill();
}
@Override
public boolean isSetPattFill() {
return props.isSetPattFill();
}
@Override
public void setPattFill(CTPatternFillProperties pattFill) {
props.setPattFill(pattFill);
}
@Override
public CTPatternFillProperties addNewPattFill() {
return props.addNewPattFill();
}
@Override
public void unsetPattFill() {
props.unsetPattFill();
}
@Override
public CTGroupFillProperties getGrpFill() {
return props.getGrpFill();
}
@Override
public boolean isSetGrpFill() {
return props.isSetGrpFill();
}
@Override
public void setGrpFill(CTGroupFillProperties grpFill) {
props.setGrpFill(grpFill);
}
@Override
public CTGroupFillProperties addNewGrpFill() {
return props.addNewGrpFill();
}
@Override
public void unsetGrpFill() {
props.unsetGrpFill();
}
@Override
public CTCustomGeometry2D getCustGeom() {
return props.getCustGeom();
}
@Override
public boolean isSetCustGeom() {
return props.isSetCustGeom();
}
@Override
public void setCustGeom(CTCustomGeometry2D custGeom) {
props.setCustGeom(custGeom);
}
@Override
public CTCustomGeometry2D addNewCustGeom() {
return props.addNewCustGeom();
}
@Override
public void unsetCustGeom() {
props.unsetCustGeom();
}
@Override
public CTPresetGeometry2D getPrstGeom() {
return props.getPrstGeom();
}
@Override
public boolean isSetPrstGeom() {
return props.isSetPrstGeom();
}
@Override
public void setPrstGeom(CTPresetGeometry2D prstGeom) {
props.setPrstGeom(prstGeom);
}
@Override
public CTPresetGeometry2D addNewPrstGeom() {
return props.addNewPrstGeom();
}
@Override
public void unsetPrstGeom() {
props.unsetPrstGeom();
}
@Override
public CTEffectList getEffectLst() {
return props.getEffectLst();
}
@Override
public boolean isSetEffectLst() {
return props.isSetEffectLst();
}
@Override
public void setEffectLst(CTEffectList effectLst) {
props.setEffectLst(effectLst);
}
@Override
public CTEffectList addNewEffectLst() {
return props.addNewEffectLst();
}
@Override
public void unsetEffectLst() {
props.unsetEffectLst();
}
@Override
public CTEffectContainer getEffectDag() {
return props.getEffectDag();
}
@Override
public boolean isSetEffectDag() {
return props.isSetEffectDag();
}
@Override
public void setEffectDag(CTEffectContainer effectDag) {
props.setEffectDag(effectDag);
}
@Override
public CTEffectContainer addNewEffectDag() {
return props.addNewEffectDag();
}
@Override
public void unsetEffectDag() {
props.unsetEffectDag();
}
@Override
public boolean isSetMatrixStyle() {
return false;
}
@Override
public CTStyleMatrixReference getMatrixStyle() {
return null;
}
@Override
public boolean isLineStyle() {
return false;
}
}
private static class BackgroundDelegate implements XSLFFillProperties, XSLFEffectProperties {
final CTBackgroundProperties props;
BackgroundDelegate(CTBackgroundProperties props) {
this.props = props;
}
@Override
public CTNoFillProperties getNoFill() {
return props.getNoFill();
}
@Override
public boolean isSetNoFill() {
return props.isSetNoFill();
}
@Override
public void setNoFill(CTNoFillProperties noFill) {
props.setNoFill(noFill);
}
@Override
public CTNoFillProperties addNewNoFill() {
return props.addNewNoFill();
}
@Override
public void unsetNoFill() {
props.unsetNoFill();
}
@Override
public CTSolidColorFillProperties getSolidFill() {
return props.getSolidFill();
}
@Override
public boolean isSetSolidFill() {
return props.isSetSolidFill();
}
@Override
public void setSolidFill(CTSolidColorFillProperties solidFill) {
props.setSolidFill(solidFill);
}
@Override
public CTSolidColorFillProperties addNewSolidFill() {
return props.addNewSolidFill();
}
@Override
public void unsetSolidFill() {
props.unsetSolidFill();
}
@Override
public CTGradientFillProperties getGradFill() {
return props.getGradFill();
}
@Override
public boolean isSetGradFill() {
return props.isSetGradFill();
}
@Override
public void setGradFill(CTGradientFillProperties gradFill) {
props.setGradFill(gradFill);
}
@Override
public CTGradientFillProperties addNewGradFill() {
return props.addNewGradFill();
}
@Override
public void unsetGradFill() {
props.unsetGradFill();
}
@Override
public CTBlipFillProperties getBlipFill() {
return props.getBlipFill();
}
@Override
public boolean isSetBlipFill() {
return props.isSetBlipFill();
}
@Override
public void setBlipFill(CTBlipFillProperties blipFill) {
props.setBlipFill(blipFill);
}
@Override
public CTBlipFillProperties addNewBlipFill() {
return props.addNewBlipFill();
}
@Override
public void unsetBlipFill() {
props.unsetBlipFill();
}
@Override
public CTPatternFillProperties getPattFill() {
return props.getPattFill();
}
@Override
public boolean isSetPattFill() {
return props.isSetPattFill();
}
@Override
public void setPattFill(CTPatternFillProperties pattFill) {
props.setPattFill(pattFill);
}
@Override
public CTPatternFillProperties addNewPattFill() {
return props.addNewPattFill();
}
@Override
public void unsetPattFill() {
props.unsetPattFill();
}
@Override
public CTGroupFillProperties getGrpFill() {
return props.getGrpFill();
}
@Override
public boolean isSetGrpFill() {
return props.isSetGrpFill();
}
@Override
public void setGrpFill(CTGroupFillProperties grpFill) {
props.setGrpFill(grpFill);
}
@Override
public CTGroupFillProperties addNewGrpFill() {
return props.addNewGrpFill();
}
@Override
public void unsetGrpFill() {
props.unsetGrpFill();
}
@Override
public CTEffectList getEffectLst() {
return props.getEffectLst();
}
@Override
public boolean isSetEffectLst() {
return props.isSetEffectLst();
}
@Override
public void setEffectLst(CTEffectList effectLst) {
props.setEffectLst(effectLst);
}
@Override
public CTEffectList addNewEffectLst() {
return props.addNewEffectLst();
}
@Override
public void unsetEffectLst() {
props.unsetEffectLst();
}
@Override
public CTEffectContainer getEffectDag() {
return props.getEffectDag();
}
@Override
public boolean isSetEffectDag() {
return props.isSetEffectDag();
}
@Override
public void setEffectDag(CTEffectContainer effectDag) {
props.setEffectDag(effectDag);
}
@Override
public CTEffectContainer addNewEffectDag() {
return props.addNewEffectDag();
}
@Override
public void unsetEffectDag() {
props.unsetEffectDag();
}
@Override
public boolean isSetMatrixStyle() {
return false;
}
@Override
public CTStyleMatrixReference getMatrixStyle() {
return null;
}
@Override
public boolean isLineStyle() {
return false;
}
}
private static class TableCellDelegate implements XSLFFillProperties {
final CTTableCellProperties props;
TableCellDelegate(CTTableCellProperties props) {
this.props = props;
}
@Override
public CTNoFillProperties getNoFill() {
return props.getNoFill();
}
@Override
public boolean isSetNoFill() {
return props.isSetNoFill();
}
@Override
public void setNoFill(CTNoFillProperties noFill) {
props.setNoFill(noFill);
}
@Override
public CTNoFillProperties addNewNoFill() {
return props.addNewNoFill();
}
@Override
public void unsetNoFill() {
props.unsetNoFill();
}
@Override
public CTSolidColorFillProperties getSolidFill() {
return props.getSolidFill();
}
@Override
public boolean isSetSolidFill() {
return props.isSetSolidFill();
}
@Override
public void setSolidFill(CTSolidColorFillProperties solidFill) {
props.setSolidFill(solidFill);
}
@Override
public CTSolidColorFillProperties addNewSolidFill() {
return props.addNewSolidFill();
}
@Override
public void unsetSolidFill() {
props.unsetSolidFill();
}
@Override
public CTGradientFillProperties getGradFill() {
return props.getGradFill();
}
@Override
public boolean isSetGradFill() {
return props.isSetGradFill();
}
@Override
public void setGradFill(CTGradientFillProperties gradFill) {
props.setGradFill(gradFill);
}
@Override
public CTGradientFillProperties addNewGradFill() {
return props.addNewGradFill();
}
@Override
public void unsetGradFill() {
props.unsetGradFill();
}
@Override
public CTBlipFillProperties getBlipFill() {
return props.getBlipFill();
}
@Override
public boolean isSetBlipFill() {
return props.isSetBlipFill();
}
@Override
public void setBlipFill(CTBlipFillProperties blipFill) {
props.setBlipFill(blipFill);
}
@Override
public CTBlipFillProperties addNewBlipFill() {
return props.addNewBlipFill();
}
@Override
public void unsetBlipFill() {
props.unsetBlipFill();
}
@Override
public CTPatternFillProperties getPattFill() {
return props.getPattFill();
}
@Override
public boolean isSetPattFill() {
return props.isSetPattFill();
}
@Override
public void setPattFill(CTPatternFillProperties pattFill) {
props.setPattFill(pattFill);
}
@Override
public CTPatternFillProperties addNewPattFill() {
return props.addNewPattFill();
}
@Override
public void unsetPattFill() {
props.unsetPattFill();
}
@Override
public CTGroupFillProperties getGrpFill() {
return props.getGrpFill();
}
@Override
public boolean isSetGrpFill() {
return props.isSetGrpFill();
}
@Override
public void setGrpFill(CTGroupFillProperties grpFill) {
props.setGrpFill(grpFill);
}
@Override
public CTGroupFillProperties addNewGrpFill() {
return props.addNewGrpFill();
}
@Override
public void unsetGrpFill() {
props.unsetGrpFill();
}
@Override
public boolean isSetMatrixStyle() {
return false;
}
@Override
public CTStyleMatrixReference getMatrixStyle() {
return null;
}
@Override
public boolean isLineStyle() {
return false;
}
}
private static class StyleMatrixDelegate implements XSLFFillProperties {
final CTStyleMatrixReference props;
StyleMatrixDelegate(CTStyleMatrixReference props) {
this.props = props;
}
@Override
public CTNoFillProperties getNoFill() {
return null;
}
@Override
public boolean isSetNoFill() {
return false;
}
@Override
public void setNoFill(CTNoFillProperties noFill) {}
@Override
public CTNoFillProperties addNewNoFill() {
return null;
}
@Override
public void unsetNoFill() {}
@Override
public CTSolidColorFillProperties getSolidFill() {
return null;
}
@Override
public boolean isSetSolidFill() {
return false;
}
@Override
public void setSolidFill(CTSolidColorFillProperties solidFill) {}
@Override
public CTSolidColorFillProperties addNewSolidFill() {
return null;
}
@Override
public void unsetSolidFill() {}
@Override
public CTGradientFillProperties getGradFill() {
return null;
}
@Override
public boolean isSetGradFill() {
return false;
}
@Override
public void setGradFill(CTGradientFillProperties gradFill) {}
@Override
public CTGradientFillProperties addNewGradFill() {
return null;
}
@Override
public void unsetGradFill() {}
@Override
public CTBlipFillProperties getBlipFill() {
return null;
}
@Override
public boolean isSetBlipFill() {
return false;
}
@Override
public void setBlipFill(CTBlipFillProperties blipFill) {}
@Override
public CTBlipFillProperties addNewBlipFill() {
return null;
}
@Override
public void unsetBlipFill() {}
@Override
public CTPatternFillProperties getPattFill() {
return null;
}
@Override
public boolean isSetPattFill() {
return false;
}
@Override
public void setPattFill(CTPatternFillProperties pattFill) {}
@Override
public CTPatternFillProperties addNewPattFill() {
return null;
}
@Override
public void unsetPattFill() {}
@Override
public CTGroupFillProperties getGrpFill() {
return null;
}
@Override
public boolean isSetGrpFill() {
return false;
}
@Override
public void setGrpFill(CTGroupFillProperties grpFill) {}
@Override
public CTGroupFillProperties addNewGrpFill() {
return null;
}
@Override
public void unsetGrpFill() {}
@Override
public boolean isSetMatrixStyle() {
return true;
}
@Override
public CTStyleMatrixReference getMatrixStyle() {
return props;
}
@Override
public boolean isLineStyle() {
XmlCursor cur = props.newCursor();
String name = cur.getName().getLocalPart();
cur.dispose();
return "lnRef".equals(name);
}
}
private static class FillDelegate implements XSLFFillProperties {
final CTFillProperties props;
FillDelegate(CTFillProperties props) {
this.props = props;
}
@Override
public CTNoFillProperties getNoFill() {
return props.getNoFill();
}
@Override
public boolean isSetNoFill() {
return props.isSetNoFill();
}
@Override
public void setNoFill(CTNoFillProperties noFill) {
props.setNoFill(noFill);
}
@Override
public CTNoFillProperties addNewNoFill() {
return props.addNewNoFill();
}
@Override
public void unsetNoFill() {
props.unsetNoFill();
}
@Override
public CTSolidColorFillProperties getSolidFill() {
return props.getSolidFill();
}
@Override
public boolean isSetSolidFill() {
return props.isSetSolidFill();
}
@Override
public void setSolidFill(CTSolidColorFillProperties solidFill) {
props.setSolidFill(solidFill);
}
@Override
public CTSolidColorFillProperties addNewSolidFill() {
return props.addNewSolidFill();
}
@Override
public void unsetSolidFill() {
props.unsetSolidFill();
}
@Override
public CTGradientFillProperties getGradFill() {
return props.getGradFill();
}
@Override
public boolean isSetGradFill() {
return props.isSetGradFill();
}
@Override
public void setGradFill(CTGradientFillProperties gradFill) {
props.setGradFill(gradFill);
}
@Override
public CTGradientFillProperties addNewGradFill() {
return props.addNewGradFill();
}
@Override
public void unsetGradFill() {
props.unsetGradFill();
}
@Override
public CTBlipFillProperties getBlipFill() {
return props.getBlipFill();
}
@Override
public boolean isSetBlipFill() {
return props.isSetBlipFill();
}
@Override
public void setBlipFill(CTBlipFillProperties blipFill) {
props.setBlipFill(blipFill);
}
@Override
public CTBlipFillProperties addNewBlipFill() {
return props.addNewBlipFill();
}
@Override
public void unsetBlipFill() {
props.unsetBlipFill();
}
@Override
public CTPatternFillProperties getPattFill() {
return props.getPattFill();
}
@Override
public boolean isSetPattFill() {
return props.isSetPattFill();
}
@Override
public void setPattFill(CTPatternFillProperties pattFill) {
props.setPattFill(pattFill);
}
@Override
public CTPatternFillProperties addNewPattFill() {
return props.addNewPattFill();
}
@Override
public void unsetPattFill() {
props.unsetPattFill();
}
@Override
public CTGroupFillProperties getGrpFill() {
return props.getGrpFill();
}
@Override
public boolean isSetGrpFill() {
return props.isSetGrpFill();
}
@Override
public void setGrpFill(CTGroupFillProperties grpFill) {
props.setGrpFill(grpFill);
}
@Override
public CTGroupFillProperties addNewGrpFill() {
return props.addNewGrpFill();
}
@Override
public void unsetGrpFill() {
props.unsetGrpFill();
}
@Override
public boolean isSetMatrixStyle() {
return false;
}
@Override
public CTStyleMatrixReference getMatrixStyle() {
return null;
}
@Override
public boolean isLineStyle() {
return false;
}
}
private static class FillPartDelegate implements XSLFFillProperties {
final XmlObject props;
FillPartDelegate(XmlObject props) {
this.props = props;
}
@Override
public CTNoFillProperties getNoFill() {
return isSetNoFill() ? (CTNoFillProperties)props : null;
}
@Override
public boolean isSetNoFill() {
return (props instanceof CTNoFillProperties);
}
@Override
public void setNoFill(CTNoFillProperties noFill) {}
@Override
public CTNoFillProperties addNewNoFill() {
return null;
}
@Override
public void unsetNoFill() {}
@Override
public CTSolidColorFillProperties getSolidFill() {
return isSetSolidFill() ? (CTSolidColorFillProperties)props : null;
}
@Override
public boolean isSetSolidFill() {
return (props instanceof CTSolidColorFillProperties);
}
@Override
public void setSolidFill(CTSolidColorFillProperties solidFill) {}
@Override
public CTSolidColorFillProperties addNewSolidFill() {
return null;
}
@Override
public void unsetSolidFill() {}
@Override
public CTGradientFillProperties getGradFill() {
return isSetGradFill() ? (CTGradientFillProperties)props : null;
}
@Override
public boolean isSetGradFill() {
return (props instanceof CTGradientFillProperties);
}
@Override
public void setGradFill(CTGradientFillProperties gradFill) {}
@Override
public CTGradientFillProperties addNewGradFill() {
return null;
}
@Override
public void unsetGradFill() {}
@Override
public CTBlipFillProperties getBlipFill() {
return isSetBlipFill() ? (CTBlipFillProperties)props : null;
}
@Override
public boolean isSetBlipFill() {
return (props instanceof CTBlipFillProperties);
}
@Override
public void setBlipFill(CTBlipFillProperties blipFill) {}
@Override
public CTBlipFillProperties addNewBlipFill() {
return null;
}
@Override
public void unsetBlipFill() {}
@Override
public CTPatternFillProperties getPattFill() {
return isSetPattFill() ? (CTPatternFillProperties)props : null;
}
@Override
public boolean isSetPattFill() {
return (props instanceof CTPatternFillProperties);
}
@Override
public void setPattFill(CTPatternFillProperties pattFill) {}
@Override
public CTPatternFillProperties addNewPattFill() {
return null;
}
@Override
public void unsetPattFill() {}
@Override
public CTGroupFillProperties getGrpFill() {
return isSetGrpFill() ? (CTGroupFillProperties)props : null;
}
@Override
public boolean isSetGrpFill() {
return (props instanceof CTGroupFillProperties);
}
@Override
public void setGrpFill(CTGroupFillProperties grpFill) {}
@Override
public CTGroupFillProperties addNewGrpFill() {
return null;
}
@Override
public void unsetGrpFill() {}
@Override
public boolean isSetMatrixStyle() {
return false;
}
@Override
public CTStyleMatrixReference getMatrixStyle() {
return null;
}
@Override
public boolean isLineStyle() {
return false;
}
}
private static class LineStyleDelegate implements XSLFFillProperties {
final CTLineProperties props;
LineStyleDelegate(CTLineProperties props) {
this.props = props;
}
@Override
public CTNoFillProperties getNoFill() {
return props.getNoFill();
}
@Override
public boolean isSetNoFill() {
return props.isSetNoFill();
}
@Override
public void setNoFill(CTNoFillProperties noFill) {
props.setNoFill(noFill);
}
@Override
public CTNoFillProperties addNewNoFill() {
return props.addNewNoFill();
}
@Override
public void unsetNoFill() {
props.unsetNoFill();
}
@Override
public CTSolidColorFillProperties getSolidFill() {
return props.getSolidFill();
}
@Override
public boolean isSetSolidFill() {
return props.isSetSolidFill();
}
@Override
public void setSolidFill(CTSolidColorFillProperties solidFill) {
props.setSolidFill(solidFill);
}
@Override
public CTSolidColorFillProperties addNewSolidFill() {
return props.addNewSolidFill();
}
@Override
public void unsetSolidFill() {
props.unsetSolidFill();
}
@Override
public CTGradientFillProperties getGradFill() {
return props.getGradFill();
}
@Override
public boolean isSetGradFill() {
return props.isSetGradFill();
}
@Override
public void setGradFill(CTGradientFillProperties gradFill) {
props.setGradFill(gradFill);
}
@Override
public CTGradientFillProperties addNewGradFill() {
return props.addNewGradFill();
}
@Override
public void unsetGradFill() {
props.unsetGradFill();
}
@Override
public CTBlipFillProperties getBlipFill() {
return null;
}
@Override
public boolean isSetBlipFill() {
return false;
}
@Override
public void setBlipFill(CTBlipFillProperties blipFill) {}
@Override
public CTBlipFillProperties addNewBlipFill() {
return null;
}
@Override
public void unsetBlipFill() {}
@Override
public CTPatternFillProperties getPattFill() {
return props.getPattFill();
}
@Override
public boolean isSetPattFill() {
return props.isSetPattFill();
}
@Override
public void setPattFill(CTPatternFillProperties pattFill) {
props.setPattFill(pattFill);
}
@Override
public CTPatternFillProperties addNewPattFill() {
return props.addNewPattFill();
}
@Override
public void unsetPattFill() {
props.unsetPattFill();
}
@Override
public CTGroupFillProperties getGrpFill() {
return null;
}
@Override
public boolean isSetGrpFill() {
return false;
}
@Override
public void setGrpFill(CTGroupFillProperties grpFill) {}
@Override
public CTGroupFillProperties addNewGrpFill() {
return null;
}
@Override
public void unsetGrpFill() {}
@Override
public boolean isSetMatrixStyle() {
return false;
}
@Override
public CTStyleMatrixReference getMatrixStyle() {
return null;
}
@Override
public boolean isLineStyle() {
return true;
}
}
private static class TextCharDelegate implements XSLFFillProperties {
final CTTextCharacterProperties props;
TextCharDelegate(CTTextCharacterProperties props) {
this.props = props;
}
@Override
public CTNoFillProperties getNoFill() {
return props.getNoFill();
}
@Override
public boolean isSetNoFill() {
return props.isSetNoFill();
}
@Override
public void setNoFill(CTNoFillProperties noFill) {
props.setNoFill(noFill);
}
@Override
public CTNoFillProperties addNewNoFill() {
return props.addNewNoFill();
}
@Override
public void unsetNoFill() {
props.unsetNoFill();
}
@Override
public CTSolidColorFillProperties getSolidFill() {
return props.getSolidFill();
}
@Override
public boolean isSetSolidFill() {
return props.isSetSolidFill();
}
@Override
public void setSolidFill(CTSolidColorFillProperties solidFill) {
props.setSolidFill(solidFill);
}
@Override
public CTSolidColorFillProperties addNewSolidFill() {
return props.addNewSolidFill();
}
@Override
public void unsetSolidFill() {
props.unsetSolidFill();
}
@Override
public CTGradientFillProperties getGradFill() {
return props.getGradFill();
}
@Override
public boolean isSetGradFill() {
return props.isSetGradFill();
}
@Override
public void setGradFill(CTGradientFillProperties gradFill) {
props.setGradFill(gradFill);
}
@Override
public CTGradientFillProperties addNewGradFill() {
return props.addNewGradFill();
}
@Override
public void unsetGradFill() {
props.unsetGradFill();
}
@Override
public CTBlipFillProperties getBlipFill() {
return props.getBlipFill();
}
@Override
public boolean isSetBlipFill() {
return props.isSetBlipFill();
}
@Override
public void setBlipFill(CTBlipFillProperties blipFill) {
props.setBlipFill(blipFill);
}
@Override
public CTBlipFillProperties addNewBlipFill() {
return props.addNewBlipFill();
}
@Override
public void unsetBlipFill() {
props.unsetBlipFill();
}
@Override
public CTPatternFillProperties getPattFill() {
return props.getPattFill();
}
@Override
public boolean isSetPattFill() {
return props.isSetPattFill();
}
@Override
public void setPattFill(CTPatternFillProperties pattFill) {
props.setPattFill(pattFill);
}
@Override
public CTPatternFillProperties addNewPattFill() {
return props.addNewPattFill();
}
@Override
public void unsetPattFill() {
props.unsetPattFill();
}
@Override
public CTGroupFillProperties getGrpFill() {
return props.getGrpFill();
}
@Override
public boolean isSetGrpFill() {
return props.isSetGrpFill();
}
@Override
public void setGrpFill(CTGroupFillProperties grpFill) {
props.setGrpFill(grpFill);
}
@Override
public CTGroupFillProperties addNewGrpFill() {
return props.addNewGrpFill();
}
@Override
public void unsetGrpFill() {
props.unsetGrpFill();
}
@Override
public boolean isSetMatrixStyle() {
return false;
}
@Override
public CTStyleMatrixReference getMatrixStyle() {
return null;
}
@Override
public boolean isLineStyle() {
return false;
}
}
@SuppressWarnings("unchecked")
private static <T> T getDelegate(Class<T> clazz, XmlObject props) {
Object obj = null;
if (props == null) {
return null;
} else if (props instanceof CTShapeProperties) {
obj = new ShapeDelegate((CTShapeProperties)props);
} else if (props instanceof CTBackgroundProperties) {
obj = new BackgroundDelegate((CTBackgroundProperties)props);
} else if (props instanceof CTStyleMatrixReference) {
obj = new StyleMatrixDelegate((CTStyleMatrixReference)props);
} else if (props instanceof CTTableCellProperties) {
obj = new TableCellDelegate((CTTableCellProperties)props);
} else if (props instanceof CTNoFillProperties
|| props instanceof CTSolidColorFillProperties
|| props instanceof CTGradientFillProperties
|| props instanceof CTBlipFillProperties
|| props instanceof CTPatternFillProperties
|| props instanceof CTGroupFillProperties) {
obj = new FillPartDelegate(props);
} else if (props instanceof CTFillProperties) {
obj = new FillDelegate((CTFillProperties)props);
} else if (props instanceof CTLineProperties) {
obj = new LineStyleDelegate((CTLineProperties)props);
} else if (props instanceof CTTextCharacterProperties) {
obj = new TextCharDelegate((CTTextCharacterProperties)props);
} else {
LOG.log(POILogger.ERROR, props.getClass() +" is an unknown properties type");
return null;
}
if (clazz.isInstance(obj)) {
return (T)obj;
}
LOG.log(POILogger.WARN, obj.getClass() +" doesn't implement "+ clazz);
return null;
}
}