• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*
2  * Copyright (C) 2024 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 com.android.tools.metalava.model.snapshot
18 
19 import com.android.tools.metalava.model.BaseItemVisitor
20 import com.android.tools.metalava.model.ClassItem
21 import com.android.tools.metalava.model.Codebase
22 import com.android.tools.metalava.model.ConstructorItem
23 import com.android.tools.metalava.model.DelegatedVisitor
24 import com.android.tools.metalava.model.FieldItem
25 import com.android.tools.metalava.model.MethodItem
26 import com.android.tools.metalava.model.PackageItem
27 import com.android.tools.metalava.model.PropertyItem
28 import com.android.tools.metalava.model.TypeAliasItem
29 
30 /**
31  * A [BaseItemVisitor] that will delegate to [delegate].
32  *
33  * Preserves class nesting as required by the [delegate]'s [DelegatedVisitor.requiresClassNesting]
34  * property.
35  */
36 open class NonFilteringDelegatingVisitor(private val delegate: DelegatedVisitor) :
37     BaseItemVisitor(
38         preserveClassNesting = delegate.requiresClassNesting,
39         // [DelegatedVisitor] does not support visiting parameters.
40         visitParameterItems = false,
41     ) {
42 
visitCodebasenull43     override fun visitCodebase(codebase: Codebase) {
44         delegate.visitCodebase(codebase)
45     }
46 
afterVisitCodebasenull47     override fun afterVisitCodebase(codebase: Codebase) {
48         delegate.afterVisitCodebase(codebase)
49     }
50 
visitPackagenull51     override fun visitPackage(pkg: PackageItem) {
52         delegate.visitPackage(pkg)
53     }
54 
afterVisitPackagenull55     override fun afterVisitPackage(pkg: PackageItem) {
56         delegate.afterVisitPackage(pkg)
57     }
58 
visitClassnull59     override fun visitClass(cls: ClassItem) {
60         delegate.visitClass(cls)
61     }
62 
afterVisitClassnull63     override fun afterVisitClass(cls: ClassItem) {
64         delegate.afterVisitClass(cls)
65     }
66 
visitConstructornull67     override fun visitConstructor(constructor: ConstructorItem) {
68         delegate.visitConstructor(constructor)
69     }
70 
visitMethodnull71     override fun visitMethod(method: MethodItem) {
72         delegate.visitMethod(method)
73     }
74 
visitFieldnull75     override fun visitField(field: FieldItem) {
76         delegate.visitField(field)
77     }
78 
visitPropertynull79     override fun visitProperty(property: PropertyItem) {
80         delegate.visitProperty(property)
81     }
82 
visitTypeAliasnull83     override fun visitTypeAlias(typeAlias: TypeAliasItem) {
84         delegate.visitTypeAlias(typeAlias)
85     }
86 }
87