@Test
  public void testLazyLoadedOneToOne() {
    Datastore ds = new RedisDatastore();
    ds.getMappingContext().addPersistentEntity(Person.class);
    Session conn = ds.connect();

    Person p = new Person();
    p.setName("Bob");
    Address a = new Address();
    a.setNumber("22");
    a.setPostCode("308420");
    p.setAddress(a);
    conn.persist(p);

    p = (Person) conn.retrieve(Person.class, p.getId());

    Address proxy = p.getAddress();

    assertTrue(proxy instanceof javassist.util.proxy.ProxyObject);
    assertTrue(proxy instanceof EntityProxy);

    EntityProxy ep = (EntityProxy) proxy;
    assertFalse(ep.isInitialized());
    assertEquals(a.getId(), proxy.getId());

    assertFalse(ep.isInitialized());
    assertEquals("22", a.getNumber());
  }
Ejemplo n.º 2
0
  public void testMapAndElementCollection() throws Exception {
    Session session = openSession();
    Transaction tx = session.beginTransaction();
    Address home = new Address();
    home.setCity("Paris");
    Address work = new Address();
    work.setCity("San Francisco");
    User user = new User();
    user.getAddresses().put("home", home);
    user.getAddresses().put("work", work);
    user.getNicknames().add("idrA");
    user.getNicknames().add("day[9]");
    session.persist(home);
    session.persist(work);
    session.persist(user);
    User user2 = new User();
    user2.getNicknames().add("idrA");
    user2.getNicknames().add("day[9]");
    session.persist(user2);
    tx.commit();

    session.clear();

    tx = session.beginTransaction();
    user = (User) session.get(User.class, user.getId());
    assertThat(user.getNicknames()).as("Should have 2 nick1").hasSize(2);
    assertThat(user.getNicknames()).as("Should contain nicks").contains("idrA", "day[9]");
    user.getNicknames().remove("idrA");
    tx.commit();

    session.clear();

    tx = session.beginTransaction();
    user = (User) session.get(User.class, user.getId());
    // TODO do null value
    assertThat(user.getAddresses()).as("List should have 2 elements").hasSize(2);
    assertThat(user.getAddresses().get("home").getCity())
        .as("home address should be under home")
        .isEqualTo(home.getCity());
    assertThat(user.getNicknames()).as("Should have 1 nick1").hasSize(1);
    assertThat(user.getNicknames()).as("Should contain nick").contains("day[9]");
    session.delete(user);
    session.delete(session.load(Address.class, home.getId()));
    session.delete(session.load(Address.class, work.getId()));

    user2 = (User) session.get(User.class, user2.getId());
    assertThat(user2.getNicknames()).as("Should have 2 nicks").hasSize(2);
    assertThat(user2.getNicknames()).as("Should contain nick").contains("idrA", "day[9]");
    session.delete(user2);

    tx.commit();

    session.close();

    checkCleanCache();
  }
    private void write(
        final Address address,
        final MapquestResult.MapquestStatus status,
        final MapquestResult.Result result,
        final Status rejectCause) {
      // Why do I always have to go so dirty when writing files?
      final String[] fields = new String[18];

      for (int i = 0; i < fields.length; i++) fields[i] = "";

      if (address != null) {
        fields[0] = address.getId() != null ? address.getId() : "";
        fields[1] = address.getStreet() != null ? address.getStreet() : "";
        fields[2] = address.getNumber() != null ? address.getNumber() : "";
        fields[3] = address.getZipcode() != null ? address.getZipcode() : "";
        fields[4] = address.getMunicipality() != null ? address.getMunicipality() : "";
        fields[5] = address.getCountry() != null ? address.getCountry() : "";
      }

      if (rejectCause != null) {
        fields[6] = rejectCause.toString();
      }

      if (result != null) {
        fields[7] = result.getLongitude().toString();
        fields[8] = result.getLatitude().toString();

        final Coord wgsCoord = new Coord(result.getLongitude(), result.getLatitude());
        final Coord chCoord = new WGS84toCH1903LV03().transform(wgsCoord);
        fields[9] = "" + chCoord.getX();
        fields[10] = "" + chCoord.getY();
        fields[11] = result.getGeocodeQuality().toString();
        fields[12] = result.getGeocodeQualityCode();
        fields[13] = result.getStreet();
        fields[14] = result.getZip();
        fields[15] = result.getCity();
        fields[16] = result.getCountry();
        fields[17] = status.toString();
      }

      final String line = CsvUtils.buildCsvLine(SEP, QUOTE, fields);

      try {
        this.writer.newLine();
        this.writer.write(line);
      } catch (IOException e) {
        throw new UncheckedIOException(e);
      }
    }
Ejemplo n.º 4
0
 public void test() {
   Address address = (Address) getSession().readObject(Address.class);
   for (int i = 0; i < stressLevel; i++) {
     getSession().readAllObjects(Address.class);
     getSession()
         .readObject(Address.class, new ExpressionBuilder().get("id").equal(address.getId()));
   }
 }
Ejemplo n.º 5
0
  // ======================================
  // =              Unit tests            =
  // ======================================
  @Test
  public void createAddress() throws Exception {

    Address address =
        new Address(
            getRandomId(), "65B Ritherdon Rd", "At James place", "London", "LDN", "7QE554", "UK");
    tx.begin();
    em.persist(address);
    tx.commit();
    assertNotNull("ID should not be null", address.getId());
  }
