Skip to content

Commit

Permalink
OpenDoPE optional standardised answer file format.
Browse files Browse the repository at this point in the history
  • Loading branch information
plutext committed Nov 5, 2012
1 parent a793dfd commit d963e2a
Show file tree
Hide file tree
Showing 9 changed files with 436 additions and 1 deletion.
2 changes: 1 addition & 1 deletion src/main/java/org/docx4j/jaxb/Context.java
Expand Up @@ -105,7 +105,7 @@ public class Context {
"org.docx4j.dml:org.docx4j.dml.chart:org.docx4j.dml.chartDrawing:org.docx4j.dml.compatibility:org.docx4j.dml.diagram:org.docx4j.dml.lockedCanvas:org.docx4j.dml.picture:org.docx4j.dml.wordprocessingDrawing:org.docx4j.dml.spreadsheetdrawing:org.docx4j.dml.diagram2008:" +
// All VML stuff is here, since compiling it requires WML and DML (and MathML), but not PML or SML
"org.docx4j.vml:org.docx4j.vml.officedrawing:org.docx4j.vml.wordprocessingDrawing:org.docx4j.vml.presentationDrawing:org.docx4j.vml.spreadsheetDrawing:org.docx4j.vml.root:" +
"org.opendope.xpaths:org.opendope.conditions:org.opendope.questions:org.opendope.components:org.opendope.SmartArt.dataHierarchy:" +
"org.opendope.xpaths:org.opendope.conditions:org.opendope.questions:org.opendope.answers:org.opendope.components:org.opendope.SmartArt.dataHierarchy:" +
"org.docx4j.math:" +
"org.docx4j.sharedtypes:org.docx4j.bibliography",classLoader );
String jcImplementation = jc.getClass().getName();
Expand Down
7 changes: 7 additions & 0 deletions src/main/java/org/docx4j/openpackaging/io/Load.java
Expand Up @@ -49,6 +49,7 @@
import org.docx4j.openpackaging.parts.opendope.ComponentsPart;
import org.docx4j.openpackaging.parts.opendope.ConditionsPart;
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.Namespaces;
import org.docx4j.relationships.Relationship;
Expand Down Expand Up @@ -199,6 +200,12 @@ public static Part getRawPart(InputStream is, ContentTypeManager ctm, String res
part = new QuestionsPart(name);
((QuestionsPart)part).setJaxbElement(
(org.opendope.questions.Questionnaire)o);

} else if (o instanceof org.opendope.answers.Answers) {

part = new StandardisedAnswersPart(name);
((StandardisedAnswersPart)part).setJaxbElement(
(org.opendope.answers.Answers)o);

} else if (o instanceof org.opendope.components.Components) {

Expand Down
Expand Up @@ -56,6 +56,7 @@
import org.docx4j.openpackaging.parts.opendope.ComponentsPart;
import org.docx4j.openpackaging.parts.opendope.ConditionsPart;
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.Namespaces;
import org.docx4j.openpackaging.parts.relationships.RelationshipsPart;
Expand Down Expand Up @@ -528,6 +529,12 @@ public static Part getRawPart(ZipFile zf, ContentTypeManager ctm, String resolve
part = new QuestionsPart(name);
((QuestionsPart)part).setJaxbElement(
(org.opendope.questions.Questionnaire)o);

} else if (o instanceof org.opendope.answers.Answers) {

part = new StandardisedAnswersPart(name);
((StandardisedAnswersPart)part).setJaxbElement(
(org.opendope.answers.Answers)o);

} else if (o instanceof org.opendope.components.Components) {

Expand Down
7 changes: 7 additions & 0 deletions src/main/java/org/docx4j/openpackaging/io/LoadFromZipNG.java
Expand Up @@ -64,6 +64,7 @@
import org.docx4j.openpackaging.parts.opendope.ComponentsPart;
import org.docx4j.openpackaging.parts.opendope.ConditionsPart;
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.Namespaces;
import org.docx4j.openpackaging.parts.relationships.RelationshipsPart;
Expand Down Expand Up @@ -593,6 +594,12 @@ public static Part getRawPart(HashMap<String, ByteArray> partByteArrays,
((QuestionsPart)part).setJaxbElement(
(org.opendope.questions.Questionnaire)o);

} else if (o instanceof org.opendope.answers.Answers) {

part = new StandardisedAnswersPart(name);
((StandardisedAnswersPart)part).setJaxbElement(
(org.opendope.answers.Answers)o);

} else if (o instanceof org.opendope.components.Components) {

part = new ComponentsPart(name);
Expand Down
89 changes: 89 additions & 0 deletions src/main/java/org/opendope/answers/Answer.java
@@ -0,0 +1,89 @@

package org.opendope.answers;

import javax.xml.bind.annotation.XmlAccessType;
import javax.xml.bind.annotation.XmlAccessorType;
import javax.xml.bind.annotation.XmlAttribute;
import javax.xml.bind.annotation.XmlRootElement;
import javax.xml.bind.annotation.XmlType;
import javax.xml.bind.annotation.XmlValue;


/**
* <p>Java class for anonymous complex type.
*
* <p>The following schema fragment specifies the expected content contained within this class.
*
* <pre>
* &lt;complexType>
* &lt;simpleContent>
* &lt;extension base="&lt;http://www.w3.org/2001/XMLSchema>string">
* &lt;attribute name="id" use="required" type="{http://www.w3.org/2001/XMLSchema}string" />
* &lt;/extension>
* &lt;/simpleContent>
* &lt;/complexType>
* </pre>
*
*
*/
@XmlAccessorType(XmlAccessType.FIELD)
@XmlType(name = "", propOrder = {
"value"
})
@XmlRootElement(name = "answer")
public class Answer {

@XmlValue
protected String value;
@XmlAttribute(required = true)
protected String id;

/**
* Gets the value of the value property.
*
* @return
* possible object is
* {@link String }
*
*/
public String getValue() {
return value;
}

/**
* Sets the value of the value property.
*
* @param value
* allowed object is
* {@link String }
*
*/
public void setValue(String value) {
this.value = value;
}

/**
* Gets the value of the id property.
*
* @return
* possible object is
* {@link String }
*
*/
public String getId() {
return id;
}

/**
* Sets the value of the id property.
*
* @param value
* allowed object is
* {@link String }
*
*/
public void setId(String value) {
this.id = value;
}

}
79 changes: 79 additions & 0 deletions src/main/java/org/opendope/answers/Answers.java
@@ -0,0 +1,79 @@

package org.opendope.answers;

import java.util.ArrayList;
import java.util.List;
import javax.xml.bind.annotation.XmlAccessType;
import javax.xml.bind.annotation.XmlAccessorType;
import javax.xml.bind.annotation.XmlElement;
import javax.xml.bind.annotation.XmlElements;
import javax.xml.bind.annotation.XmlRootElement;
import javax.xml.bind.annotation.XmlType;


/**
* <p>Java class for anonymous complex type.
*
* <p>The following schema fragment specifies the expected content contained within this class.
*
* <pre>
* &lt;complexType>
* &lt;complexContent>
* &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
* &lt;sequence>
* &lt;choice maxOccurs="unbounded">
* &lt;element ref="{http://opendope.org/answers}answer" minOccurs="0"/>
* &lt;element ref="{http://opendope.org/answers}repeat" minOccurs="0"/>
* &lt;/choice>
* &lt;/sequence>
* &lt;/restriction>
* &lt;/complexContent>
* &lt;/complexType>
* </pre>
*
*
*/
@XmlAccessorType(XmlAccessType.FIELD)
@XmlType(namespace = "http://opendope.org/answers", name = "", propOrder = {
"answerOrRepeat"
})
@XmlRootElement(name = "answers")
public class Answers {

@XmlElements({
@XmlElement(name = "answer", type = Answer.class),
@XmlElement(name = "repeat", type = Repeat.class)
})
protected List<Object> answerOrRepeat;

/**
* Gets the value of the answerOrRepeat property.
*
* <p>
* This accessor method returns a reference to the live list,
* not a snapshot. Therefore any modification you make to the
* returned list will be present inside the JAXB object.
* This is why there is not a <CODE>set</CODE> method for the answerOrRepeat property.
*
* <p>
* For example, to add a new item, do as follows:
* <pre>
* getAnswerOrRepeat().add(newItem);
* </pre>
*
*
* <p>
* Objects of the following type(s) are allowed in the list
* {@link Answer }
* {@link Repeat }
*
*
*/
public List<Object> getAnswerOrRepeat() {
if (answerOrRepeat == null) {
answerOrRepeat = new ArrayList<Object>();
}
return this.answerOrRepeat;
}

}
64 changes: 64 additions & 0 deletions src/main/java/org/opendope/answers/ObjectFactory.java
@@ -0,0 +1,64 @@

package org.opendope.answers;

import javax.xml.bind.annotation.XmlRegistry;


/**
* This object contains factory methods for each
* Java content interface and Java element interface
* generated in the org.opendope.answers package.
* <p>An ObjectFactory allows you to programatically
* construct new instances of the Java representation
* for XML content. The Java representation of XML
* content can consist of schema derived interfaces
* and classes representing the binding of schema
* type definitions, element declarations and model
* groups. Factory methods for each of these are
* provided in this class.
*
*/
@XmlRegistry
public class ObjectFactory {


/**
* Create a new ObjectFactory that can be used to create new instances of schema derived classes for package: org.opendope.answers
*
*/
public ObjectFactory() {
}

/**
* Create an instance of {@link Repeat }
*
*/
public Repeat createRepeat() {
return new Repeat();
}

/**
* Create an instance of {@link Answers }
*
*/
public Answers createAnswers() {
return new Answers();
}

/**
* Create an instance of {@link Repeat.Row }
*
*/
public Repeat.Row createRepeatRow() {
return new Repeat.Row();
}

/**
* Create an instance of {@link Answer }
*
*/
public Answer createAnswer() {
return new Answer();
}

}

0 comments on commit d963e2a

Please sign in to comment.