com.aspose.words
Class DocumentPropertyCollection

java.lang.Object
    extended by com.aspose.words.DocumentPropertyCollection
All Implemented Interfaces:
java.lang.Iterable
Direct Known Subclasses:
BuiltInDocumentProperties, CustomDocumentProperties

public abstract class DocumentPropertyCollection 
extends java.lang.Object

Base class for BuiltInDocumentProperties and CustomDocumentProperties collections.

To learn more, visit the Work with Document Properties documentation article.

The names of the properties are case-insensitive.

The properties in the collection are sorted alphabetically by name.

Example:

Shows how to work with a document's custom properties.
Document doc = new Document();
CustomDocumentProperties properties = doc.getCustomDocumentProperties();

Assert.assertEquals(0, properties.getCount());

// Custom document properties are key-value pairs that we can add to the document.
properties.add("Authorized", true);
properties.add("Authorized By", "John Doe");
properties.add("Authorized Date", new Date());
properties.add("Authorized Revision", doc.getBuiltInDocumentProperties().getRevisionNumber());
properties.add("Authorized Amount", 123.45);

// The collection sorts the custom properties in alphabetic order.
Assert.assertEquals(1, properties.indexOf("Authorized Amount"));
Assert.assertEquals(5, properties.getCount());

// Print every custom property in the document.
Iterator<DocumentProperty> enumerator = properties.iterator();
while (enumerator.hasNext()) {
    DocumentProperty property = enumerator.next();
    System.out.println(MessageFormat.format("Name: \"{0}\"\n\tType: \"{1}\"\n\tValue: \"{2}\"", property.getName(), property.getType(), property.getValue()));
}

// Display the value of a custom property using a DOCPROPERTY field.
DocumentBuilder builder = new DocumentBuilder(doc);
FieldDocProperty field = (FieldDocProperty) builder.insertField(" DOCPROPERTY \"Authorized By\"");
field.update();

Assert.assertEquals("John Doe", field.getResult());

// We can find these custom properties in Microsoft Word via "File" -> "Properties" > "Advanced Properties" > "Custom".
doc.save(getArtifactsDir() + "DocumentProperties.DocumentPropertyCollection.docx");

// Below are three ways or removing custom properties from a document.
// 1 -  Remove by index:
properties.removeAt(1);

Assert.assertFalse(properties.contains("Authorized Amount"));
Assert.assertEquals(4, properties.getCount());

// 2 -  Remove by name:
properties.remove("Authorized Revision");

Assert.assertFalse(properties.contains("Authorized Revision"));
Assert.assertEquals(3, properties.getCount());

// 3 -  Empty the entire collection at once:
properties.clear();

Assert.assertEquals(0, properties.getCount());
See Also:
BuiltInDocumentProperties, CustomDocumentProperties

Property Getters/Setters Summary
intgetCount()
           Gets number of items in the collection.
DocumentPropertyget(int index)
           Returns a DocumentProperty object by index.
DocumentPropertyget(java.lang.String name)
           Returns a DocumentProperty object by the name of the property.
 
Method Summary
voidclear()
           Removes all properties from the collection.
booleancontains(java.lang.String name)
           Returns true if a property with the specified name exists in the collection.
intindexOf(java.lang.String name)
           Gets the index of a property by name.
java.util.Iterator<DocumentProperty>iterator()
           Returns an iterator object that can be used to iterate over all items in the collection.
voidremove(java.lang.String name)
           Removes a property with the specified name from the collection.
voidremoveAt(int index)
           Removes a property at the specified index.
 

Property Getters/Setters Detail

getCount

public int getCount()
Gets number of items in the collection.

Example:

Shows how to work with custom document properties.
Document doc = new Document(getMyDir() + "Properties.docx");

// Every document contains a collection of custom properties, which, like the built-in properties, are key-value pairs.
// The document has a fixed list of built-in properties. The user creates all of the custom properties. 
Assert.assertEquals("Value of custom document property", doc.getCustomDocumentProperties().get("CustomProperty").toString());

