org.docx4j.model.datastorage.migration.AbstractMigratorUsingAnswersFormat Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of docx4j-core Show documentation
Show all versions of docx4j-core Show documentation
docx4j is a library which helps you to work with the Office Open
XML file format as used in docx
documents, pptx presentations, and xlsx spreadsheets.
package org.docx4j.model.datastorage.migration;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.UUID;
import javax.xml.bind.JAXBElement;
import org.docx4j.customXmlProperties.DatastoreItem;
import org.docx4j.customXmlProperties.SchemaRefs;
import org.docx4j.customXmlProperties.SchemaRefs.SchemaRef;
import org.docx4j.jaxb.Context;
import org.docx4j.openpackaging.exceptions.InvalidFormatException;
import org.docx4j.openpackaging.packages.WordprocessingMLPackage;
import org.docx4j.openpackaging.parts.CustomXmlDataStoragePropertiesPart;
import org.docx4j.openpackaging.parts.PartName;
import org.docx4j.openpackaging.parts.opendope.ConditionsPart;
import org.docx4j.openpackaging.parts.opendope.JaxbCustomXmlDataStoragePart;
import org.docx4j.openpackaging.parts.opendope.QuestionsPart;
import org.docx4j.openpackaging.parts.opendope.StandardisedAnswersPart;
import org.docx4j.openpackaging.parts.opendope.XPathsPart;
import org.docx4j.openpackaging.parts.relationships.RelationshipsPart.AddPartBehaviour;
import org.docx4j.wml.CTDataBinding;
import org.docx4j.wml.CTSdtContentRun;
import org.docx4j.wml.CTSdtText;
import org.docx4j.wml.R;
import org.docx4j.wml.RPr;
import org.docx4j.wml.SdtPr;
import org.docx4j.wml.SdtRun;
import org.docx4j.wml.Tag;
import org.docx4j.wml.Text;
import org.docx4j.wml.SdtPr.Alias;
import org.opendope.answers.Answer;
import org.opendope.answers.Answers;
import org.opendope.conditions.Conditions;
import org.opendope.questions.Question;
import org.opendope.questions.Questionnaire;
import org.opendope.questions.Response;
import org.opendope.xpaths.Xpaths;
import org.opendope.xpaths.Xpaths.Xpath.DataBinding;
public class AbstractMigratorUsingAnswersFormat extends AbstractMigrator {
protected QuestionsPart questionsPart;
protected StandardisedAnswersPart standardisedAnswersPart;
protected Map keys = new HashMap();
protected void createParts(WordprocessingMLPackage pkgOut) throws InvalidFormatException {
super.createParts(pkgOut);
// Add OpenDoPE parts to target
// .. Questions
questionsPart = new QuestionsPart(new PartName("/customXml/item1.xml"));
pkgOut.getMainDocumentPart().addTargetPart(questionsPart, AddPartBehaviour.RENAME_IF_NAME_EXISTS);
addPropertiesPart(pkgOut, questionsPart,"http://opendope.org/questions");
questionsPart.setJaxbElement(new Questionnaire());
Questionnaire.Questions questions = new Questionnaire.Questions();
questionsPart.getJaxbElement().setQuestions(questions);
// .. Standardised Answer format
standardisedAnswersPart = new StandardisedAnswersPart(new PartName("/customXml/item1.xml"));
pkgOut.getMainDocumentPart().addTargetPart(standardisedAnswersPart, AddPartBehaviour.RENAME_IF_NAME_EXISTS);
storeItemID = addPropertiesPart(pkgOut, standardisedAnswersPart, "http://opendope.org/answers");
standardisedAnswersPart.setJaxbElement(new Answers());
}
/**
* @param r
* @param replacementContent
* @param key
*/
protected void createContentControl(RPr rPr, List