/*
 * XML Type:  PropertyType
 * Namespace: http://docs.oasis-open.org/wsrf/2004/10/wsrf-WSResourceMetadataDescriptor-1.0-draft-01.xsd
 * Java type: org.activemq.ws.xmlbeans.resource.md.PropertyType
 *
 * Automatically generated - do not modify.
 */
package org.activemq.ws.xmlbeans.resource.md.impl;
/**
 * An XML PropertyType(@http://docs.oasis-open.org/wsrf/2004/10/wsrf-WSResourceMetadataDescriptor-1.0-draft-01.xsd).
 *
 * This is a complex type.
 */
public class PropertyTypeImpl extends org.activemq.ws.xmlbeans.resource.md.impl.DocumentedTypeImpl implements org.activemq.ws.xmlbeans.resource.md.PropertyType
{
    
    public PropertyTypeImpl(org.apache.xmlbeans.SchemaType sType)
    {
        super(sType);
    }
    
    private static final javax.xml.namespace.QName VALIDVALUES$0 = 
        new javax.xml.namespace.QName("http://docs.oasis-open.org/wsrf/2004/10/wsrf-WSResourceMetadataDescriptor-1.0-draft-01.xsd", "ValidValues");
    private static final javax.xml.namespace.QName VALIDVALUERANGE$2 = 
        new javax.xml.namespace.QName("http://docs.oasis-open.org/wsrf/2004/10/wsrf-WSResourceMetadataDescriptor-1.0-draft-01.xsd", "ValidValueRange");
    private static final javax.xml.namespace.QName STATICVALUES$4 = 
        new javax.xml.namespace.QName("http://docs.oasis-open.org/wsrf/2004/10/wsrf-WSResourceMetadataDescriptor-1.0-draft-01.xsd", "StaticValues");
    private static final javax.xml.namespace.QName PATH$6 = 
        new javax.xml.namespace.QName("", "path");
    private static final javax.xml.namespace.QName MUTABILITY$8 = 
        new javax.xml.namespace.QName("", "mutability");
    private static final javax.xml.namespace.QName MODIFIABILITY$10 = 
        new javax.xml.namespace.QName("", "modifiability");
    private static final javax.xml.namespace.QName SUBSCRIBABILITY$12 = 
        new javax.xml.namespace.QName("", "subscribability");
    
    
    /**
     * Gets the "ValidValues" element
     */
    public org.activemq.ws.xmlbeans.resource.md.ValidValuesType getValidValues()
    {
        synchronized (monitor())
        {
            check_orphaned();
            org.activemq.ws.xmlbeans.resource.md.ValidValuesType target = null;
            target = (org.activemq.ws.xmlbeans.resource.md.ValidValuesType)get_store().find_element_user(VALIDVALUES$0, 0);
            if (target == null)
            {
                return null;
            }
            return target;
        }
    }
    
    /**
     * True if has "ValidValues" element
     */
    public boolean isSetValidValues()
    {
        synchronized (monitor())
        {
            check_orphaned();
            return get_store().count_elements(VALIDVALUES$0) != 0;
        }
    }
    
    /**
     * Sets the "ValidValues" element
     */
    public void setValidValues(org.activemq.ws.xmlbeans.resource.md.ValidValuesType validValues)
    {
        synchronized (monitor())
        {
            check_orphaned();
            org.activemq.ws.xmlbeans.resource.md.ValidValuesType target = null;
            target = (org.activemq.ws.xmlbeans.resource.md.ValidValuesType)get_store().find_element_user(VALIDVALUES$0, 0);
            if (target == null)
            {
                target = (org.activemq.ws.xmlbeans.resource.md.ValidValuesType)get_store().add_element_user(VALIDVALUES$0);
            }
            target.set(validValues);
        }
    }
    