doc.getCustomDocumentProperties().add("CustomProperty2", "Value of custom document property #2");

System.out.println("Custom Properties:");
for (DocumentProperty customDocumentProperty : doc.getCustomDocumentProperties()) {
    System.out.println(customDocumentProperty.getName());
    System.out.println(MessageFormat.format("\tType:\t{0}", customDocumentProperty.getType()));
    System.out.println(MessageFormat.format("\tValue:\t\"{0}\"", customDocumentProperty.getValue()));
}

get

public DocumentProperty get(int index)
Returns a DocumentProperty object by index.

Note: In Java this method is slow because iterates over all nodes.

Parameters:
index - Zero-based index of the DocumentProperty to retrieve.

Example:

Shows how to work with custom document properties.
Document doc = new Document(getMyDir() + "Properties.docx");

// Every document contains a collection of custom properties, which, like the built-in properties, are key-value pairs.
// The document has a fixed list of built-in properties. The user creates all of the custom properties. 
Assert.assertEquals("Value of custom document property", doc.getCustomDocumentProperties().get("CustomProperty").toString());

doc.getCustomDocumentProperties().add("CustomProperty2", "Value of custom document property #2");

System.out.println("Custom Properties:");
for (DocumentProperty customDocumentProperty : doc.getCustomDocumentProperties()) {
    System.out.println(customDocumentProperty.getName());
    System.out.println(MessageFormat.format("\tType:\t{0}", customDocumentProperty.getType()));
    System.out.println(MessageFormat.format("\tValue:\t\"{0}\"", customDocumentProperty.getValue()));
}

get

public DocumentProperty get(java.lang.String name)
Returns a DocumentProperty object by the name of the property.

Returns null if a property with the specified name is not found.

Parameters:
name - The case-insensitive name of the property to retrieve.

Example:

Shows how to create a custom document property which contains a date and time.
Document doc = new Document();

doc.getCustomDocumentProperties().add("AuthorizationDate", new Date());

System.out.println(MessageFormat.format("Document authorized on {0}", doc.getCustomDocumentProperties().get("AuthorizationDate")));

Method Detail

clear

public void clear()
Removes all properties from the collection.

Example:

Shows how to work with a document's custom properties.
Document doc = new Document();
CustomDocumentProperties properties = doc.getCustomDocumentProperties();

Assert.assertEquals(0, properties.getCount());

// Custom document properties are key-value pairs that we can add to the document.
properties.add("Authorized", true);
properties.add("Authorized By", "John Doe");
properties.add("Authorized Date", new Date());
properties.add("Authorized Revision", doc.getBuiltInDocumentProperties().getRevisionNumber());
properties.add("Authorized Amount", 123.45);

// The collection sorts the custom properties in alphabetic order.
Assert.assertEquals(1, properties.indexOf("Authorized Amount"));
Assert.assertEquals(5, properties.getCount());

// Print every custom property in the document.
Iterator<DocumentProperty> enumerator = properties.iterator();
while (enumerator.hasNext()) {
    DocumentProperty property = enumerator.next();
    System.out.println(MessageFormat.format("Name: \"{0}\"\n\tType: \"{1}\"\n\tValue: \"{2}\"", property.getName(), property.getType(), property.getValue()));
}

// Display the value of a custom property using a DOCPROPERTY field.
DocumentBuilder builder = new DocumentBuilder(doc);
FieldDocProperty field = (FieldDocProperty) builder.insertField(" DOCPROPERTY \"Authorized By\"");
field.update();

Assert.assertEquals("John Doe", field.getResult());

// We can find these custom properties in Microsoft Word via "File" -> "Properties" > "Advanced Properties" > "Custom".
doc.save(getArtifactsDir() + "DocumentProperties.DocumentPropertyCollection.docx");

// Below are three ways or removing custom properties from a document.
// 1 -  Remove by index:
properties.removeAt(1);

Assert.assertFalse(properties.contains("Authorized Amount"));
Assert.assertEquals(4, properties.getCount());

