/**
  * Create a DOM input record for this interaction. Convert the database row or arguments into an
  * XML DOM tree.
  */
 public Record createInputRecord(EISAccessor accessor) {
   Record record = accessor.getEISPlatform().createDOMRecord(getInputRecordName(), accessor);
   Element dom = createInputDOM(accessor);
   accessor.getEISPlatform().setDOMInRecord(dom, record, this, accessor);
   if (record instanceof XMLRecord) {
     ((XMLRecord) record).setSession(this.getQuery().getSession());
   }
   return record;
 }
 /** Build a collection of database rows from the Record returned from the interaction. */
 public Vector buildRows(Record record, EISAccessor accessor) {
   Vector rows = null;
   if (record == null) {
     return new Vector(0);
   }
   AbstractRecord row =
       accessor.getEISPlatform().createDatabaseRowFromDOMRecord(record, this, accessor);
   if (getOutputResultPath().length() > 0) {
     Vector values = (Vector) row.getValues(getOutputResultPath());
     if (values == null) {
       values = new Vector(0);
     }
     rows = values;
   } else {
     rows = new Vector(1);
     rows.add(row);
   }
   return rows;
 }
 /** Build a database row from the record returned from the interaction. */
 public AbstractRecord buildRow(Record record, EISAccessor accessor) {
   if (record == null) {
     return null;
   }
   AbstractRecord row =
       accessor.getEISPlatform().createDatabaseRowFromDOMRecord(record, this, accessor);
   if (row == null) {
     return null;
   }
   if (getOutputResultPath().length() > 0) {
     row = (AbstractRecord) row.get(getOutputResultPath());
     // Handle the case were the output row is mapped into a database row of values.
   } else if (hasOutputArguments()) {
     row = createXMLRecord(getOutputRootElementName());
     for (int index = 0; index < getOutputArgumentNames().size(); index++) {
       DatabaseField field = (DatabaseField) getOutputArguments().get(index);
       row.put(field, row.get(getOutputArgumentNames().get(index)));
     }
   }
   return row;
 }