com.google.gwt.core.ext.RebindMode.java Source code

Java tutorial

Introduction

Here is the source code for com.google.gwt.core.ext.RebindMode.java

Source

/*
 * Copyright 2011 Google Inc.
 *
 * Licensed under the Apache License, Version 2.0 (the "License"); you may not
 * use this file except in compliance with the License. You may obtain a copy of
 * the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
 * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
 * License for the specific language governing permissions and limitations under
 * the License.
 */
package com.google.gwt.core.ext;

/**
 * A mode to indicate how incremental generator output should be integrated by
 * the deferred binding implementation. The RebindMode is included as a member
 * of the {@link RebindResult} returned by
 * {@link IncrementalGenerator#generateIncrementally}. It is up to each
 * generator implementation to determine the conditions for reuse of previously
 * generated cached output.
 *
 * @see RebindResult
 * @see IncrementalGenerator#generateIncrementally
 */
public enum RebindMode {

    /**
     * Indicates no generated code is needed to satisfy this rebind. This mode can
     * be used in cases where the requested type can be used directly as a default
     * instantiable class, or in cases where a generator determines it has already
     * run for the requested type in the current context (e.g. via a failed call
     * to {@link GeneratorContext#tryCreate}).
     */
    USE_EXISTING,

    /**
     * Indicates only newly generated output should be used. All generated output
     * will be cached.
     */
    USE_ALL_NEW,

    /**
     * Indicates only newly generated output should be used, and no output should
     * be cached. This mode should be used when no caching can be taken advantage
     * of, such as for generators which don't implement
     * {@link IncrementalGenerator#generateIncrementally}.
     */
    USE_ALL_NEW_WITH_NO_CACHING,

    /**
     * Indicates nothing new was generated, only cached output previously
     * generated should be used.
     */
    USE_ALL_CACHED,

    /**
     * Indicates that a mixture of newly generated and previously cached output
     * should be used. Types marked with a successful call to
     * {@link GeneratorContext#tryReuseTypeFromCache} should be reused from cache,
     * while everything else committed to the context should be treated as freshly
     * generated output. A new composite cache entry will be created which
     * combines the freshly generated output and the output reused from cache.
     */
    USE_PARTIAL_CACHED
}