protected void verifyDocument(XMLDocument document) {
   super.verifyDocument(document);
   assertEquals(CONTROL_ROOT_NAME, document.getRootElementName());
   assertEquals(CONTROL_ROOT_URI, document.getRootElementURI());
   assertEquals(null, document.getEncoding());
   assertEquals(null, document.getXMLVersion());
   assertEquals(null, document.getNoNamespaceSchemaLocation());
   assertEquals(null, document.getSchemaLocation());
   java.util.List properties = document.getRootObject().getInstanceProperties();
   assertEquals(5, properties.size());
   for (int i = 0; i < properties.size(); i++) {
     Property property = (Property) properties.get(i);
     boolean isSet = document.getRootObject().isSet(property);
     if (property.getName().equals(CUSTOMERID)) {
       assertTrue(isSet);
       Object value = document.getRootObject().get(property);
       assertEquals(CONTROL_CUSTOMERID, value);
     } else if (property.getName().equals(SIN)) {
       assertTrue(isSet);
       Object value = document.getRootObject().get(property);
       assertEquals(CONTROL_SIN, value);
     } else {
       assertFalse(isSet);
     }
   }
 }
  protected void verifyAfterLoad(XMLDocument document) {
    super.verifyAfterLoad(document);
    // replace global object with one from xml file (with cs pre-populated)
    rootObject = document.getRootObject();
    salesPO1CS = rootObject.getDataObject("sales/purchaseOrder[1]").getChangeSummary();
    salesPO2CS = rootObject.getDataObject("sales/purchaseOrder[2]").getChangeSummary();
    developmentPO1CS = rootObject.getDataObject("development/purchaseOrder[1]").getChangeSummary();
    developmentPO2CS =
        null; // rootObject.getDataObject("development/purchaseOrder[2]").getChangeSummary();
    stock1CS = rootObject.getDataObject("stock[1]").getChangeSummary();
    stock2CS = rootObject.getDataObject("stock[2]").getChangeSummary();
    stock3CS = rootObject.getDataObject("stock[3]").getChangeSummary();
    DataObject itemsDO = rootObject.getDataObject("sales/purchaseOrder[1]/items");
    DataObject item1DO = null; // itemsDO.getDataObject("item[1]");
    DataObject item1ProductDO = null; // item1DO.getDataObject("product");
    DataObject item1ProductPrice1DO = null; // item1ProductDO.getDataObject("price[1]");
    DataObject item1ProductPrice2DO = null; // item1ProductDO.getDataObject("price[2]");

    assertDeleteDetachUnsetComplexSingleBelowRoot(
        true, //
        false, //
        itemsDO, //
        item1DO, //
        item1ProductDO, //
        item1ProductPrice1DO, //
        item1ProductPrice2DO);
  }
 protected void verifyAfterLoad(XMLDocument document) {
   super.verifyAfterLoad(document);
   ChangeSummary teamCS = document.getRootObject().getChangeSummary();
   assertNotNull(teamCS);
   DataObject manager = document.getRootObject().getDataObject("manager");
   assertNotNull(manager);
   DataObject address = manager.getDataObject("address");
   assertNotNull(address);
   ChangeSummary addressCS = address.getChangeSummary();
   assertEquals(teamCS, addressCS);
   assertTrue(teamCS.isLogging());
   assertTrue(((SDOChangeSummary) teamCS).isLogging());
   assertTrue(teamCS.isCreated(address));
   assertFalse(teamCS.isCreated(manager));
   assertEquals(0, teamCS.getOldValues(address).size());
 }
  private void save(XMLDocument xmlDocument, Writer outputWriter, XMLMarshaller anXMLMarshaller)
      throws IOException {
    if (xmlDocument == null) {
      throw new IllegalArgumentException(
          SDOException.cannotPerformOperationWithNullInputParameter("save", "xmlDocument"));
    }

    // Ask the SDOXMLDocument if we should include the XML declaration in the resulting XML
    anXMLMarshaller.setFragment(!xmlDocument.isXMLDeclaration());

    anXMLMarshaller.setEncoding(xmlDocument.getEncoding());
    anXMLMarshaller.setSchemaLocation(xmlDocument.getSchemaLocation());
    anXMLMarshaller.setNoNamespaceSchemaLocation(xmlDocument.getNoNamespaceSchemaLocation());

    WriterRecord writerRecord;
    if (anXMLMarshaller.isFormattedOutput()) {
      writerRecord = new FormattedWriterRecord();
    } else {
      writerRecord = new WriterRecord();
    }
    writerRecord.setWriter(outputWriter);
    writerRecord.setMarshaller(anXMLMarshaller);

    ((SDOMarshalListener) anXMLMarshaller.getMarshalListener())
        .setMarshalledObject(xmlDocument.getRootObject());
    ((SDOMarshalListener) anXMLMarshaller.getMarshalListener())
        .setMarshalledObjectRootQName(
            new QName(xmlDocument.getRootElementURI(), xmlDocument.getRootElementName()));
    ((SDOMarshalListener) anXMLMarshaller.getMarshalListener()).setRootMarshalRecord(writerRecord);

    anXMLMarshaller.marshal(xmlDocument, writerRecord);
    outputWriter.flush();
  }
  protected void verifyAfterLoad(XMLDocument doc) {
    super.verifyAfterLoad(doc);
    Object value = doc.getRootObject().get(ID_NAME);
    boolean isSet = doc.getRootObject().isSet(ID_NAME);
    // verify defaults
    assertNotNull(value);
    assertNotSame(ID_DEFAULT, value);
    assertEquals(99, value);
    assertTrue(isSet);

    value = doc.getRootObject().get(FIRSTNAME_NAME);
    isSet = doc.getRootObject().isSet(FIRSTNAME_NAME);
    assertNotNull(value);
    assertNotSame(FIRSTNAME_DEFAULT, value);
    assertEquals("nonnull", value);
    assertTrue(isSet);
  }
  private void save(XMLDocument xmlDocument, Writer outputWriter, XMLMarshaller anXMLMarshaller)
      throws IOException {
    if (xmlDocument == null) {
      throw new IllegalArgumentException(
          SDOException.cannotPerformOperationWithNullInputParameter("save", "xmlDocument"));
    }

    // Ask the SDOXMLDocument if we should include the XML declaration in the resulting XML
    anXMLMarshaller.setFragment(!xmlDocument.isXMLDeclaration());

    anXMLMarshaller.setEncoding(xmlDocument.getEncoding());
    anXMLMarshaller.setSchemaLocation(xmlDocument.getSchemaLocation());
    anXMLMarshaller.setNoNamespaceSchemaLocation(xmlDocument.getNoNamespaceSchemaLocation());

    WriterRecord writerRecord;
    if (anXMLMarshaller.isFormattedOutput()) {
      writerRecord = new FormattedWriterRecord();
    } else {
      writerRecord = new WriterRecord();
    }
    writerRecord.setWriter(outputWriter);
    writerRecord.setMarshaller(anXMLMarshaller);

    ((SDOMarshalListener) anXMLMarshaller.getMarshalListener())
        .setMarshalledObject(xmlDocument.getRootObject());
    ((SDOMarshalListener) anXMLMarshaller.getMarshalListener())
        .setMarshalledObjectRootQName(
            new QName(xmlDocument.getRootElementURI(), xmlDocument.getRootElementName()));
    ((SDOMarshalListener) anXMLMarshaller.getMarshalListener()).setRootMarshalRecord(writerRecord);

    try {
      anXMLMarshaller.marshal(xmlDocument, writerRecord);
    } catch (XMLMarshalException xme) {
      if (xme.getErrorCode() == XMLMarshalException.DESCRIPTOR_NOT_FOUND_IN_PROJECT) {
        if (aHelperContext
            != ((SDOType) xmlDocument.getRootObject().getType()).getHelperContext()) {
          throw SDOException.dataObjectNotFromHelperContext();
        }
      }
    }
    outputWriter.flush();
  }
  public void save(XMLDocument xmlDocument, Result result, Object options) throws IOException {
    if (xmlDocument == null) {
      throw new IllegalArgumentException(
          SDOException.cannotPerformOperationWithNullInputParameter("save", "xmlDocument"));
    }

    if (result instanceof StreamResult) {
      StreamResult streamResult = (StreamResult) result;
      Writer writer = streamResult.getWriter();
      if (null == writer) {
        save(xmlDocument, streamResult.getOutputStream(), options);
      } else {
        save(xmlDocument, writer, options);
      }

    } else {
      // get XMLMarshaller once - as we may create a new instance if this helper isDirty=true
      XMLMarshaller anXMLMarshaller = getXmlMarshaller(options);

      // Ask the SDOXMLDocument if we should include the XML declaration in the resulting XML
      anXMLMarshaller.setFragment(!xmlDocument.isXMLDeclaration());

      anXMLMarshaller.setEncoding(xmlDocument.getEncoding());
      anXMLMarshaller.setSchemaLocation(xmlDocument.getSchemaLocation());
      anXMLMarshaller.setNoNamespaceSchemaLocation(xmlDocument.getNoNamespaceSchemaLocation());
      ((SDOMarshalListener) anXMLMarshaller.getMarshalListener())
          .setMarshalledObject(xmlDocument.getRootObject());
      ((SDOMarshalListener) anXMLMarshaller.getMarshalListener())
          .setMarshalledObjectRootQName(
              new QName(xmlDocument.getRootElementURI(), xmlDocument.getRootElementName()));

      if (result instanceof SAXResult) {
        ContentHandlerRecord marshalRecord = new ContentHandlerRecord();
        marshalRecord.setContentHandler(((SAXResult) result).getHandler());
        marshalRecord.setMarshaller(anXMLMarshaller);
        ((SDOMarshalListener) anXMLMarshaller.getMarshalListener())
            .setRootMarshalRecord(marshalRecord);
        anXMLMarshaller.marshal(xmlDocument, marshalRecord);
      } else if (result instanceof DOMResult) {
        NodeRecord marshalRecord = new NodeRecord();
        marshalRecord.setDOM(((DOMResult) result).getNode());
        marshalRecord.setMarshaller(anXMLMarshaller);
        ((SDOMarshalListener) anXMLMarshaller.getMarshalListener())
            .setRootMarshalRecord(marshalRecord);
        anXMLMarshaller.marshal(xmlDocument, marshalRecord);
      } else {
        StringWriter writer = new StringWriter();
        this.save(xmlDocument, writer, options);
        String xml = writer.toString();
        StreamSource source = new StreamSource(new java.io.StringReader(xml));
        anXMLMarshaller.getTransformer().transform(source, result);
      }
    }
  }
  public void testBinaryConversionForBuiltinType() throws Exception {
    xsdHelper.define(getSchema(getSchemaNameForBuiltinType()));

    FileInputStream inputStream = new FileInputStream(getControlFileName());
    XMLDocument document = xmlHelper.load(inputStream, null, null);

    byte[] bytesFromDocument = (byte[]) document.getRootObject().get("value");

    String controlString = "Hello World!";
    String testString = new String(bytesFromDocument);

    assertEquals(controlString, testString);
  }
  protected void verifyAfterLoad(XMLDocument document) {
    assertNull(document.getRootObject().getContainer());
    DataObject po = document.getRootObject();
    assertNotNull(po);
    DataObject shipTo = po.getDataObject("shipTo");
    assertNotNull(shipTo);
    assertNotNull(shipTo.get("street"));

    assertEquals("123 Maple Street", shipTo.get("street"));
    assertEquals(po, shipTo.getContainer());
    DataObject billTo = po.getDataObject("billTo");

    Property extraProp = billTo.getInstanceProperty("testExtra");
    assertNotNull(extraProp);

    List extraContentList = billTo.getList(extraProp);
    assertEquals(1, extraContentList.size());
    assertEquals("extraContext", extraContentList.get(0));

    Setting setting = ((SDODataObject) billTo).getSettings().get(4);
    assertNotNull(setting);
    assertNotNull(billTo);
    assertEquals(po, billTo.getContainer());
    DataObject items = po.getDataObject("items");
    assertNotNull(items);
    assertEquals(po, items.getContainer());
    DataObject item1 = (DataObject) items.getList("item").get(0);
    assertNotNull(item1);
    assertEquals(items, item1.getContainer());
    DataObject item2 = (DataObject) items.getList("item").get(1);
    assertNotNull(item2);
    assertEquals(items, item2.getContainer());
    // unmapped content

    List phones = po.getList("phone");
    assertEquals(2, phones.size());
    DataObject phone = (DataObject) phones.get(0);
    assertNotNull(phone);
    assertEquals(po, phone.getContainer());
    List addrs = phone.getList("addr");
    assertEquals(1, addrs.size());
    DataObject addr = (DataObject) addrs.get(0);
    assertNotNull(addr);
    assertEquals(phone, addr.getContainer());

    List itemList = addr.getList("item");
    assertEquals(1, itemList.size());
    DataObject item = (DataObject) itemList.get(0);
    assertNotNull(item);
    assertEquals(addr, item.getContainer());

    List dwellings = addr.getList("dwelling");
    assertEquals(1, dwellings.size());
    DataObject dwelling = (DataObject) dwellings.get(0);
    assertNotNull(dwelling);
    assertEquals(addr, dwelling.getContainer());

    DataObject phone2 = (DataObject) phones.get(1);
    assertNotNull(phone2);
    List numList = phone2.getList("number");
    assertEquals(1, numList.size());
    assertEquals("12345678", numList.get(0));
    List extList = phone2.getList("ext");

    assertEquals(2, extList.size());
    assertEquals("234", extList.get(0));
    assertEquals("456", extList.get(1));

    List companyNames = po.getList("companyName");
    assertNotNull(companyNames);

    String companyName = (String) companyNames.get(0);

    Property attrProp = xsdHelper.getGlobalProperty("http://www.example.org", "globalTest", true);
    assertNotNull(attrProp);
    Property elemProp = xsdHelper.getGlobalProperty("http://www.example.org", "globalTest", false);
    assertNotNull(elemProp);

    String attrValue = phone.getString(attrProp);

    // assertEquals("globalAttributeTest", attrValue);
    String elemValue = phone.getString(elemProp);

    // assertEquals("globalElementTest", elemValue);
  }
 protected void verifyDocument(XMLDocument xmlDocument) {
   assertNull(xmlDocument.getRootObject().getContainer());
   assertNull(xmlDocument.getRootObject().getContainmentProperty());
 }