/************************************************************************
 *
 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER
 *
 * Copyright 2008, 2010 Oracle and/or its affiliates. All rights reserved.
 *
 * Use is subject to license terms.
 *
 * Licensed 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. You can also
 * obtain a copy of the License at http://odftoolkit.org/docs/license.txt
 *
 * 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.
 *
 ************************************************************************/

/*
 * This file is automatically generated.
 * Don't edit manually.
 */
package org.odftoolkit.odfdom.dom.element.draw;

import org.odftoolkit.odfdom.pkg.OdfElement;
import org.odftoolkit.odfdom.pkg.ElementVisitor;
import org.odftoolkit.odfdom.pkg.OdfFileDom;
import org.odftoolkit.odfdom.pkg.OdfName;
import org.odftoolkit.odfdom.dom.OdfDocumentNamespace;
import org.odftoolkit.odfdom.dom.DefaultElementVisitor;
import org.odftoolkit.odfdom.dom.attribute.dr3d.Dr3dProjectionAttribute;
import org.odftoolkit.odfdom.dom.attribute.dr3d.Dr3dShadeModeAttribute;
import org.odftoolkit.odfdom.dom.attribute.draw.DrawConcentricGradientFillAllowedAttribute;
import org.odftoolkit.odfdom.dom.attribute.draw.DrawEnhancedPathAttribute;
import org.odftoolkit.odfdom.dom.attribute.draw.DrawExtrusionAttribute;
import org.odftoolkit.odfdom.dom.attribute.draw.DrawExtrusionAllowedAttribute;
import org.odftoolkit.odfdom.dom.attribute.draw.DrawExtrusionBrightnessAttribute;
import org.odftoolkit.odfdom.dom.attribute.draw.DrawExtrusionColorAttribute;
import org.odftoolkit.odfdom.dom.attribute.draw.DrawExtrusionDepthAttribute;
import org.odftoolkit.odfdom.dom.attribute.draw.DrawExtrusionDiffusionAttribute;
import org.odftoolkit.odfdom.dom.attribute.draw.DrawExtrusionFirstLightDirectionAttribute;
import org.odftoolkit.odfdom.dom.attribute.draw.DrawExtrusionFirstLightHarshAttribute;
import org.odftoolkit.odfdom.dom.attribute.draw.DrawExtrusionFirstLightLevelAttribute;
import org.odftoolkit.odfdom.dom.attribute.draw.DrawExtrusionLightFaceAttribute;
import org.odftoolkit.odfdom.dom.attribute.draw.DrawExtrusionMetalAttribute;
import org.odftoolkit.odfdom.dom.attribute.draw.DrawExtrusionNumberOfLineSegmentsAttribute;
import org.odftoolkit.odfdom.dom.attribute.draw.DrawExtrusionOriginAttribute;
import org.odftoolkit.odfdom.dom.attribute.draw.DrawExtrusionRotationAngleAttribute;
import org.odftoolkit.odfdom.dom.attribute.draw.DrawExtrusionRotationCenterAttribute;
import org.odftoolkit.odfdom.dom.attribute.draw.DrawExtrusionSecondLightDirectionAttribute;
import org.odftoolkit.odfdom.dom.attribute.draw.DrawExtrusionSecondLightHarshAttribute;
import org.odftoolkit.odfdom.dom.attribute.draw.DrawExtrusionSecondLightLevelAttribute;
import org.odftoolkit.odfdom.dom.attribute.draw.DrawExtrusionShininessAttribute;
import org.odftoolkit.odfdom.dom.attribute.draw.DrawExtrusionSkewAttribute;
import org.odftoolkit.odfdom.dom.attribute.draw.DrawExtrusionSpecularityAttribute;
import org.odftoolkit.odfdom.dom.attribute.draw.DrawExtrusionViewpointAttribute;
import org.odftoolkit.odfdom.dom.attribute.draw.DrawGluePointLeavingDirectionsAttribute;
import org.odftoolkit.odfdom.dom.attribute.draw.DrawGluePointTypeAttribute;
import org.odftoolkit.odfdom.dom.attribute.draw.DrawGluePointsAttribute;
import org.odftoolkit.odfdom.dom.attribute.draw.DrawMirrorHorizontalAttribute;
import org.odftoolkit.odfdom.dom.attribute.draw.DrawMirrorVerticalAttribute;
import org.odftoolkit.odfdom.dom.attribute.draw.DrawModifiersAttribute;
import org.odftoolkit.odfdom.dom.attribute.draw.DrawPathStretchpointXAttribute;
import org.odftoolkit.odfdom.dom.attribute.draw.DrawPathStretchpointYAttribute;
import org.odftoolkit.odfdom.dom.attribute.draw.DrawTextAreasAttribute;
import org.odftoolkit.odfdom.dom.attribute.draw.DrawTextPathAttribute;
import org.odftoolkit.odfdom.dom.attribute.draw.DrawTextPathAllowedAttribute;
import org.odftoolkit.odfdom.dom.attribute.draw.DrawTextPathModeAttribute;
import org.odftoolkit.odfdom.dom.attribute.draw.DrawTextPathSameLetterHeightsAttribute;
import org.odftoolkit.odfdom.dom.attribute.draw.DrawTextPathScaleAttribute;
import org.odftoolkit.odfdom.dom.attribute.draw.DrawTextRotateAngleAttribute;
import org.odftoolkit.odfdom.dom.attribute.draw.DrawTypeAttribute;
import org.odftoolkit.odfdom.dom.attribute.svg.SvgViewBoxAttribute;

/**
 * DOM implementation of OpenDocument element  {@odf.element draw:enhanced-geometry}.
 *
 */
public class DrawEnhancedGeometryElement extends OdfElement {

	public static final OdfName ELEMENT_NAME = OdfName.newName(OdfDocumentNamespace.DRAW, "enhanced-geometry");

	/**
	 * Create the instance of <code>DrawEnhancedGeometryElement</code>
	 *
	 * @param  ownerDoc     The type is <code>OdfFileDom</code>
	 */
	public DrawEnhancedGeometryElement(OdfFileDom ownerDoc) {
		super(ownerDoc, ELEMENT_NAME);
	}

	/**
	 * Get the element name
	 *
	 * @return  return   <code>OdfName</code> the name of element {@odf.element draw:enhanced-geometry}.
	 */
	public OdfName getOdfName() {
		return ELEMENT_NAME;
	}

	/**
	 * Receives the value of the ODFDOM attribute representation <code>Dr3dProjectionAttribute</code> , See {@odf.attribute dr3d:projection}
	 *
	 * @return - the <code>String</code> , the value or <code>null</code>, if the attribute is not set and no default value defined.
	 */
	public String getDr3dProjectionAttribute() {
		Dr3dProjectionAttribute attr = (Dr3dProjectionAttribute) getOdfAttribute(OdfDocumentNamespace.DR3D, "projection");
		if (attr != null) {
			return String.valueOf(attr.getValue());
		}
		return Dr3dProjectionAttribute.DEFAULT_VALUE;
	}

	/**
	 * Sets the value of ODFDOM attribute representation <code>Dr3dProjectionAttribute</code> , See {@odf.attribute dr3d:projection}
	 *
	 * @param dr3dProjectionValue   The type is <code>String</code>
	 */
	public void setDr3dProjectionAttribute(String dr3dProjectionValue) {
		Dr3dProjectionAttribute attr = new Dr3dProjectionAttribute((OdfFileDom) this.ownerDocument);
		setOdfAttribute(attr);
		attr.setValue(dr3dProjectionValue);
	}

	/**
	 * Receives the value of the ODFDOM attribute representation <code>Dr3dShadeModeAttribute</code> , See {@odf.attribute dr3d:shade-mode}
	 *
	 * @return - the <code>String</code> , the value or <code>null</code>, if the attribute is not set and no default value defined.
	 */
	public String getDr3dShadeModeAttribute() {
		Dr3dShadeModeAttribute attr = (Dr3dShadeModeAttribute) getOdfAttribute(OdfDocumentNamespace.DR3D, "shade-mode");
		if (attr != null) {
			return String.valueOf(attr.getValue());
		}
		return Dr3dShadeModeAttribute.DEFAULT_VALUE;
	}

