protected ICFBamRelationObj resolveInheritedRelation(
     ICFBamRelationTableObj relationTable, ICFBamTableObj tbl, String relName) {
   ICFBamRelationObj curRelation;
   ICFBamRelationObj superRelation;
   ICFBamRelationObj retval = null;
   ICFBamTableObj curTable = tbl;
   while ((retval == null) && (curTable != null)) {
     retval =
         relationTable.readRelationByUNameIdx(
             curTable.getRequiredTenantId(), curTable.getRequiredId(), relName);
     if (retval == null) {
       Iterator<ICFBamRelationObj> relIter = curTable.getOptionalComponentsRelation().iterator();
       superRelation = null;
       while ((superRelation == null) && relIter.hasNext()) {
         curRelation = relIter.next();
         if (curRelation.getRequiredLookupRelationType().getRequiredTag().equals("Superclass")) {
           superRelation = curRelation;
         }
       }
       if (superRelation != null) {
         curTable = superRelation.getRequiredLookupToTable();
       } else {
         curTable = null;
       }
     }
   }
   return (retval);
 }
 public Object getValueAt(int row, int column) {
   if ((row < 0) || (column < -1)) {
     return (null);
   }
   if (arrayOfRelation == null) {
     return (null);
   }
   int len = arrayOfRelation.length;
   if (row >= len) {
     return (null);
   }
   ICFBamRelationObj obj = arrayOfRelation[row];
   if (obj == null) {
     return (null);
   }
   Object retval;
   switch (column) {
     case COLID_ROW_HEADER:
       retval = obj;
       break;
     case COLID_OBJQUALIFIEDNAME:
       retval = obj.getObjQualifiedName();
       break;
     case COLID_ID:
       retval = new Long(obj.getRequiredId());
       break;
     case COLID_NAME:
       retval = obj.getRequiredName();
       if (retval == null) {
         retval = "";
       }
       break;
     case COLID_SHORTNAME:
       retval = obj.getOptionalShortName();
       if (retval == null) {
         retval = "";
       }
       break;
     case COLID_LABEL:
       retval = obj.getOptionalLabel();
       if (retval == null) {
         retval = "";
       }
       break;
     case COLID_SHORTDESCRIPTION:
       retval = obj.getOptionalShortDescription();
       if (retval == null) {
         retval = "";
       }
       break;
     case COLID_DESCRIPTION:
       retval = obj.getOptionalDescription();
       if (retval == null) {
         retval = "";
       }
       break;
     case COLID_DBNAME:
       retval = obj.getOptionalDbName();
       if (retval == null) {
         retval = "";
       }
       break;
     case COLID_SUFFIX:
       retval = obj.getOptionalSuffix();
       if (retval == null) {
         retval = "";
       }
       break;
     case COLID_ISREQUIRED:
       retval = new Boolean(obj.getRequiredIsRequired());
       break;
     case COLID_ISABSTRACT:
       retval = new Boolean(obj.getRequiredIsAbstract());
       break;
     case COLID_ISXSDCONTAINER:
       retval = new Boolean(obj.getRequiredIsXsdContainer());
       break;
     case COLID_DEFAULTVISIBILITY:
       retval = new Boolean(obj.getRequiredDefaultVisibility());
       break;
     case COLID_LOOKUP_RELATIONTYPE:
       retval = obj.getRequiredLookupRelationType();
       break;
     case COLID_LOOKUP_DEFSCHEMA:
       retval = obj.getOptionalLookupDefSchema();
       break;
     case COLID_LOOKUP_FROMINDEX:
       retval = obj.getRequiredLookupFromIndex();
       break;
     case COLID_LOOKUP_TOTABLE:
       retval = obj.getRequiredLookupToTable();
       break;
     case COLID_LOOKUP_TOINDEX:
       retval = obj.getRequiredLookupToIndex();
       break;
     case COLID_LOOKUP_NARROWED:
       retval = obj.getOptionalLookupNarrowed();
       break;
     default:
       retval = null;
       break;
   }
   return (retval);
 }