// 2 -  Remove by name:
properties.remove("Authorized Revision");

Assert.assertFalse(properties.contains("Authorized Revision"));
Assert.assertEquals(3, properties.getCount());

// 3 -  Empty the entire collection at once:
properties.clear();

Assert.assertEquals(0, properties.getCount());

contains

public boolean contains(java.lang.String name)
Returns true if a property with the specified name exists in the collection.
Parameters:
name - The case-insensitive name of the property.
Returns:
true if the property exists in the collection; false otherwise.

Example:

Shows how to work with a document's custom properties.
Document doc = new Document();
CustomDocumentProperties properties = doc.getCustomDocumentProperties();

Assert.assertEquals(0, properties.getCount());

// Custom document properties are key-value pairs that we can add to the document.
properties.add("Authorized", true);
properties.add("Authorized By", "John Doe");
properties.add("Authorized Date", new Date());
properties.add("Authorized Revision", doc.getBuiltInDocumentProperties().getRevisionNumber());
properties.add("Authorized Amount", 123.45);

// The collection sorts the custom properties in alphabetic order.
Assert.assertEquals(1, properties.indexOf("Authorized Amount"));
Assert.assertEquals(5, properties.getCount());

// Print every custom property in the document.
Iterator<DocumentProperty> enumerator = properties.iterator();
while (enumerator.hasNext()) {
    DocumentProperty property = enumerator.next();
    System.out.println(MessageFormat.format("Name: \"{0}\"\n\tType: \"{1}\"\n\tValue: \"{2}\"", property.getName(), property.getType(), property.getValue()));
}

// Display the value of a custom property using a DOCPROPERTY field.
DocumentBuilder builder = new DocumentBuilder(doc);
FieldDocProperty field = (FieldDocProperty) builder.insertField(" DOCPROPERTY \"Authorized By\"");
field.update();

Assert.assertEquals("John Doe", field.getResult());

// We can find these custom properties in Microsoft Word via "File" -> "Properties" > "Advanced Properties" > "Custom".
doc.save(getArtifactsDir() + "DocumentProperties.DocumentPropertyCollection.docx");

// Below are three ways or removing custom properties from a document.
// 1 -  Remove by index:
properties.removeAt(1);

Assert.assertFalse(properties.contains("Authorized Amount"));
Assert.assertEquals(4, properties.getCount());

// 2 -  Remove by name:
properties.remove("Authorized Revision");

Assert.assertFalse(properties.contains("Authorized Revision"));
Assert.assertEquals(3, properties.getCount());

// 3 -  Empty the entire collection at once:
properties.clear();

Assert.assertEquals(0, properties.getCount());

indexOf

public int indexOf(java.lang.String name)
Gets the index of a property by name.

Note: In Java this method is slow because iterates over all nodes.

Parameters:
name - The case-insensitive name of the property.
Returns:
The zero based index. Negative value if not found.

Example:

Shows how to work with a document's custom properties.
Document doc = new Document();
CustomDocumentProperties properties = doc.getCustomDocumentProperties();

Assert.assertEquals(0, properties.getCount());

// Custom document properties are key-value pairs that we can add to the document.
properties.add("Authorized", true);
properties.add("Authorized By", "John Doe");
properties.add("Authorized Date", new Date());
properties.add("Authorized Revision", doc.getBuiltInDocumentProperties().getRevisionNumber());
properties.add("Authorized Amount", 123.45);

// The collection sorts the custom properties in alphabetic order.
Assert.assertEquals(1, properties.indexOf("Authorized Amount"));
Assert.assertEquals(5, properties.getCount());

// Print every custom property in the document.
Iterator<DocumentProperty> enumerator = properties.iterator();
while (enumerator.hasNext()) {
    DocumentProperty property = enumerator.next();
    System.out.println(MessageFormat.format("Name: \"{0}\"\n\tType: \"{1}\"\n\tValue: \"{2}\"", property.getName(), property.getType(), property.getValue()));
}

