org.springframework.ide.eclipse.beans.core.model.IBeansProject.java Source code

Java tutorial

Introduction

Here is the source code for org.springframework.ide.eclipse.beans.core.model.IBeansProject.java

Source

/*******************************************************************************
 * Copyright (c) 2004, 2013 Spring IDE Developers
 * All rights reserved. This program and the accompanying materials
 * are made available under the terms of the Eclipse Public License v1.0
 * which accompanies this distribution, and is available at
 * https://www.eclipse.org/legal/epl-v10.html
 *
 * Contributors:
 *     Spring IDE Developers - initial API and implementation
 *******************************************************************************/
package org.springframework.ide.eclipse.beans.core.model;

import java.util.Set;

import org.eclipse.core.resources.IFile;
import org.eclipse.core.resources.IProject;
import org.springframework.ide.eclipse.core.model.IResourceModelElement;

/**
 * This interface provides information for a Spring Beans project.
 * @author Torsten Juergeleit
 * @author Dave Watkins
 * @author Christian Dupuis
 * @author Martin Lippert
 */
public interface IBeansProject extends IBeansModelElement, IResourceModelElement, IBeanClassAware {

    /** File name of the Spring Beans project description pre 2.5.2 */
    String DESCRIPTION_FILE_OLD = ".springBeans";

    /** File name of the Spring Beans project description */
    String DESCRIPTION_FILE = DESCRIPTION_FILE_OLD; //".settings/" + BeansCorePlugin.PLUGIN_ID;

    /** Default file extension for beans config files */
    String DEFAULT_CONFIG_SUFFIX = "xml";

    /** Default specifying if imports should be processed */
    boolean DEFAULT_IMPORTS_ENABLED = false;

    /**
     * Returns corresponding Eclipse project.
     */
    IProject getProject();

    /**
     * Returns a list of file suffixes for <code>IBeansConfig</code> files.
     * @since 2.0.2
     */
    Set<String> getConfigSuffixes();

    /**
     * Returns a list of file extensions for <code>IBeansConfig</code> files.
     * @deprecated use {@link #getConfigSuffixes()} instead.
     */
    @Deprecated
    Set<String> getConfigExtensions();

    /**
     * Returns true if given config suffix belongs to the list of Spring bean config file suffixes which are stored in
     * the project description.
     * @since 2.0.2
     */
    boolean hasConfigSuffix(String suffix);

    /**
     * Returns true if given config extension belongs to the list of Spring bean config file extensions which are stored
     * in the project description.
     * @deprecated use {@link #hasConfigSuffix(String)} instead.
     */
    @Deprecated
    boolean hasConfigExtension(String extension);

    /**
     * Returns true if given file belongs to the list of Spring bean config files which are stored in the project
     * description.
     */
    boolean hasConfig(IFile file);

    /**
     * Returns true if given config name belongs to the list of Spring bean config files which are stored in the project
     * description.
     */
    boolean hasConfig(String configName);

    /**
     * Returns true if given file belongs to the list of Spring bean config files which are stored in the project
     * description, including imported beans, if includeImported is set to true.
     * @since 3.2.0
     */
    boolean hasConfig(IFile configFile, String configName, boolean includeImported);

    /**
     * Returns <code>IBeansConfig</code> for given config file.
     * @deprecated
     */
    IBeansConfig getConfig(IFile configFile);

    /**
     * Returns <code>IBeansConfig</code> of given name.
     */
    IBeansConfig getConfig(String configName);

    /**
     * Returns <code>IBeansConfig</code> for the given config file. Includes imported {@link IImportedBeansConfig} in
     * the search if <code>includeImported</code> is true.
     * @since 2.0.3
     */
    IBeansConfig getConfig(IFile configFile, boolean includeImported);

    /**
     * Returns all <code>IBeansConfig</code> for the given config file. Includes imported {@link IImportedBeansConfig}
     * in the search if <code>includeImported</code> is true.
     * @since 2.0.3
     */
    Set<IBeansConfig> getConfigs(IFile configFile, boolean includeImported);

    /**
     * Returns a collection of all configs defined in this project.
     */
    Set<IBeansConfig> getConfigs();

    /**
     * Returns true if a config set with the given name is defined within this project.
     */
    boolean hasConfigSet(String configSetName);

    /**
     * Returns <code>IBeansConfigSet</code> of given name.
     */
    public IBeansConfigSet getConfigSet(String configSetName);

    /**
     * Returns a list of config sets defined within this project.
     */
    Set<IBeansConfigSet> getConfigSets();

    /**
     * Returns true of this project should process imports in {@link IBeansConfig}.
     * @return true if imports should be processed for this project
     * @since 2.0.3
     */
    boolean isImportsEnabled();

    /**
     * Returns true if this project's settings can be changed
     * @return true if this project can be changed.
     * @since 2.0.3
     * @deprecated this is now correctly handled internally using the team provider API
     */
    @Deprecated
    boolean isUpdatable();

    /**
     * Returns true if this projects settings for auto-configured bean configs is persisted.
     * The persistence for the auto-config beans configs were introduced with version 3.5.0
     * and therefore the IDE needs to treat older projects differently
     * 
     * @return true, if the auto-config state was read from persistent project storage (.springBeans file)
     * @since 3.5.0
     */
    boolean isAutoConfigStatePersisted();

}