class CacheInfo implements Serializable {
        /** */
        private static final long serialVersionUID = 0L;

        /** */
        @GridToStringInclude
        private StoredCacheData cacheData;

        /** */
        @GridToStringInclude
        private CacheType cacheType;

        /** */
        @GridToStringInclude
        private boolean sql;

        /** Flags added for future usage. */
        private long flags;

        /** Statically configured flag */
        private boolean staticallyConfigured;

        /**
         * @param cacheData Cache data.
         * @param cacheType Cache type.
         * @param sql SQL flag - {@code true} if cache was created with {@code CREATE TABLE}.
         * @param flags Flags (for future usage).
         * @param staticallyConfigured {@code true} if it was configured by static config and {@code false} otherwise.
         */
        public CacheInfo(StoredCacheData cacheData, CacheType cacheType, boolean sql, long flags,
            boolean staticallyConfigured) {
            this.cacheData = cacheData;
            this.cacheType = cacheType;
            this.sql = sql;
            this.flags = flags;
            this.staticallyConfigured = staticallyConfigured;
        }

        /**
         * @return Cache data.
         */
        public StoredCacheData cacheData() {
            return cacheData;
        }

        /**
         * @return Cache type.
         */
        public CacheType cacheType() {
            return cacheType;
        }

        /**
         * @return SQL flag - {@code true} if cache was created with {@code CREATE TABLE}.
         */
        public boolean sql() {
            return sql;
        }

        /**
         * @return {@code true} if it was configured by static config and {@code false} otherwise.
         */
        public boolean isStaticallyConfigured() {
            return staticallyConfigured;
        }

        /**
         * @return Long which bits represent some flags.
         */
        public long getFlags() {
            return flags;
        }

        /**
         * @param ois ObjectInputStream.
         */
        private void readObject(ObjectInputStream ois)
            throws IOException, ClassNotFoundException {<FILL_FUNCTION_BODY>}

        /** {@inheritDoc} */
        @Override public String toString() {
            return S.toString(CacheInfo.class, this);
        }
    }

            ObjectInputStream.GetField gf = ois.readFields();

            cacheData = (StoredCacheData)gf.get("cacheData", null);
            cacheType = (CacheType)gf.get("cacheType", null);
            sql = gf.get("sql", false);
            flags = gf.get("flags", 0L);
            staticallyConfigured = gf.get("staticallyConfigured", true);
        
<no_super_class>