aboutsummaryrefslogtreecommitdiffstats
path: root/bundle-plugin/src/main/java/com/yahoo/container/plugin/classanalysis/ImportCollector.java
blob: 00be2022e304e0e334710d69ef796add8ac0fe44 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
// Copyright Vespa.ai. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
package com.yahoo.container.plugin.classanalysis;

import org.objectweb.asm.Type;

import java.util.Collection;
import java.util.Optional;
import java.util.Set;

/**
 * @author ollivir
 */
public interface ImportCollector {

    Set<String> imports();

    default void addImportWithTypeDesc(String typeDescriptor) {
        addImport(Type.getType(typeDescriptor));
    }

    default void addImport(Type type) {
        addImport(Analyze.getClassName(type));
    }

    default void addImportWithInternalName(String name) {
        addImport(Analyze.internalNameToClassName(name));
    }

    default void addImports(Collection<String> imports) {
        imports().addAll(imports);
    }

    default void addImport(Optional<String> anImport) {
        anImport.ifPresent(pkg -> imports().add(pkg));
    }

}