All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.google.gwt.dev.cfg.Library Maven / Gradle / Ivy

There is a newer version: 2.10.0
Show newest version
/*
 * Copyright 2013 Google Inc.
 *
 * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
 * in compliance with the License. You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software distributed under the License
 * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
 * or implied. See the License for the specific language governing permissions and limitations under
 * the License.
 */
package com.google.gwt.dev.cfg;

import com.google.gwt.dev.javac.CompilationUnit;
import com.google.gwt.dev.jjs.PermutationResult;
import com.google.gwt.dev.resource.Resource;
import com.google.gwt.dev.util.PersistenceBackedObject;
import com.google.gwt.thirdparty.guava.common.collect.Multimap;

import java.io.InputStream;
import java.util.Set;

/**
 * Encapsulates the data resulting from compilation of a single module, with the intention of
 * facilitating efficient separate compilation.
* * The contained data is a combination of raw output as well as indexes that represent compiler * state which would be expensive to recalculate.
* * Implementers are encouraged to load their contents lazily to minimize work. */ public interface Library { /** * Returns a resource handle or null for the provided path. */ Resource getBuildResourceByPath(String buildResourcePath); /** * Returns the set of paths of build resources. Facilitates LibraryGroup's fast single resource * retrieval across large groups of provided libraries. */ Set getBuildResourcePaths(); /** * Returns the set of class file paths. Facilitates LibraryGroup's fast single class file * retrieval across large groups of provided libraries. */ Set getClassFilePaths(); /** * Returns a class file input stream or null for the provided path. */ InputStream getClassFileStream(String classFilePath); /** * Returns the compilation unit with the given type name. */ CompilationUnit getCompilationUnitByTypeName(String typeName); /** * Returns the set of compilation unit type names. Facilitates LibraryGroup's fast single * compilation unit retrieval across large groups of provided libraries. */ Set getCompilationUnitTypeNames(); /** * Returns the set of names of dependency libraries. Facilitates LibraryGroup's library tree * analysis for link ordering and partial generator execution. */ Set getDependencyLibraryNames(); /** * Returns the name of the library. Should be unique within the library dependency tree. */ String getLibraryName(); /** * Returns a mapping from binding property name to a list of values which were made legal for that * binding property by this library. Facilitates partial generator execution. */ Multimap getNewBindingPropertyValuesByName(); /** * Returns a mapping from configuration property name to a value or list of values which were set * for that configuration property by this library. Facilitates partial generator execution. */ Multimap getNewConfigurationPropertyValuesByName(); /** * Returns a handle to the serialized permutation result of this library. Final linking relies on * the permutation result contents. */ // TODO(stalcup): refactor PersistenceBackedObject name to PersistedObjectHandle or remove it // completely PersistenceBackedObject getPermutationResultHandle(); /** * Returns a resource handle or null for the provided path. */ Resource getPublicResourceByPath(String path); /** * Returns the set of paths of public resources. Facilitates LibraryGroup's fast single resource * retrieval across large groups of provided libraries. */ Set getPublicResourcePaths(); /** * Returns the set of names of generators which were executed for this library and thus whose * output is current for this library and all of its libraries. Facilitates partial generator * execution. */ Set getRanGeneratorNames(); /** * Returns the set of names of types which are the subject of GWT.create() calls in source code * for this library. This list of types is needed for generator execution and reconstructing this * list from source would be very costly. */ Set getReboundTypeNames(); /** * Returns the set of super source class file paths. Facilitates LibraryGroup's fast single class * file retrieval across large groups of provided libraries and makes possible the prioritization * of super source over regular class files. */ Set getSuperSourceClassFilePaths(); /** * Returns the set of super source compilation unit type names. Facilitates LibraryGroup's fast * compilation unit retrieval across large groups of provided libraries and makes possible the * prioritization of super source over regular compilation units. */ Set getSuperSourceCompilationUnitTypeNames(); }




© 2015 - 2024 Weber Informatics LLC | Privacy Policy