	/**
	 * Sets the value of ODFDOM attribute representation <code>Dr3dShadeModeAttribute</code> , See {@odf.attribute dr3d:shade-mode}
	 *
	 * @param dr3dShadeModeValue   The type is <code>String</code>
	 */
	public void setDr3dShadeModeAttribute(String dr3dShadeModeValue) {
		Dr3dShadeModeAttribute attr = new Dr3dShadeModeAttribute((OdfFileDom) this.ownerDocument);
		setOdfAttribute(attr);
		attr.setValue(dr3dShadeModeValue);
	}

	/**
	 * Receives the value of the ODFDOM attribute representation <code>DrawConcentricGradientFillAllowedAttribute</code> , See {@odf.attribute draw:concentric-gradient-fill-allowed}
	 *
	 * @return - the <code>Boolean</code> , the value or <code>null</code>, if the attribute is not set and no default value defined.
	 */
	public Boolean getDrawConcentricGradientFillAllowedAttribute() {
		DrawConcentricGradientFillAllowedAttribute attr = (DrawConcentricGradientFillAllowedAttribute) getOdfAttribute(OdfDocumentNamespace.DRAW, "concentric-gradient-fill-allowed");
		if (attr != null) {
			return Boolean.valueOf(attr.booleanValue());
		}
		return Boolean.valueOf(DrawConcentricGradientFillAllowedAttribute.DEFAULT_VALUE);
	}

	/**
	 * Sets the value of ODFDOM attribute representation <code>DrawConcentricGradientFillAllowedAttribute</code> , See {@odf.attribute draw:concentric-gradient-fill-allowed}
	 *
	 * @param drawConcentricGradientFillAllowedValue   The type is <code>Boolean</code>
	 */
	public void setDrawConcentricGradientFillAllowedAttribute(Boolean drawConcentricGradientFillAllowedValue) {
		DrawConcentricGradientFillAllowedAttribute attr = new DrawConcentricGradientFillAllowedAttribute((OdfFileDom) this.ownerDocument);
		setOdfAttribute(attr);
		attr.setBooleanValue(drawConcentricGradientFillAllowedValue.booleanValue());
	}

	/**
	 * Receives the value of the ODFDOM attribute representation <code>DrawEnhancedPathAttribute</code> , See {@odf.attribute draw:enhanced-path}
	 *
	 * @return - the <code>String</code> , the value or <code>null</code>, if the attribute is not set and no default value defined.
	 */
	public String getDrawEnhancedPathAttribute() {
		DrawEnhancedPathAttribute attr = (DrawEnhancedPathAttribute) getOdfAttribute(OdfDocumentNamespace.DRAW, "enhanced-path");
		if (attr != null) {
			return String.valueOf(attr.getValue());
		}
		return null;
	}

	/**
	 * Sets the value of ODFDOM attribute representation <code>DrawEnhancedPathAttribute</code> , See {@odf.attribute draw:enhanced-path}
	 *
	 * @param drawEnhancedPathValue   The type is <code>String</code>
	 */
	public void setDrawEnhancedPathAttribute(String drawEnhancedPathValue) {
		DrawEnhancedPathAttribute attr = new DrawEnhancedPathAttribute((OdfFileDom) this.ownerDocument);
		setOdfAttribute(attr);
		attr.setValue(drawEnhancedPathValue);
	}

	/**
	 * Receives the value of the ODFDOM attribute representation <code>DrawExtrusionAttribute</code> , See {@odf.attribute draw:extrusion}
	 *
	 * @return - the <code>Boolean</code> , the value or <code>null</code>, if the attribute is not set and no default value defined.
	 */
	public Boolean getDrawExtrusionAttribute() {
		DrawExtrusionAttribute attr = (DrawExtrusionAttribute) getOdfAttribute(OdfDocumentNamespace.DRAW, "extrusion");
		if (attr != null) {
			return Boolean.valueOf(attr.booleanValue());
		}
		return Boolean.valueOf(DrawExtrusionAttribute.DEFAULT_VALUE);
	}

	/**
	 * Sets the value of ODFDOM attribute representation <code>DrawExtrusionAttribute</code> , See {@odf.attribute draw:extrusion}
	 *
	 * @param drawExtrusionValue   The type is <code>Boolean</code>
	 */
	public void setDrawExtrusionAttribute(Boolean drawExtrusionValue) {
		DrawExtrusionAttribute attr = new DrawExtrusionAttribute((OdfFileDom) this.ownerDocument);
		setOdfAttribute(attr);
		attr.setBooleanValue(drawExtrusionValue.booleanValue());
	}

	/**
	 * Receives the value of the ODFDOM attribute representation <code>DrawExtrusionAllowedAttribute</code> , See {@odf.attribute draw:extrusion-allowed}
	 *
	 * @return - the <code>Boolean</code> , the value or <code>null</code>, if the attribute is not set and no default value defined.
	 */
	public Boolean getDrawExtrusionAllowedAttribute() {
		DrawExtrusionAllowedAttribute attr = (DrawExtrusionAllowedAttribute) getOdfAttribute(OdfDocumentNamespace.DRAW, "extrusion-allowed");
		if (attr != null) {
			return Boolean.valueOf(attr.booleanValue());
		}
		return Boolean.valueOf(DrawExtrusionAllowedAttribute.DEFAULT_VALUE);
	}

	/**
	 * Sets the value of ODFDOM attribute representation <code>DrawExtrusionAllowedAttribute</code> , See {@odf.attribute draw:extrusion-allowed}
	 *
	 * @param drawExtrusionAllowedValue   The type is <code>Boolean</code>
	 */
	public void setDrawExtrusionAllowedAttribute(Boolean drawExtrusionAllowedValue) {
		DrawExtrusionAllowedAttribute attr = new DrawExtrusionAllowedAttribute((OdfFileDom) this.ownerDocument);
		setOdfAttribute(attr);
		attr.setBooleanValue(drawExtrusionAllowedValue.booleanValue());
	}

	/**
	 * Receives the value of the ODFDOM attribute representation <code>DrawExtrusionBrightnessAttribute</code> , See {@odf.attribute draw:extrusion-brightness}
	 *
	 * @return - the <code>String</code> , the value or <code>null</code>, if the attribute is not set and no default value defined.
	 */
	public String getDrawExtrusionBrightnessAttribute() {
		DrawExtrusionBrightnessAttribute attr = (DrawExtrusionBrightnessAttribute) getOdfAttribute(OdfDocumentNamespace.DRAW, "extrusion-brightness");
		if (attr != null) {
			return String.valueOf(attr.getValue());
		}
		return DrawExtrusionBrightnessAttribute.DEFAULT_VALUE;
	}

	/**
	 * Sets the value of ODFDOM attribute representation <code>DrawExtrusionBrightnessAttribute</code> , See {@odf.attribute draw:extrusion-brightness}
	 *
	 * @param drawExtrusionBrightnessValue   The type is <code>String</code>
	 */
	public void setDrawExtrusionBrightnessAttribute(String drawExtrusionBrightnessValue) {
		DrawExtrusionBrightnessAttribute attr = new DrawExtrusionBrightnessAttribute((OdfFileDom) this.ownerDocument);
		setOdfAttribute(attr);
		attr.setValue(drawExtrusionBrightnessValue);
	}

	/**
	 * Receives the value of the ODFDOM attribute representation <code>DrawExtrusionColorAttribute</code> , See {@odf.attribute draw:extrusion-color}
	 *
	 * @return - the <code>Boolean</code> , the value or <code>null</code>, if the attribute is not set and no default value defined.
	 */
	public Boolean getDrawExtrusionColorAttribute() {
		DrawExtrusionColorAttribute attr = (DrawExtrusionColorAttribute) getOdfAttribute(OdfDocumentNamespace.DRAW, "extrusion-color");
		if (attr != null) {
			return Boolean.valueOf(attr.booleanValue());
		}
		return Boolean.valueOf(DrawExtrusionColorAttribute.DEFAULT_VALUE);
	}