    /**
     * Appends and returns a new empty "ValidValues" element
     */
    public org.activemq.ws.xmlbeans.resource.md.ValidValuesType addNewValidValues()
    {
        synchronized (monitor())
        {
            check_orphaned();
            org.activemq.ws.xmlbeans.resource.md.ValidValuesType target = null;
            target = (org.activemq.ws.xmlbeans.resource.md.ValidValuesType)get_store().add_element_user(VALIDVALUES$0);
            return target;
        }
    }
    
    /**
     * Unsets the "ValidValues" element
     */
    public void unsetValidValues()
    {
        synchronized (monitor())
        {
            check_orphaned();
            get_store().remove_element(VALIDVALUES$0, 0);
        }
    }
    
    /**
     * Gets the "ValidValueRange" element
     */
    public org.activemq.ws.xmlbeans.resource.md.ValidValueRangeType getValidValueRange()
    {
        synchronized (monitor())
        {
            check_orphaned();
            org.activemq.ws.xmlbeans.resource.md.ValidValueRangeType target = null;
            target = (org.activemq.ws.xmlbeans.resource.md.ValidValueRangeType)get_store().find_element_user(VALIDVALUERANGE$2, 0);
            if (target == null)
            {
                return null;
            }
            return target;
        }
    }
    
    /**
     * True if has "ValidValueRange" element
     */
    public boolean isSetValidValueRange()
    {
        synchronized (monitor())
        {
            check_orphaned();
            return get_store().count_elements(VALIDVALUERANGE$2) != 0;
        }
    }
    
    /**
     * Sets the "ValidValueRange" element
     */
    public void setValidValueRange(org.activemq.ws.xmlbeans.resource.md.ValidValueRangeType validValueRange)
    {
        synchronized (monitor())
        {
            check_orphaned();
            org.activemq.ws.xmlbeans.resource.md.ValidValueRangeType target = null;
            target = (org.activemq.ws.xmlbeans.resource.md.ValidValueRangeType)get_store().find_element_user(VALIDVALUERANGE$2, 0);
            if (target == null)
            {
                target = (org.activemq.ws.xmlbeans.resource.md.ValidValueRangeType)get_store().add_element_user(VALIDVALUERANGE$2);
            }
            target.set(validValueRange);
        }
    }
    
    /**
     * Appends and returns a new empty "ValidValueRange" element
     */
    public org.activemq.ws.xmlbeans.resource.md.ValidValueRangeType addNewValidValueRange()
    {
        synchronized (monitor())
        {
            check_orphaned();
            org.activemq.ws.xmlbeans.resource.md.ValidValueRangeType target = null;
            target = (org.activemq.ws.xmlbeans.resource.md.ValidValueRangeType)get_store().add_element_user(VALIDVALUERANGE$2);
            return target;
        }
    }
    
    /**
     * Unsets the "ValidValueRange" element
     */
    public void unsetValidValueRange()
    {
        synchronized (monitor())
        {
            check_orphaned();
            get_store().remove_element(VALIDVALUERANGE$2, 0);
        }
    }
    
    /**
     * Gets the "StaticValues" element
     */
    public org.activemq.ws.xmlbeans.resource.md.StaticValuesType getStaticValues()
    {
        synchronized (monitor())
        {
            check_orphaned();
            org.activemq.ws.xmlbeans.resource.md.StaticValuesType target = null;
            target = (org.activemq.ws.xmlbeans.resource.md.StaticValuesType)get_store().find_element_user(STATICVALUES$4, 0);
            if (target == null)
            {
                return null;
            }
            return target;
        }
    }
    
    /**
     * True if has "StaticValues" element
     */
    public boolean isSetStaticValues()
    {
        synchronized (monitor())
        {
            check_orphaned();
            return get_store().count_elements(STATICVALUES$4) != 0;
        }
    }
    
