class QueryMetricsSnapshot implements QueryMetrics, Externalizable {
        /** */
        private static final long serialVersionUID = 0L;

        /** Minimal query execution time. */
        private long minTime;

        /** Maximum query execution time. */
        private long maxTime;

        /** Average query execution time. */
        private double avgTime;

        /** Count of executed queries. */
        private int execs;

        /** Count of failed queries. */
        private int fails;

        /** Required by {@link Externalizable}. */
        public QueryMetricsSnapshot() {
        }

        /**
         * @param minTime Minimal query execution time.
         * @param maxTime Maximum query execution time.
         * @param avgTime Average query execution time.
         * @param execs  Count of executed queries.
         * @param fails Count of failed queries.
         */
        public QueryMetricsSnapshot(long minTime, long maxTime, double avgTime, int execs, int fails) {
            this.minTime = minTime;
            this.maxTime = maxTime;
            this.avgTime = avgTime;
            this.execs = execs;
            this.fails = fails;
        }

        /** {@inheritDoc} */
        @Override public void writeExternal(ObjectOutput out) throws IOException {
            out.writeLong(minTime);
            out.writeLong(maxTime);
            out.writeDouble(avgTime);
            out.writeInt(execs);
            out.writeInt(fails);
        }

        /** {@inheritDoc} */
        @Override public void readExternal(ObjectInput in) throws IOException, ClassNotFoundException {<FILL_FUNCTION_BODY>}

        /** {@inheritDoc} */
        @Override public long minimumTime() {
            return minTime;
        }

        /** {@inheritDoc} */
        @Override public long maximumTime() {
            return maxTime;
        }

        /** {@inheritDoc} */
        @Override public double averageTime() {
            return avgTime;
        }

        /** {@inheritDoc} */
        @Override public int executions() {
            return execs;
        }

        /** {@inheritDoc} */
        @Override public int fails() {
            return fails;
        }
    }

            minTime = in.readLong();
            maxTime = in.readLong();
            avgTime = in.readDouble();
            execs = in.readInt();
            fails = in.readInt();
        
<no_super_class>