	/**
	 * Sets the value of ODFDOM attribute representation <code>DrawExtrusionColorAttribute</code> , See {@odf.attribute draw:extrusion-color}
	 *
	 * @param drawExtrusionColorValue   The type is <code>Boolean</code>
	 */
	public void setDrawExtrusionColorAttribute(Boolean drawExtrusionColorValue) {
		DrawExtrusionColorAttribute attr = new DrawExtrusionColorAttribute((OdfFileDom) this.ownerDocument);
		setOdfAttribute(attr);
		attr.setBooleanValue(drawExtrusionColorValue.booleanValue());
	}

	/**
	 * Receives the value of the ODFDOM attribute representation <code>DrawExtrusionDepthAttribute</code> , See {@odf.attribute draw:extrusion-depth}
	 *
	 * @return - the <code>String</code> , the value or <code>null</code>, if the attribute is not set and no default value defined.
	 */
	public String getDrawExtrusionDepthAttribute() {
		DrawExtrusionDepthAttribute attr = (DrawExtrusionDepthAttribute) getOdfAttribute(OdfDocumentNamespace.DRAW, "extrusion-depth");
		if (attr != null) {
			return String.valueOf(attr.getValue());
		}
		return DrawExtrusionDepthAttribute.DEFAULT_VALUE;
	}

	/**
	 * Sets the value of ODFDOM attribute representation <code>DrawExtrusionDepthAttribute</code> , See {@odf.attribute draw:extrusion-depth}
	 *
	 * @param drawExtrusionDepthValue   The type is <code>String</code>
	 */
	public void setDrawExtrusionDepthAttribute(String drawExtrusionDepthValue) {
		DrawExtrusionDepthAttribute attr = new DrawExtrusionDepthAttribute((OdfFileDom) this.ownerDocument);
		setOdfAttribute(attr);
		attr.setValue(drawExtrusionDepthValue);
	}

	/**
	 * Receives the value of the ODFDOM attribute representation <code>DrawExtrusionDiffusionAttribute</code> , See {@odf.attribute draw:extrusion-diffusion}
	 *
	 * @return - the <code>String</code> , the value or <code>null</code>, if the attribute is not set and no default value defined.
	 */
	public String getDrawExtrusionDiffusionAttribute() {
		DrawExtrusionDiffusionAttribute attr = (DrawExtrusionDiffusionAttribute) getOdfAttribute(OdfDocumentNamespace.DRAW, "extrusion-diffusion");
		if (attr != null) {
			return String.valueOf(attr.getValue());
		}
		return DrawExtrusionDiffusionAttribute.DEFAULT_VALUE;
	}

	/**
	 * Sets the value of ODFDOM attribute representation <code>DrawExtrusionDiffusionAttribute</code> , See {@odf.attribute draw:extrusion-diffusion}
	 *
	 * @param drawExtrusionDiffusionValue   The type is <code>String</code>
	 */
	public void setDrawExtrusionDiffusionAttribute(String drawExtrusionDiffusionValue) {
		DrawExtrusionDiffusionAttribute attr = new DrawExtrusionDiffusionAttribute((OdfFileDom) this.ownerDocument);
		setOdfAttribute(attr);
		attr.setValue(drawExtrusionDiffusionValue);
	}

	/**
	 * Receives the value of the ODFDOM attribute representation <code>DrawExtrusionFirstLightDirectionAttribute</code> , See {@odf.attribute draw:extrusion-first-light-direction}
	 *
	 * @return - the <code>String</code> , the value or <code>null</code>, if the attribute is not set and no default value defined.
	 */
	public String getDrawExtrusionFirstLightDirectionAttribute() {
		DrawExtrusionFirstLightDirectionAttribute attr = (DrawExtrusionFirstLightDirectionAttribute) getOdfAttribute(OdfDocumentNamespace.DRAW, "extrusion-first-light-direction");
		if (attr != null) {
			return String.valueOf(attr.getValue());
		}
		return DrawExtrusionFirstLightDirectionAttribute.DEFAULT_VALUE;
	}

	/**
	 * Sets the value of ODFDOM attribute representation <code>DrawExtrusionFirstLightDirectionAttribute</code> , See {@odf.attribute draw:extrusion-first-light-direction}
	 *
	 * @param drawExtrusionFirstLightDirectionValue   The type is <code>String</code>
	 */
	public void setDrawExtrusionFirstLightDirectionAttribute(String drawExtrusionFirstLightDirectionValue) {
		DrawExtrusionFirstLightDirectionAttribute attr = new DrawExtrusionFirstLightDirectionAttribute((OdfFileDom) this.ownerDocument);
		setOdfAttribute(attr);
		attr.setValue(drawExtrusionFirstLightDirectionValue);
	}

	/**
	 * Receives the value of the ODFDOM attribute representation <code>DrawExtrusionFirstLightHarshAttribute</code> , See {@odf.attribute draw:extrusion-first-light-harsh}
	 *
	 * @return - the <code>Boolean</code> , the value or <code>null</code>, if the attribute is not set and no default value defined.
	 */
	public Boolean getDrawExtrusionFirstLightHarshAttribute() {
		DrawExtrusionFirstLightHarshAttribute attr = (DrawExtrusionFirstLightHarshAttribute) getOdfAttribute(OdfDocumentNamespace.DRAW, "extrusion-first-light-harsh");
		if (attr != null) {
			return Boolean.valueOf(attr.booleanValue());
		}
		return Boolean.valueOf(DrawExtrusionFirstLightHarshAttribute.DEFAULT_VALUE);
	}

	/**
	 * Sets the value of ODFDOM attribute representation <code>DrawExtrusionFirstLightHarshAttribute</code> , See {@odf.attribute draw:extrusion-first-light-harsh}
	 *
	 * @param drawExtrusionFirstLightHarshValue   The type is <code>Boolean</code>
	 */
	public void setDrawExtrusionFirstLightHarshAttribute(Boolean drawExtrusionFirstLightHarshValue) {
		DrawExtrusionFirstLightHarshAttribute attr = new DrawExtrusionFirstLightHarshAttribute((OdfFileDom) this.ownerDocument);
		setOdfAttribute(attr);
		attr.setBooleanValue(drawExtrusionFirstLightHarshValue.booleanValue());
	}

	/**
	 * Receives the value of the ODFDOM attribute representation <code>DrawExtrusionFirstLightLevelAttribute</code> , See {@odf.attribute draw:extrusion-first-light-level}
	 *
	 * @return - the <code>String</code> , the value or <code>null</code>, if the attribute is not set and no default value defined.
	 */
	public String getDrawExtrusionFirstLightLevelAttribute() {
		DrawExtrusionFirstLightLevelAttribute attr = (DrawExtrusionFirstLightLevelAttribute) getOdfAttribute(OdfDocumentNamespace.DRAW, "extrusion-first-light-level");
		if (attr != null) {
			return String.valueOf(attr.getValue());
		}
		return DrawExtrusionFirstLightLevelAttribute.DEFAULT_VALUE;
	}

	/**
	 * Sets the value of ODFDOM attribute representation <code>DrawExtrusionFirstLightLevelAttribute</code> , See {@odf.attribute draw:extrusion-first-light-level}
	 *
	 * @param drawExtrusionFirstLightLevelValue   The type is <code>String</code>
	 */
	public void setDrawExtrusionFirstLightLevelAttribute(String drawExtrusionFirstLightLevelValue) {
		DrawExtrusionFirstLightLevelAttribute attr = new DrawExtrusionFirstLightLevelAttribute((OdfFileDom) this.ownerDocument);
		setOdfAttribute(attr);
		attr.setValue(drawExtrusionFirstLightLevelValue);
	}

	/**
	 * Receives the value of the ODFDOM attribute representation <code>DrawExtrusionLightFaceAttribute</code> , See {@odf.attribute draw:extrusion-light-face}
	 *
	 * @return - the <code>Boolean</code> , the value or <code>null</code>, if the attribute is not set and no default value defined.
	 */
	public Boolean getDrawExtrusionLightFaceAttribute() {
		DrawExtrusionLightFaceAttribute attr = (DrawExtrusionLightFaceAttribute) getOdfAttribute(OdfDocumentNamespace.DRAW, "extrusion-light-face");
		if (attr != null) {
			return Boolean.valueOf(attr.booleanValue());
		}
		return Boolean.valueOf(DrawExtrusionLightFaceAttribute.DEFAULT_VALUE);
	}

	/**
	 * Sets the value of ODFDOM attribute representation <code>DrawExtrusionLightFaceAttribute</code> , See {@odf.attribute draw:extrusion-light-face}
	 *
	 * @param drawExtrusionLightFaceValue   The type is <code>Boolean</code>
	 */
	public void setDrawExtrusionLightFaceAttribute(Boolean drawExtrusionLightFaceValue) {
		DrawExtrusionLightFaceAttribute attr = new DrawExtrusionLightFaceAttribute((OdfFileDom) this.ownerDocument);
		setOdfAttribute(attr);
		attr.setBooleanValue(drawExtrusionLightFaceValue.booleanValue());
	}

	/**
	 * Receives the value of the ODFDOM attribute representation <code>DrawExtrusionMetalAttribute</code> , See {@odf.attribute draw:extrusion-metal}
	 *
	 * @return - the <code>Boolean</code> , the value or <code>null</code>, if the attribute is not set and no default value defined.
	 */
	public Boolean getDrawExtrusionMetalAttribute() {
		DrawExtrusionMetalAttribute attr = (DrawExtrusionMetalAttribute) getOdfAttribute(OdfDocumentNamespace.DRAW, "extrusion-metal");
		if (attr != null) {
			return Boolean.valueOf(attr.booleanValue());
		}
		return Boolean.valueOf(DrawExtrusionMetalAttribute.DEFAULT_VALUE);
	}

	/**
	 * Sets the value of ODFDOM attribute representation <code>DrawExtrusionMetalAttribute</code> , See {@odf.attribute draw:extrusion-metal}
	 *
	 * @param drawExtrusionMetalValue   The type is <code>Boolean</code>
	 */
	public void setDrawExtrusionMetalAttribute(Boolean drawExtrusionMetalValue) {
		DrawExtrusionMetalAttribute attr = new DrawExtrusionMetalAttribute((OdfFileDom) this.ownerDocument);
		setOdfAttribute(attr);
		attr.setBooleanValue(drawExtrusionMetalValue.booleanValue());
	}

	/**
	 * Receives the value of the ODFDOM attribute representation <code>DrawExtrusionNumberOfLineSegmentsAttribute</code> , See {@odf.attribute draw:extrusion-number-of-line-segments}
	 *
	 * @return - the <code>Integer</code> , the value or <code>null</code>, if the attribute is not set and no default value defined.
	 */
	public Integer getDrawExtrusionNumberOfLineSegmentsAttribute() {
		DrawExtrusionNumberOfLineSegmentsAttribute attr = (DrawExtrusionNumberOfLineSegmentsAttribute) getOdfAttribute(OdfDocumentNamespace.DRAW, "extrusion-number-of-line-segments");
		if (attr != null) {
			return Integer.valueOf(attr.intValue());
		}
		return Integer.valueOf(DrawExtrusionNumberOfLineSegmentsAttribute.DEFAULT_VALUE);
	}

	/**
	 * Sets the value of ODFDOM attribute representation <code>DrawExtrusionNumberOfLineSegmentsAttribute</code> , See {@odf.attribute draw:extrusion-number-of-line-segments}
	 *
	 * @param drawExtrusionNumberOfLineSegmentsValue   The type is <code>Integer</code>
	 */
	public void setDrawExtrusionNumberOfLineSegmentsAttribute(Integer drawExtrusionNumberOfLineSegmentsValue) {
		DrawExtrusionNumberOfLineSegmentsAttribute attr = new DrawExtrusionNumberOfLineSegmentsAttribute((OdfFileDom) this.ownerDocument);
		setOdfAttribute(attr);
		attr.setIntValue(drawExtrusionNumberOfLineSegmentsValue.intValue());
	}

	/**
	 * Receives the value of the ODFDOM attribute representation <code>DrawExtrusionOriginAttribute</code> , See {@odf.attribute draw:extrusion-origin}
	 *
	 * @return - the <code>Double</code> , the value or <code>null</code>, if the attribute is not set and no default value defined.
	 */
	public Double getDrawExtrusionOriginAttribute() {
		DrawExtrusionOriginAttribute attr = (DrawExtrusionOriginAttribute) getOdfAttribute(OdfDocumentNamespace.DRAW, "extrusion-origin");
		if (attr != null) {
			return Double.valueOf(attr.doubleValue());
		}
		return Double.valueOf(DrawExtrusionOriginAttribute.DEFAULT_VALUE);
	}

	/**
	 * Sets the value of ODFDOM attribute representation <code>DrawExtrusionOriginAttribute</code> , See {@odf.attribute draw:extrusion-origin}
	 *
	 * @param drawExtrusionOriginValue   The type is <code>Double</code>
	 */
	public void setDrawExtrusionOriginAttribute(Double drawExtrusionOriginValue) {
		DrawExtrusionOriginAttribute attr = new DrawExtrusionOriginAttribute((OdfFileDom) this.ownerDocument);
		setOdfAttribute(attr);
		attr.setDoubleValue(drawExtrusionOriginValue.doubleValue());
	}

	/**
	 * Receives the value of the ODFDOM attribute representation <code>DrawExtrusionRotationAngleAttribute</code> , See {@odf.attribute draw:extrusion-rotation-angle}
	 *
	 * @return - the <code>String</code> , the value or <code>null</code>, if the attribute is not set and no default value defined.
	 */
	public String getDrawExtrusionRotationAngleAttribute() {
		DrawExtrusionRotationAngleAttribute attr = (DrawExtrusionRotationAngleAttribute) getOdfAttribute(OdfDocumentNamespace.DRAW, "extrusion-rotation-angle");
		if (attr != null) {
			return String.valueOf(attr.getValue());
		}
		return DrawExtrusionRotationAngleAttribute.DEFAULT_VALUE;
	}

	/**
	 * Sets the value of ODFDOM attribute representation <code>DrawExtrusionRotationAngleAttribute</code> , See {@odf.attribute draw:extrusion-rotation-angle}
	 *
	 * @param drawExtrusionRotationAngleValue   The type is <code>String</code>
	 */
	public void setDrawExtrusionRotationAngleAttribute(String drawExtrusionRotationAngleValue) {
		DrawExtrusionRotationAngleAttribute attr = new DrawExtrusionRotationAngleAttribute((OdfFileDom) this.ownerDocument);
		setOdfAttribute(attr);
		attr.setValue(drawExtrusionRotationAngleValue);
	}

	/**
	 * Receives the value of the ODFDOM attribute representation <code>DrawExtrusionRotationCenterAttribute</code> , See {@odf.attribute draw:extrusion-rotation-center}
	 *
	 * @return - the <code>String</code> , the value or <code>null</code>, if the attribute is not set and no default value defined.
	 */
	public String getDrawExtrusionRotationCenterAttribute() {
		DrawExtrusionRotationCenterAttribute attr = (DrawExtrusionRotationCenterAttribute) getOdfAttribute(OdfDocumentNamespace.DRAW, "extrusion-rotation-center");
		if (attr != null) {
			return String.valueOf(attr.getValue());
		}
		return null;
	}

	/**
	 * Sets the value of ODFDOM attribute representation <code>DrawExtrusionRotationCenterAttribute</code> , See {@odf.attribute draw:extrusion-rotation-center}
	 *
	 * @param drawExtrusionRotationCenterValue   The type is <code>String</code>
	 */
	public void setDrawExtrusionRotationCenterAttribute(String drawExtrusionRotationCenterValue) {
		DrawExtrusionRotationCenterAttribute attr = new DrawExtrusionRotationCenterAttribute((OdfFileDom) this.ownerDocument);
		setOdfAttribute(attr);
		attr.setValue(drawExtrusionRotationCenterValue);
	}

