/*
 * Copyright (c) 1997, 2018 Oracle and/or its affiliates. All rights reserved.
 *
 * This program and the accompanying materials are made available under the
 * terms of the Eclipse Distribution License v. 1.0, which is available at
 * http://www.eclipse.org/org/documents/edl-v10.php.
 *
 * SPDX-License-Identifier: BSD-3-Clause
 */

package org.glassfish.pfl.dynamic.codegen.spi ;

import java.util.List ;
import org.glassfish.pfl.basic.contain.Pair;

public interface ImportList {
    
Return a copy of this ImportList.
/** Return a copy of this ImportList. */
ImportList copy() ;
Add a fully-qualified type name to the imports. Returns the Type for the name.
/** Add a fully-qualified type name to the imports. * Returns the Type for the name. */
public Type addImport( final String name ) ; public void addImport( final Type type ) ;
Return whether or not this Type is in the imports.
/** Return whether or not this Type is in the imports. */
public boolean contains( final String name ) ; public boolean contains( final Type type ) ;
Lookup just the className, without package name.
/** Lookup just the className, without package name. */
public Type lookup( final String className ) ;
Return a list of imports as (packageName,className) pairs. The list is sorted lexicographically.
/** Return a list of imports as (packageName,className) pairs. * The list is sorted lexicographically. */
public List<Pair<String,String>> getInOrderList() ; }