1ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov/*
2ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov * Copyright (C) 2012 The Guava Authors
3ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov *
4ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov * Licensed under the Apache License, Version 2.0 (the "License");
5ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov * you may not use this file except in compliance with the License.
6ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov * You may obtain a copy of the License at
7ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann *
8ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov * http://www.apache.org/licenses/LICENSE-2.0
9ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov *
10ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov * Unless required by applicable law or agreed to in writing, software
11ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov * distributed under the License is distributed on an "AS IS" BASIS,
12ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov * See the License for the specific language governing permissions and
14ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov * limitations under the License.
15ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov */
16ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov
17ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganovpackage com.google.common.collect.testing;
18ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov
19e6986e1e8d4a57987f47c215490cb080a65ee29aSvet Ganovimport com.google.common.annotations.GwtCompatible;
20e6986e1e8d4a57987f47c215490cb080a65ee29aSvet Ganov
21e6986e1e8d4a57987f47c215490cb080a65ee29aSvet Ganov/**
22ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov * A generator that relies on a preexisting generator for most of its work. For example, a derived
23ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov * iterator generator may delegate the work of creating the underlying collection to an inner
24ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov * collection generator.
25ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov *
26ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov * <p>{@code GwtTestSuiteGenerator} expects every {@code DerivedIterator} implementation to provide
27ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov * a one-arg constructor accepting its inner generator as an argument). This requirement enables it
28ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov * to generate source code (since GWT cannot use reflection to generate the suites).
29ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov *
30ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov * @author Chris Povirk
31ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov */
32ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov@GwtCompatible
33ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganovpublic interface DerivedGenerator {
34ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov  TestSubjectGenerator<?> getInnerGenerator();
35ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov}
36ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov