@Nullable private static Set<ContentType> stringToTypes(String folderName) { int value; try { value = Integer.parseInt(folderName, 16); } catch (NumberFormatException e) { return null; } ImmutableSet.Builder<ContentType> typesBuilder = ImmutableSet.builder(); for (ContentType type : ExtendedContentType.getAllContentTypes()) { if ((type.getValue() & value) != 0) { typesBuilder.add(type); } } Set<ContentType> types = typesBuilder.build(); if (types.isEmpty()) { return null; } return types; }
@VisibleForTesting @NonNull static String getTaskNamePrefix(@NonNull Transform transform) { StringBuilder sb = new StringBuilder(100); sb.append("transform"); sb.append( transform.getInputTypes() .stream() .map(inputType -> CaseFormat.UPPER_UNDERSCORE.to( CaseFormat.UPPER_CAMEL, inputType.name())) .sorted() // Keep the order stable. .collect(Collectors.joining("And"))) .append("With") .append(capitalize(transform.getName())) .append("For"); return sb.toString(); }
private static String typesToString(@NonNull Set<ContentType> types) { int value = 0; for (ContentType type : types) { value += type.getValue(); } return String.format("%x", value); }