	/**
	 * Receives the value of the ODFDOM attribute representation <code>DrawExtrusionSecondLightDirectionAttribute</code> , See {@odf.attribute draw:extrusion-second-light-direction}
	 *
	 * @return - the <code>String</code> , the value or <code>null</code>, if the attribute is not set and no default value defined.
	 */
	public String getDrawExtrusionSecondLightDirectionAttribute() {
		DrawExtrusionSecondLightDirectionAttribute attr = (DrawExtrusionSecondLightDirectionAttribute) getOdfAttribute(OdfDocumentNamespace.DRAW, "extrusion-second-light-direction");
		if (attr != null) {
			return String.valueOf(attr.getValue());
		}
		return DrawExtrusionSecondLightDirectionAttribute.DEFAULT_VALUE;
	}

	/**
	 * Sets the value of ODFDOM attribute representation <code>DrawExtrusionSecondLightDirectionAttribute</code> , See {@odf.attribute draw:extrusion-second-light-direction}
	 *
	 * @param drawExtrusionSecondLightDirectionValue   The type is <code>String</code>
	 */
	public void setDrawExtrusionSecondLightDirectionAttribute(String drawExtrusionSecondLightDirectionValue) {
		DrawExtrusionSecondLightDirectionAttribute attr = new DrawExtrusionSecondLightDirectionAttribute((OdfFileDom) this.ownerDocument);
		setOdfAttribute(attr);
		attr.setValue(drawExtrusionSecondLightDirectionValue);
	}

	/**
	 * Receives the value of the ODFDOM attribute representation <code>DrawExtrusionSecondLightHarshAttribute</code> , See {@odf.attribute draw:extrusion-second-light-harsh}
	 *
	 * @return - the <code>Boolean</code> , the value or <code>null</code>, if the attribute is not set and no default value defined.
	 */
	public Boolean getDrawExtrusionSecondLightHarshAttribute() {
		DrawExtrusionSecondLightHarshAttribute attr = (DrawExtrusionSecondLightHarshAttribute) getOdfAttribute(OdfDocumentNamespace.DRAW, "extrusion-second-light-harsh");
		if (attr != null) {
			return Boolean.valueOf(attr.booleanValue());
		}
		return Boolean.valueOf(DrawExtrusionSecondLightHarshAttribute.DEFAULT_VALUE);
	}

	/**
	 * Sets the value of ODFDOM attribute representation <code>DrawExtrusionSecondLightHarshAttribute</code> , See {@odf.attribute draw:extrusion-second-light-harsh}
	 *
	 * @param drawExtrusionSecondLightHarshValue   The type is <code>Boolean</code>
	 */
	public void setDrawExtrusionSecondLightHarshAttribute(Boolean drawExtrusionSecondLightHarshValue) {
		DrawExtrusionSecondLightHarshAttribute attr = new DrawExtrusionSecondLightHarshAttribute((OdfFileDom) this.ownerDocument);
		setOdfAttribute(attr);
		attr.setBooleanValue(drawExtrusionSecondLightHarshValue.booleanValue());
	}

	/**
	 * Receives the value of the ODFDOM attribute representation <code>DrawExtrusionSecondLightLevelAttribute</code> , See {@odf.attribute draw:extrusion-second-light-level}
	 *
	 * @return - the <code>String</code> , the value or <code>null</code>, if the attribute is not set and no default value defined.
	 */
	public String getDrawExtrusionSecondLightLevelAttribute() {
		DrawExtrusionSecondLightLevelAttribute attr = (DrawExtrusionSecondLightLevelAttribute) getOdfAttribute(OdfDocumentNamespace.DRAW, "extrusion-second-light-level");
		if (attr != null) {
			return String.valueOf(attr.getValue());
		}
		return DrawExtrusionSecondLightLevelAttribute.DEFAULT_VALUE;
	}

	/**
	 * Sets the value of ODFDOM attribute representation <code>DrawExtrusionSecondLightLevelAttribute</code> , See {@odf.attribute draw:extrusion-second-light-level}
	 *
	 * @param drawExtrusionSecondLightLevelValue   The type is <code>String</code>
	 */
	public void setDrawExtrusionSecondLightLevelAttribute(String drawExtrusionSecondLightLevelValue) {
		DrawExtrusionSecondLightLevelAttribute attr = new DrawExtrusionSecondLightLevelAttribute((OdfFileDom) this.ownerDocument);
		setOdfAttribute(attr);
		attr.setValue(drawExtrusionSecondLightLevelValue);
	}

	/**
	 * Receives the value of the ODFDOM attribute representation <code>DrawExtrusionShininessAttribute</code> , See {@odf.attribute draw:extrusion-shininess}
	 *
	 * @return - the <code>String</code> , the value or <code>null</code>, if the attribute is not set and no default value defined.
	 */
	public String getDrawExtrusionShininessAttribute() {
		DrawExtrusionShininessAttribute attr = (DrawExtrusionShininessAttribute) getOdfAttribute(OdfDocumentNamespace.DRAW, "extrusion-shininess");
		if (attr != null) {
			return String.valueOf(attr.getValue());
		}
		return DrawExtrusionShininessAttribute.DEFAULT_VALUE;
	}

	/**
	 * Sets the value of ODFDOM attribute representation <code>DrawExtrusionShininessAttribute</code> , See {@odf.attribute draw:extrusion-shininess}
	 *
	 * @param drawExtrusionShininessValue   The type is <code>String</code>
	 */
	public void setDrawExtrusionShininessAttribute(String drawExtrusionShininessValue) {
		DrawExtrusionShininessAttribute attr = new DrawExtrusionShininessAttribute((OdfFileDom) this.ownerDocument);
		setOdfAttribute(attr);
		attr.setValue(drawExtrusionShininessValue);
	}

	/**
	 * Receives the value of the ODFDOM attribute representation <code>DrawExtrusionSkewAttribute</code> , See {@odf.attribute draw:extrusion-skew}
	 *
	 * @return - the <code>String</code> , the value or <code>null</code>, if the attribute is not set and no default value defined.
	 */
	public String getDrawExtrusionSkewAttribute() {
		DrawExtrusionSkewAttribute attr = (DrawExtrusionSkewAttribute) getOdfAttribute(OdfDocumentNamespace.DRAW, "extrusion-skew");
		if (attr != null) {
			return String.valueOf(attr.getValue());
		}
		return DrawExtrusionSkewAttribute.DEFAULT_VALUE;
	}

	/**
	 * Sets the value of ODFDOM attribute representation <code>DrawExtrusionSkewAttribute</code> , See {@odf.attribute draw:extrusion-skew}
	 *
	 * @param drawExtrusionSkewValue   The type is <code>String</code>
	 */
	public void setDrawExtrusionSkewAttribute(String drawExtrusionSkewValue) {
		DrawExtrusionSkewAttribute attr = new DrawExtrusionSkewAttribute((OdfFileDom) this.ownerDocument);
		setOdfAttribute(attr);
		attr.setValue(drawExtrusionSkewValue);
	}

	/**
	 * Receives the value of the ODFDOM attribute representation <code>DrawExtrusionSpecularityAttribute</code> , See {@odf.attribute draw:extrusion-specularity}
	 *
	 * @return - the <code>String</code> , the value or <code>null</code>, if the attribute is not set and no default value defined.
	 */
	public String getDrawExtrusionSpecularityAttribute() {
		DrawExtrusionSpecularityAttribute attr = (DrawExtrusionSpecularityAttribute) getOdfAttribute(OdfDocumentNamespace.DRAW, "extrusion-specularity");
		if (attr != null) {
			return String.valueOf(attr.getValue());
		}
		return DrawExtrusionSpecularityAttribute.DEFAULT_VALUE;
	}

