public IDataPayload createSerializedPayload(FormInstance model, IDataReference ref_) { init(); rootRef = model.unpackReference2(ref_); if (this.serializer == null) { this.setAnswerDataSerializer(new XFormAnswerDataSerializer()); } model.accept(this); if (theXmlDoc != null) { byte[] form = Encoding.UTF8.GetBytes(XFormSerializer.getString(theXmlDoc)); if (dataPointers.Count == 0) { return(new ByteArrayPayload(form, null, IDataPayload_Fields.PAYLOAD_TYPE_XML)); } MultiMessagePayload payload = new MultiMessagePayload(); payload.addPayload(new ByteArrayPayload(form, null, IDataPayload_Fields.PAYLOAD_TYPE_XML)); IEnumerator en = dataPointers.GetEnumerator(); while (en.MoveNext()) { IDataPointer pointer = (IDataPointer)en.Current; payload.addPayload(new DataPointerPayload(pointer)); } return(payload); } else { return(null); } }
public IDataPointer[] retrieveExternalDataPointer(IAnswerData data) { IEnumerator en = additionalSerializers.GetEnumerator(); while (en.MoveNext()) { IAnswerDataSerializer serializer = (IAnswerDataSerializer)en.Current; Boolean contains = serializer.containsExternalData(data); if (contains != null) { return(serializer.retrieveExternalDataPointer(data)); } } if (data is PointerAnswerData) { IDataPointer[] pointer = new IDataPointer[1]; pointer[0] = (IDataPointer)((PointerAnswerData)data).getValue(); return(pointer); } else if (data is MultiPointerAnswerData) { return((IDataPointer[])((MultiPointerAnswerData)data).Value); } //This shouldn't have been called. return(null); }
public void setValue(Object o) { if (o == null) { throw new NullReferenceException("Attempt to set an IAnswerData class to null."); } data = ((IDataPointer)o); }
/** * @param data The AnswerDataObject to be serialized * @return A String which contains a reference to the * data */ public Object serializeAnswerData(PointerAnswerData data) { //Note: In order to override this default behavior, a //new serializer should be used, and then registered //with this serializer IDataPointer pointer = (IDataPointer)data.getValue(); return(pointer.DisplayText); }
public void readExternal(BinaryReader in_, PrototypeFactory pf) { data = (IDataPointer)ExtUtil.read(in_, new ExtWrapTagged()); }
public PointerAnswerData(IDataPointer data) { this.data = data; }