// Display the value of a custom property using a DOCPROPERTY field.
DocumentBuilder builder = new DocumentBuilder(doc);
FieldDocProperty field = (FieldDocProperty) builder.insertField(" DOCPROPERTY \"Authorized By\"");
field.update();

Assert.assertEquals("John Doe", field.getResult());

// We can find these custom properties in Microsoft Word via "File" -> "Properties" > "Advanced Properties" > "Custom".
doc.save(getArtifactsDir() + "DocumentProperties.DocumentPropertyCollection.docx");

// Below are three ways or removing custom properties from a document.
// 1 -  Remove by index:
properties.removeAt(1);

Assert.assertFalse(properties.contains("Authorized Amount"));
Assert.assertEquals(4, properties.getCount());

// 2 -  Remove by name:
properties.remove("Authorized Revision");

Assert.assertFalse(properties.contains("Authorized Revision"));
Assert.assertEquals(3, properties.getCount());

// 3 -  Empty the entire collection at once:
properties.clear();

Assert.assertEquals(0, properties.getCount());

iterator

public java.util.Iterator<DocumentPropertyiterator()
Returns an iterator object that can be used to iterate over all items in the collection.

Example:

Shows how to work with a document's custom properties.
Document doc = new Document();
CustomDocumentProperties properties = doc.getCustomDocumentProperties();

Assert.assertEquals(0, properties.getCount());

// Custom document properties are key-value pairs that we can add to the document.
properties.add("Authorized", true);
properties.add("Authorized By", "John Doe");
properties.add("Authorized Date", new Date());
properties.add("Authorized Revision", doc.getBuiltInDocumentProperties().getRevisionNumber());
properties.add("Authorized Amount", 123.45);

// The collection sorts the custom properties in alphabetic order.
Assert.assertEquals(1, properties.indexOf("Authorized Amount"));
Assert.assertEquals(5, properties.getCount());

// Print every custom property in the document.
Iterator<DocumentProperty> enumerator = properties.iterator();
while (enumerator.hasNext()) {
    DocumentProperty property = enumerator.next();
    System.out.println(MessageFormat.format("Name: \"{0}\"\n\tType: \"{1}\"\n\tValue: \"{2}\"", property.getName(), property.getType(), property.getValue()));
}

// Display the value of a custom property using a DOCPROPERTY field.
DocumentBuilder builder = new DocumentBuilder(doc);
FieldDocProperty field = (FieldDocProperty) builder.insertField(" DOCPROPERTY \"Authorized By\"");
field.update();

Assert.assertEquals("John Doe", field.getResult());

// We can find these custom properties in Microsoft Word via "File" -> "Properties" > "Advanced Properties" > "Custom".
doc.save(getArtifactsDir() + "DocumentProperties.DocumentPropertyCollection.docx");

// Below are three ways or removing custom properties from a document.
// 1 -  Remove by index:
properties.removeAt(1);

Assert.assertFalse(properties.contains("Authorized Amount"));
Assert.assertEquals(4, properties.getCount());

// 2 -  Remove by name:
properties.remove("Authorized Revision");

Assert.assertFalse(properties.contains("Authorized Revision"));
Assert.assertEquals(3, properties.getCount());

// 3 -  Empty the entire collection at once:
properties.clear();

Assert.assertEquals(0, properties.getCount());

remove

public void remove(java.lang.String name)
Removes a property with the specified name from the collection.
Parameters:
name - The case-insensitive name of the property.

Example:

Shows how to work with a document's custom properties.
Document doc = new Document();
CustomDocumentProperties properties = doc.getCustomDocumentProperties();

Assert.assertEquals(0, properties.getCount());

// Custom document properties are key-value pairs that we can add to the document.
properties.add("Authorized", true);
properties.add("Authorized By", "John Doe");
properties.add("Authorized Date", new Date());
properties.add("Authorized Revision", doc.getBuiltInDocumentProperties().getRevisionNumber());
properties.add("Authorized Amount", 123.45);

