blob: 8e9b61661a99a334f59528c4900c4a2277739936 [file] [log] [blame]
// Copyright (c) 2019, the R8 project authors. Please see the AUTHORS file
// for details. All rights reserved. Use of this source code is governed by a
// BSD-style license that can be found in the LICENSE file.
package java.util;
import java.lang.reflect.Field;
import java.lang.reflect.Modifier;
public class IntSummaryStatisticsConversions {
private static final Field JAVA_LONG_COUNT_FIELD;
private static final Field JAVA_LONG_SUM_FIELD;
private static final Field JAVA_INT_MIN_FIELD;
private static final Field JAVA_INT_MAX_FIELD;
private static final Field JD_LONG_COUNT_FIELD;
private static final Field JD_LONG_SUM_FIELD;
private static final Field JD_INT_MIN_FIELD;
private static final Field JD_INT_MAX_FIELD;
static {
Class<?> javaIntSummaryStatisticsClass = java.util.IntSummaryStatistics.class;
JAVA_LONG_COUNT_FIELD = getField(javaIntSummaryStatisticsClass, "count");
JAVA_LONG_COUNT_FIELD.setAccessible(true);
JAVA_LONG_SUM_FIELD = getField(javaIntSummaryStatisticsClass, "sum");
JAVA_LONG_SUM_FIELD.setAccessible(true);
JAVA_INT_MIN_FIELD = getField(javaIntSummaryStatisticsClass, "min");
JAVA_INT_MIN_FIELD.setAccessible(true);
JAVA_INT_MAX_FIELD = getField(javaIntSummaryStatisticsClass, "max");
JAVA_INT_MAX_FIELD.setAccessible(true);
Class<?> jdIntSummaryStatisticsClass = j$.util.IntSummaryStatistics.class;
JD_LONG_COUNT_FIELD = getField(jdIntSummaryStatisticsClass, "count");
JD_LONG_COUNT_FIELD.setAccessible(true);
JD_LONG_SUM_FIELD = getField(jdIntSummaryStatisticsClass, "sum");
JD_LONG_SUM_FIELD.setAccessible(true);
JD_INT_MIN_FIELD = getField(jdIntSummaryStatisticsClass, "min");
JD_INT_MIN_FIELD.setAccessible(true);
JD_INT_MAX_FIELD = getField(jdIntSummaryStatisticsClass, "max");
JD_INT_MAX_FIELD.setAccessible(true);
}
private IntSummaryStatisticsConversions() {}
private static Field getField(Class<?> clazz, String name) {
try {
return clazz.getDeclaredField(name);
} catch (NoSuchFieldException e) {
throw new Error("Failed summary statistics set-up.", e);
}
}
public static j$.util.IntSummaryStatistics convert(java.util.IntSummaryStatistics stats) {
if (stats == null) {
return null;
}
j$.util.IntSummaryStatistics newInstance = new j$.util.IntSummaryStatistics();
try {
JD_LONG_COUNT_FIELD.set(newInstance, stats.getCount());
JD_LONG_SUM_FIELD.set(newInstance, stats.getSum());
JD_INT_MIN_FIELD.set(newInstance, stats.getMin());
JD_INT_MAX_FIELD.set(newInstance, stats.getMax());
} catch (IllegalAccessException e) {
throw new Error("Failed summary statistics conversion.", e);
}
return newInstance;
}
public static java.util.IntSummaryStatistics convert(j$.util.IntSummaryStatistics stats) {
if (stats == null) {
return null;
}
java.util.IntSummaryStatistics newInstance = new java.util.IntSummaryStatistics();
try {
JAVA_LONG_COUNT_FIELD.set(newInstance, stats.getCount());
JAVA_LONG_SUM_FIELD.set(newInstance, stats.getSum());
JAVA_INT_MIN_FIELD.set(newInstance, stats.getMin());
JAVA_INT_MAX_FIELD.set(newInstance, stats.getMax());
} catch (IllegalAccessException e) {
throw new Error("Failed summary statistics conversion.", e);
}
return newInstance;
}
}