	/**
	 * Sets the value of ODFDOM attribute representation <code>DrawExtrusionSpecularityAttribute</code> , See {@odf.attribute draw:extrusion-specularity}
	 *
	 * @param drawExtrusionSpecularityValue   The type is <code>String</code>
	 */
	public void setDrawExtrusionSpecularityAttribute(String drawExtrusionSpecularityValue) {
		DrawExtrusionSpecularityAttribute attr = new DrawExtrusionSpecularityAttribute((OdfFileDom) this.ownerDocument);
		setOdfAttribute(attr);
		attr.setValue(drawExtrusionSpecularityValue);
	}

	/**
	 * Receives the value of the ODFDOM attribute representation <code>DrawExtrusionViewpointAttribute</code> , See {@odf.attribute draw:extrusion-viewpoint}
	 *
	 * @return - the <code>String</code> , the value or <code>null</code>, if the attribute is not set and no default value defined.
	 */
	public String getDrawExtrusionViewpointAttribute() {
		DrawExtrusionViewpointAttribute attr = (DrawExtrusionViewpointAttribute) getOdfAttribute(OdfDocumentNamespace.DRAW, "extrusion-viewpoint");
		if (attr != null) {
			return String.valueOf(attr.getValue());
		}
		return DrawExtrusionViewpointAttribute.DEFAULT_VALUE;
	}

	/**
	 * Sets the value of ODFDOM attribute representation <code>DrawExtrusionViewpointAttribute</code> , See {@odf.attribute draw:extrusion-viewpoint}
	 *
	 * @param drawExtrusionViewpointValue   The type is <code>String</code>
	 */
	public void setDrawExtrusionViewpointAttribute(String drawExtrusionViewpointValue) {
		DrawExtrusionViewpointAttribute attr = new DrawExtrusionViewpointAttribute((OdfFileDom) this.ownerDocument);
		setOdfAttribute(attr);
		attr.setValue(drawExtrusionViewpointValue);
	}

	/**
	 * Receives the value of the ODFDOM attribute representation <code>DrawGluePointLeavingDirectionsAttribute</code> , See {@odf.attribute draw:glue-point-leaving-directions}
	 *
	 * @return - the <code>String</code> , the value or <code>null</code>, if the attribute is not set and no default value defined.
	 */
	public String getDrawGluePointLeavingDirectionsAttribute() {
		DrawGluePointLeavingDirectionsAttribute attr = (DrawGluePointLeavingDirectionsAttribute) getOdfAttribute(OdfDocumentNamespace.DRAW, "glue-point-leaving-directions");
		if (attr != null) {
			return String.valueOf(attr.getValue());
		}
		return null;
	}

	/**
	 * Sets the value of ODFDOM attribute representation <code>DrawGluePointLeavingDirectionsAttribute</code> , See {@odf.attribute draw:glue-point-leaving-directions}
	 *
	 * @param drawGluePointLeavingDirectionsValue   The type is <code>String</code>
	 */
	public void setDrawGluePointLeavingDirectionsAttribute(String drawGluePointLeavingDirectionsValue) {
		DrawGluePointLeavingDirectionsAttribute attr = new DrawGluePointLeavingDirectionsAttribute((OdfFileDom) this.ownerDocument);
		setOdfAttribute(attr);
		attr.setValue(drawGluePointLeavingDirectionsValue);
	}

	/**
	 * Receives the value of the ODFDOM attribute representation <code>DrawGluePointTypeAttribute</code> , See {@odf.attribute draw:glue-point-type}
	 *
	 * @return - the <code>String</code> , the value or <code>null</code>, if the attribute is not set and no default value defined.
	 */
	public String getDrawGluePointTypeAttribute() {
		DrawGluePointTypeAttribute attr = (DrawGluePointTypeAttribute) getOdfAttribute(OdfDocumentNamespace.DRAW, "glue-point-type");
		if (attr != null) {
			return String.valueOf(attr.getValue());
		}
		return DrawGluePointTypeAttribute.DEFAULT_VALUE;
	}

	/**
	 * Sets the value of ODFDOM attribute representation <code>DrawGluePointTypeAttribute</code> , See {@odf.attribute draw:glue-point-type}
	 *
	 * @param drawGluePointTypeValue   The type is <code>String</code>
	 */
	public void setDrawGluePointTypeAttribute(String drawGluePointTypeValue) {
		DrawGluePointTypeAttribute attr = new DrawGluePointTypeAttribute((OdfFileDom) this.ownerDocument);
		setOdfAttribute(attr);
		attr.setValue(drawGluePointTypeValue);
	}

	/**
	 * Receives the value of the ODFDOM attribute representation <code>DrawGluePointsAttribute</code> , See {@odf.attribute draw:glue-points}
	 *
	 * @return - the <code>String</code> , the value or <code>null</code>, if the attribute is not set and no default value defined.
	 */
	public String getDrawGluePointsAttribute() {
		DrawGluePointsAttribute attr = (DrawGluePointsAttribute) getOdfAttribute(OdfDocumentNamespace.DRAW, "glue-points");
		if (attr != null) {
			return String.valueOf(attr.getValue());
		}
		return null;
	}

	/**
	 * Sets the value of ODFDOM attribute representation <code>DrawGluePointsAttribute</code> , See {@odf.attribute draw:glue-points}
	 *
	 * @param drawGluePointsValue   The type is <code>String</code>
	 */
	public void setDrawGluePointsAttribute(String drawGluePointsValue) {
		DrawGluePointsAttribute attr = new DrawGluePointsAttribute((OdfFileDom) this.ownerDocument);
		setOdfAttribute(attr);
		attr.setValue(drawGluePointsValue);
	}

	/**
	 * Receives the value of the ODFDOM attribute representation <code>DrawMirrorHorizontalAttribute</code> , See {@odf.attribute draw:mirror-horizontal}
	 *
	 * @return - the <code>Boolean</code> , the value or <code>null</code>, if the attribute is not set and no default value defined.
	 */
	public Boolean getDrawMirrorHorizontalAttribute() {
		DrawMirrorHorizontalAttribute attr = (DrawMirrorHorizontalAttribute) getOdfAttribute(OdfDocumentNamespace.DRAW, "mirror-horizontal");
		if (attr != null) {
			return Boolean.valueOf(attr.booleanValue());
		}
		return Boolean.valueOf(DrawMirrorHorizontalAttribute.DEFAULT_VALUE);
	}

	/**
	 * Sets the value of ODFDOM attribute representation <code>DrawMirrorHorizontalAttribute</code> , See {@odf.attribute draw:mirror-horizontal}
	 *
	 * @param drawMirrorHorizontalValue   The type is <code>Boolean</code>
	 */
	public void setDrawMirrorHorizontalAttribute(Boolean drawMirrorHorizontalValue) {
		DrawMirrorHorizontalAttribute attr = new DrawMirrorHorizontalAttribute((OdfFileDom) this.ownerDocument);
		setOdfAttribute(attr);
		attr.setBooleanValue(drawMirrorHorizontalValue.booleanValue());
	}

	/**
	 * Receives the value of the ODFDOM attribute representation <code>DrawMirrorVerticalAttribute</code> , See {@odf.attribute draw:mirror-vertical}
	 *
	 * @return - the <code>Boolean</code> , the value or <code>null</code>, if the attribute is not set and no default value defined.
	 */
	public Boolean getDrawMirrorVerticalAttribute() {
		DrawMirrorVerticalAttribute attr = (DrawMirrorVerticalAttribute) getOdfAttribute(OdfDocumentNamespace.DRAW, "mirror-vertical");
		if (attr != null) {
			return Boolean.valueOf(attr.booleanValue());
		}
		return Boolean.valueOf(DrawMirrorVerticalAttribute.DEFAULT_VALUE);
	}

	/**
	 * Sets the value of ODFDOM attribute representation <code>DrawMirrorVerticalAttribute</code> , See {@odf.attribute draw:mirror-vertical}
	 *
	 * @param drawMirrorVerticalValue   The type is <code>Boolean</code>
	 */
	public void setDrawMirrorVerticalAttribute(Boolean drawMirrorVerticalValue) {
		DrawMirrorVerticalAttribute attr = new DrawMirrorVerticalAttribute((OdfFileDom) this.ownerDocument);
		setOdfAttribute(attr);
		attr.setBooleanValue(drawMirrorVerticalValue.booleanValue());
	}

