/** * From the columns of the PagedTable, return a List of the Paths that this exporter will use to * find sequences to export. The returned Paths are a subset of the prefixes of the column paths. * eg. if the columns are ("Gene.primaryIdentifier", "Gene.secondaryIdentifier", * "Gene.proteins.primaryIdentifier") return ("Gene", "Gene.proteins"). * * @param pt the PagedTable * @return a list of Paths that have sequence */ public static LinkedHashMap<Path, Integer> getExportClassPaths(PagedTable pt) { LinkedHashMap<Path, Integer> retPaths = new LinkedHashMap<Path, Integer>(); List<Column> columns = pt.getColumns(); for (int index = 0; index < columns.size(); index++) { Path prefix = columns.get(index).getPath().getPrefix(); ClassDescriptor prefixCD = prefix.getLastClassDescriptor(); Class<? extends FastPathObject> prefixClass = DynamicUtil.getSimpleClass(prefixCD.getType()); // Chromosome is treated as a sequence feature in the model if (SequenceFeature.class.isAssignableFrom(prefixClass) && !Chromosome.class.isAssignableFrom(prefixClass)) { if (!retPaths.keySet().contains(prefix)) { retPaths.put(prefix, index); } } } return retPaths; }