All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.odftoolkit.odfdom.incubator.meta.OdfOfficeMeta Maven / Gradle / Ivy

Go to download

ODFDOM is an OpenDocument Format (ODF) framework. Its purpose is to provide an easy common way to create, access and manipulate ODF files, without requiring detailed knowledge of the ODF specification. It is designed to provide the ODF developer community with an easy lightwork programming API portable to any object-oriented language. The current reference implementation is written in Java.

There is a newer version: 1.0.0-BETA1
Show newest version
/**
 * **********************************************************************
 *
 * 

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. * *

********************************************************************** */ package org.odftoolkit.odfdom.incubator.meta; import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.Calendar; import java.util.Date; import java.util.List; import org.odftoolkit.odfdom.dom.element.dc.DcCreatorElement; import org.odftoolkit.odfdom.dom.element.dc.DcDateElement; import org.odftoolkit.odfdom.dom.element.dc.DcDescriptionElement; import org.odftoolkit.odfdom.dom.element.dc.DcLanguageElement; import org.odftoolkit.odfdom.dom.element.dc.DcSubjectElement; import org.odftoolkit.odfdom.dom.element.dc.DcTitleElement; import org.odftoolkit.odfdom.dom.element.meta.MetaAutoReloadElement; import org.odftoolkit.odfdom.dom.element.meta.MetaCreationDateElement; import org.odftoolkit.odfdom.dom.element.meta.MetaDocumentStatisticElement; import org.odftoolkit.odfdom.dom.element.meta.MetaEditingCyclesElement; import org.odftoolkit.odfdom.dom.element.meta.MetaEditingDurationElement; import org.odftoolkit.odfdom.dom.element.meta.MetaGeneratorElement; import org.odftoolkit.odfdom.dom.element.meta.MetaHyperlinkBehaviourElement; import org.odftoolkit.odfdom.dom.element.meta.MetaInitialCreatorElement; import org.odftoolkit.odfdom.dom.element.meta.MetaKeywordElement; import org.odftoolkit.odfdom.dom.element.meta.MetaPrintDateElement; import org.odftoolkit.odfdom.dom.element.meta.MetaPrintedByElement; import org.odftoolkit.odfdom.dom.element.meta.MetaTemplateElement; import org.odftoolkit.odfdom.dom.element.meta.MetaUserDefinedElement; import org.odftoolkit.odfdom.dom.element.office.OfficeDocumentMetaElement; import org.odftoolkit.odfdom.dom.element.office.OfficeMetaElement; import org.odftoolkit.odfdom.pkg.OdfElement; import org.odftoolkit.odfdom.pkg.OdfFileDom; import org.odftoolkit.odfdom.type.Duration; /** * OdfOfficeMeta represent the meta data feature in the ODF document. * *

It provides convenient method to get meta data info. */ public class OdfOfficeMeta { private OfficeMetaElement mOfficeMetaElement; private boolean mAutomaticUpdate = true; /** * Constructor of OdfOfficeMeta feature. * * @param metaDom the file DOM element of meta.xml */ public OdfOfficeMeta(OdfFileDom metaDom) { OfficeDocumentMetaElement metaEle = OdfElement.findFirstChildNode(OfficeDocumentMetaElement.class, metaDom); mOfficeMetaElement = OdfElement.findFirstChildNode(OfficeMetaElement.class, metaEle); } /** * Get the instance of OfficeMetaElement which represents this feature. * * @return the instance of OfficeMetaElement */ public OfficeMetaElement getOfficeMetaElement() { return mOfficeMetaElement; } /** * Receives the value of the ODFDOM element representation MetaGeneratorElement , See * {@odf.element meta:generator}. * * @return the generator info of the current document; *

null, if the element is not set. */ public String getGenerator() { MetaGeneratorElement metaGenerator = OdfElement.findFirstChildNode(MetaGeneratorElement.class, mOfficeMetaElement); if (metaGenerator != null) { return metaGenerator.getTextContent(); } return null; } /** * Sets the value of the ODFDOM element representation MetaGeneratorElement , See * {@odf.element meta:generator}. * * @param generator set the specified document generator. NULL will remove the element from the * meta.xml. */ public void setGenerator(String generator) { MetaGeneratorElement metaGeneratorEle = OdfElement.findFirstChildNode(MetaGeneratorElement.class, mOfficeMetaElement); if (generator == null) { if (metaGeneratorEle != null) { mOfficeMetaElement.removeChild(metaGeneratorEle); } } else { if (metaGeneratorEle == null) { metaGeneratorEle = mOfficeMetaElement.newMetaGeneratorElement(); } metaGeneratorEle.setTextContent(generator); } } /** * Receives the value of the ODFDOM element representation DcTitleElement , See * {@odf.element dc:title}. * * @return the title of the current document; *

null, if the element is not set. */ public String getTitle() { DcTitleElement titleEle = OdfElement.findFirstChildNode(DcTitleElement.class, mOfficeMetaElement); if (titleEle != null) { return titleEle.getTextContent(); } return null; } /** * Sets the value of the ODFDOM element representation DcTitleElement , See * {@odf.element dc:title}. * * @param title set the specified document title. NULL will remove the element from the meta.xml. */ public void setTitle(String title) { DcTitleElement titleEle = OdfElement.findFirstChildNode(DcTitleElement.class, mOfficeMetaElement); if (title == null) { if (titleEle != null) { mOfficeMetaElement.removeChild(titleEle); } } else { if (titleEle == null) { titleEle = mOfficeMetaElement.newDcTitleElement(); } titleEle.setTextContent(title); } } /** * Receives the value of the ODFDOM element representation DcDescriptionElement , See * {@odf.element dc:description}. * * @return the description of the current document; *

null, if the element is not set. */ public String getDescription() { DcDescriptionElement descEle = OdfElement.findFirstChildNode(DcDescriptionElement.class, mOfficeMetaElement); if (descEle != null) { return descEle.getTextContent(); } return null; } /** * Sets the value of the ODFDOM element representation DcDescriptionElement , See * {@odf.element dc:description}. * * @param description set the specified document description. NULL will remove the element from * the meta.xml. */ public void setDescription(String description) { DcDescriptionElement descEle = OdfElement.findFirstChildNode(DcDescriptionElement.class, mOfficeMetaElement); if (description == null) { if (descEle != null) { mOfficeMetaElement.removeChild(descEle); } } else { if (descEle == null) { descEle = mOfficeMetaElement.newDcDescriptionElement(); } descEle.setTextContent(description); } } /** * Receives the value of the ODFDOM element representation DcSubjectElement , See * {@odf.element dc:subject}. * * @return the subject of the current document; *

null, if the element is not set. */ public String getSubject() { DcSubjectElement subjectEle = OdfElement.findFirstChildNode(DcSubjectElement.class, mOfficeMetaElement); if (subjectEle != null) { return subjectEle.getTextContent(); } return null; } /** * Sets the value of the ODFDOM element representation DcSubjectElement , See * {@odf.element dc:subject}. * * @param subject set the specified document subject. NULL will remove the element from the * meta.xml. */ public void setSubject(String subject) { DcSubjectElement subjectEle = OdfElement.findFirstChildNode(DcSubjectElement.class, mOfficeMetaElement); if (subject == null) { if (subjectEle != null) { mOfficeMetaElement.removeChild(subjectEle); } } else { if (subjectEle == null) { subjectEle = mOfficeMetaElement.newDcSubjectElement(); } subjectEle.setTextContent(subject); } } /** * Receives the list value of the ODFDOM element representation MetaKeywordElement , * See {@odf.element meta:keyword}. * * @return the keywords of the current document; *

null, if the element is not set. */ public List getKeywords() { List keywords = new ArrayList(); MetaKeywordElement keywordEle = OdfElement.findFirstChildNode(MetaKeywordElement.class, mOfficeMetaElement); if (keywordEle != null) { keywords.add(keywordEle.getTextContent()); MetaKeywordElement keywordNext; while ((keywordNext = OdfElement.findNextChildNode(MetaKeywordElement.class, keywordEle)) != null) { keywords.add(keywordNext.getTextContent()); keywordEle = keywordNext; } return keywords; } else { return null; } } /** * Sets the list value of the ODFDOM element representation MetaKeywordElement , See * {@odf.element meta:keyword}. * * @param keyList set the specified list of keywords */ public void setKeywords(List keyList) { MetaKeywordElement keywordEle = OdfElement.findFirstChildNode(MetaKeywordElement.class, mOfficeMetaElement); List toBeDeleted = new ArrayList(); if (keywordEle != null) { MetaKeywordElement keywordTmp; toBeDeleted.add(keywordEle); while ((keywordTmp = OdfElement.findNextChildNode(MetaKeywordElement.class, keywordEle)) != null) { keywordEle = keywordTmp; toBeDeleted.add(keywordTmp); } } // remove the original for (MetaKeywordElement keyele : toBeDeleted) { mOfficeMetaElement.removeChild(keyele); } // add new for (int i = 0; i < keyList.size(); i++) { MetaKeywordElement keywordElement = mOfficeMetaElement.newMetaKeywordElement(); keywordElement.setTextContent(keyList.get(i)); } } /** * Add the keyword to the current document. Create child element {@odf.element meta:keyword}. * * @param keyword the value of child element {@odf.element meta:keyword}. */ public void addKeyword(String keyword) { MetaKeywordElement keywordElement = mOfficeMetaElement.newMetaKeywordElement(); keywordElement.setTextContent(keyword); } /** * Receives the list value of the ODFDOM element representation MetaUserDefinedElement * , See {@odf.element meta:user-defined}. * * @return get the list of user-defined metadata names; *

null, if the element is not set. */ public List getUserDefinedDataNames() { List definedNames = new ArrayList(); MetaUserDefinedElement definedEle = OdfElement.findFirstChildNode(MetaUserDefinedElement.class, mOfficeMetaElement); if (definedEle != null) { definedNames.add(definedEle.getMetaNameAttribute()); MetaUserDefinedElement definedNext; while ((definedNext = OdfElement.findNextChildNode(MetaUserDefinedElement.class, definedEle)) != null) { definedNames.add(definedNext.getMetaNameAttribute()); definedEle = definedNext; } return definedNames; } else { return null; } } /** * Receives the ODFDOM element representation MetaUserDefinedElement by attribute * name, See {@odf.element meta:user-defined}. * * @param name the name of the user-defined metadata * @return the MetaUserDefinedElement which is identified by the specified name; *

null, if the element is not set. */ public MetaUserDefinedElement getUserDefinedElementByAttributeName(String name) { MetaUserDefinedElement definedEle = OdfElement.findFirstChildNode(MetaUserDefinedElement.class, mOfficeMetaElement); if (definedEle != null) { if (definedEle.getMetaNameAttribute().equals(name)) { return definedEle; } MetaUserDefinedElement definedNext; while ((definedNext = OdfElement.findNextChildNode(MetaUserDefinedElement.class, definedEle)) != null) { if (definedNext.getMetaNameAttribute().equals(name)) { return definedNext; } definedEle = definedNext; } return null; } else { return null; } } /** * Receives the value of the ODFDOM element representation MetaUserDefinedElement by * attribute name, See {@odf.element meta:user-defined}. * * @param name the name of the user-defined metadata * @return the value of the user-defined metadata with the specified name; *

null, if the element is not set. */ public String getUserDefinedDataValue(String name) { MetaUserDefinedElement definedElement = getUserDefinedElementByAttributeName(name); if (definedElement != null) { return definedElement.getTextContent(); } return null; } /** * Receives the data type of the ODFDOM element representation MetaUserDefinedElement * by attribute name, See {@odf.element meta:user-defined}. * * @param name the name of the user-defined metadata * @return the data type of the user-defined metadata with the specified name; *

null, if the element is not set. */ public String getUserDefinedDataType(String name) { MetaUserDefinedElement definedElement = getUserDefinedElementByAttributeName(name); if (definedElement != null) { return definedElement.getMetaValueTypeAttribute(); } return null; } /** * Remove the ODFDOM element representation MetaUserDefinedElement by attribute name, * See {@odf.element meta:user-defined}. * * @param name the name of the user-defined metadata */ public void removeUserDefinedDataByName(String name) { MetaUserDefinedElement definedElement = getUserDefinedElementByAttributeName(name); if (definedElement != null) { mOfficeMetaElement.removeChild(definedElement); } } /** * Sets the value of the ODFDOM element representation MetaUserDefinedElement by * attribute name, See {@odf.element meta:user-defined}. * * @param name the name need to set for the user-defined metadata * @param value the value need to set for the user-defined metadata */ public void setUserDefinedDataValue(String name, String value) { MetaUserDefinedElement definedElement = getUserDefinedElementByAttributeName(name); if (definedElement != null) { definedElement.setTextContent(value); } } /** * Sets the data type of the ODFDOM element representation MetaUserDefinedElement by * attribute name, See {@odf.element meta:user-defined}. * * @param name the name need to set for the user-defined metadata * @param value the value need to set for the user-defined metadata */ public void setUserDefinedDataType(String name, String value) { MetaUserDefinedElement definedElement = getUserDefinedElementByAttributeName(name); if (definedElement != null) { definedElement.setMetaValueTypeAttribute(value); } } /** * Sets the ODFDOM element representation MetaUserDefinedElement , See {@odf.element * meta:user-defined} if the element with the attribute name exists,then update;or create a new * element if type or value is null,the original will not be updated. * * @param name the name need to set for the user-defined metadata * @param type the data type need to set for the user-defined metadata * @param value the value need to set for the user-defined metadata */ public void setUserDefinedData(String name, String type, String value) { // test if name exists MetaUserDefinedElement definedElement = getUserDefinedElementByAttributeName(name); // if exists, then update,if parameter is null, then don't change if (definedElement != null) { if (type != null) { definedElement.setMetaValueTypeAttribute(type); } if (value != null) { definedElement.setTextContent(value); } } else { // if not exists, add definedElement = mOfficeMetaElement.newMetaUserDefinedElement(name, type); definedElement.setTextContent(value); } } /** * Receives the value of the ODFDOM element representation MetaInitialCreatorElement * , See {@odf.element meta:initial-creator}. * * @return get the initial creator of the current document; *

null, if the element is not set. */ public String getInitialCreator() { MetaInitialCreatorElement iniCreatorEle = OdfElement.findFirstChildNode(MetaInitialCreatorElement.class, mOfficeMetaElement); if (iniCreatorEle != null) { return iniCreatorEle.getTextContent(); } return null; } /** * Sets the value of the ODFDOM element representation MetaInitialCreatorElement , * See {@odf.element meta:initial-creator}. * * @param initialCreator set the specified initial creator. NULL will remove the element from the * meta.xml. */ public void setInitialCreator(String initialCreator) { MetaInitialCreatorElement initialCreatorEle = OdfElement.findFirstChildNode(MetaInitialCreatorElement.class, mOfficeMetaElement); if (initialCreator == null) { if (initialCreatorEle != null) { mOfficeMetaElement.removeChild(initialCreatorEle); } } else { if (initialCreatorEle == null) { initialCreatorEle = mOfficeMetaElement.newMetaInitialCreatorElement(); } initialCreatorEle.setTextContent(initialCreator); } } /** * Receives the value of the ODFDOM element representation DcCreatorElement , See * {@odf.element dc:creator} * * @return the creator of the current document; *

null, if the element is not set. */ public String getCreator() { DcCreatorElement creatorEle = OdfElement.findFirstChildNode(DcCreatorElement.class, mOfficeMetaElement); if (creatorEle != null) { return creatorEle.getTextContent(); } return null; } /** * Sets the value of the ODFDOM element representation DcCreatorElement , See * {@odf.element dc:creator}. * * @param creator set the specified creator. NULL will remove the element from the meta.xml. */ public void setCreator(String creator) { DcCreatorElement creatorEle = OdfElement.findFirstChildNode(DcCreatorElement.class, mOfficeMetaElement); if (creator == null) { if (creatorEle != null) { mOfficeMetaElement.removeChild(creatorEle); } } else { if (creatorEle == null) { creatorEle = mOfficeMetaElement.newDcCreatorElement(); } creatorEle.setTextContent(creator); } } /** * Receives the value of the ODFDOM element representation MetaPrintedByElement , See * {@odf.element meta:printed-by} * * @return the name of the last person who printed the current document; *

null, if element is not set */ public String getPrintedBy() { MetaPrintedByElement printedByEle = OdfElement.findFirstChildNode(MetaPrintedByElement.class, mOfficeMetaElement); if (printedByEle != null) { return printedByEle.getTextContent(); } return null; } /** * Sets the value of the ODFDOM element representation MetaPrintedByElement , See * {@odf.element meta:printed-by}. * * @param printedBy the name need to set for the last person who printed the current document. * NULL will remove the element from the meta.xml. */ public void setPrintedBy(String printedBy) { MetaPrintedByElement printedByEle = OdfElement.findFirstChildNode(MetaPrintedByElement.class, mOfficeMetaElement); if (printedBy == null) { if (printedByEle != null) { mOfficeMetaElement.removeChild(printedByEle); } } else { if (printedByEle == null) { printedByEle = mOfficeMetaElement.newMetaPrintedByElement(); } printedByEle.setTextContent(printedBy); } } /** * Receives the value of the ODFDOM element representation MetaCreationDateElement , * See {@odf.element meta:creation-date} * * @return the date and time when the document was created initially; *

null, if element is not set */ public Calendar getCreationDate() { MetaCreationDateElement creationDateEle = OdfElement.findFirstChildNode(MetaCreationDateElement.class, mOfficeMetaElement); if (creationDateEle != null) { return stringToCalendar(creationDateEle.getTextContent()); } return null; } /** * Sets the value of the ODFDOM element representation MetaCreationDateElement , See * {@odf.element meta:creation-date}. * * @param creationDate the date and time need to set. NULL will remove the element from the * meta.xml. */ public void setCreationDate(Calendar creationDate) { MetaCreationDateElement creationDateEle = OdfElement.findFirstChildNode(MetaCreationDateElement.class, mOfficeMetaElement); if (creationDate == null) { if (creationDateEle != null) { mOfficeMetaElement.removeChild(creationDateEle); } } else { if (creationDateEle == null) { creationDateEle = mOfficeMetaElement.newMetaCreationDateElement(); } creationDateEle.setTextContent(calendarToString(creationDate)); } } /** * Receives the value of the ODFDOM element representation DcDateElement , See * {@odf.element dc:date}. * * @return the date and time when the document was last modified; *

null, if the element is not set. */ public Calendar getDate() { DcDateElement dcDateEle = OdfElement.findFirstChildNode(DcDateElement.class, mOfficeMetaElement); if (dcDateEle != null) { return stringToCalendar(dcDateEle.getTextContent()); } return null; } /** * Sets the value of the ODFDOM element representation DcDateElement , See * {@odf.element dc:date}. * * @param date the date and time need to set. NULL will remove the element from the meta.xml. */ public void setDate(Calendar date) { DcDateElement dcDateEle = OdfElement.findFirstChildNode(DcDateElement.class, mOfficeMetaElement); if (date == null) { if (dcDateEle != null) { mOfficeMetaElement.removeChild(dcDateEle); } } else { if (dcDateEle == null) { dcDateEle = mOfficeMetaElement.newDcDateElement(); } dcDateEle.setTextContent(calendarToString(date)); } } /** * Receives the value of the ODFDOM element representation MetaPrintDateElement , See * {@odf.element meta:print-date}. * * @return the date and time when the document was last printed; *

null, if the element is not set. */ public Calendar getPrintDate() { MetaPrintDateElement printDateEle = OdfElement.findFirstChildNode(MetaPrintDateElement.class, mOfficeMetaElement); if (printDateEle != null) { return stringToCalendar(printDateEle.getTextContent()); } return null; } /** * Sets the value of the ODFDOM element representation MetaPrintDateElement , See * {@odf.element meta:print-date}. * * @param printDate the date and time need to set. NULL will remove the element from the meta.xml. */ public void setPrintDate(Calendar printDate) { MetaPrintDateElement printDateEle = OdfElement.findFirstChildNode(MetaPrintDateElement.class, mOfficeMetaElement); if (printDate == null) { if (printDateEle != null) { mOfficeMetaElement.removeChild(printDateEle); } } else { if (printDateEle == null) { printDateEle = mOfficeMetaElement.newMetaPrintDateElement(); } printDateEle.setTextContent(calendarToString(printDate)); } } /** * Receives the value of the ODFDOM element representation DcLanguageElement , See * {@odf.element dc:language}. * * @return the default language of the document; *

null, if the element is not set. */ public String getLanguage() { DcLanguageElement languageEle = OdfElement.findFirstChildNode(DcLanguageElement.class, mOfficeMetaElement); if (languageEle != null) { return languageEle.getTextContent(); } return null; } /** * Sets the value of the ODFDOM element representation DcLanguageElement , See * {@odf.element dc:language}. * * @param language the default language need to set fo the current document. NULL will remove the * element from the meta.xml. */ public void setLanguage(String language) { DcLanguageElement languageEle = OdfElement.findFirstChildNode(DcLanguageElement.class, mOfficeMetaElement); if (language == null) { if (languageEle != null) { mOfficeMetaElement.removeChild(languageEle); } } else { if (languageEle == null) { languageEle = mOfficeMetaElement.newDcLanguageElement(); } languageEle.setTextContent(language); } } /** * Receives the value of the ODFDOM element representation MetaEditingCyclesElement , * See {@odf.element meta:editing-cycles}. * * @return the number of times that the document has been edited; *

null, if the element is not set. */ public Integer getEditingCycles() { MetaEditingCyclesElement editingCyclesEle = OdfElement.findFirstChildNode(MetaEditingCyclesElement.class, mOfficeMetaElement); if (editingCyclesEle != null) { return Integer.valueOf(editingCyclesEle.getTextContent()); } return null; } /** * Sets the value of the ODFDOM element representation MetaEditingCyclesElement , See * {@odf.element meta:editing-cycles}. * * @param editingCycles set the specified edit times. NULL will remove the element from the * meta.xml. */ public void setEditingCycles(Integer editingCycles) { MetaEditingCyclesElement editingCyclesEle = OdfElement.findFirstChildNode(MetaEditingCyclesElement.class, mOfficeMetaElement); if (editingCycles == null) { if (editingCyclesEle != null) { mOfficeMetaElement.removeChild(editingCyclesEle); } } else { if (editingCyclesEle == null) { editingCyclesEle = mOfficeMetaElement.newMetaEditingCyclesElement(); } editingCyclesEle.setTextContent(String.valueOf(editingCycles)); } } /** * Receives the value of the ODFDOM element representation MetaEditingDurationElement * , See {@odf.element meta:editing-duration}. * * @return the total time spent editing the document; *

null, if the element is not set. */ public Duration getEditingDuration() { MetaEditingDurationElement editiingDurationEle = OdfElement.findFirstChildNode(MetaEditingDurationElement.class, mOfficeMetaElement); if (editiingDurationEle != null) { return Duration.valueOf(editiingDurationEle.getTextContent()); } return null; } /** * Sets the value of the ODFDOM element representation MetaEditingDurationElement , * See {@odf.element meta:editing-duration}. * * @param editingDuration the time need to set. NULL will remove the element from the meta.xml. */ public void setEditingDuration(Duration editingDuration) { MetaEditingDurationElement editingDurationEle = OdfElement.findFirstChildNode(MetaEditingDurationElement.class, mOfficeMetaElement); if (editingDuration == null) { if (editingDurationEle != null) { mOfficeMetaElement.removeChild(editingDurationEle); } } else { if (editingDurationEle == null) { editingDurationEle = mOfficeMetaElement.newMetaEditingDurationElement(); } editingDurationEle.setTextContent(editingDuration.toString()); } } /** * Receives the sub feature of OdfMetaDocumentStatistic. * * @return the statistics about the document which can be represented by * OdfMetaDocumentStatistic feature; *

null, if the feature is not exist. */ public OdfMetaDocumentStatistic getDocumentStatistic() { MetaDocumentStatisticElement element = getDocumentStatisticElement(); if (element != null) { return new OdfMetaDocumentStatistic(element); } else { return null; } } /** * Receives the OdfMetaHyperlinkBehaviour feature. * * @return the default behavior of hyperlinks in the current document which can be represented by * OdfMetaHyperlinkBehaviour feature; *

null, if the feature is not exist. */ public OdfMetaHyperlinkBehaviour getHyperlinkBehaviour() { MetaHyperlinkBehaviourElement element = getHyperlinkBehaviourElement(); if (element != null) { return new OdfMetaHyperlinkBehaviour(element); } else { return null; } } /** * Receives the OdfMetaAutoReload feature. * * @return the information whether the document is reloaded or replaced by another document after * a certain period of time has elapsed. *

It can be represented by OdfMetaAutoReload feature; *

null, if the feature is not exist. */ public OdfMetaAutoReload getAutoReload() { MetaAutoReloadElement element = getAutoReloadElement(); if (element != null) { return new OdfMetaAutoReload(element); } else { return null; } } /** * Receives the OdfMetaTemplate feature. * * @return the information specified the URL for the document that was used to create a document. *

It can be represented by OdfMetaTemplate feature; *

null, if the feature is not exist. */ public OdfMetaTemplate getTemplate() { MetaTemplateElement element = getTemplateElement(); if (element != null) { return new OdfMetaTemplate(element); } else { return null; } } private MetaDocumentStatisticElement getDocumentStatisticElement() { return OdfElement.findFirstChildNode(MetaDocumentStatisticElement.class, mOfficeMetaElement); } private MetaHyperlinkBehaviourElement getHyperlinkBehaviourElement() { return OdfElement.findFirstChildNode(MetaHyperlinkBehaviourElement.class, mOfficeMetaElement); } private MetaAutoReloadElement getAutoReloadElement() { return OdfElement.findFirstChildNode(MetaAutoReloadElement.class, mOfficeMetaElement); } private MetaTemplateElement getTemplateElement() { return OdfElement.findFirstChildNode(MetaTemplateElement.class, mOfficeMetaElement); } /** * Change valid string of calendar to Calendar type. * * @param baseDate the string of a calender * @return the object of Calender */ private Calendar stringToCalendar(String baseDate) { // Calendar calendar=new GregorianCalendar(); Calendar calendar = Calendar.getInstance(); Date d1 = null; SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss"); try { d1 = sdf.parse(baseDate); } catch (Exception e) { // invalid format or null value in meta.xml // d1=new Date(); } calendar.setTime(d1); return calendar; } /** * Convert a Canlender object to String object. * * @param calendar an instanceof Canlender * @return the String format(yyyy-MM-dd'T'HH:mm:ss) of Calendar. */ private String calendarToString(Calendar calendar) { return new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss").format(calendar.getTime()); } /** * @param enableAutomaticUpdate If the automatic update of metadata is enabled, metadata such as * last modified data is set during saving the document. The default is true, * disabling the default allows to load and save a document without changing any data. */ public void setAutomaticUpdate(boolean enableAutomaticUpdate) { mAutomaticUpdate = enableAutomaticUpdate; } /** * @return If the automatic update of metadata is enabled, metadata such as last modified data is * set during saving the document. The default is true, disabling the default * allows to load and save a document without changing any data. */ public boolean hasAutomaticUpdate() { return mAutomaticUpdate; } @Override public String toString() { if (mOfficeMetaElement != null) { return mOfficeMetaElement.toString(); } else { return null; } } }





© 2015 - 2024 Weber Informatics LLC | Privacy Policy