public ListIterator<ICFLibAnyObj> enumerateDetails(MssCFGenContext genContext) { ICFLibAnyObj genDef; final String S_ProcName = "enumerateDetails"; 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 ICFBamSchemaDefObj)) { throw CFLib.getDefaultExceptionFactory() .newUnsupportedClassException( getClass(), S_ProcName, "genContext.GenDef", genDef, "ICFBamSchemaDefObj"); } ICFBamSchemaDefObj schemaDefObj = (ICFBamSchemaDefObj) genDef; List<ICFBamValueObj> schemaTypes = schemaDefObj.getOptionalComponentsTypes(); ICFBamValueObj valueObj; ICFBamId64GenObj genObj; Iterator<ICFBamValueObj> almostDone = schemaTypes.iterator(); List<ICFLibAnyObj> list = new LinkedList<ICFLibAnyObj>(); while (almostDone.hasNext()) { valueObj = almostDone.next(); if (valueObj instanceof ICFBamId64GenObj) { genObj = (ICFBamId64GenObj) valueObj; if (null == genObj.getOptionalLookupDispenser()) { list.add(genObj); } } } return (list.listIterator()); }