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

org.apache.royale.compiler.internal.projects.ISourceFileHandler Maven / Gradle / Ivy

There is a newer version: 0.9.12
Show newest version
/*
 *
 *  Licensed to the Apache Software Foundation (ASF) under one or more
 *  contributor license agreements.  See the NOTICE file distributed with
 *  this work for additional information regarding copyright ownership.
 *  The ASF licenses this file to You 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 org.apache.royale.compiler.internal.projects;

import org.apache.royale.compiler.units.ICompilationUnit;

/**
 * Factory interface for creating CompilationUnits.
 */
public interface ISourceFileHandler
{
    /**
     * Gets an array of Strings containing the file extensions that handler
     * supports.
     * 

* Caller should not modify returned array. * * @return Array of Strings containing the file extensions that handler * supports. */ String[] getExtensions(); /** * Determines if a new {@link ICompilationUnit} should be created * for the specified file, qualified name, and locale. * @param project {@link CompilerProject} For which a {@link ICompilationUnit} would be needed. * @param path Absolute file name for which a {@link ICompilationUnit} would be needed. * @param locale locale of the file if the file is locale dependent or * null if the file is not locale dependent. * @return true if a new {@link ICompilationUnit} should be created, false otherwise. */ boolean needCompilationUnit(CompilerProject project, String path, String qname, String locale); /** * Creates a new {@link ICompilationUnit} instance for the specified project * and file. * * @param project {@link CompilerProject} the new {@link ICompilationUnit} * will be added to. * @param path Path of the file which should be parsed by the new * {@link ICompilationUnit}. * @param priority {@link DefinitionPriority.BasePriority} used to determine * if definitions defined by the new {@link ICompilationUnit} shadow * definitions defined by other {@link ICompilationUnit}s. * @param order The index of the entry in the source path or source list * that is causing this method to be called. * @param qname The fully-qualified name of the one externally-visible * definition expected to be found in this compilation unit, or null if none * is expected. This name is determined from the name of the file and the * file's location relative to the source path. * @param locale locale of the file if the file is locale dependent or * null if the file is not locale dependent. * @return A new {@link ICompilationUnit}. */ ICompilationUnit createCompilationUnit(CompilerProject project, String path, DefinitionPriority.BasePriority priority, int order, String qname, String locale); /** * Determines if the handler can create invisible compilation units. * * @return true if the handler can create invisible compilation units, false * otherwise. */ boolean canCreateInvisibleCompilationUnit(); }





© 2015 - 2025 Weber Informatics LLC | Privacy Policy