	/**
	 * Receives the value of the ODFDOM attribute representation <code>DrawModifiersAttribute</code> , See {@odf.attribute draw:modifiers}
	 *
	 * @return - the <code>String</code> , the value or <code>null</code>, if the attribute is not set and no default value defined.
	 */
	public String getDrawModifiersAttribute() {
		DrawModifiersAttribute attr = (DrawModifiersAttribute) getOdfAttribute(OdfDocumentNamespace.DRAW, "modifiers");
		if (attr != null) {
			return String.valueOf(attr.getValue());
		}
		return null;
	}

	/**
	 * Sets the value of ODFDOM attribute representation <code>DrawModifiersAttribute</code> , See {@odf.attribute draw:modifiers}
	 *
	 * @param drawModifiersValue   The type is <code>String</code>
	 */
	public void setDrawModifiersAttribute(String drawModifiersValue) {
		DrawModifiersAttribute attr = new DrawModifiersAttribute((OdfFileDom) this.ownerDocument);
		setOdfAttribute(attr);
		attr.setValue(drawModifiersValue);
	}

	/**
	 * Receives the value of the ODFDOM attribute representation <code>DrawPathStretchpointXAttribute</code> , See {@odf.attribute draw:path-stretchpoint-x}
	 *
	 * @return - the <code>Double</code> , the value or <code>null</code>, if the attribute is not set and no default value defined.
	 */
	public Double getDrawPathStretchpointXAttribute() {
		DrawPathStretchpointXAttribute attr = (DrawPathStretchpointXAttribute) getOdfAttribute(OdfDocumentNamespace.DRAW, "path-stretchpoint-x");
		if (attr != null) {
			return Double.valueOf(attr.doubleValue());
		}
		return null;
	}

	/**
	 * Sets the value of ODFDOM attribute representation <code>DrawPathStretchpointXAttribute</code> , See {@odf.attribute draw:path-stretchpoint-x}
	 *
	 * @param drawPathStretchpointXValue   The type is <code>Double</code>
	 */
	public void setDrawPathStretchpointXAttribute(Double drawPathStretchpointXValue) {
		DrawPathStretchpointXAttribute attr = new DrawPathStretchpointXAttribute((OdfFileDom) this.ownerDocument);
		setOdfAttribute(attr);
		attr.setDoubleValue(drawPathStretchpointXValue.doubleValue());
	}

	/**
	 * Receives the value of the ODFDOM attribute representation <code>DrawPathStretchpointYAttribute</code> , See {@odf.attribute draw:path-stretchpoint-y}
	 *
	 * @return - the <code>Double</code> , the value or <code>null</code>, if the attribute is not set and no default value defined.
	 */
	public Double getDrawPathStretchpointYAttribute() {
		DrawPathStretchpointYAttribute attr = (DrawPathStretchpointYAttribute) getOdfAttribute(OdfDocumentNamespace.DRAW, "path-stretchpoint-y");
		if (attr != null) {
			return Double.valueOf(attr.doubleValue());
		}
		return null;
	}

	/**
	 * Sets the value of ODFDOM attribute representation <code>DrawPathStretchpointYAttribute</code> , See {@odf.attribute draw:path-stretchpoint-y}
	 *
	 * @param drawPathStretchpointYValue   The type is <code>Double</code>
	 */
	public void setDrawPathStretchpointYAttribute(Double drawPathStretchpointYValue) {
		DrawPathStretchpointYAttribute attr = new DrawPathStretchpointYAttribute((OdfFileDom) this.ownerDocument);
		setOdfAttribute(attr);
		attr.setDoubleValue(drawPathStretchpointYValue.doubleValue());
	}

	/**
	 * Receives the value of the ODFDOM attribute representation <code>DrawTextAreasAttribute</code> , See {@odf.attribute draw:text-areas}
	 *
	 * @return - the <code>String</code> , the value or <code>null</code>, if the attribute is not set and no default value defined.
	 */
	public String getDrawTextAreasAttribute() {
		DrawTextAreasAttribute attr = (DrawTextAreasAttribute) getOdfAttribute(OdfDocumentNamespace.DRAW, "text-areas");
		if (attr != null) {
			return String.valueOf(attr.getValue());
		}
		return null;
	}

	/**
	 * Sets the value of ODFDOM attribute representation <code>DrawTextAreasAttribute</code> , See {@odf.attribute draw:text-areas}
	 *
	 * @param drawTextAreasValue   The type is <code>String</code>
	 */
	public void setDrawTextAreasAttribute(String drawTextAreasValue) {
		DrawTextAreasAttribute attr = new DrawTextAreasAttribute((OdfFileDom) this.ownerDocument);
		setOdfAttribute(attr);
		attr.setValue(drawTextAreasValue);
	}

	/**
	 * Receives the value of the ODFDOM attribute representation <code>DrawTextPathAttribute</code> , See {@odf.attribute draw:text-path}
	 *
	 * @return - the <code>Boolean</code> , the value or <code>null</code>, if the attribute is not set and no default value defined.
	 */
	public Boolean getDrawTextPathAttribute() {
		DrawTextPathAttribute attr = (DrawTextPathAttribute) getOdfAttribute(OdfDocumentNamespace.DRAW, "text-path");
		if (attr != null) {
			return Boolean.valueOf(attr.booleanValue());
		}
		return Boolean.valueOf(DrawTextPathAttribute.DEFAULT_VALUE);
	}

	/**
	 * Sets the value of ODFDOM attribute representation <code>DrawTextPathAttribute</code> , See {@odf.attribute draw:text-path}
	 *
	 * @param drawTextPathValue   The type is <code>Boolean</code>
	 */
	public void setDrawTextPathAttribute(Boolean drawTextPathValue) {
		DrawTextPathAttribute attr = new DrawTextPathAttribute((OdfFileDom) this.ownerDocument);
		setOdfAttribute(attr);
		attr.setBooleanValue(drawTextPathValue.booleanValue());
	}

	/**
	 * Receives the value of the ODFDOM attribute representation <code>DrawTextPathAllowedAttribute</code> , See {@odf.attribute draw:text-path-allowed}
	 *
	 * @return - the <code>Boolean</code> , the value or <code>null</code>, if the attribute is not set and no default value defined.
	 */
	public Boolean getDrawTextPathAllowedAttribute() {
		DrawTextPathAllowedAttribute attr = (DrawTextPathAllowedAttribute) getOdfAttribute(OdfDocumentNamespace.DRAW, "text-path-allowed");
		if (attr != null) {
			return Boolean.valueOf(attr.booleanValue());
		}
		return Boolean.valueOf(DrawTextPathAllowedAttribute.DEFAULT_VALUE);
	}

	/**
	 * Sets the value of ODFDOM attribute representation <code>DrawTextPathAllowedAttribute</code> , See {@odf.attribute draw:text-path-allowed}
	 *
	 * @param drawTextPathAllowedValue   The type is <code>Boolean</code>
	 */
	public void setDrawTextPathAllowedAttribute(Boolean drawTextPathAllowedValue) {
		DrawTextPathAllowedAttribute attr = new DrawTextPathAllowedAttribute((OdfFileDom) this.ownerDocument);
		setOdfAttribute(attr);
		attr.setBooleanValue(drawTextPathAllowedValue.booleanValue());
	}

	/**
	 * Receives the value of the ODFDOM attribute representation <code>DrawTextPathModeAttribute</code> , See {@odf.attribute draw:text-path-mode}
	 *
	 * @return - the <code>String</code> , the value or <code>null</code>, if the attribute is not set and no default value defined.
	 */
	public String getDrawTextPathModeAttribute() {
		DrawTextPathModeAttribute attr = (DrawTextPathModeAttribute) getOdfAttribute(OdfDocumentNamespace.DRAW, "text-path-mode");
		if (attr != null) {
			return String.valueOf(attr.getValue());
		}
		return DrawTextPathModeAttribute.DEFAULT_VALUE;
	}

