private static IndexFamilyDto asDto(@Nonnull IndexFamily from, boolean includeChildren) { IndexFamilyDto dto = new IndexFamilyDto(); dto.setId(from.getId()); dto.setName(from.getName()); dto.setArchived(from.getArchived()); if (includeChildren) { dto.setIndices(from.getIndices().stream().map(x -> asDto(x, true)).collect(Collectors.toList())); } dto.setMaximumNumber(from.getMaximumNumber()); dto.setPlatformType(from.getPlatformType() == null ? null : from.getPlatformType().name()); dto.setFakeSequence(from.hasFakeSequence()); dto.setUniqueDualIndex(from.isUniqueDualIndex()); return dto; }
@Override public void setIndices(List<Index> originalIndices) { List<Index> indices = new ArrayList<>(); for (Index index : originalIndices) { if (index != null) { indices.add(index); } } Index.sort(indices); IndexFamily current = null; for (Index index : indices) { if (index == null) continue; if (current == null) { current = index.getFamily(); } else { if (current.getId() != index.getFamily().getId()) { throw new IllegalArgumentException(String.format( "Indices not all from the same family. (%d:%s vs %d:%s)", current.getId(), current.getName(), index.getFamily().getId(), index.getFamily().getName())); } } } this.indices = indices; }
/** * Turns indices into strings for easier comparison and changelog message concatentation. * * @param indices * @return */ private Set<String> stringifyIndices(List<Index> indices) { Set<String> original = new HashSet<>(); for (Index index : indices) { if (index != null && index.getId() != Index.UNSAVED_ID) { original.add(index.getFamily().getName() + " - " + index.getLabel()); } } return original; }
private static boolean hasFakeSequence(PoolableElementView view) { return view.getIndices().stream() .map(Index::getFamily) .anyMatch(f -> f.hasFakeSequence()); }
public static LibraryTemplateDto asDto(@Nonnull LibraryTemplate from) { LibraryTemplateDto dto = null; if (from instanceof DetailedLibraryTemplate) { dto = asDetailedLibraryTemplateDto((DetailedLibraryTemplate) from); } else { dto = new LibraryTemplateDto(); } dto.setId(from.getId()); dto.setAlias(from.getAlias()); dto.setProjectIds(from.getProjects().stream().map(Project::getId).collect(Collectors.toList())); dto.setDefaultVolume(from.getDefaultVolume()); dto.setPlatformType(from.getPlatformType() != null ? from.getPlatformType().name() : null); dto.setLibraryTypeId(from.getLibraryType() != null ? from.getLibraryType().getId() : null); dto.setSelectionTypeId(from.getLibrarySelectionType() != null ? from.getLibrarySelectionType().getId() : null); dto.setStrategyTypeId(from.getLibraryStrategyType() != null ? from.getLibraryStrategyType().getId() : null); dto.setKitDescriptorId(from.getKitDescriptor() != null ? from.getKitDescriptor().getId() : null); dto.setIndexFamilyId(from.getIndexFamily() != null ? from.getIndexFamily().getId() : null); if (from.getIndexFamily() != null) { if (from.getIndexOnes() != null) { dto.setIndexOneIds(from.getIndexOnes().entrySet().stream() .collect(Collectors.toMap(Entry::getKey, entry -> entry.getValue().getId()))); } if (from.getIndexTwos() != null) { dto.setIndexTwoIds(from.getIndexTwos().entrySet().stream() .collect(Collectors.toMap(Entry::getKey, entry -> entry.getValue().getId()))); } } return dto; }
IndexFamily indexFamily = new IndexFamily(); indexFamily.setId(from.getIndexFamilyId()); to.setIndexFamily(indexFamily);
dto.setIndexFamilyName(from.getIndices().get(0).getFamily().getName()); for (Index index : from.getIndices()) { switch (index.getPosition()) {
public String getLabel() { if (getSequence() == null || getFamily().hasFakeSequence()) return getName(); return getName() + " (" + getSequence() + ")"; }