blob: bc1aee7850a709a704786baba598a0928f7dbd4c [file] [log] [blame]
/* ====================================================================
Licensed to the Apache Software Foundation (ASF) under one or more
contributor license agreements. See the NOTICE file distributed with
this work for additional information regarding copyright ownership.
The ASF licenses this file to You under the Apache License, Version 2.0
(the "License"); you may not use this file except in compliance with
the License. You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
==================================================================== */
package org.apache.poi.xslf.usermodel;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
import org.apache.poi.util.Internal;
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 helper class to unify property access.
*
* This class is experimental and not (yet) supposed for public usage.
* Maybe the xml schemas might be enhanced with interfaces to make this class superfluous
*
* @since POI 3.15-beta2
*/
@Internal
/* package */ class XSLFPropertiesDelegate {
private static final Logger LOG = LogManager.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 {
/**
* Gets the "noFill" element
*/
CTNoFillProperties getNoFill();
/**
* True if has "noFill" element
*/
boolean isSetNoFill();
/**
* Sets the "noFill" element
*/
void setNoFill(CTNoFillProperties noFill);
/**
* Appends and returns a new empty "noFill" element
*/
CTNoFillProperties addNewNoFill();
/**
* Unsets the "noFill" element
*/
void unsetNoFill();
/**
* Gets the "solidFill" element
*/
CTSolidColorFillProperties getSolidFill();
/**
* True if has "solidFill" element
*/
boolean isSetSolidFill();
/**
* Sets the "solidFill" element
*/
void setSolidFill(CTSolidColorFillProperties solidFill);
/**
* Appends and returns a new empty "solidFill" element
*/
CTSolidColorFillProperties addNewSolidFill();
/**
* Unsets the "solidFill" element
*/
void unsetSolidFill();
/**
* Gets the "gradFill" element
*/
CTGradientFillProperties getGradFill();
/**
* True if has "gradFill" element
*/
boolean isSetGradFill();
/**
* Sets the "gradFill" element
*/
void setGradFill(CTGradientFillProperties gradFill);
/**
* Appends and returns a new empty "gradFill" element
*/
CTGradientFillProperties addNewGradFill();
/**
* Unsets the "gradFill" element
*/
void unsetGradFill();
/**
* Gets the "blipFill" element
*/
CTBlipFillProperties getBlipFill();
/**
* True if has "blipFill" element
*/
boolean isSetBlipFill();
/**
* Sets the "blipFill" element
*/
void setBlipFill(CTBlipFillProperties blipFill);
/**
* Appends and returns a new empty "blipFill" element
*/
CTBlipFillProperties addNewBlipFill();
/**
* Unsets the "blipFill" element
*/
void unsetBlipFill();
/**
* Gets the "pattFill" element
*/
CTPatternFillProperties getPattFill();
/**
* True if has "pattFill" element
*/
boolean isSetPattFill();
/**
* Sets the "pattFill" element
*/
void setPattFill(CTPatternFillProperties pattFill);
/**
* Appends and returns a new empty "pattFill" element
*/
CTPatternFillProperties addNewPattFill();
/**
* Unsets the "pattFill" element
*/
void unsetPattFill();
/**
* Gets the "grpFill" element
*/
CTGroupFillProperties getGrpFill();
/**
* True if has "grpFill" element
*/
boolean isSetGrpFill();
/**
* Sets the "grpFill" element
*/
void setGrpFill(CTGroupFillProperties grpFill);
/**
* Appends and returns a new empty "grpFill" element
*/
CTGroupFillProperties addNewGrpFill();
/**
* Unsets the "grpFill" element
*/
void unsetGrpFill();
/**
* Helper method to unify other properties with style matrix references
* @return true, if this is a matrix style delegate
*/
boolean isSetMatrixStyle();
/**
* Helper method to unify other properties with style matrix references
*/
CTStyleMatrixReference getMatrixStyle();
/**
* Helper method to choose between fill and line style
*
* @return true, if this applies to a line
*/
boolean isLineStyle();
}
public interface XSLFGeometryProperties {
/**
* Gets the "custGeom" element
*/
CTCustomGeometry2D getCustGeom();
/**
* True if has "custGeom" element
*/
boolean isSetCustGeom();
/**
* Sets the "custGeom" element
*/
void setCustGeom(CTCustomGeometry2D custGeom);
/**
* Appends and returns a new empty "custGeom" element
*/
CTCustomGeometry2D addNewCustGeom();
/**
* Unsets the "custGeom" element
*/
void unsetCustGeom();
/**
* Gets the "prstGeom" element
*/
CTPresetGeometry2D getPrstGeom();
/**
* True if has "prstGeom" element
*/
boolean isSetPrstGeom();
/**
* Sets the "prstGeom" element
*/
void setPrstGeom(CTPresetGeometry2D prstGeom);
/**
* Appends and returns a new empty "prstGeom" element
*/
CTPresetGeometry2D addNewPrstGeom();
/**
* Unsets the "prstGeom" element
*/
void unsetPrstGeom();
}
public interface XSLFEffectProperties {
/**
* Gets the "effectLst" element
*/
CTEffectList getEffectLst();
/**
* True if has "effectLst" element
*/
boolean isSetEffectLst();
/**
* Sets the "effectLst" element
*/
void setEffectLst(CTEffectList effectLst);
/**
* Appends and returns a new empty "effectLst" element
*/
CTEffectList addNewEffectLst();
/**
* Unsets the "effectLst" element
*/
void unsetEffectLst();
/**
* Gets the "effectDag" element
*/
CTEffectContainer getEffectDag();
/**
* True if has "effectDag" element
*/
boolean isSetEffectDag();
/**
* Sets the "effectDag" element
*/
void setEffectDag(CTEffectContainer effectDag);
/**
* Appends and returns a new empty "effectDag" element
*/
CTEffectContainer addNewEffectDag();
/**
* Unsets the "effectDag" element
*/
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.atError().log("{} is an unknown properties type", props.getClass());
return null;
}
if (clazz.isInstance(obj)) {
return (T)obj;
}
LOG.atWarn().log("{} doesn't implement {}", obj.getClass(), clazz);
return null;
}
}