	/**
	 * Sets the value of ODFDOM attribute representation <code>DrawTextPathModeAttribute</code> , See {@odf.attribute draw:text-path-mode}
	 *
	 * @param drawTextPathModeValue   The type is <code>String</code>
	 */
	public void setDrawTextPathModeAttribute(String drawTextPathModeValue) {
		DrawTextPathModeAttribute attr = new DrawTextPathModeAttribute((OdfFileDom) this.ownerDocument);
		setOdfAttribute(attr);
		attr.setValue(drawTextPathModeValue);
	}

	/**
	 * Receives the value of the ODFDOM attribute representation <code>DrawTextPathSameLetterHeightsAttribute</code> , See {@odf.attribute draw:text-path-same-letter-heights}
	 *
	 * @return - the <code>Boolean</code> , the value or <code>null</code>, if the attribute is not set and no default value defined.
	 */
	public Boolean getDrawTextPathSameLetterHeightsAttribute() {
		DrawTextPathSameLetterHeightsAttribute attr = (DrawTextPathSameLetterHeightsAttribute) getOdfAttribute(OdfDocumentNamespace.DRAW, "text-path-same-letter-heights");
		if (attr != null) {
			return Boolean.valueOf(attr.booleanValue());
		}
		return Boolean.valueOf(DrawTextPathSameLetterHeightsAttribute.DEFAULT_VALUE);
	}

	/**
	 * Sets the value of ODFDOM attribute representation <code>DrawTextPathSameLetterHeightsAttribute</code> , See {@odf.attribute draw:text-path-same-letter-heights}
	 *
	 * @param drawTextPathSameLetterHeightsValue   The type is <code>Boolean</code>
	 */
	public void setDrawTextPathSameLetterHeightsAttribute(Boolean drawTextPathSameLetterHeightsValue) {
		DrawTextPathSameLetterHeightsAttribute attr = new DrawTextPathSameLetterHeightsAttribute((OdfFileDom) this.ownerDocument);
		setOdfAttribute(attr);
		attr.setBooleanValue(drawTextPathSameLetterHeightsValue.booleanValue());
	}

	/**
	 * Receives the value of the ODFDOM attribute representation <code>DrawTextPathScaleAttribute</code> , See {@odf.attribute draw:text-path-scale}
	 *
	 * @return - the <code>String</code> , the value or <code>null</code>, if the attribute is not set and no default value defined.
	 */
	public String getDrawTextPathScaleAttribute() {
		DrawTextPathScaleAttribute attr = (DrawTextPathScaleAttribute) getOdfAttribute(OdfDocumentNamespace.DRAW, "text-path-scale");
		if (attr != null) {
			return String.valueOf(attr.getValue());
		}
		return DrawTextPathScaleAttribute.DEFAULT_VALUE;
	}

	/**
	 * Sets the value of ODFDOM attribute representation <code>DrawTextPathScaleAttribute</code> , See {@odf.attribute draw:text-path-scale}
	 *
	 * @param drawTextPathScaleValue   The type is <code>String</code>
	 */
	public void setDrawTextPathScaleAttribute(String drawTextPathScaleValue) {
		DrawTextPathScaleAttribute attr = new DrawTextPathScaleAttribute((OdfFileDom) this.ownerDocument);
		setOdfAttribute(attr);
		attr.setValue(drawTextPathScaleValue);
	}

	/**
	 * Receives the value of the ODFDOM attribute representation <code>DrawTextRotateAngleAttribute</code> , See {@odf.attribute draw:text-rotate-angle}
	 *
	 * @return - the <code>String</code> , the value or <code>null</code>, if the attribute is not set and no default value defined.
	 */
	public String getDrawTextRotateAngleAttribute() {
		DrawTextRotateAngleAttribute attr = (DrawTextRotateAngleAttribute) getOdfAttribute(OdfDocumentNamespace.DRAW, "text-rotate-angle");
		if (attr != null) {
			return String.valueOf(attr.getValue());
		}
		return DrawTextRotateAngleAttribute.DEFAULT_VALUE;
	}

	/**
	 * Sets the value of ODFDOM attribute representation <code>DrawTextRotateAngleAttribute</code> , See {@odf.attribute draw:text-rotate-angle}
	 *
	 * @param drawTextRotateAngleValue   The type is <code>String</code>
	 */
	public void setDrawTextRotateAngleAttribute(String drawTextRotateAngleValue) {
		DrawTextRotateAngleAttribute attr = new DrawTextRotateAngleAttribute((OdfFileDom) this.ownerDocument);
		setOdfAttribute(attr);
		attr.setValue(drawTextRotateAngleValue);
	}

	/**
	 * Receives the value of the ODFDOM attribute representation <code>DrawTypeAttribute</code> , See {@odf.attribute draw:type}
	 *
	 * @return - the <code>String</code> , the value or <code>null</code>, if the attribute is not set and no default value defined.
	 */
	public String getDrawTypeAttribute() {
		DrawTypeAttribute attr = (DrawTypeAttribute) getOdfAttribute(OdfDocumentNamespace.DRAW, "type");
		if (attr != null) {
			return String.valueOf(attr.getValue());
		}
		return DrawTypeAttribute.DEFAULT_VALUE_NON_PRIMITIVE;
	}

	/**
	 * Sets the value of ODFDOM attribute representation <code>DrawTypeAttribute</code> , See {@odf.attribute draw:type}
	 *
	 * @param drawTypeValue   The type is <code>String</code>
	 */
	public void setDrawTypeAttribute(String drawTypeValue) {
		DrawTypeAttribute attr = new DrawTypeAttribute((OdfFileDom) this.ownerDocument);
		setOdfAttribute(attr);
		attr.setValue(drawTypeValue);
	}

	/**
	 * Receives the value of the ODFDOM attribute representation <code>SvgViewBoxAttribute</code> , See {@odf.attribute svg:viewBox}
	 *
	 * @return - the <code>Integer</code> , the value or <code>null</code>, if the attribute is not set and no default value defined.
	 */
	public Integer getSvgViewBoxAttribute() {
		SvgViewBoxAttribute attr = (SvgViewBoxAttribute) getOdfAttribute(OdfDocumentNamespace.SVG, "viewBox");
		if (attr != null) {
			return Integer.valueOf(attr.intValue());
		}
		return null;
	}

	/**
	 * Sets the value of ODFDOM attribute representation <code>SvgViewBoxAttribute</code> , See {@odf.attribute svg:viewBox}
	 *
	 * @param svgViewBoxValue   The type is <code>Integer</code>
	 */
	public void setSvgViewBoxAttribute(Integer svgViewBoxValue) {
		SvgViewBoxAttribute attr = new SvgViewBoxAttribute((OdfFileDom) this.ownerDocument);
		setOdfAttribute(attr);
		attr.setIntValue(svgViewBoxValue.intValue());
	}

	/**
	 * Create child element {@odf.element draw:equation}.
	 *
	 * @return the element {@odf.element draw:equation}
	 */
	public DrawEquationElement newDrawEquationElement() {
		DrawEquationElement drawEquation = ((OdfFileDom) this.ownerDocument).newOdfElement(DrawEquationElement.class);
		this.appendChild(drawEquation);
		return drawEquation;
	}

	/**
	 * Create child element {@odf.element draw:handle}.
	 *
	 * @param drawHandlePositionValue  the <code>String</code> value of <code>DrawHandlePositionAttribute</code>, see {@odf.attribute  draw:handle-position} at specification
	 * @return the element {@odf.element draw:handle}
	 */
	 public DrawHandleElement newDrawHandleElement(String drawHandlePositionValue) {
		DrawHandleElement drawHandle = ((OdfFileDom) this.ownerDocument).newOdfElement(DrawHandleElement.class);
		drawHandle.setDrawHandlePositionAttribute(drawHandlePositionValue);
		this.appendChild(drawHandle);
		return drawHandle;
	}

	@Override
	public void accept(ElementVisitor visitor) {
		if (visitor instanceof DefaultElementVisitor) {
			DefaultElementVisitor defaultVisitor = (DefaultElementVisitor) visitor;
			defaultVisitor.visit(this);
		} else {
			visitor.visit(this);
		}
	}
}
