public CFSecurityCursor openSecFormCursorByClusterIdx(
      CFSecurityAuthorization Authorization, long ClusterId) {
    CFSecurityCursor cursor;
    CFSecuritySecFormByClusterIdxKey key = schema.getFactorySecForm().newClusterIdxKey();
    key.setRequiredClusterId(ClusterId);

    if (dictByClusterIdx.containsKey(key)) {
      Map<CFSecuritySecFormPKey, CFSecuritySecFormBuff> subdictClusterIdx =
          dictByClusterIdx.get(key);
      cursor = new CFInternetRamSecFormCursor(Authorization, schema, subdictClusterIdx.values());
    } else {
      cursor =
          new CFInternetRamSecFormCursor(
              Authorization, schema, new ArrayList<CFSecuritySecFormBuff>());
    }
    return (cursor);
  }
  public void deleteSecForm(CFSecurityAuthorization Authorization, CFSecuritySecFormBuff Buff) {
    final String S_ProcName = "CFInternetRamSecFormTable.deleteSecForm() ";
    CFSecuritySecFormPKey pkey = schema.getFactorySecForm().newPKey();
    pkey.setRequiredClusterId(Buff.getRequiredClusterId());
    pkey.setRequiredSecFormId(Buff.getRequiredSecFormId());
    CFSecuritySecFormBuff existing = dictByPKey.get(pkey);
    if (existing == null) {
      return;
    }
    if (existing.getRequiredRevision() != Buff.getRequiredRevision()) {
      throw CFLib.getDefaultExceptionFactory()
          .newCollisionDetectedException(getClass(), "deleteSecForm", pkey);
    }
    CFSecuritySecFormByClusterIdxKey keyClusterIdx = schema.getFactorySecForm().newClusterIdxKey();
    keyClusterIdx.setRequiredClusterId(existing.getRequiredClusterId());

    CFSecuritySecFormBySecAppIdxKey keySecAppIdx = schema.getFactorySecForm().newSecAppIdxKey();
    keySecAppIdx.setRequiredClusterId(existing.getRequiredClusterId());
    keySecAppIdx.setRequiredSecAppId(existing.getRequiredSecAppId());

    CFSecuritySecFormByUJEEServletIdxKey keyUJEEServletIdx =
        schema.getFactorySecForm().newUJEEServletIdxKey();
    keyUJEEServletIdx.setRequiredClusterId(existing.getRequiredClusterId());
    keyUJEEServletIdx.setRequiredSecAppId(existing.getRequiredSecAppId());
    keyUJEEServletIdx.setRequiredJEEServletMapName(existing.getRequiredJEEServletMapName());

    // Validate reverse foreign keys

    // Delete is valid

    Map<CFSecuritySecFormPKey, CFSecuritySecFormBuff> subdict;

    dictByPKey.remove(pkey);

    subdict = dictByClusterIdx.get(keyClusterIdx);
    subdict.remove(pkey);

    subdict = dictBySecAppIdx.get(keySecAppIdx);
    subdict.remove(pkey);

    dictByUJEEServletIdx.remove(keyUJEEServletIdx);
  }
  public CFSecuritySecFormBuff[] readDerivedByClusterIdx(
      CFSecurityAuthorization Authorization, long ClusterId) {
    final String S_ProcName = "CFInternetRamSecForm.readDerivedByClusterIdx";
    CFSecuritySecFormByClusterIdxKey key = schema.getFactorySecForm().newClusterIdxKey();
    key.setRequiredClusterId(ClusterId);

    CFSecuritySecFormBuff[] recArray;
    if (dictByClusterIdx.containsKey(key)) {
      Map<CFSecuritySecFormPKey, CFSecuritySecFormBuff> subdictClusterIdx =
          dictByClusterIdx.get(key);
      recArray = new CFSecuritySecFormBuff[subdictClusterIdx.size()];
      Iterator<CFSecuritySecFormBuff> iter = subdictClusterIdx.values().iterator();
      int idx = 0;
      while (iter.hasNext()) {
        recArray[idx++] = iter.next();
      }
    } else {
      Map<CFSecuritySecFormPKey, CFSecuritySecFormBuff> subdictClusterIdx =
          new HashMap<CFSecuritySecFormPKey, CFSecuritySecFormBuff>();
      dictByClusterIdx.put(key, subdictClusterIdx);
      recArray = new CFSecuritySecFormBuff[0];
    }
    return (recArray);
  }
  public void createSecForm(CFSecurityAuthorization Authorization, CFSecuritySecFormBuff Buff) {
    final String S_ProcName = "createSecForm";
    CFSecuritySecFormPKey pkey = schema.getFactorySecForm().newPKey();
    pkey.setRequiredClusterId(Buff.getRequiredClusterId());
    pkey.setRequiredSecFormId(
        ((CFInternetRamClusterTable) schema.getTableCluster())
            .nextSecFormIdGen(Authorization, Buff.getRequiredClusterId()));
    Buff.setRequiredClusterId(pkey.getRequiredClusterId());
    Buff.setRequiredSecFormId(pkey.getRequiredSecFormId());
    CFSecuritySecFormByClusterIdxKey keyClusterIdx = schema.getFactorySecForm().newClusterIdxKey();
    keyClusterIdx.setRequiredClusterId(Buff.getRequiredClusterId());

    CFSecuritySecFormBySecAppIdxKey keySecAppIdx = schema.getFactorySecForm().newSecAppIdxKey();
    keySecAppIdx.setRequiredClusterId(Buff.getRequiredClusterId());
    keySecAppIdx.setRequiredSecAppId(Buff.getRequiredSecAppId());

    CFSecuritySecFormByUJEEServletIdxKey keyUJEEServletIdx =
        schema.getFactorySecForm().newUJEEServletIdxKey();
    keyUJEEServletIdx.setRequiredClusterId(Buff.getRequiredClusterId());
    keyUJEEServletIdx.setRequiredSecAppId(Buff.getRequiredSecAppId());
    keyUJEEServletIdx.setRequiredJEEServletMapName(Buff.getRequiredJEEServletMapName());

    // Validate unique indexes

    if (dictByPKey.containsKey(pkey)) {
      throw CFLib.getDefaultExceptionFactory()
          .newPrimaryKeyNotNewException(getClass(), S_ProcName, pkey);
    }

    if (dictByUJEEServletIdx.containsKey(keyUJEEServletIdx)) {
      throw CFLib.getDefaultExceptionFactory()
          .newUniqueIndexViolationException(
              getClass(), S_ProcName, "SecFormUJEEServletIdx", keyUJEEServletIdx);
    }

    // Validate foreign keys

    {
      boolean allNull = true;
      allNull = false;
      if (!allNull) {
        if (null
            == schema
                .getTableCluster()
                .readDerivedByIdIdx(Authorization, Buff.getRequiredClusterId())) {
          throw CFLib.getDefaultExceptionFactory()
              .newUnresolvedRelationException(
                  getClass(), S_ProcName, "Owner", "SecFormCluster", "Cluster", null);
        }
      }
    }

    {
      boolean allNull = true;
      allNull = false;
      allNull = false;
      if (!allNull) {
        if (null
            == schema
                .getTableSecApp()
                .readDerivedByIdIdx(
                    Authorization, Buff.getRequiredClusterId(), Buff.getRequiredSecAppId())) {
          throw CFLib.getDefaultExceptionFactory()
              .newUnresolvedRelationException(
                  getClass(), S_ProcName, "Container", "SecFormApplication", "SecApp", null);
        }
      }
    }

    // Proceed with adding the new record

    dictByPKey.put(pkey, Buff);

    Map<CFSecuritySecFormPKey, CFSecuritySecFormBuff> subdictClusterIdx;
    if (dictByClusterIdx.containsKey(keyClusterIdx)) {
      subdictClusterIdx = dictByClusterIdx.get(keyClusterIdx);
    } else {
      subdictClusterIdx = new HashMap<CFSecuritySecFormPKey, CFSecuritySecFormBuff>();
      dictByClusterIdx.put(keyClusterIdx, subdictClusterIdx);
    }
    subdictClusterIdx.put(pkey, Buff);

    Map<CFSecuritySecFormPKey, CFSecuritySecFormBuff> subdictSecAppIdx;
    if (dictBySecAppIdx.containsKey(keySecAppIdx)) {
      subdictSecAppIdx = dictBySecAppIdx.get(keySecAppIdx);
    } else {
      subdictSecAppIdx = new HashMap<CFSecuritySecFormPKey, CFSecuritySecFormBuff>();
      dictBySecAppIdx.put(keySecAppIdx, subdictSecAppIdx);
    }
    subdictSecAppIdx.put(pkey, Buff);

    dictByUJEEServletIdx.put(keyUJEEServletIdx, Buff);
  }
 public void deleteSecFormByClusterIdx(CFSecurityAuthorization Authorization, long argClusterId) {
   CFSecuritySecFormByClusterIdxKey key = schema.getFactorySecForm().newClusterIdxKey();
   key.setRequiredClusterId(argClusterId);
   deleteSecFormByClusterIdx(Authorization, key);
 }
  public void updateSecForm(CFSecurityAuthorization Authorization, CFSecuritySecFormBuff Buff) {
    CFSecuritySecFormPKey pkey = schema.getFactorySecForm().newPKey();
    pkey.setRequiredClusterId(Buff.getRequiredClusterId());
    pkey.setRequiredSecFormId(Buff.getRequiredSecFormId());
    CFSecuritySecFormBuff existing = dictByPKey.get(pkey);
    if (existing == null) {
      throw CFLib.getDefaultExceptionFactory()
          .newStaleCacheDetectedException(
              getClass(), "updateSecForm", "Existing record not found", "SecForm", pkey);
    }
    if (existing.getRequiredRevision() != Buff.getRequiredRevision()) {
      throw CFLib.getDefaultExceptionFactory()
          .newCollisionDetectedException(getClass(), "updateSecForm", pkey);
    }
    Buff.setRequiredRevision(Buff.getRequiredRevision() + 1);
    CFSecuritySecFormByClusterIdxKey existingKeyClusterIdx =
        schema.getFactorySecForm().newClusterIdxKey();
    existingKeyClusterIdx.setRequiredClusterId(existing.getRequiredClusterId());

    CFSecuritySecFormByClusterIdxKey newKeyClusterIdx =
        schema.getFactorySecForm().newClusterIdxKey();
    newKeyClusterIdx.setRequiredClusterId(Buff.getRequiredClusterId());

    CFSecuritySecFormBySecAppIdxKey existingKeySecAppIdx =
        schema.getFactorySecForm().newSecAppIdxKey();
    existingKeySecAppIdx.setRequiredClusterId(existing.getRequiredClusterId());
    existingKeySecAppIdx.setRequiredSecAppId(existing.getRequiredSecAppId());

    CFSecuritySecFormBySecAppIdxKey newKeySecAppIdx = schema.getFactorySecForm().newSecAppIdxKey();
    newKeySecAppIdx.setRequiredClusterId(Buff.getRequiredClusterId());
    newKeySecAppIdx.setRequiredSecAppId(Buff.getRequiredSecAppId());

    CFSecuritySecFormByUJEEServletIdxKey existingKeyUJEEServletIdx =
        schema.getFactorySecForm().newUJEEServletIdxKey();
    existingKeyUJEEServletIdx.setRequiredClusterId(existing.getRequiredClusterId());
    existingKeyUJEEServletIdx.setRequiredSecAppId(existing.getRequiredSecAppId());
    existingKeyUJEEServletIdx.setRequiredJEEServletMapName(existing.getRequiredJEEServletMapName());

    CFSecuritySecFormByUJEEServletIdxKey newKeyUJEEServletIdx =
        schema.getFactorySecForm().newUJEEServletIdxKey();
    newKeyUJEEServletIdx.setRequiredClusterId(Buff.getRequiredClusterId());
    newKeyUJEEServletIdx.setRequiredSecAppId(Buff.getRequiredSecAppId());
    newKeyUJEEServletIdx.setRequiredJEEServletMapName(Buff.getRequiredJEEServletMapName());

    // Check unique indexes

    if (!existingKeyUJEEServletIdx.equals(newKeyUJEEServletIdx)) {
      if (dictByUJEEServletIdx.containsKey(newKeyUJEEServletIdx)) {
        throw CFLib.getDefaultExceptionFactory()
            .newUniqueIndexViolationException(
                getClass(), "updateSecForm", "SecFormUJEEServletIdx", newKeyUJEEServletIdx);
      }
    }

    // Validate foreign keys

    {
      boolean allNull = true;

      if (allNull) {
        if (null
            == schema
                .getTableCluster()
                .readDerivedByIdIdx(Authorization, Buff.getRequiredClusterId())) {
          throw CFLib.getDefaultExceptionFactory()
              .newUnresolvedRelationException(
                  getClass(), "updateSecForm", "Owner", "SecFormCluster", "Cluster", null);
        }
      }
    }

    {
      boolean allNull = true;

      if (allNull) {
        if (null
            == schema
                .getTableSecApp()
                .readDerivedByIdIdx(
                    Authorization, Buff.getRequiredClusterId(), Buff.getRequiredSecAppId())) {
          throw CFLib.getDefaultExceptionFactory()
              .newUnresolvedRelationException(
                  getClass(), "updateSecForm", "Container", "SecFormApplication", "SecApp", null);
        }
      }
    }

    // Update is valid

    Map<CFSecuritySecFormPKey, CFSecuritySecFormBuff> subdict;

    dictByPKey.remove(pkey);
    dictByPKey.put(pkey, Buff);

    subdict = dictByClusterIdx.get(existingKeyClusterIdx);
    if (subdict != null) {
      subdict.remove(pkey);
    }
    if (dictByClusterIdx.containsKey(newKeyClusterIdx)) {
      subdict = dictByClusterIdx.get(newKeyClusterIdx);
    } else {
      subdict = new HashMap<CFSecuritySecFormPKey, CFSecuritySecFormBuff>();
      dictByClusterIdx.put(newKeyClusterIdx, subdict);
    }
    subdict.put(pkey, Buff);

    subdict = dictBySecAppIdx.get(existingKeySecAppIdx);
    if (subdict != null) {
      subdict.remove(pkey);
    }
    if (dictBySecAppIdx.containsKey(newKeySecAppIdx)) {
      subdict = dictBySecAppIdx.get(newKeySecAppIdx);
    } else {
      subdict = new HashMap<CFSecuritySecFormPKey, CFSecuritySecFormBuff>();
      dictBySecAppIdx.put(newKeySecAppIdx, subdict);
    }
    subdict.put(pkey, Buff);

    dictByUJEEServletIdx.remove(existingKeyUJEEServletIdx);
    dictByUJEEServletIdx.put(newKeyUJEEServletIdx, Buff);
  }