/**
   * @see org.kuali.rice.krad.bo.GlobalBusinessObject#isPersistable() returns whether this global
   *     object reversion can be stored in the database, which is really a question of whether it
   *     and all of its details have all of their appropriate primary keys set.
   */
  public boolean isPersistable() {
    PersistenceStructureService persistenceStructureService =
        SpringContext.getBean(PersistenceStructureService.class);

    if (!persistenceStructureService.hasPrimaryKeyFieldValues(this)) {
      return false;
    }

    for (OrganizationReversionGlobalDetail orgRevDetail :
        this.getOrganizationReversionGlobalDetails()) {
      if (!persistenceStructureService.hasPrimaryKeyFieldValues(orgRevDetail)) {
        return false;
      }
    }

    for (OrganizationReversionGlobalOrganization orgRevOrg :
        this.getOrganizationReversionGlobalOrganizations()) {
      if (!persistenceStructureService.hasPrimaryKeyFieldValues(orgRevOrg)) {
        return false;
      }
    }

    // are we still here? really? Then, hey, let's persist!
    return true;
  }
 @Override
 public boolean hasPrimaryKeyFieldValues(Object dataObject) {
   return persistenceStructureService.hasPrimaryKeyFieldValues(dataObject);
 }