1f8057104af9cae031b544e971a52adafa7c0d9eThe Android Open Source Project/*
2f8057104af9cae031b544e971a52adafa7c0d9eThe Android Open Source Project * Copyright (C) 2009 The Android Open Source Project
3f8057104af9cae031b544e971a52adafa7c0d9eThe Android Open Source Project *
4f8057104af9cae031b544e971a52adafa7c0d9eThe Android Open Source Project * Licensed under the Apache License, Version 2.0 (the "License");
5f8057104af9cae031b544e971a52adafa7c0d9eThe Android Open Source Project * you may not use this file except in compliance with the License.
6f8057104af9cae031b544e971a52adafa7c0d9eThe Android Open Source Project * You may obtain a copy of the License at
7f8057104af9cae031b544e971a52adafa7c0d9eThe Android Open Source Project *
8f8057104af9cae031b544e971a52adafa7c0d9eThe Android Open Source Project *      http://www.apache.org/licenses/LICENSE-2.0
9f8057104af9cae031b544e971a52adafa7c0d9eThe Android Open Source Project *
10f8057104af9cae031b544e971a52adafa7c0d9eThe Android Open Source Project * Unless required by applicable law or agreed to in writing, software
11f8057104af9cae031b544e971a52adafa7c0d9eThe Android Open Source Project * distributed under the License is distributed on an "AS IS" BASIS,
12f8057104af9cae031b544e971a52adafa7c0d9eThe Android Open Source Project * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13f8057104af9cae031b544e971a52adafa7c0d9eThe Android Open Source Project * See the License for the specific language governing permissions and
14f8057104af9cae031b544e971a52adafa7c0d9eThe Android Open Source Project * limitations under the License.
15f8057104af9cae031b544e971a52adafa7c0d9eThe Android Open Source Project */
16f8057104af9cae031b544e971a52adafa7c0d9eThe Android Open Source Project
17f8057104af9cae031b544e971a52adafa7c0d9eThe Android Open Source Projectpackage signature.model;
18f8057104af9cae031b544e971a52adafa7c0d9eThe Android Open Source Project
19f8057104af9cae031b544e971a52adafa7c0d9eThe Android Open Source Projectimport java.util.List;
20f8057104af9cae031b544e971a52adafa7c0d9eThe Android Open Source Project
21f8057104af9cae031b544e971a52adafa7c0d9eThe Android Open Source Project/**
22f8057104af9cae031b544e971a52adafa7c0d9eThe Android Open Source Project * {@code IGenericDeclaration} is the common base interface for elements which
23f8057104af9cae031b544e971a52adafa7c0d9eThe Android Open Source Project * can define type variables.
24f8057104af9cae031b544e971a52adafa7c0d9eThe Android Open Source Project */
25f8057104af9cae031b544e971a52adafa7c0d9eThe Android Open Source Projectpublic interface IGenericDeclaration {
26f8057104af9cae031b544e971a52adafa7c0d9eThe Android Open Source Project
27f8057104af9cae031b544e971a52adafa7c0d9eThe Android Open Source Project    /**
28f8057104af9cae031b544e971a52adafa7c0d9eThe Android Open Source Project     * Returns a list of all defined type variables on this generic declaration.
29f8057104af9cae031b544e971a52adafa7c0d9eThe Android Open Source Project     *
30f8057104af9cae031b544e971a52adafa7c0d9eThe Android Open Source Project     * @return a list of all defined type variables
31f8057104af9cae031b544e971a52adafa7c0d9eThe Android Open Source Project     */
32f8057104af9cae031b544e971a52adafa7c0d9eThe Android Open Source Project    List<ITypeVariableDefinition> getTypeParameters();
33f8057104af9cae031b544e971a52adafa7c0d9eThe Android Open Source Project
34f8057104af9cae031b544e971a52adafa7c0d9eThe Android Open Source Project    /**
35f8057104af9cae031b544e971a52adafa7c0d9eThe Android Open Source Project     * Returns the class definition which declares this element or {@code null}
36f8057104af9cae031b544e971a52adafa7c0d9eThe Android Open Source Project     * if this declaration is a top level class definition.
37f8057104af9cae031b544e971a52adafa7c0d9eThe Android Open Source Project     *
38f8057104af9cae031b544e971a52adafa7c0d9eThe Android Open Source Project     * @return the class definition which declares this element or {@code null}
39f8057104af9cae031b544e971a52adafa7c0d9eThe Android Open Source Project     */
40f8057104af9cae031b544e971a52adafa7c0d9eThe Android Open Source Project    IClassDefinition getDeclaringClass();
41f8057104af9cae031b544e971a52adafa7c0d9eThe Android Open Source Project}
42