private void createControlObject() {
    HashMap addresses = new HashMap();

    Address address = new Address();
    address.id = CONTROL_ADD_ID_1;
    address.street = CONTROL_ADD_STREET_1;
    address.city = CONTROL_ADD_CITY_1;
    address.country = CONTROL_ADD_COUNTRY_1;
    address.zip = CONTROL_ADD_ZIP_1;
    addresses.put(address.getKey(), address);

    address = new Address();
    address.id = CONTROL_ADD_ID_2;
    address.street = CONTROL_ADD_STREET_2;
    address.city = CONTROL_ADD_CITY_2;
    address.country = CONTROL_ADD_COUNTRY_2;
    address.zip = CONTROL_ADD_ZIP_2;
    addresses.put(address.getKey(), address);

    address = new Address();
    address.id = CONTROL_ADD_ID_3;
    address.street = CONTROL_ADD_STREET_3;
    address.city = CONTROL_ADD_CITY_3;
    address.country = CONTROL_ADD_COUNTRY_3;
    address.zip = CONTROL_ADD_ZIP_3;
    addresses.put(address.getKey(), address);

    Employee employee = new Employee();
    employee.id = CONTROL_ID;
    employee.name = CONTROL_NAME;
    employee.addresses = addresses;

    controlObj = new Root();
    controlObj.employee = employee;
  }
  public void testCreateContextWithPathAndBindings() throws Exception {
    String oxmString = "org/eclipse/persistence/testing/jaxb/jaxbcontext/eclipselink-oxm.xml";
    InputStream oxm = ClassLoader.getSystemClassLoader().getResourceAsStream(oxmString);

    Map<String, Object> props = new HashMap<String, Object>();
    props.put(JAXBContextFactory.ECLIPSELINK_OXM_XML_KEY, oxm);

    // Specify some other, unrelated context path -- we want to ensure that we don't fail
    // due to lack of ObjectFactory/jaxb.index
    JAXBContext ctx =
        JAXBContext.newInstance(
            "org.eclipse.persistence.testing.oxm.jaxb", ClassLoader.getSystemClassLoader(), props);

    Employee e = new Employee();
    e.id = 6;
    e.name = "Jeeves Sobs";
    e.put("tag", "tag-value");

    Document marshalDoc = DocumentBuilderFactory.newInstance().newDocumentBuilder().newDocument();

    Marshaller m = ctx.createMarshaller();
    m.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, true);
    m.marshal(e, marshalDoc);

    // Make sure OXM was picked up, "tag" property should have been added.
    Employee e2 = (Employee) ctx.createUnmarshaller().unmarshal(marshalDoc);
    assertEquals(
        "OXM file was not processed during context creation.", e.get("tag"), e2.get("tag"));
  }
  protected Object getControlObject() {
    Employee employee = new Employee();
    employee.name = "Jane Doe";

    employee.choice = new java.util.Vector<Object>();

    employee.phone = "123-4567";

    return employee;
  }
  public void createWriteControlObject() {
    ArrayList rootAddresses = new ArrayList();
    HashMap empAddresses = new HashMap();

    Address address = new Address();
    address.id = CONTROL_ADD_ID_1;
    address.street = CONTROL_ADD_STREET_1;
    address.city = CONTROL_ADD_CITY_1;
    address.country = CONTROL_ADD_COUNTRY_1;
    address.zip = CONTROL_ADD_ZIP_1;
    empAddresses.put(address.getKey(), address);
    rootAddresses.add(address);

    address = new Address();
    address.id = CONTROL_ADD_ID_2;
    address.street = CONTROL_ADD_STREET_2;
    address.city = CONTROL_ADD_CITY_2;
    address.country = CONTROL_ADD_COUNTRY_2;
    address.zip = CONTROL_ADD_ZIP_2;
    empAddresses.put(address.getKey(), address);
    rootAddresses.add(address);

    address = new Address();
    address.id = CONTROL_ADD_ID_3;
    address.street = CONTROL_ADD_STREET_3;
    address.city = CONTROL_ADD_CITY_3;
    address.country = CONTROL_ADD_COUNTRY_3;
    address.zip = CONTROL_ADD_ZIP_3;
    empAddresses.put(address.getKey(), address);
    rootAddresses.add(address);

    address = new Address();
    address.id = CONTROL_ADD_ID_4;
    address.street = CONTROL_ADD_STREET_4;
    address.city = CONTROL_ADD_CITY_4;
    address.country = CONTROL_ADD_COUNTRY_4;
    address.zip = CONTROL_ADD_ZIP_4;
    rootAddresses.add(address);

    Employee employee = new Employee();
    employee.id = CONTROL_ID;
    employee.name = CONTROL_NAME;
    employee.addresses = empAddresses;

    writeControlObj = new Root();
    writeControlObj.employee = employee;
    writeControlObj.addresses = rootAddresses;
  }
  protected Object getControlObject() {
    Root root = new Root();
    root.employees = new ArrayList<Employee>();
    root.addresses = new ArrayList<Address>();
    root.phones = new ArrayList<PhoneNumber>();

    Employee employee = new Employee();
    employee.name = "Jane Doe";
    employee.contact = new ArrayList();

    Address addr = new Address();
    addr.id = "1";
    addr.street = "123 Abc Street";
    addr.zip = "123456";

    root.addresses.add(addr);

    addr = new Address();
    addr.id = "2";
    addr.street = "321 Cba Street";
    addr.zip = "654321";

    root.addresses.add(addr);
    root.employees.add(employee);

    PhoneNumber phone = new PhoneNumber();
    phone.id = "0";
    phone.number = "234-4321";
    root.phones.add(phone);

    phone = new PhoneNumber();
    phone.id = "1";
    phone.number = "123-3456";
    employee.contact = phone;
    root.phones.add(phone);

    phone = new PhoneNumber();
    phone.id = "11";
    phone.number = "555-7777";
    root.phones.add(phone);

    return root;
  }
 public Object getControlObject() {
   Employee emp = new Employee();
   emp.name = "Jane Doe";
   emp.xmlData = "<root><child>A string wrapped in cdata</child></root>";
   return emp;
 }