Ejemplo n.º 6
0
  @Override
  public Object createAddress(Address address, Integer ownerId) {
    if (editable) {
      address.setCategory(category);

      if (checkOwner) {
        address.setOwnerId(ownerId);
      }

      addressDAO.createAddress(address);
      return address.getId();
    }

    return null;
  }
Ejemplo n.º 7
0
  @POST
  @Consumes(MediaType.APPLICATION_JSON)
  @Produces(MediaType.APPLICATION_JSON)
  @PermitAll
  public User create(@NotNull User user) {

    if (user.getId() != null) {
      throw new WebApplicationException(Response.Status.BAD_REQUEST);
    }
    User userByLogin = userFinder.findByLogin(user.getLogin());

    if (userByLogin != null) {
      throw new WebApplicationException(Response.Status.CONFLICT);
    }

    final Address userAddress = user.getAddress();

    if (userAddress != null) {
      if (userAddress.getId() != null) {
        throw new WebApplicationException(Response.Status.BAD_REQUEST);
      }

      if (!countryChecker.isAvailable(userAddress.getCountryIso3Code())) {
        LOG.error("Country {} is not available", userAddress.getCountryIso3Code());
        throw new WebApplicationException(Response.Status.BAD_REQUEST);
      }
    }

    entityManager.persist(user);
    Role userRole = roleFinder.findByName(RoleName.user);
    user.setRoles(Sets.newHashSet(userRole));

    user.setPassword(hashSha256Base64(user.getPassword()));

    if (!sessionContext.isCallerInRole(ADMIN)) {
      user.setActivated(false);
      generateActionTokenAndSendMail(user, Mails.userRegistration);
    }

    return user;
  }
