/* (non-Javadoc) * @see org.javarosa.core.services.storage.utilities.Externalizable#readExternal(java.io.DataInputStream) */ public void readExternal(BinaryReader in_, PrototypeFactory pf) { ID = ((String)ExtUtil.read(in_, new ExtWrapNullable(typeof(String)), pf)); DataType = (ExtUtil.readInt(in_)); Preload = ((String)ExtUtil.read(in_, new ExtWrapNullable(typeof(String)), pf)); PreloadParams = ((String)ExtUtil.read(in_, new ExtWrapNullable(typeof(String)), pf)); ref_ = (IDataReference)ExtUtil.read(in_, new ExtWrapTagged()); //don't bother reading relevancy/required/readonly/constraint/calculate right now; they're only used during parse anyway }
/* * (non-Javadoc) * * @see * org.javarosa.core.services.storage.utilities.Externalizable#readExternal * (java.io.DataInputStream) */ public void readExternal(BinaryReader in_, PrototypeFactory pf) { id = ExtUtil.readInt(in_); formId = ExtUtil.readInt(in_); name = (String)ExtUtil.read(in_, new ExtWrapNullable(typeof(String)), pf); schema = (String)ExtUtil.read(in_, new ExtWrapNullable(typeof(String)), pf); dateSaved = (DateTime)ExtUtil.read(in_, new ExtWrapNullable(typeof(DateTime)), pf); namespaces = (Hashtable)ExtUtil.read(in_, new ExtWrapMap(typeof(String), typeof(String))); setRoot((TreeElement)ExtUtil.read(in_, typeof(TreeElement), pf)); }
//UPGRADE_TODO: Class 'java.io.DataInputStream' was converted to 'System.IO.BinaryReader' which has a different behavior. "ms-help://MS.VSCC.v80/dv_commoner/local/redirect.htm?index='!DefaultContextWindowIndex'&keyword='jlca1073_javaioDataInputStream'" public virtual void readExternal(System.IO.BinaryReader in_Renamed, PrototypeFactory pf) { refLevel = ExtUtil.readInt(in_Renamed); instanceName = ((System.String)ExtUtil.read(in_Renamed, new ExtWrapNullable(typeof(System.String)), pf)); contextType = ExtUtil.readInt(in_Renamed); int size = ExtUtil.readInt(in_Renamed); for (int i = 0; i < size; ++i) { TreeReferenceLevel level = (TreeReferenceLevel)ExtUtil.read(in_Renamed, typeof(TreeReferenceLevel)); this.add(level.intern()); } }
/** * deserialize a compact instance. note the retrieval of the template data instance */ public void readExternal(BinaryReader in_renamed, PrototypeFactory pf) { int formID = ExtUtil.readInt(in_renamed); instance = getTemplateInstance(formID).clone(); instance.ID = (ExtUtil.readInt(in_renamed)); instance.setDateSaved((DateTime)ExtUtil.read(in_renamed, new ExtWrapNullable(typeof(DateTime)))); //formID, name, schema, versions, and namespaces are all invariants of the template instance TreeElement root = instance.getRoot(); readTreeElement(root, in_renamed, pf); }
public void readExternal(BinaryReader in_, PrototypeFactory pf) { init_context = ExtUtil.readInt(in_); if (init_context == INIT_CONTEXT_EXPR) { filtExpr = (XPathFilterExpr)ExtUtil.read(in_, typeof(XPathFilterExpr), pf); } ArrayList v = (ArrayList)ExtUtil.read(in_, new ExtWrapList(typeof(XPathStep)), pf); steps = new XPathStep[v.Count]; for (int i = 0; i < steps.Length; i++) { steps[i] = (XPathStep)v[i]; } }
/* * (non-Javadoc) * @see org.javarosa.core.util.Externalizable#readExternal(java.io.DataInputStream) */ public void readExternal(BinaryReader dis, PrototypeFactory pf) { ID = ExtUtil.readInt(dis); binding = (IDataReference)ExtUtil.read(dis, new ExtWrapNullable(new ExtWrapTagged()), pf); AppearanceAttr = ((System.String)ExtUtil.read(dis, new ExtWrapNullable(typeof(System.String)), pf)); TextID = ((System.String)ExtUtil.read(dis, new ExtWrapNullable(typeof(System.String)), pf)); LabelInnerText = ((System.String)ExtUtil.read(dis, new ExtWrapNullable(typeof(System.String)), pf)); HelpText = ((System.String)ExtUtil.read(dis, new ExtWrapNullable(typeof(System.String)), pf)); HelpTextID = ((System.String)ExtUtil.read(dis, new ExtWrapNullable(typeof(System.String)), pf)); HelpInnerText = ((System.String)ExtUtil.read(dis, new ExtWrapNullable(typeof(System.String)), pf)); ControlType = ExtUtil.readInt(dis); choices = ExtUtil.nullIfEmpty((List <SelectChoice>)ExtUtil.read(dis, new ExtWrapList(typeof(SelectChoice)), pf)); for (int i = 0; i < NumChoices; i++) { ((SelectChoice)choices[i]).Index = i; } DynamicChoices = (ItemsetBinding)ExtUtil.read(dis, new ExtWrapNullable(typeof(ItemsetBinding))); }
public void readExternal(BinaryReader in_, PrototypeFactory pf) { axis = ExtUtil.readInt(in_); test = ExtUtil.readInt(in_); switch (test) { case TEST_NAME: name = (XPathQName)ExtUtil.read(in_, typeof(XPathQName)); break; case TEST_NAMESPACE_WILDCARD: namespace_ = ExtUtil.readString(in_); break; case TEST_TYPE_PROCESSING_INSTRUCTION: literal = (String)ExtUtil.read(in_, new ExtWrapNullable(typeof(String))); break; } ArrayList v = (ArrayList)ExtUtil.read(in_, new ExtWrapListPoly(), pf); predicates = new XPathExpression[v.Count]; for (int i = 0; i < predicates.Length; i++) { predicates[i] = (XPathExpression)v[i]; } }
/** Reads a group definition object from the supplied stream. */ public void readExternal(BinaryReader dis, PrototypeFactory pf) { ID = ExtUtil.readInt(dis); setAppearanceAttr((String)ExtUtil.read(dis, new ExtWrapNullable(typeof(String)), pf)); Bind = (IDataReference)ExtUtil.read(dis, new ExtWrapTagged(), pf); TextID = (String)ExtUtil.read(dis, new ExtWrapNullable(typeof(String)), pf); LabelInnerText = ((String)ExtUtil.read(dis, new ExtWrapNullable(typeof(String)), pf)); Repeat = (ExtUtil.readBool(dis)); Children = (List <IFormElement>)ExtUtil.read(dis, new ExtWrapListPoly(), pf); noAddRemove = ExtUtil.readBool(dis); count = (IDataReference)ExtUtil.read(dis, new ExtWrapNullable(new ExtWrapTagged()), pf); chooseCaption = ExtUtil.nullIfEmpty(ExtUtil.readString(dis)); addCaption = ExtUtil.nullIfEmpty(ExtUtil.readString(dis)); delCaption = ExtUtil.nullIfEmpty(ExtUtil.readString(dis)); doneCaption = ExtUtil.nullIfEmpty(ExtUtil.readString(dis)); addEmptyCaption = ExtUtil.nullIfEmpty(ExtUtil.readString(dis)); doneEmptyCaption = ExtUtil.nullIfEmpty(ExtUtil.readString(dis)); entryHeader = ExtUtil.nullIfEmpty(ExtUtil.readString(dis)); delHeader = ExtUtil.nullIfEmpty(ExtUtil.readString(dis)); mainHeader = ExtUtil.nullIfEmpty(ExtUtil.readString(dis)); }
/** * recursively read in a node of the instance, by filling out the template instance * @param e * @param ref * @param in * @param pf * @throws IOException * @throws DeserializationException */ private void readTreeElement(TreeElement e, BinaryReader in_, PrototypeFactory pf) { TreeElement templ = instance.getTemplatePath(e.getRef()); Boolean isGroup = !templ.isLeaf(); if (isGroup) { ArrayList childTypes = new ArrayList(); for (int i = 0; i < templ.getNumChildren(); i++) { String childName = templ.getChildAt(i).getName(); if (!childTypes.Contains(childName)) { childTypes.Add(childName); } } for (int i = 0; i < childTypes.Count; i++) { String childName = (String)childTypes[i]; TreeReference childTemplRef = e.getRef().extendRef(childName, 0); TreeElement childTempl = instance.getTemplatePath(childTemplRef); Boolean repeatable = childTempl.repeatable; int n = ExtUtil.readInt(in_); Boolean relevant = (n > 0); if (!repeatable && n > 1) { throw new DeserializationException("Detected repeated instances of a non-repeatable node"); } if (repeatable) { int mult = e.getChildMultiplicity(childName); for (int j = mult - 1; j >= 0; j--) { e.removeChild(childName, j); } for (int j = 0; j < n; j++) { TreeReference dstRef = e.getRef().extendRef(childName, j); try { instance.copyNode(childTempl, dstRef); } catch (InvalidReferenceException ire) { //If there is an invalid reference, this is a malformed instance, //so we'll throw a Deserialization exception. TreeReference r = ire.InvalidReference; if (r == null) { throw new DeserializationException("Null Reference while attempting to deserialize! " + ire.Message); } else { throw new DeserializationException("Invalid Reference while attemtping to deserialize! Reference: " + r.toString(true) + " | " + ire.Message); } } TreeElement child = e.getChild(childName, j); child.setRelevant(true); readTreeElement(child, in_, pf); } } else { TreeElement child = e.getChild(childName, 0); child.setRelevant(relevant); if (relevant) { readTreeElement(child, in_, pf); } } } } else { e.setValue((IAnswerData)ExtUtil.read(in_, new ExtWrapAnswerData(e.dataType))); } }
public void readExternal(BinaryReader in_, PrototypeFactory pf) { op = ExtUtil.readInt(in_); base.readExternal(in_, pf); }
public void readExternal(BinaryReader in_Renamed, PrototypeFactory pf) { refLevel = ExtUtil.readInt(in_Renamed); names = (ArrayList)ExtUtil.read(in_Renamed, new ExtWrapList(typeof(String)), pf); multiplicity = (ArrayList)ExtUtil.read(in_Renamed, new ExtWrapList(typeof(int)), pf); }
/* ==== SERIALIZATION ==== */ /* * TODO: * * this new serialization scheme is kind of lame. ideally, we shouldn't have * to sub-class TreeElement at all; we should have an API that can * seamlessly represent complex data model objects (like weight history or * immunizations) as if they were explicity XML subtrees underneath the * parent TreeElement * * failing that, we should wrap this scheme in an ExternalizableWrapper */ /* * (non-Javadoc) * * @see * org.javarosa.core.services.storage.utilities.Externalizable#readExternal * (java.io.DataInputStream) */ public void readExternal(BinaryReader in_renamed, PrototypeFactory pf) { name = ExtUtil.nullIfEmpty(ExtUtil.readString(in_renamed)); multiplicity = ExtUtil.readInt(in_renamed); repeatable = ExtUtil.readBool(in_renamed); value = (IAnswerData)ExtUtil.read(in_renamed, new ExtWrapNullable(new ExtWrapTagged()), pf); // children = ExtUtil.nullIfEmpty((Vector)ExtUtil.read(in, new // ExtWrapList(TreeElement.class), pf)); // Jan 22, 2009 - [email protected] // old line: children = ExtUtil.nullIfEmpty((Vector)ExtUtil.read(in, new // ExtWrapList(TreeElement.class), pf)); // New Child deserialization // 1. read null status as boolean // 2. read number of children // 3. for i < number of children // 3.1 if read boolean true , then create TreeElement and deserialize // directly. // 3.2 if read boolean false then create tagged element and deserialize // child if (!ExtUtil.readBool(in_renamed)) { // 1. children = null; } else { children = new ArrayList(); // 2. int numChildren = (int)ExtUtil.readNumeric(in_renamed); // 3. for (int i = 0; i < numChildren; ++i) { Boolean normal = ExtUtil.readBool(in_renamed); TreeElement child; if (normal) { // 3.1 child = new TreeElement(); child.readExternal(in_renamed, pf); } else { // 3.2 child = (TreeElement)ExtUtil.read(in_renamed, new ExtWrapTagged(), pf); } child.setParent(this); children.Add(child); } } // end Jan 22, 2009 dataType = ExtUtil.readInt(in_renamed); relevant = ExtUtil.readBool(in_renamed); required = ExtUtil.readBool(in_renamed); enabled = ExtUtil.readBool(in_renamed); relevantInherited = ExtUtil.readBool(in_renamed); enabledInherited = ExtUtil.readBool(in_renamed); constraint = (Constraint)ExtUtil.read(in_renamed, new ExtWrapNullable( typeof(Constraint)), pf); preloadHandler = ExtUtil.nullIfEmpty(ExtUtil.readString(in_renamed)); preloadParams = ExtUtil.nullIfEmpty(ExtUtil.readString(in_renamed)); ArrayList attStrings = ExtUtil.nullIfEmpty((ArrayList)ExtUtil.read(in_renamed, new ExtWrapList(typeof(String)), pf)); setAttributesFromSingleStringVector(attStrings); }
public void readExternal(BinaryReader in_, PrototypeFactory pf) { base.readExternal(in_, pf); trueAction = ExtUtil.readInt(in_); falseAction = ExtUtil.readInt(in_); }