1 /*
2  * Copyright (C) 2009 The Android Open Source Project
3  *
4  * Licensed under the Apache License, Version 2.0 (the "License");
5  * you may not use this file except in compliance with the License.
6  * You may obtain a copy of the License at
7  *
8  *      http://www.apache.org/licenses/LICENSE-2.0
9  *
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an "AS IS" BASIS,
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  * See the License for the specific language governing permissions and
14  * limitations under the License.
15  */
16 
17 package signature.compare.model;
18 
19 import java.util.List;
20 import java.util.Set;
21 
22 import signature.model.ITypeReference;
23 
24 /**
25  * {@code IUpperBoundsDelta} models the delta between two {@link List
26  * <ITypeReference>} instances.
27  * <p>
28  * This interface is aware, that for the first argument, the order of the upper
29  * bounds is relevant (for erasure).
30  */
31 public interface IUpperBoundsDelta extends IDelta<List<ITypeReference>> {
32 
33     /**
34      * Returns the upper bound delta of the first upper bound or {@code null} if
35      * no delta is available.
36      *
37      * @return the upper bound delta of the first upper bound, maybe {@code
38      *         null}
39      */
getFirstUpperBoundDelta()40     ITypeReferenceDelta<?> getFirstUpperBoundDelta();
41 
42     /**
43      * Returns a set of remaining upper bound deltas or {@code null} if no
44      * deltas are available.
45      *
46      * @return a set of remaining upper bound deltas, maybe {@code null}
47      */
getRemainingUpperBoundDeltas()48     Set<ITypeReferenceDelta<?>> getRemainingUpperBoundDeltas();
49 }
50