private T fromInputStream()

in src/main/java/org/apache/maven/buildcache/xml/XmlService.java [136:154]


    private <T> T fromInputStream(Class<T> clazz, InputStream inputStream) {
        try {
            if (clazz == Build.class) {
                return clazz.cast(new BuildCacheBuildXpp3Reader().read(inputStream));
            } else if (clazz == CacheConfig.class) {
                return clazz.cast(new BuildCacheConfigXpp3Reader().read(inputStream));
            } else if (clazz == Diff.class) {
                return clazz.cast(new BuildCacheDiffXpp3Reader().read(inputStream));
            } else if (clazz == CacheReport.class) {
                return clazz.cast(new BuildCacheReportXpp3Reader().read(inputStream));
            } else {
                throw new IllegalArgumentException("Unsupported type " + clazz);
            }
        } catch (IOException | XmlPullParserException e) {
            throw new RuntimeException("Unable to parse cache xml element", e);
        } finally {
            closeQuietly(inputStream);
        }
    }