Ejemplo n.º 8
0
  public static Customer createCustomerAddress(EntityManagerFactory factory) {
    System.out.println("Create 1st Customer");
    Customer cust = new Customer();
    cust.setFirstName("Bill");
    cust.setLastName("Burke");
    Address address = new Address();
    address.setStreet("Beacon Street");
    address.setCity("Boston");
    address.setState("MA");
    address.setZip("02115");
    cust.setAddress(address);

    EntityManager manager = factory.createEntityManager();
    try {
      manager.getTransaction().begin();
      manager.persist(cust);
      manager.getTransaction().commit();
    } finally {
      manager.close();
    }
    System.out.println("Address was also persisted with auto-generated key: " + address.getId());
    System.out.println("Return detached Customer instance: " + cust.getId());
    return cust;
  }
  public void testTwoUnrelatedResultWithOneToOneJoinsWithExtraItem() {
    if (getServerSession("fieldaccess").getPlatform().isSymfoware()) {
      getServerSession("fieldaccess")
          .logMessage(
              "Test testTwoUnrelatedResultWithOneToOneJoinsWithExtraItem skipped for this platform, "
                  + "Symfoware doesn't support UpdateAll/DeleteAll on multi-table objects (see rfe 298193).");
      return;
    }
    ReadAllQuery raq = new ReadAllQuery(Employee.class);
    raq.setSelectionCriteria(
        raq.getExpressionBuilder()
            .get("lastName")
            .equal("Way")
            .or(raq.getExpressionBuilder().get("lastName").equal("Jones")));
    Employee emp = (Employee) ((Vector) getDbSession().executeQuery(raq)).firstElement();
    emp.getAddress();

    raq = new ReadAllQuery(Address.class);
    raq.setSelectionCriteria(raq.getExpressionBuilder().get("city").like("%ttawa%"));
    Address addr = (Address) ((Vector) getDbSession().executeQuery(raq)).firstElement();
    addr.getEmployees();
    for (Iterator iterator = addr.getEmployees().iterator(); iterator.hasNext(); ) {
      ((Employee) iterator.next()).getAddress();
    }

    getDbSession().getIdentityMapAccessor().initializeAllIdentityMaps();

    ReportQuery query = new ReportQuery();
    query.setShouldReturnWithoutReportQueryResult(true);
    query.setReferenceClass(Employee.class);

    ExpressionBuilder eb = new ExpressionBuilder(Address.class);
    query.setSelectionCriteria(
        query
            .getExpressionBuilder()
            .get("id")
            .equal(emp.getId())
            .and(eb.get("id").equal(addr.getId())));

    List list = new ArrayList();
    list.add(query.getExpressionBuilder().get("address"));
    query.addItem("employee", query.getExpressionBuilder(), list);
    query.addItem("employee_name", query.getExpressionBuilder().get("firstName"));

    list = new ArrayList();
    list.add(eb.anyOf("employees"));
    query.addItem("address", eb, list);

    Vector result = (Vector) getDbSession().executeQuery(query);

    UpdateAllQuery updall = new UpdateAllQuery(Employee.class);
    updall.addUpdate("address", null);
    updall.setSelectionCriteria(updall.getExpressionBuilder().get("id").equal(emp.getId()));
    UnitOfWork uow = getDbSession().acquireUnitOfWork();
    uow.executeQuery(updall);

    updall = new UpdateAllQuery(Employee.class);
    updall.addUpdate("address", null);
    updall.setSelectionCriteria(
        updall.getExpressionBuilder().get("address").get("id").equal(addr.getId()));
    uow.executeQuery(updall);

    uow.commit();

    Employee emp2 = (Employee) ((Object[]) result.firstElement())[0];
    Address addr2 = (Address) ((Object[]) result.firstElement())[2];
    try {
      assertTrue(
          "Address were not joined correctly, emp.getAddress() = null",
          (emp2.getAddress() != null));
      assertTrue(
          "Employees were not joined correctly, addr.employees.size = "
              + addr.getEmployees().size()
              + "addr2.employees.size = "
              + addr2.getEmployees().size(),
          (addr.getEmployees().size() == addr2.getEmployees().size()));
      if (!emp2.getFirstName().equals(((Object[]) result.firstElement())[1])) {
        fail("Failed to return employee name as an separate item");
      }

    } finally {
      testSetup();
    }
  }
  public void testMultipleUnrelatedResultWithOneToManyJoins() {
    if (getServerSession("fieldaccess").getPlatform().isSymfoware()) {
      getServerSession("fieldaccess")
          .logMessage(
              "Test testMultipleUnrelatedResultWithOneToManyJoins skipped for this platform, "
                  + "Symfoware doesn't support UpdateAll/DeleteAll on multi-table objects (see rfe 298193).");
      return;
    }
    ReadAllQuery raq = new ReadAllQuery(Employee.class);
    raq.setSelectionCriteria(raq.getExpressionBuilder().notEmpty("phoneNumbers"));
    Employee emp = (Employee) ((Vector) getDbSession().executeQuery(raq)).firstElement();
    emp.getPhoneNumbers();
    for (Iterator iterator = emp.getPhoneNumbers().iterator(); iterator.hasNext(); ) {
      ((PhoneNumber) iterator.next()).getOwner();
    }

    raq = new ReadAllQuery(Address.class);
    raq.setSelectionCriteria(raq.getExpressionBuilder().get("city").like("%ttawa%"));
    Address addr = (Address) ((Vector) getDbSession().executeQuery(raq)).firstElement();
    addr.getEmployees();
    for (Iterator iterator = addr.getEmployees().iterator(); iterator.hasNext(); ) {
      Employee addrEmp = (Employee) iterator.next();
      addrEmp.getAddress();
      addrEmp
          .getPhoneNumbers()
          .size(); // as the report query will join in all phones to all emps, make sure we can
                   // compare.
    }

    getDbSession().getIdentityMapAccessor().initializeAllIdentityMaps();

    ReportQuery query = new ReportQuery();
    query.setShouldReturnWithoutReportQueryResult(true);
    query.setReferenceClass(Address.class);

    ExpressionBuilder eb = new ExpressionBuilder(Employee.class);

    List list = new ArrayList();
    list.add(eb.anyOf("phoneNumbers"));
    query.addItem("employee", eb, list);

    list = new ArrayList();
    list.add(query.getExpressionBuilder().anyOf("employees"));
    query.addItem("address", query.getExpressionBuilder(), list);

    query.setSelectionCriteria(query.getExpressionBuilder().get("id").equal(addr.getId()));

    Vector result = (Vector) getDbSession().executeQuery(query);

    DeleteAllQuery deleteAll = new DeleteAllQuery(PhoneNumber.class);
    deleteAll.setSelectionCriteria(
        deleteAll.getExpressionBuilder().get("owner").get("id").equal(emp.getId()));
    UnitOfWork uow = getDbSession().acquireUnitOfWork();
    uow.executeQuery(deleteAll);

    UpdateAllQuery updall = new UpdateAllQuery(Employee.class);
    updall.addUpdate("address", null);
    updall.setSelectionCriteria(
        updall.getExpressionBuilder().get("address").get("id").equal(addr.getId()));
    uow.executeQuery(updall);

    uow.commit();

    try {
      Employee emp2 = null;
      Address addr2 = null;
      for (Iterator iterator = result.iterator(); iterator.hasNext(); ) {
        Object[] items = (Object[]) iterator.next();
        emp2 = (Employee) items[0];
        if (emp2.getId().equals(emp.getId())) {
          addr2 = (Address) items[1];
          break;
        }
      }
      assertTrue(
          "PhoneNumbers were not joined correctly, emp.getPhoneNumbers().size = "
              + emp.getPhoneNumbers().size()
              + " emp2.getPhoneNumbers().size = "
              + emp2.getPhoneNumbers().size(),
          (emp.getPhoneNumbers().size() == emp2.getPhoneNumbers().size()));
      assertTrue(
          "Employees were not joined correctly, addr.employees.size = "
              + addr.getEmployees().size()
              + "addr2.employees.size = "
              + addr2.getEmployees().size(),
          (addr.getEmployees().size() == addr2.getEmployees().size()));
    } finally {
      testSetup();
    }
  }
