org.apache.xmpbox.type

## Class AbstractComplexProperty

- java.lang.Object
- - org.apache.xmpbox.type.AbstractField
  - - org.apache.xmpbox.type.AbstractComplexProperty

Direct Known Subclasses:
  AbstractStructuredType, ArrayProperty

    public abstract class AbstractComplexProperty
    extends AbstractField

### Constructor Summary

Constructors
Constructor and Description
`AbstractComplexProperty(XMPMetadata metadata, String propertyName)`

### Method Summary

All Methods Instance Methods Concrete Methods
`void` `addNamespace(String namespace, String prefix)`
`void` `addProperty(AbstractField obj)` Add a property to the current structure
`Map<String,String>` `getAllNamespacesWithPrefix()`
`List<AbstractField>` `getAllProperties()`
`ArrayProperty` `getArrayProperty(String fieldName)`
`ComplexPropertyContainer` `getContainer()`
`protected AbstractField` `getFirstEquivalentProperty(String localName, Class<? extends AbstractField> type)`
`String` `getNamespacePrefix(String namespace)`
`AbstractField` `getProperty(String fieldName)`
`void` `removeProperty(AbstractField property)` Remove a property

### Methods inherited from class org.apache.xmpbox.type.AbstractField

`containsAttribute, getAllAttributes, getAttribute, getMetadata, getNamespace, getPrefix, getPropertyName, removeAttribute, setAttribute, setPropertyName`

### Methods inherited from class java.lang.Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

### Constructor Detail

#### AbstractComplexProperty

    public AbstractComplexProperty(XMPMetadata metadata,
                                   String propertyName)

### Method Detail

#### addNamespace

    public void addNamespace(String namespace,
                             String prefix)

#### getNamespacePrefix

    public String getNamespacePrefix(String namespace)

#### getAllNamespacesWithPrefix

    public Map<String,String> getAllNamespacesWithPrefix()

#### addProperty

    public final void addProperty(AbstractField obj)

Add a property to the current structure

Parameters:
  `obj` - the property to add

#### removeProperty

    public final void removeProperty(AbstractField property)

Remove a property

Parameters:
  `property` - The property to remove

#### getContainer

    public final ComplexPropertyContainer getContainer()

#### getAllProperties

    public final List<AbstractField> getAllProperties()

#### getProperty

    public final AbstractField getProperty(String fieldName)

#### getArrayProperty

    public final ArrayProperty getArrayProperty(String fieldName)

#### getFirstEquivalentProperty

    protected final AbstractField getFirstEquivalentProperty(String localName,
                                                             Class<? extends AbstractField> type)