    /**
     * Sets the "StaticValues" element
     */
    public void setStaticValues(org.activemq.ws.xmlbeans.resource.md.StaticValuesType staticValues)
    {
        synchronized (monitor())
        {
            check_orphaned();
            org.activemq.ws.xmlbeans.resource.md.StaticValuesType target = null;
            target = (org.activemq.ws.xmlbeans.resource.md.StaticValuesType)get_store().find_element_user(STATICVALUES$4, 0);
            if (target == null)
            {
                target = (org.activemq.ws.xmlbeans.resource.md.StaticValuesType)get_store().add_element_user(STATICVALUES$4);
            }
            target.set(staticValues);
        }
    }
    
    /**
     * Appends and returns a new empty "StaticValues" element
     */
    public org.activemq.ws.xmlbeans.resource.md.StaticValuesType addNewStaticValues()
    {
        synchronized (monitor())
        {
            check_orphaned();
            org.activemq.ws.xmlbeans.resource.md.StaticValuesType target = null;
            target = (org.activemq.ws.xmlbeans.resource.md.StaticValuesType)get_store().add_element_user(STATICVALUES$4);
            return target;
        }
    }
    
    /**
     * Unsets the "StaticValues" element
     */
    public void unsetStaticValues()
    {
        synchronized (monitor())
        {
            check_orphaned();
            get_store().remove_element(STATICVALUES$4, 0);
        }
    }
    
    /**
     * Gets the "path" attribute
     */
    public java.lang.String getPath()
    {
        synchronized (monitor())
        {
            check_orphaned();
            org.apache.xmlbeans.SimpleValue target = null;
            target = (org.apache.xmlbeans.SimpleValue)get_store().find_attribute_user(PATH$6);
            if (target == null)
            {
                return null;
            }
            return target.getStringValue();
        }
    }
    
    /**
     * Gets (as xml) the "path" attribute
     */
    public org.activemq.ws.xmlbeans.resource.md.PathType xgetPath()
    {
        synchronized (monitor())
        {
            check_orphaned();
            org.activemq.ws.xmlbeans.resource.md.PathType target = null;
            target = (org.activemq.ws.xmlbeans.resource.md.PathType)get_store().find_attribute_user(PATH$6);
            return target;
        }
    }
    
    /**
     * Sets the "path" attribute
     */
    public void setPath(java.lang.String path)
    {
        synchronized (monitor())
        {
            check_orphaned();
            org.apache.xmlbeans.SimpleValue target = null;
            target = (org.apache.xmlbeans.SimpleValue)get_store().find_attribute_user(PATH$6);
            if (target == null)
            {
                target = (org.apache.xmlbeans.SimpleValue)get_store().add_attribute_user(PATH$6);
            }
            target.setStringValue(path);
        }
    }
    
    /**
     * Sets (as xml) the "path" attribute
     */
    public void xsetPath(org.activemq.ws.xmlbeans.resource.md.PathType path)
    {
        synchronized (monitor())
        {
            check_orphaned();
            org.activemq.ws.xmlbeans.resource.md.PathType target = null;
            target = (org.activemq.ws.xmlbeans.resource.md.PathType)get_store().find_attribute_user(PATH$6);
            if (target == null)
            {
                target = (org.activemq.ws.xmlbeans.resource.md.PathType)get_store().add_attribute_user(PATH$6);
            }
            target.set(path);
        }
    }
    
    /**
     * Gets the "mutability" attribute
     */
    public org.activemq.ws.xmlbeans.resource.md.MutabilityType.Enum getMutability()
    {
        synchronized (monitor())
        {
            check_orphaned();
            org.apache.xmlbeans.SimpleValue target = null;
            target = (org.apache.xmlbeans.SimpleValue)get_store().find_attribute_user(MUTABILITY$8);
            if (target == null)
            {
                return null;
            }
            return (org.activemq.ws.xmlbeans.resource.md.MutabilityType.Enum)target.getEnumValue();
        }
    }
    
    /**
     * Gets (as xml) the "mutability" attribute
     */
    public org.activemq.ws.xmlbeans.resource.md.MutabilityType xgetMutability()
    {
        synchronized (monitor())
        {
            check_orphaned();
            org.activemq.ws.xmlbeans.resource.md.MutabilityType target = null;
            target = (org.activemq.ws.xmlbeans.resource.md.MutabilityType)get_store().find_attribute_user(MUTABILITY$8);
            return target;
        }
    }
    
