class Utils {

        private Utils(){}

        public Object toJavaType(Object obj) {
            return AbstractScriptFactory.this.convertToJavaType(obj);
        }

        public long now() {
            return System.currentTimeMillis();
        }

        public String now(String format) {
            return LocalDateTime.now().format(DateTimeFormatter.ofPattern(format));
        }

        public byte[] newByteArray(int size) {
            return new byte[size];
        }

        public int[] newIntArray(int size) {
            return new int[size];
        }

        public long[] newLongArray(int size) {
            return new long[size];
        }

        public Map<Object, Object> newMap() {
            return new HashMap<>();
        }

        public List<Object> newList() {
            return new ArrayList<>();
        }

        public String toJsonString(Object obj){
            return ObjectMappers.toJsonString(toJavaType(obj));
        }

        public Object parseJson(String json){
            return ObjectMappers.parseJson(json,Object.class);
        }

        public Object max(Object... params) {
            Object max = null;
            for (Object param : params) {
                if (param instanceof Map) {
                    param = ((Map<?, ?>) param).values();
                }
                if (param instanceof Collection) {
                    param = max(((Collection<?>) param).toArray());
                }
                if (max == null) {
                    max = param;
                    continue;
                }
                if (CompareUtils.compare(max, param) < 0) {
                    max = param;
                }
            }
            return max;
        }

        public Object min(Object... params) {<FILL_FUNCTION_BODY>}

        public String sha1Hex(String obj) {
            if (null == obj) {
                return null;
            }
            return DigestUtils.sha1Hex(obj);
        }

        public String md5Hex(String obj) {
            if (null == obj) {
                return null;
            }
            return DigestUtils.md5Hex(obj);
        }

    }

            Object min = null;
            for (Object param : params) {

                if (param instanceof Map) {
                    param = ((Map<?, ?>) param).values();
                }
                if (param instanceof Collection) {
                    param = min(((Collection<?>) param).toArray());
                }
                if (min == null) {
                    min = param;
                    continue;
                }
                if (CompareUtils.compare(min, param) > 0) {
                    min = param;
                }
            }
            return min;
        
<no_super_class>