Exemplo n.º 1
0
 protected void _deleteDependencies() throws DBException {
   DBField[] keyFlds = this.getKeyFields();
   DBFieldValues fldVals = this.getFieldValues();
   DBFactory fact = this.getFactory();
   DBFactory childFact[] = fact.getChildFactories();
   for (int i = 0; i < childFact.length; i++) {
     DBRecordKey key = childFact[i].createKey(); // an empty key
     for (int k = 0; k < keyFlds.length; k++) {
       String fldName = keyFlds[k].getName();
       if (fldVals.hasFieldValue(fldName)) {
         Object fldValue = fldVals.getFieldValue(fldName);
         key.setFieldValue(fldName, fldValue);
       } else {
         throw new DBException("Missing dependent key fields!");
       }
     }
     // Do not perform recursive dependency deletion!
     // - 'key' is an incomplete (partial key only), and dependency deletion would fail
     // - all dependent children should already be specified by "getChildFactories()"
     try {
       int whereKeyType = DBWhere.KEY_PARTIAL_ALL; // Should use ALL available partial keys.
       key._delete(null, whereKeyType); // primary key delete
     } catch (SQLException sqe) {
       throw new DBException("Record deletion", sqe);
     }
   }
 }