Ejemplo n.º 11
0
  private static <T extends AbstractJaxb> void execute(T target, Pattern pattern) {

    TagEnum tagEnum = TagEnum.valueOf(target.getClass().getSimpleName().toUpperCase());

    switch (tagEnum) {
      case A:
        A a = (A) target;
        if (idMatch(a.getId(), pattern)) {
          a.setId(null);
        }
        unsetAllIdWithinObjectList(a.getContent(), pattern);
        break;
      case ABBR:
        Abbr abbr = (Abbr) target;
        if (idMatch(abbr.getId(), pattern)) {
          abbr.setId(null);
        }
        unsetAllIdWithinObjectList(abbr.getContent(), pattern);
        break;
      case ACRONYM:
        Acronym acronym = (Acronym) target;
        if (idMatch(acronym.getId(), pattern)) {
          acronym.setId(null);
        }
        unsetAllIdWithinObjectList(acronym.getContent(), pattern);
        break;
      case ADDRESS:
        Address address = (Address) target;
        if (idMatch(address.getId(), pattern)) {
          address.setId(null);
        }
        unsetAllIdWithinObjectList(address.getContent(), pattern);
        break;
      case APPLET:
        Applet applet = (Applet) target;
        if (idMatch(applet.getId(), pattern)) {
          applet.setId(null);
        }
        unsetAllIdWithinObjectList(applet.getContent(), pattern);
        break;
      case AREA:
        Area area = (Area) target;
        if (idMatch(area.getId(), pattern)) {
          area.setId(null);
        }
        // area is empty element.
        break;
      case B:
        B b = (B) target;
        if (idMatch(b.getId(), pattern)) {
          b.setId(null);
        }
        unsetAllIdWithinObjectList(b.getContent(), pattern);
        break;
      case BASE:
        Base base = (Base) target;
        if (idMatch(base.getId(), pattern)) {
          base.setId(null);
        }
        // empty element.
        break;
      case BASEFONT:
        Basefont basefont = (Basefont) target;
        if (idMatch(basefont.getId(), pattern)) {
          basefont.setId(null);
        }
        // empty element.
        break;
      case BDO:
        Bdo bdo = (Bdo) target;
        if (idMatch(bdo.getId(), pattern)) {
          bdo.setId(null);
        }
        unsetAllIdWithinObjectList(bdo.getContent(), pattern);
        break;
      case BIG:
        Big big = (Big) target;
        if (idMatch(big.getId(), pattern)) {
          big.setId(null);
        }
        unsetAllIdWithinObjectList(big.getContent(), pattern);
        break;
      case BLOCKQUOTE:
        Blockquote blockquote = (Blockquote) target;
        if (idMatch(blockquote.getId(), pattern)) {
          blockquote.setId(null);
        }
        unsetAllIdWithinObjectList(blockquote.getContent(), pattern);
        break;
      case BODY:
        Body body = (Body) target;
        if (idMatch(body.getId(), pattern)) {
          body.setId(null);
        }
        unsetAllIdWithinObjectList(body.getContent(), pattern);
        break;
      case BR:
        Br br = (Br) target;
        if (idMatch(br.getId(), pattern)) {
          br.setId(null);
        }
        // empty element.
        break;
      case BUTTON:
        Button button = (Button) target;
        if (idMatch(button.getId(), pattern)) {
          button.setId(null);
        }
        unsetAllIdWithinObjectList(button.getContent(), pattern);
        break;
      case CAPTION:
        Caption caption = (Caption) target;
        if (idMatch(caption.getId(), pattern)) {
          caption.setId(null);
        }
        unsetAllIdWithinObjectList(caption.getContent(), pattern);
        break;
      case CENTER:
        Center center = (Center) target;
        if (idMatch(center.getId(), pattern)) {
          center.setId(null);
        }
        unsetAllIdWithinObjectList(center.getContent(), pattern);
        break;
      case CITE:
        Cite cite = (Cite) target;
        if (idMatch(cite.getId(), pattern)) {
          cite.setId(null);
        }
        unsetAllIdWithinObjectList(cite.getContent(), pattern);
        break;
      case CODE:
        Code code = (Code) target;
        if (idMatch(code.getId(), pattern)) {
          code.setId(null);
        }
        unsetAllIdWithinObjectList(code.getContent(), pattern);
        break;
      case COL:
        Col col = (Col) target;
        if (idMatch(col.getId(), pattern)) {
          col.setId(null);
        }
        // empty element.
        break;
      case COLGROUP:
        Colgroup colgroup = (Colgroup) target;
        if (idMatch(colgroup.getId(), pattern)) {
          colgroup.setId(null);
        }
        for (Col tmpcol : colgroup.getCol()) {
          execute(tmpcol, pattern);
        }
        break;
      case DD:
        Dd dd = (Dd) target;
        if (idMatch(dd.getId(), pattern)) {
          dd.setId(null);
        }
        unsetAllIdWithinObjectList(dd.getContent(), pattern);
        break;
      case DEL:
        Del del = (Del) target;
        if (idMatch(del.getId(), pattern)) {
          del.setId(null);
        }
        unsetAllIdWithinObjectList(del.getContent(), pattern);
        break;
      case DFN:
        Dfn dfn = (Dfn) target;
        if (idMatch(dfn.getId(), pattern)) {
          dfn.setId(null);
        }
        unsetAllIdWithinObjectList(dfn.getContent(), pattern);
        break;
      case DIR:
        Dir dir = (Dir) target;
        if (idMatch(dir.getId(), pattern)) {
          dir.setId(null);
        }
        for (Li tmpli : dir.getLi()) {
          execute(tmpli, pattern);
        }
        break;
      case DIV:
        Div div = (Div) target;
        if (idMatch(div.getId(), pattern)) {
          div.setId(null);
        }
        unsetAllIdWithinObjectList(div.getContent(), pattern);
        break;
      case DL:
        Dl dl = (Dl) target;
        if (idMatch(dl.getId(), pattern)) {
          dl.setId(null);
        }
        for (AbstractJaxb aj : dl.getDtOrDd()) {
          execute(aj, pattern);
        }
        break;
      case DT:
        Dt dt = (Dt) target;
        if (idMatch(dt.getId(), pattern)) {
          dt.setId(null);
        }
        unsetAllIdWithinObjectList(dt.getContent(), pattern);
        break;
      case EM:
        Em em = (Em) target;
        if (idMatch(em.getId(), pattern)) {
          em.setId(null);
        }
        unsetAllIdWithinObjectList(em.getContent(), pattern);
        break;
      case FIELDSET:
        Fieldset fieldset = (Fieldset) target;
        if (idMatch(fieldset.getId(), pattern)) {
          fieldset.setId(null);
        }
        unsetAllIdWithinObjectList(fieldset.getContent(), pattern);
        break;
      case FONT:
        Font font = (Font) target;
        if (idMatch(font.getId(), pattern)) {
          font.setId(null);
        }
        unsetAllIdWithinObjectList(font.getContent(), pattern);
        break;
      case FORM:
        Form form = (Form) target;
        if (idMatch(form.getId(), pattern)) {
          form.setId(null);
        }
        unsetAllIdWithinObjectList(form.getContent(), pattern);
        break;
      case H1:
        H1 h1 = (H1) target;
        if (idMatch(h1.getId(), pattern)) {
          h1.setId(null);
        }
        unsetAllIdWithinObjectList(h1.getContent(), pattern);
        break;
      case H2:
        H2 h2 = (H2) target;
        if (idMatch(h2.getId(), pattern)) {
          h2.setId(null);
        }
        unsetAllIdWithinObjectList(h2.getContent(), pattern);
        break;
      case H3:
        H3 h3 = (H3) target;
        if (idMatch(h3.getId(), pattern)) {
          h3.setId(null);
        }
        unsetAllIdWithinObjectList(h3.getContent(), pattern);
        break;
      case H4:
        H4 h4 = (H4) target;
        if (idMatch(h4.getId(), pattern)) {
          h4.setId(null);
        }
        unsetAllIdWithinObjectList(h4.getContent(), pattern);
        break;
      case H5:
        H5 h5 = (H5) target;
        if (idMatch(h5.getId(), pattern)) {
          h5.setId(null);
        }
        unsetAllIdWithinObjectList(h5.getContent(), pattern);
        break;
      case H6:
        H6 h6 = (H6) target;
        if (idMatch(h6.getId(), pattern)) {
          h6.setId(null);
        }
        unsetAllIdWithinObjectList(h6.getContent(), pattern);
        break;
      case HGROUP:
        Hgroup hgroup = (Hgroup) target;
        if (idMatch(hgroup.getId(), pattern)) {
          hgroup.setId(null);
        }
        for (AbstractJaxb aj : hgroup.getH1OrH2OrH3()) {
          execute(aj, pattern);
        }
        break;
      case HEAD:
        Head head = (Head) target;
        if (idMatch(head.getId(), pattern)) {
          head.setId(null);
        }
        for (AbstractJaxb aj : head.getContent()) {
          execute(aj, pattern);
        }
        break;
      case HR:
        Hr hr = (Hr) target;
        if (idMatch(hr.getId(), pattern)) {
          hr.setId(null);
        }
        // hr is empty element.
        break;
      case HTML:
        Html html = (Html) target;
        if (idMatch(html.getId(), pattern)) {
          html.setId(null);
        }
        execute(html.getHead(), pattern);
        execute(html.getBody(), pattern);
        break;
      case I:
        I i = (I) target;
        if (idMatch(i.getId(), pattern)) {
          i.setId(null);
        }
        unsetAllIdWithinObjectList(i.getContent(), pattern);
        break;
      case IFRAME:
        Iframe iframe = (Iframe) target;
        if (idMatch(iframe.getId(), pattern)) {
          iframe.setId(null);
        }
        unsetAllIdWithinObjectList(iframe.getContent(), pattern);
        break;
      case IMG:
        Img img = (Img) target;
        if (idMatch(img.getId(), pattern)) {
          img.setId(null);
        }
        // img is empty element.
        break;
      case INPUT:
        Input input = (Input) target;
        if (idMatch(input.getId(), pattern)) {
          input.setId(null);
        }
        // input is empty element.
        break;
      case INS:
        Ins ins = (Ins) target;
        if (idMatch(ins.getId(), pattern)) {
          ins.setId(null);
        }
        unsetAllIdWithinObjectList(ins.getContent(), pattern);
        break;
      case ISINDEX:
        Isindex isindex = (Isindex) target;
        if (idMatch(isindex.getId(), pattern)) {
          isindex.setId(null);
        }
        // empty element.
        break;
      case KBD:
        Kbd kbd = (Kbd) target;
        if (idMatch(kbd.getId(), pattern)) {
          kbd.setId(null);
        }
        unsetAllIdWithinObjectList(kbd.getContent(), pattern);
        break;
      case LABEL:
        Label label = (Label) target;
        if (idMatch(label.getId(), pattern)) {
          label.setId(null);
        }
        unsetAllIdWithinObjectList(label.getContent(), pattern);
        break;
      case LEGEND:
        Legend legend = (Legend) target;
        if (idMatch(legend.getId(), pattern)) {
          legend.setId(null);
        }
        unsetAllIdWithinObjectList(legend.getContent(), pattern);
        break;
      case LI:
        Li li = (Li) target;
        if (idMatch(li.getId(), pattern)) {
          li.setId(null);
        }
        unsetAllIdWithinObjectList(li.getContent(), pattern);
        break;
      case LINK:
        Link link = (Link) target;
        if (idMatch(link.getId(), pattern)) {
          link.setId(null);
        }
        // empty element.
        break;
      case MAIN:
        Main main = (Main) target;
        if (idMatch(main.getId(), pattern)) {
          main.setId(null);
        }
        unsetAllIdWithinObjectList(main.getContent(), pattern);
        break;
      case MAP:
        Map map = (Map) target;
        if (idMatch(map.getId(), pattern)) {
          map.setId(null);
        }
        for (Area tmpArea : map.getArea()) {
          execute(tmpArea, pattern);
        }
        break;
      case MENU:
        Menu menu = (Menu) target;
        if (idMatch(menu.getId(), pattern)) {
          menu.setId(null);
        }
        unsetAllIdWithinObjectList(menu.getContent(), pattern);
        break;
      case META:
        Meta meta = (Meta) target;
        if (idMatch(meta.getId(), pattern)) {
          meta.setId(null);
        }
        // empty element.
        break;
      case NOFRAMES:
        Noframes noframes = (Noframes) target;
        if (idMatch(noframes.getId(), pattern)) {
          noframes.setId(null);
        }
        unsetAllIdWithinObjectList(noframes.getContent(), pattern);
        break;
      case NOSCRIPT:
        Noscript noscript = (Noscript) target;
        if (idMatch(noscript.getId(), pattern)) {
          noscript.setId(null);
        }
        unsetAllIdWithinObjectList(noscript.getContent(), pattern);
        break;
      case OBJECT:
        org.mixer2.jaxb.xhtml.Object object = (org.mixer2.jaxb.xhtml.Object) target;
        if (idMatch(object.getId(), pattern)) {
          object.setId(null);
        }
        unsetAllIdWithinObjectList(object.getContent(), pattern);
        break;
      case OL:
        Ol ol = (Ol) target;
        if (idMatch(ol.getId(), pattern)) {
          ol.setId(null);
        }
        for (Li tmpli : ol.getLi()) {
          execute(tmpli, pattern);
        }
        break;
      case OPTGROUP:
        Optgroup optgroup = (Optgroup) target;
        if (idMatch(optgroup.getId(), pattern)) {
          optgroup.setId(null);
        }
        for (Option tmpOption : optgroup.getOption()) {
          execute(tmpOption, pattern);
        }
        break;
      case OPTION:
        Option option = (Option) target;
        if (idMatch(option.getId(), pattern)) {
          option.setId(null);
        }
        // option tag includes no other element.
        break;
      case P:
        P p = (P) target;
        if (idMatch(p.getId(), pattern)) {
          p.setId(null);
        }
        unsetAllIdWithinObjectList(p.getContent(), pattern);
        break;
      case PARAM:
        Param param = (Param) target;
        if (idMatch(param.getId(), pattern)) {
          param.setId(null);
        }
        // empty element.
        break;
      case PRE:
        Pre pre = (Pre) target;
        if (idMatch(pre.getId(), pattern)) {
          pre.setId(null);
        }
        unsetAllIdWithinObjectList(pre.getContent(), pattern);
        break;
      case Q:
        Q q = (Q) target;
        if (idMatch(q.getId(), pattern)) {
          q.setId(null);
        }
        unsetAllIdWithinObjectList(q.getContent(), pattern);
        break;
      case S:
        S s = (S) target;
        if (idMatch(s.getId(), pattern)) {
          s.setId(null);
        }
        unsetAllIdWithinObjectList(s.getContent(), pattern);
        break;
      case SAMP:
        Samp samp = (Samp) target;
        if (idMatch(samp.getId(), pattern)) {
          samp.setId(null);
        }
        unsetAllIdWithinObjectList(samp.getContent(), pattern);
        break;
      case SCRIPT:
        Script script = (Script) target;
        if (idMatch(script.getId(), pattern)) {
          script.setId(null);
        }
        // script include no other element.
        break;
      case SELECT:
        Select select = (Select) target;
        if (idMatch(select.getId(), pattern)) {
          select.setId(null);
        }
        for (AbstractJaxb aj : select.getOptgroupOrOption()) {
          execute(aj, pattern);
        }
        break;
      case SMALL:
        Small small = (Small) target;
        if (idMatch(small.getId(), pattern)) {
          small.setId(null);
        }
        unsetAllIdWithinObjectList(small.getContent(), pattern);
        break;
      case SPAN:
        Span span = (Span) target;
        if (idMatch(span.getId(), pattern)) {
          span.setId(null);
        }
        unsetAllIdWithinObjectList(span.getContent(), pattern);
        break;
      case STRIKE:
        Strike strike = (Strike) target;
        if (idMatch(strike.getId(), pattern)) {
          strike.setId(null);
        }
        unsetAllIdWithinObjectList(strike.getContent(), pattern);
        break;
      case STRONG:
        Strong strong = (Strong) target;
        if (idMatch(strong.getId(), pattern)) {
          strong.setId(null);
        }
        unsetAllIdWithinObjectList(strong.getContent(), pattern);
        break;
      case STYLE:
        Style style = (Style) target;
        if (idMatch(style.getId(), pattern)) {
          style.setId(null);
        }
        // has no other element.
        break;
      case SUB:
        Sub sub = (Sub) target;
        if (idMatch(sub.getId(), pattern)) {
          sub.setId(null);
        }
        unsetAllIdWithinObjectList(sub.getContent(), pattern);
        break;
      case SUP:
        Sup sup = (Sup) target;
        if (idMatch(sup.getId(), pattern)) {
          sup.setId(null);
        }
        unsetAllIdWithinObjectList(sup.getContent(), pattern);
        break;
      case TABLE:
        Table table = (Table) target;
        if (idMatch(table.getId(), pattern)) {
          table.setId(null);
        }
        if (table.isSetCaption()) {
          execute(table.getCaption(), pattern);
        }
        for (Col tmpCol : table.getCol()) {
          execute(tmpCol, pattern);
        }
        for (Colgroup tmpColgroup : table.getColgroup()) {
          execute(tmpColgroup, pattern);
        }
        for (Tbody tmpTbody : table.getTbody()) {
          execute(tmpTbody, pattern);
        }
        if (table.isSetThead()) {
          execute(table.getThead(), pattern);
        }
        if (table.isSetTfoot()) {
          execute(table.getTfoot(), pattern);
        }
        for (Tr tmpTr : table.getTr()) {
          execute(tmpTr, pattern);
        }
        break;
      case TBODY:
        Tbody tbody = (Tbody) target;
        if (idMatch(tbody.getId(), pattern)) {
          tbody.setId(null);
        }
        for (Tr tmpTr : tbody.getTr()) {
          execute(tmpTr, pattern);
        }
        break;
      case TD:
        Td td = (Td) target;
        if (idMatch(td.getId(), pattern)) {
          td.setId(null);
        }
        unsetAllIdWithinObjectList(td.getContent(), pattern);
        break;
      case TEXTAREA:
        Textarea textarea = (Textarea) target;
        if (idMatch(textarea.getId(), pattern)) {
          textarea.setId(null);
        }
        // textarea has no other element.
        break;
      case TFOOT:
        Tfoot tfoot = (Tfoot) target;
        if (idMatch(tfoot.getId(), pattern)) {
          tfoot.setId(null);
        }
        for (Tr tmpTr : tfoot.getTr()) {
          execute(tmpTr, pattern);
        }
        break;
      case TH:
        Th th = (Th) target;
        if (idMatch(th.getId(), pattern)) {
          th.setId(null);
        }
        unsetAllIdWithinObjectList(th.getContent(), pattern);
        break;
      case THEAD:
        Thead thead = (Thead) target;
        if (idMatch(thead.getId(), pattern)) {
          thead.setId(null);
        }
        for (Tr tmpTr : thead.getTr()) {
          execute(tmpTr, pattern);
        }
        break;
      case TITLE:
        Title title = (Title) target;
        if (idMatch(title.getId(), pattern)) {
          title.setId(null);
        }
        // has no other element.
        break;
      case TR:
        Tr tr = (Tr) target;
        if (idMatch(tr.getId(), pattern)) {
          tr.setId(null);
        }
        for (AbstractJaxb aj : tr.getThOrTd()) {
          execute(aj, pattern);
        }
        break;
      case TT:
        Tt tt = (Tt) target;
        if (idMatch(tt.getId(), pattern)) {
          tt.setId(null);
        }
        unsetAllIdWithinObjectList(tt.getContent(), pattern);
        break;
      case U:
        U u = (U) target;
        if (idMatch(u.getId(), pattern)) {
          u.setId(null);
        }
        unsetAllIdWithinObjectList(u.getContent(), pattern);
        break;
      case UL:
        Ul ul = (Ul) target;
        if (idMatch(ul.getId(), pattern)) {
          ul.setId(null);
        }
        for (Li tmpLi : ul.getLi()) {
          execute(tmpLi, pattern);
        }
        break;
      case VAR:
        Var var = (Var) target;
        if (idMatch(var.getId(), pattern)) {
          var.setId(null);
        }
        unsetAllIdWithinObjectList(var.getContent(), pattern);
        break;
      case ARTICLE:
        Article article = (Article) target;
        if (idMatch(article.getId(), pattern)) {
          article.setId(null);
        }
        unsetAllIdWithinObjectList(article.getContent(), pattern);
        break;
      case ASIDE:
        Aside aside = (Aside) target;
        if (idMatch(aside.getId(), pattern)) {
          aside.setId(null);
        }
        unsetAllIdWithinObjectList(aside.getContent(), pattern);
        break;
      case AUDIO:
        Audio audio = (Audio) target;
        if (idMatch(audio.getId(), pattern)) {
          audio.setId(null);
        }
        unsetAllIdWithinObjectList(audio.getContent(), pattern);
        break;
      case BDI:
        Bdi bdi = (Bdi) target;
        if (idMatch(bdi.getId(), pattern)) {
          bdi.setId(null);
        }
        unsetAllIdWithinObjectList(bdi.getContent(), pattern);
        break;
      case CANVAS:
        Canvas canvas = (Canvas) target;
        if (idMatch(canvas.getId(), pattern)) {
          canvas.setId(null);
        }
        unsetAllIdWithinObjectList(canvas.getContent(), pattern);
        break;
      case COMMAND:
        Command command = (Command) target;
        if (idMatch(command.getId(), pattern)) {
          command.setId(null);
        }
        // empty element
        break;
      case DATALIST:
        Datalist datalist = (Datalist) target;
        if (idMatch(datalist.getId(), pattern)) {
          datalist.setId(null);
        }
        unsetAllIdWithinObjectList(datalist.getContent(), pattern);
        break;
      case DETAILS:
        Details details = (Details) target;
        if (idMatch(details.getId(), pattern)) {
          details.setId(null);
        }
        unsetAllIdWithinObjectList(details.getContent(), pattern);
        break;
      case EMBED:
        Embed embed = (Embed) target;
        if (idMatch(embed.getId(), pattern)) {
          embed.setId(null);
        }
        // empty element
        break;
      case FIGCAPTION:
        Figcaption figcaption = (Figcaption) target;
        if (idMatch(figcaption.getId(), pattern)) {
          figcaption.setId(null);
        }
        unsetAllIdWithinObjectList(figcaption.getContent(), pattern);
        break;
      case FIGURE:
        Figure figure = (Figure) target;
        if (idMatch(figure.getId(), pattern)) {
          figure.setId(null);
        }
        unsetAllIdWithinObjectList(figure.getContent(), pattern);
        break;
      case FOOTER:
        Footer footer = (Footer) target;
        if (idMatch(footer.getId(), pattern)) {
          footer.setId(null);
        }
        unsetAllIdWithinObjectList(footer.getContent(), pattern);
        break;
      case HEADER:
        Header header = (Header) target;
        if (idMatch(header.getId(), pattern)) {
          header.setId(null);
        }
        unsetAllIdWithinObjectList(header.getContent(), pattern);
        break;
      case KEYGEN:
        Keygen keygen = (Keygen) target;
        if (idMatch(keygen.getId(), pattern)) {
          keygen.setId(null);
        }
        // empty element
        break;
      case MARK:
        Mark mark = (Mark) target;
        if (idMatch(mark.getId(), pattern)) {
          mark.setId(null);
        }
        unsetAllIdWithinObjectList(mark.getContent(), pattern);
        break;
      case METER:
        Meter meter = (Meter) target;
        if (idMatch(meter.getId(), pattern)) {
          meter.setId(null);
        }
        unsetAllIdWithinObjectList(meter.getContent(), pattern);
        break;
      case NAV:
        Nav nav = (Nav) target;
        if (idMatch(nav.getId(), pattern)) {
          nav.setId(null);
        }
        unsetAllIdWithinObjectList(nav.getContent(), pattern);
        break;
      case OUTPUT:
        Output output = (Output) target;
        if (idMatch(output.getId(), pattern)) {
          output.setId(null);
        }
        unsetAllIdWithinObjectList(output.getContent(), pattern);
        break;
      case PROGRESS:
        Progress progress = (Progress) target;
        if (idMatch(progress.getId(), pattern)) {
          progress.setId(null);
        }
        unsetAllIdWithinObjectList(progress.getContent(), pattern);
        break;
      case RP:
        Rp rp = (Rp) target;
        if (idMatch(rp.getId(), pattern)) {
          rp.setId(null);
        }
        unsetAllIdWithinObjectList(rp.getContent(), pattern);
        break;
      case RT:
        Rt rt = (Rt) target;
        if (idMatch(rt.getId(), pattern)) {
          rt.setId(null);
        }
        unsetAllIdWithinObjectList(rt.getContent(), pattern);
        break;
      case RUBY:
        Ruby ruby = (Ruby) target;
        if (idMatch(ruby.getId(), pattern)) {
          ruby.setId(null);
        }
        unsetAllIdWithinObjectList(ruby.getContent(), pattern);
        break;
      case SECTION:
        Section section = (Section) target;
        if (idMatch(section.getId(), pattern)) {
          section.setId(null);
        }
        unsetAllIdWithinObjectList(section.getContent(), pattern);
        break;
      case SOURCE:
        Source source = (Source) target;
        if (idMatch(source.getId(), pattern)) {
          source.setId(null);
        }
        break;
      case SUMMARY:
        Summary summary = (Summary) target;
        if (idMatch(summary.getId(), pattern)) {
          summary.setId(null);
        }
        unsetAllIdWithinObjectList(summary.getContent(), pattern);
        break;
      case TIME:
        Time time = (Time) target;
        if (idMatch(time.getId(), pattern)) {
          time.setId(null);
        }
        unsetAllIdWithinObjectList(time.getContent(), pattern);
        break;
      case TRACK:
        Track track = (Track) target;
        if (idMatch(track.getId(), pattern)) {
          track.setId(null);
        }
        // empty element
        break;
      case VIDEO:
        Video video = (Video) target;
        if (idMatch(video.getId(), pattern)) {
          video.setId(null);
        }
        unsetAllIdWithinObjectList(video.getContent(), pattern);
        break;
      case WBR:
        Wbr wbr = (Wbr) target;
        if (idMatch(wbr.getId(), pattern)) {
          wbr.setId(null);
        }
        // empty element
        break;
    }
  }