@Override
    protected void doChanged(
        java.sql.Connection connection,
        java.util.List<org.phoenixbioinformatics.api.db.api.ISubscriptionDescriptionItem> dtos)
        throws java.sql.SQLException, com.poesys.db.BatchException,
            com.poesys.db.ConstraintViolationException, com.poesys.db.dto.DtoStatusException {
      // items source: AddToManyChildCollectionProperties
      // Immutable: false
      com.poesys.db.dao.IDaoManager manager =
          com.poesys.db.dao.DaoManagerFactory.getManager(subsystem);

      com.poesys.db.dao.IDaoFactory<
              org.phoenixbioinformatics.api.db.api.ISubscriptionDescriptionItem>
          factory =
              manager.getFactory(
                  org.phoenixbioinformatics.api.db.api.SubscriptionDescriptionItem.class.getName(),
                  subsystem,
                  2147483647);
      com.poesys.db.dao.update.IUpdateBatch<
              org.phoenixbioinformatics.api.db.api.ISubscriptionDescriptionItem>
          updater =
              factory.getUpdateBatch(
                  new org.phoenixbioinformatics.api.db.api.sql.UpdateSubscriptionDescriptionItem());

      // Update the object of the leaf class.
      updater.setLeaf(true);
      updater.update(connection, dtos, dtos.size() / 2);
      // Complete the update by setting the DTOs to EXISTING status.
      for (com.poesys.db.dto.IDbDto dto : dtos) {
        if (dto.getStatus() == Status.CHANGED) {
          dto.setExisting();
        }
      }
    }
    @Override
    protected void doNew(
        java.sql.Connection connection,
        java.util.List<org.phoenixbioinformatics.api.db.api.ISubscriptionDescriptionItem> dtos)
        throws java.sql.SQLException, com.poesys.db.BatchException,
            com.poesys.db.ConstraintViolationException, com.poesys.db.dto.DtoStatusException {
      com.poesys.db.dao.IDaoManager manager =
          com.poesys.db.dao.DaoManagerFactory.getManager(subsystem);

      com.poesys.db.dao.IDaoFactory<
              org.phoenixbioinformatics.api.db.api.ISubscriptionDescriptionItem>
          factory =
              manager.getFactory(
                  org.phoenixbioinformatics.api.db.api.SubscriptionDescriptionItem.class.getName(),
                  subsystem,
                  2147483647);
      com.poesys.db.dao.insert.IInsertBatch<
              org.phoenixbioinformatics.api.db.api.ISubscriptionDescriptionItem>
          inserter =
              factory.getInsertBatch(
                  new org.phoenixbioinformatics.api.db.api.sql.InsertSubscriptionDescriptionItem());

      // Insert the object of the current class after enabling nested inserts,
      // which will allow connecting up linked objects to any of the inserted
      // classes.
      for (com.poesys.db.dto.IDbDto dto : dtos) {
        dto.setSuppressNestedInserts(false);
      }
      inserter.setLeaf(true);
      inserter.insert(connection, dtos, dtos.size() / 2);
    }
 @Override
 public void markChildrenDeleted() throws DtoStatusException {
   // Only process deletes if child exists.
   if (items != null) {
     for (com.poesys.db.dto.IDbDto dto : items) {
       dto.cascadeDelete();
     }
   }
 }
 @Override
 protected void set(
     java.util.List<org.phoenixbioinformatics.api.db.api.ISubscriptionDescriptionItem> list) {
   // No status change; this is just filling in the object data.
   items = list;
   // Add the primary keys to the serialized key list if there are any.
   if (items != null) {
     for (com.poesys.db.dto.IDbDto object : items) {
       itemsKeys.add(object.getPrimaryKey());
     }
   }
 }
  /**
   * Set the items.
   *
   * <ul>
   *   <li>Read/Write DTO: true
   *   <li>Immutable DTO: false
   *   <li>Read/Write property: true
   *   <li>Immutable property: false
   *   <li>Lazy property: false (if true, proxy calls this method)
   * </ul>
   *
   * <p>the set of items within the description
   *
   * @param items the value with which to set the property
   * @throws com.poesys.db.InvalidParametersException when the input items is null
   */
  public void setItems(
      java.util.List<org.phoenixbioinformatics.api.db.api.ISubscriptionDescriptionItem> items)
      throws com.poesys.db.InvalidParametersException {
    if (items == null) {
      throw new com.poesys.db.InvalidParametersException("items is required");
    }

    this.items = items;
    // Add the primary keys of the new collection to the serialized key list.
    itemsKeys.clear();
    if (items != null) {
      for (com.poesys.db.dto.IDbDto object : items) {
        itemsKeys.add(object.getPrimaryKey());
      }
    }
    setChanged();
  }