POIXMLproperties: created, creator, modified, lastprinted, identifier, revision + test
git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@796239 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
parent
76752c5db7
commit
15e434d684
@ -18,16 +18,22 @@ package org.apache.poi;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.io.OutputStream;
|
||||
import java.util.Map;
|
||||
import java.util.Date;
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
|
||||
import org.apache.poi.openxml4j.exceptions.OpenXML4JException;
|
||||
import org.apache.poi.openxml4j.exceptions.InvalidFormatException;
|
||||
import org.apache.poi.openxml4j.opc.*;
|
||||
import org.apache.poi.openxml4j.exceptions.OpenXML4JException;
|
||||
import org.apache.poi.openxml4j.opc.OPCPackage;
|
||||
import org.apache.poi.openxml4j.opc.PackagePart;
|
||||
import org.apache.poi.openxml4j.opc.PackagePartName;
|
||||
import org.apache.poi.openxml4j.opc.PackageRelationshipCollection;
|
||||
import org.apache.poi.openxml4j.opc.PackagingURIHelper;
|
||||
import org.apache.poi.openxml4j.opc.TargetMode;
|
||||
import org.apache.poi.openxml4j.opc.internal.PackagePropertiesPart;
|
||||
import org.apache.poi.openxml4j.util.Nullable;
|
||||
import org.apache.xmlbeans.XmlException;
|
||||
import org.apache.xmlbeans.XmlOptions;
|
||||
import org.openxmlformats.schemas.officeDocument.x2006.extendedProperties.PropertiesDocument;
|
||||
|
||||
/**
|
||||
* Wrapper around the two different kinds of OOXML properties
|
||||
@ -159,11 +165,32 @@ public class POIXMLProperties {
|
||||
this.part = part;
|
||||
}
|
||||
|
||||
public void setTitle(String title) {
|
||||
part.setTitleProperty(title);
|
||||
public String getCategory() {
|
||||
return part.getCategoryProperty().getValue();
|
||||
}
|
||||
public String getTitle() {
|
||||
return part.getTitleProperty().getValue();
|
||||
public void setCategory(String category) {
|
||||
part.setCategoryProperty(category);
|
||||
}
|
||||
public String getContentStatus() {
|
||||
return part.getContentStatusProperty().getValue();
|
||||
}
|
||||
public void setContentStatus(String contentStatus) {
|
||||
part.setContentStatusProperty(contentStatus);
|
||||
}
|
||||
public String getContentType() {
|
||||
return part.getContentTypeProperty().getValue();
|
||||
}
|
||||
public void setContentType(String contentType) {
|
||||
part.setContentTypeProperty(contentType);
|
||||
}
|
||||
public Date getCreated() {
|
||||
return part.getCreatedProperty().getValue();
|
||||
}
|
||||
public void setCreated(Nullable<Date> date) {
|
||||
part.setCreatedProperty(date);
|
||||
}
|
||||
public void setCreated(String date) {
|
||||
part.setCreatedProperty(date);
|
||||
}
|
||||
public String getCreator() {
|
||||
return part.getCreatorProperty().getValue();
|
||||
@ -171,12 +198,58 @@ public class POIXMLProperties {
|
||||
public void setCreator(String creator) {
|
||||
part.setCreatorProperty(creator);
|
||||
}
|
||||
public String getDescription() {
|
||||
return part.getDescriptionProperty().getValue();
|
||||
}
|
||||
public void setDescription(String description) {
|
||||
part.setDescriptionProperty(description);
|
||||
}
|
||||
public String getIdentifier() {
|
||||
return part.getIdentifierProperty().getValue();
|
||||
}
|
||||
public void setIdentifier(String identifier) {
|
||||
part.setIdentifierProperty(identifier);
|
||||
}
|
||||
public Date getLastPrinted() {
|
||||
return part.getLastPrintedProperty().getValue();
|
||||
}
|
||||
public void setLastPrinted(Nullable<Date> date) {
|
||||
part.setLastPrintedProperty(date);
|
||||
}
|
||||
public void setLastPrinted(String date) {
|
||||
part.setLastPrintedProperty(date);
|
||||
}
|
||||
public Date getModified() {
|
||||
return part.getModifiedProperty().getValue();
|
||||
}
|
||||
public void setModified(Nullable<Date> date) {
|
||||
part.setModifiedProperty(date);
|
||||
}
|
||||
public void setModified(String date) {
|
||||
part.setModifiedProperty(date);
|
||||
}
|
||||
public String getSubject() {
|
||||
return part.getSubjectProperty().getValue();
|
||||
}
|
||||
public void setSubjectProperty(String subject) {
|
||||
part.setSubjectProperty(subject);
|
||||
}
|
||||
public void setTitle(String title) {
|
||||
part.setTitleProperty(title);
|
||||
}
|
||||
public String getTitle() {
|
||||
return part.getTitleProperty().getValue();
|
||||
}
|
||||
public String getRevision() {
|
||||
return part.getRevisionProperty().getValue();
|
||||
}
|
||||
public void setRevision(String revision) {
|
||||
try {
|
||||
new Long(revision);
|
||||
part.setRevisionProperty(revision);
|
||||
}
|
||||
catch (NumberFormatException e) {}
|
||||
}
|
||||
|
||||
public PackagePropertiesPart getUnderlyingProperties() {
|
||||
return part;
|
||||
|
@ -19,10 +19,12 @@
|
||||
package org.apache.poi;
|
||||
|
||||
import java.io.File;
|
||||
import java.text.SimpleDateFormat;
|
||||
import java.util.Date;
|
||||
|
||||
import junit.framework.TestCase;
|
||||
|
||||
import org.apache.poi.openxml4j.opc.OPCPackage;
|
||||
import org.apache.poi.POIXMLProperties.CoreProperties;
|
||||
import org.apache.poi.xssf.XSSFTestDataSamples;
|
||||
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
|
||||
import org.apache.poi.xwpf.usermodel.XWPFDocument;
|
||||
@ -31,6 +33,23 @@ import org.apache.poi.xwpf.usermodel.XWPFDocument;
|
||||
* Test setting extended and custom OOXML properties
|
||||
*/
|
||||
public class TestPOIXMLProperties extends TestCase {
|
||||
POIXMLProperties props;
|
||||
CoreProperties coreProperties;
|
||||
|
||||
public void setUp() throws Exception{
|
||||
File sampleFile = new File(
|
||||
System.getProperty("HWPF.testdata.path") +
|
||||
File.separator + "documentProperties.docx"
|
||||
);
|
||||
assertTrue(sampleFile.exists());
|
||||
XWPFDocument sampleDoc;
|
||||
sampleDoc = new XWPFDocument(
|
||||
POIXMLDocument.openPackage(sampleFile.toString())
|
||||
);
|
||||
props = sampleDoc.getProperties();
|
||||
coreProperties = props.getCoreProperties();
|
||||
assertNotNull(props);
|
||||
}
|
||||
|
||||
public void testWorkbookExtendedProperties() throws Exception {
|
||||
XSSFWorkbook workbook = new XSSFWorkbook();
|
||||
@ -137,23 +156,29 @@ public class TestPOIXMLProperties extends TestCase {
|
||||
|
||||
}
|
||||
|
||||
public void testDocumentProperties() throws Exception {
|
||||
File sampleFile = new File(
|
||||
System.getProperty("HWPF.testdata.path") +
|
||||
File.separator + "documentProperties.docx"
|
||||
);
|
||||
assertTrue(sampleFile.exists());
|
||||
XWPFDocument sampleDoc;
|
||||
sampleDoc = new XWPFDocument(
|
||||
POIXMLDocument.openPackage(sampleFile.toString())
|
||||
);
|
||||
POIXMLProperties props = sampleDoc.getProperties();
|
||||
assertNotNull(props);
|
||||
String title = props.getCoreProperties().getTitle();
|
||||
assertEquals("Hello World", title);
|
||||
String creator = props.getCoreProperties().getCreator();
|
||||
public void testDocumentProperties() {
|
||||
String category = coreProperties.getCategory();
|
||||
assertEquals("test", category);
|
||||
String contentStatus = "Draft";
|
||||
coreProperties.setContentStatus(contentStatus);
|
||||
assertEquals("Draft", contentStatus);
|
||||
Date created = coreProperties.getCreated();
|
||||
SimpleDateFormat formatter = new SimpleDateFormat("EEE, MMM d, ''yy");
|
||||
assertEquals("Mon, Jul 20, '09", formatter.format(created));
|
||||
String creator = coreProperties.getCreator();
|
||||
assertEquals("Paolo Mottadelli", creator);
|
||||
String subject = props.getCoreProperties().getSubject();
|
||||
String subject = coreProperties.getSubject();
|
||||
assertEquals("Greetings", subject);
|
||||
String title = coreProperties.getTitle();
|
||||
assertEquals("Hello World", title);
|
||||
}
|
||||
|
||||
public void testGetSetRevision() {
|
||||
String revision = coreProperties.getRevision();
|
||||
assertTrue("Revision number is 1", new Integer(coreProperties.getRevision()).intValue() > 1);
|
||||
coreProperties.setRevision("20");
|
||||
assertEquals("20", coreProperties.getRevision());
|
||||
coreProperties.setRevision("20xx");
|
||||
assertEquals("20", coreProperties.getRevision());
|
||||
}
|
||||
}
|
Binary file not shown.
Loading…
Reference in New Issue
Block a user