    001    /*
    002     * Copyright (C) 2011 The Guava Authors
    003     *
    004     * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
    005     * in compliance with the License.  You may obtain a copy of the License at
    006     *
    007     * http://www.apache.org/licenses/LICENSE-2.0
    008     *
    009     * Unless required by applicable law or agreed to in writing, software distributed under the License
    010     * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
    011     * or implied.  See the License for the specific language governing permissions and limitations
    012     * under the License.
    013     */
    014
    015    package com.google.common.cache;
    016
    017    import com.google.common.annotations.Beta;
    018
    019    /**
    020     * Calculates the weights of cache entries.
    021     *
    022     * @author Charles Fry
    023     * @since 11.0
    024     */
    025    @Beta
    026    public interface Weigher<K, V> {
    027
    028      /**
    029       * Returns the weight of a cache entry. There is no unit for entry weights; rather they are simply
    030       * relative to each other.
    031       *
    032       * @return the weight of the entry; must be non-negative
    033       */
    034      int weigh(K key, V value);
    035    }