public String expandBody(MssCFGenContext genContext) { ICFLibAnyObj genDef; final String S_ProcName = "expandBody"; if (genContext == null) { throw CFLib.getDefaultExceptionFactory() .newNullArgumentException(getClass(), S_ProcName, 1, "genContext"); } genDef = genContext.getGenDef(); if (genDef == null) { throw CFLib.getDefaultExceptionFactory() .newNullArgumentException(getClass(), S_ProcName, 0, "genContext.GenDef"); } if (!(genDef instanceof ICFBamTableObj)) { throw CFLib.getDefaultExceptionFactory() .newUnsupportedClassException(getClass(), S_ProcName, "genDef", genDef, "ICFBamTableObj"); } ICFBamTableObj tableObj = (ICFBamTableObj) genDef; ICFBamIndexObj primaryKeyIndex = MSSBamCFTableObj.getPrimaryKeyIndex(tableObj); String ret; if (primaryKeyIndex != null) { ret = "yes"; } else { ret = "no"; } return (ret); }
/** * The core evaluation of ColumnInOwnerLookupRelation 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 MSIsaGenBindColumnInOwnerLookupRelation. * * @param genDef to be considered * @return True if the column participates in an owner relation. */ public static Boolean isColumnInContainerOrNamedLookupRelation(ICFLibAnyObj genDef) { ICFLibAnyObj focusDef; ICFBamTableObj tableDef; final String S_ProcName = "isColumnInContainerOrNamedLookupRelation"; if (genDef instanceof ICFBamAtomObj) { ICFBamAtomObj atomDef = (ICFBamAtomObj) genDef; ICFLibAnyObj atomScopeDef = atomDef.getObjScope(); tableDef = (ICFBamTableObj) atomScopeDef; focusDef = genDef; } else if (genDef instanceof ICFBamTableColObj) { ICFBamTableColObj tableColDef = (ICFBamTableColObj) genDef; ICFLibAnyObj tableColScopeDef = tableColDef.getObjScope(); tableDef = (ICFBamTableObj) tableColScopeDef; focusDef = genDef; } else if (genDef instanceof ICFBamIndexColObj) { ICFBamIndexColObj indexColDef = (ICFBamIndexColObj) genDef; focusDef = indexColDef.getRequiredLookupColumn(); if (focusDef instanceof ICFBamAtomObj) { tableDef = (ICFBamTableObj) ((ICFBamAtomObj) focusDef).getObjScope(); } else if (focusDef instanceof ICFBamTableColObj) { tableDef = (ICFBamTableObj) ((ICFBamTableColObj) focusDef).getObjScope(); } else { throw CFLib.getDefaultExceptionFactory() .newUnsupportedClassException( MSSBamCFGenBindColumnInContainerOrNamedLookupRelation.class, S_ProcName, "genContext.GenDef.LookupColumn", genDef, "ICFBamAtomObj, ICFBamTableColObj"); } } else if (genDef instanceof ICFBamRelationColObj) { ICFBamRelationColObj relColDef = (ICFBamRelationColObj) genDef; 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 CFLib.getDefaultExceptionFactory() .newUnsupportedClassException( MSSBamCFGenBindColumnInContainerOrNamedLookupRelation.class, S_ProcName, "genContext.GenDef.FromCol", genDef, "ICFBamAtomObj, ICFBamTableColObj"); } } else { throw CFLib.getDefaultExceptionFactory() .newUnsupportedClassException( MSSBamCFGenBindColumnInContainerOrNamedLookupRelation.class, S_ProcName, "genContext.GenDef", genDef, "ICFBamAtomObj, ICFBamTableColObj, ICFBamIndexColObj, ICFBamRelationColObj"); } List<ICFBamRelationObj> containerNamedLookupRelations = MSSBamCFTableObj.getOwnerContainerNamedLookupChainRelations(tableDef); if ((containerNamedLookupRelations == null) || ((containerNamedLookupRelations != null) && (containerNamedLookupRelations.size() == 0))) { return (false); } ListIterator<ICFBamRelationObj> ownerEnumerator = containerNamedLookupRelations.listIterator(); ICFBamRelationObj ownerRelation; ICFBamRelationColObj ownerRelationCol; ICFBamIndexColObj indexCol; Iterator<ICFBamRelationColObj> ownerRelationCols; while (ownerEnumerator.hasNext()) { ownerRelation = ownerEnumerator.next(); ownerRelationCols = ownerRelation.getOptionalComponentsColumns().iterator(); while (ownerRelationCols.hasNext()) { ownerRelationCol = ownerRelationCols.next(); indexCol = ownerRelationCol.getRequiredLookupFromCol(); if (indexCol.getRequiredLookupColumn() == focusDef) { return (true); } } } return (false); }