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 Object serializeAnswerData(IAnswerData data, int dataType) { // First, we want to go through the additional serializers, as they should // take priority to the default serializations IEnumerator en = additionalSerializers.GetEnumerator(); while (en.MoveNext()) { IAnswerDataSerializer serializer = (IAnswerDataSerializer)en.Current; if (serializer.canSerialize(data)) { return(serializer.serializeAnswerData(data, dataType)); } } //Defaults Object result = serializeAnswerData(data); return(result); }
/* * (non-Javadoc) * @see org.javarosa.core.model.IAnswerDataSerializer#containsExternalData(org.javarosa.core.model.data.IAnswerData) */ public Boolean containsExternalData(IAnswerData data) { //First check for registered serializers to identify whether //they override this one. IEnumerator en = additionalSerializers.GetEnumerator(); while (en.MoveNext()) { IAnswerDataSerializer serializer = (IAnswerDataSerializer)en.Current; Boolean contains = serializer.containsExternalData(data); if (contains != null) { return(contains); } } if (data is PointerAnswerData || data is MultiPointerAnswerData) { return(true); } return(false); }
public void setAnswerDataSerializer(IAnswerDataSerializer ads) { this.serializer = ads; }
public void registerAnswerSerializer(IAnswerDataSerializer ads) { additionalSerializers.Add(ads); }