    /**
     * True if has "mutability" attribute
     */
    public boolean isSetMutability()
    {
        synchronized (monitor())
        {
            check_orphaned();
            return get_store().find_attribute_user(MUTABILITY$8) != null;
        }
    }
    
    /**
     * Sets the "mutability" attribute
     */
    public void setMutability(org.activemq.ws.xmlbeans.resource.md.MutabilityType.Enum mutability)
    {
        synchronized (monitor())
        {
            check_orphaned();
            org.apache.xmlbeans.SimpleValue target = null;
            target = (org.apache.xmlbeans.SimpleValue)get_store().find_attribute_user(MUTABILITY$8);
            if (target == null)
            {
                target = (org.apache.xmlbeans.SimpleValue)get_store().add_attribute_user(MUTABILITY$8);
            }
            target.setEnumValue(mutability);
        }
    }
    
    /**
     * Sets (as xml) the "mutability" attribute
     */
    public void xsetMutability(org.activemq.ws.xmlbeans.resource.md.MutabilityType mutability)
    {
        synchronized (monitor())
        {
            check_orphaned();
            org.activemq.ws.xmlbeans.resource.md.MutabilityType target = null;
            target = (org.activemq.ws.xmlbeans.resource.md.MutabilityType)get_store().find_attribute_user(MUTABILITY$8);
            if (target == null)
            {
                target = (org.activemq.ws.xmlbeans.resource.md.MutabilityType)get_store().add_attribute_user(MUTABILITY$8);
            }
            target.set(mutability);
        }
    }
    
    /**
     * Unsets the "mutability" attribute
     */
    public void unsetMutability()
    {
        synchronized (monitor())
        {
            check_orphaned();
            get_store().remove_attribute(MUTABILITY$8);
        }
    }
    
    /**
     * Gets the "modifiability" attribute
     */
    public org.activemq.ws.xmlbeans.resource.md.ModifiabilityType.Enum getModifiability()
    {
        synchronized (monitor())
        {
            check_orphaned();
            org.apache.xmlbeans.SimpleValue target = null;
            target = (org.apache.xmlbeans.SimpleValue)get_store().find_attribute_user(MODIFIABILITY$10);
            if (target == null)
            {
                return null;
            }
            return (org.activemq.ws.xmlbeans.resource.md.ModifiabilityType.Enum)target.getEnumValue();
        }
    }
    
    /**
     * Gets (as xml) the "modifiability" attribute
     */
    public org.activemq.ws.xmlbeans.resource.md.ModifiabilityType xgetModifiability()
    {
        synchronized (monitor())
        {
            check_orphaned();
            org.activemq.ws.xmlbeans.resource.md.ModifiabilityType target = null;
            target = (org.activemq.ws.xmlbeans.resource.md.ModifiabilityType)get_store().find_attribute_user(MODIFIABILITY$10);
            return target;
        }
    }
    
    /**
     * True if has "modifiability" attribute
     */
    public boolean isSetModifiability()
    {
        synchronized (monitor())
        {
            check_orphaned();
            return get_store().find_attribute_user(MODIFIABILITY$10) != null;
        }
    }
    
    /**
     * Sets the "modifiability" attribute
     */
    public void setModifiability(org.activemq.ws.xmlbeans.resource.md.ModifiabilityType.Enum modifiability)
    {
        synchronized (monitor())
        {
            check_orphaned();
            org.apache.xmlbeans.SimpleValue target = null;
            target = (org.apache.xmlbeans.SimpleValue)get_store().find_attribute_user(MODIFIABILITY$10);
            if (target == null)
            {
                target = (org.apache.xmlbeans.SimpleValue)get_store().add_attribute_user(MODIFIABILITY$10);
            }
            target.setEnumValue(modifiability);
        }
    }
    
