public ListIterator<ICFLibAnyObj> enumerateDetails(MssCFGenContext genContext) { final String S_ProcName = "CFBamMssCFIterateISOCountryLanguage.enumerateDetails() "; if (genContext == null) { throw CFLib.getDefaultExceptionFactory() .newNullArgumentException(getClass(), S_ProcName, 1, "genContext"); } ICFLibAnyObj genDef = genContext.getGenDef(); if (genDef == null) { throw CFLib.getDefaultExceptionFactory() .newNullArgumentException(getClass(), S_ProcName, 1, "genContext.getGenDef()"); } List<ICFLibAnyObj> list = new LinkedList<ICFLibAnyObj>(); if (genDef instanceof ICFBamISOCountryObj) { Iterator<ICFSecurityISOCountryLanguageObj> elements = ((ICFBamISOCountryObj) genDef).getOptionalComponentsLanguage().iterator(); while (elements.hasNext()) { list.add(elements.next()); } } else { throw CFLib.getDefaultExceptionFactory() .newUnsupportedClassException( getClass(), S_ProcName, "genContext.getGenDef()", genDef, "ICFBamISOCountryObj"); } return (list.listIterator()); }
/** * The core evaluation of ColumnInOwnerRelation is also to determine if an index definition is in * an owner relation. * * <p>WORKING: Yes, I know. This should be a business method instead of copying the code in * ICFBamIndexObj and MSIsaGenBindColumnInOwnerRelation. * * @param genDef to be considered * @return True if the column participates in an owner relation. */ public Boolean isColumnInOwnerRelation() { ICFLibAnyObj focusDef; ICFBamTableObj tableDef; final String S_ProcName = "isColumnInOwnerRelation() "; if (this instanceof ICFBamAtomObj) { ICFBamAtomObj atomDef = (ICFBamAtomObj) this; ICFLibAnyObj atomScopeDef = atomDef.getObjScope(); tableDef = (ICFBamTableObj) atomScopeDef; focusDef = this; } else if (this instanceof ICFBamTableColObj) { ICFBamTableColObj tableColDef = (ICFBamTableColObj) this; ICFLibAnyObj tableColScopeDef = tableColDef.getObjScope(); tableDef = (ICFBamTableObj) tableColScopeDef; focusDef = this; } else if (this instanceof ICFBamIndexColObj) { ICFBamIndexColObj indexColDef = (ICFBamIndexColObj) this; focusDef = indexColDef.getRequiredLookupColumn(); if (focusDef instanceof ICFBamAtomObj) { tableDef = (ICFBamTableObj) ((ICFBamAtomObj) focusDef).getObjScope(); } else if (focusDef instanceof ICFBamTableColObj) { tableDef = (ICFBamTableObj) ((ICFBamTableColObj) focusDef).getObjScope(); } else { throw new RuntimeException( S_ProcName + "genContext.getGenDef().getColumnDef() for a ICFBamIndexColObj did not return a ICFBamAtomObj" + " nor a ICFBamTableColObj"); } } else if (this instanceof ICFBamRelationColObj) { ICFBamRelationColObj relColDef = (ICFBamRelationColObj) this; ICFLibAnyObj columnDef = relColDef.getRequiredLookupFromCol(); if (columnDef instanceof ICFBamAtomObj) { focusDef = columnDef; tableDef = (ICFBamTableObj) columnDef.getObjScope(); } else if (columnDef instanceof ICFBamTableColObj) { focusDef = columnDef; tableDef = (ICFBamTableObj) columnDef.getObjScope(); } else { throw new RuntimeException( S_ProcName + "genContext.getGenDef().getFromColumnDef() for a ICFBamIndexColObj did not return a ICFBamAtomObj" + " nor a ICFBamTableColObj"); } } else { throw new RuntimeException( S_ProcName + "genContext.getGenDef() did not return a ICFBamAtomObj, ICFBamTableColObj, nor ICFBamIndexColObj instance"); } List<ICFBamRelationObj> ownerRelations = tableDef.getContainerOwnerRelations(); if ((ownerRelations == null) || ((ownerRelations != null) && (ownerRelations.size() == 0))) { return (false); } ListIterator<ICFBamRelationObj> ownerEnumerator = ownerRelations.listIterator(); ICFBamRelationObj ownerRelation; ICFBamRelationColObj ownerRelationCol; Iterator<ICFBamRelationColObj> ownerRelationCols; while (ownerEnumerator.hasNext()) { ownerRelation = ownerEnumerator.next(); ownerRelationCols = ownerRelation.getOptionalComponentsColumns().iterator(); while (ownerRelationCols.hasNext()) { ownerRelationCol = ownerRelationCols.next(); if (ownerRelationCol.getRequiredLookupFromCol() == focusDef) { return (true); } } } return (false); }