// The collection sorts the custom properties in alphabetic order.
Assert.assertEquals(1, properties.indexOf("Authorized Amount"));
Assert.assertEquals(5, properties.getCount());

// Print every custom property in the document.
Iterator<DocumentProperty> enumerator = properties.iterator();
while (enumerator.hasNext()) {
    DocumentProperty property = enumerator.next();
    System.out.println(MessageFormat.format("Name: \"{0}\"\n\tType: \"{1}\"\n\tValue: \"{2}\"", property.getName(), property.getType(), property.getValue()));
}

// Display the value of a custom property using a DOCPROPERTY field.
DocumentBuilder builder = new DocumentBuilder(doc);
FieldDocProperty field = (FieldDocProperty) builder.insertField(" DOCPROPERTY \"Authorized By\"");
field.update();

Assert.assertEquals("John Doe", field.getResult());

// We can find these custom properties in Microsoft Word via "File" -> "Properties" > "Advanced Properties" > "Custom".
doc.save(getArtifactsDir() + "DocumentProperties.DocumentPropertyCollection.docx");

// Below are three ways or removing custom properties from a document.
// 1 -  Remove by index:
properties.removeAt(1);

Assert.assertFalse(properties.contains("Authorized Amount"));
Assert.assertEquals(4, properties.getCount());

// 2 -  Remove by name:
properties.remove("Authorized Revision");

Assert.assertFalse(properties.contains("Authorized Revision"));
Assert.assertEquals(3, properties.getCount());

// 3 -  Empty the entire collection at once:
properties.clear();

Assert.assertEquals(0, properties.getCount());

removeAt

public void removeAt(int index)
Removes a property at the specified index.

Note: In Java this method is slow because iterates over all nodes.

Parameters:
index - The zero based index.

Example:

Shows how to work with a document's custom properties.
Document doc = new Document();
CustomDocumentProperties properties = doc.getCustomDocumentProperties();

Assert.assertEquals(0, properties.getCount());

// Custom document properties are key-value pairs that we can add to the document.
properties.add("Authorized", true);
properties.add("Authorized By", "John Doe");
properties.add("Authorized Date", new Date());
properties.add("Authorized Revision", doc.getBuiltInDocumentProperties().getRevisionNumber());
properties.add("Authorized Amount", 123.45);

// The collection sorts the custom properties in alphabetic order.
Assert.assertEquals(1, properties.indexOf("Authorized Amount"));
Assert.assertEquals(5, properties.getCount());

// Print every custom property in the document.
Iterator<DocumentProperty> enumerator = properties.iterator();
while (enumerator.hasNext()) {
    DocumentProperty property = enumerator.next();
    System.out.println(MessageFormat.format("Name: \"{0}\"\n\tType: \"{1}\"\n\tValue: \"{2}\"", property.getName(), property.getType(), property.getValue()));
}

// Display the value of a custom property using a DOCPROPERTY field.
DocumentBuilder builder = new DocumentBuilder(doc);
FieldDocProperty field = (FieldDocProperty) builder.insertField(" DOCPROPERTY \"Authorized By\"");
field.update();

Assert.assertEquals("John Doe", field.getResult());

// We can find these custom properties in Microsoft Word via "File" -> "Properties" > "Advanced Properties" > "Custom".
doc.save(getArtifactsDir() + "DocumentProperties.DocumentPropertyCollection.docx");

// Below are three ways or removing custom properties from a document.
// 1 -  Remove by index:
properties.removeAt(1);

Assert.assertFalse(properties.contains("Authorized Amount"));
Assert.assertEquals(4, properties.getCount());

// 2 -  Remove by name:
properties.remove("Authorized Revision");

Assert.assertFalse(properties.contains("Authorized Revision"));
Assert.assertEquals(3, properties.getCount());

// 3 -  Empty the entire collection at once:
properties.clear();

Assert.assertEquals(0, properties.getCount());

See Also:
          Aspose.Words Documentation - the home page for the Aspose.Words Product Documentation.
          Aspose.Words Support Forum - our preferred method of support.