    /**
     * Sets (as xml) the "modifiability" attribute
     */
    public void xsetModifiability(org.activemq.ws.xmlbeans.resource.md.ModifiabilityType modifiability)
    {
        synchronized (monitor())
        {
            check_orphaned();
            org.activemq.ws.xmlbeans.resource.md.ModifiabilityType target = null;
            target = (org.activemq.ws.xmlbeans.resource.md.ModifiabilityType)get_store().find_attribute_user(MODIFIABILITY$10);
            if (target == null)
            {
                target = (org.activemq.ws.xmlbeans.resource.md.ModifiabilityType)get_store().add_attribute_user(MODIFIABILITY$10);
            }
            target.set(modifiability);
        }
    }
    
    /**
     * Unsets the "modifiability" attribute
     */
    public void unsetModifiability()
    {
        synchronized (monitor())
        {
            check_orphaned();
            get_store().remove_attribute(MODIFIABILITY$10);
        }
    }
    
    /**
     * Gets the "subscribability" attribute
     */
    public boolean getSubscribability()
    {
        synchronized (monitor())
        {
            check_orphaned();
            org.apache.xmlbeans.SimpleValue target = null;
            target = (org.apache.xmlbeans.SimpleValue)get_store().find_attribute_user(SUBSCRIBABILITY$12);
            if (target == null)
            {
                target = (org.apache.xmlbeans.SimpleValue)get_default_attribute_value(SUBSCRIBABILITY$12);
            }
            if (target == null)
            {
                return false;
            }
            return target.getBooleanValue();
        }
    }
    
    /**
     * Gets (as xml) the "subscribability" attribute
     */
    public org.apache.xmlbeans.XmlBoolean xgetSubscribability()
    {
        synchronized (monitor())
        {
            check_orphaned();
            org.apache.xmlbeans.XmlBoolean target = null;
            target = (org.apache.xmlbeans.XmlBoolean)get_store().find_attribute_user(SUBSCRIBABILITY$12);
            if (target == null)
            {
                target = (org.apache.xmlbeans.XmlBoolean)get_default_attribute_value(SUBSCRIBABILITY$12);
            }
            return target;
        }
    }
    
    /**
     * True if has "subscribability" attribute
     */
    public boolean isSetSubscribability()
    {
        synchronized (monitor())
        {
            check_orphaned();
            return get_store().find_attribute_user(SUBSCRIBABILITY$12) != null;
        }
    }
    
    /**
     * Sets the "subscribability" attribute
     */
    public void setSubscribability(boolean subscribability)
    {
        synchronized (monitor())
        {
            check_orphaned();
            org.apache.xmlbeans.SimpleValue target = null;
            target = (org.apache.xmlbeans.SimpleValue)get_store().find_attribute_user(SUBSCRIBABILITY$12);
            if (target == null)
            {
                target = (org.apache.xmlbeans.SimpleValue)get_store().add_attribute_user(SUBSCRIBABILITY$12);
            }
            target.setBooleanValue(subscribability);
        }
    }
    
    /**
     * Sets (as xml) the "subscribability" attribute
     */
    public void xsetSubscribability(org.apache.xmlbeans.XmlBoolean subscribability)
    {
        synchronized (monitor())
        {
            check_orphaned();
            org.apache.xmlbeans.XmlBoolean target = null;
            target = (org.apache.xmlbeans.XmlBoolean)get_store().find_attribute_user(SUBSCRIBABILITY$12);
            if (target == null)
            {
                target = (org.apache.xmlbeans.XmlBoolean)get_store().add_attribute_user(SUBSCRIBABILITY$12);
            }
            target.set(subscribability);
        }
    }
    
    /**
     * Unsets the "subscribability" attribute
     */
    public void unsetSubscribability()
    {
        synchronized (monitor())
        {
            check_orphaned();
            get_store().remove_attribute(SUBSCRIBABILITY$12);
        }
    }
}
