public static Collection parseImageData()

in google-cloud-server-base/src/main/java/jetbrains/buildServer/clouds/google/GoogleUtils.java [26:49]


    public static <T extends CloudImageDetails> Collection<T> parseImageData(Class<T> clazz, final CloudClientParameters params) {
        Gson gson = new Gson();
        final String imageData = StringUtil.emptyIfNull(params.getParameter(CloudImageParameters.SOURCE_IMAGES_JSON));
        if (StringUtil.isEmpty(imageData)) {
            return Collections.emptyList();
        }

        final ListParametrizedType listType = new ListParametrizedType(clazz);
        final List<T> images = gson.fromJson(imageData, listType);
        if (CloudImagePasswordDetails.class.isAssignableFrom(clazz)) {
            final String passwordData = params.getParameter("secure:passwords_data");
            final Map<String, String> data = gson.fromJson(passwordData, stringStringMapType);
            if (data != null) {
                for (T image : images) {
                    final CloudImagePasswordDetails userImage = (CloudImagePasswordDetails) image;
                    if (data.get(image.getSourceId()) != null) {
                        userImage.setPassword(data.get(image.getSourceId()));
                    }
                }
            }
        }

        return new ArrayList<>(images);
    }