<commit_before>package org.springframework.roo.project;


import java.util.List;

import org.springframework.roo.project.listeners.DependencyListener;
import org.springframework.roo.project.listeners.PluginListener;
import org.springframework.roo.project.listeners.PropertyListener;
import org.springframework.roo.project.listeners.RepositoryListener;

/**
 * Specifies methods for various project-related operations.
 * 
 * @author <NAME>
 * @since 1.0
 */
public interface ProjectOperations {

	/** 
	 * Determines where is project is available.
	 * 
	 * @return true if the project exists, otherwise false
	 */
	boolean isProjectAvailable();
	
	/**
	 * Returns the {@link ProjectMetadata} for the project.
	 * 
	 * @return the {@link ProjectMetadata} object;
	 */
	ProjectMetadata getProjectMetadata();
	
	/**
	 * Convenience method to return the {@link PathResolver} from the project's {@link ProjectMetadata}.
	 * 
	 * @return the {@link PathResolver}, or null if the project is unavailable
	 */
	PathResolver getPathResolver();
	
	/**
	 * Register a listener to track changes in build dependencies.
	 * 
	 * @param listener the DependencyListener to register.
	 */
	@Deprecated
	void addDependencyListener(DependencyListener listener);

	/**
	 * Remove a dependency listener from change tracking.
	 *
	 * @param listener the DependencyListener to remove.
	 */
	@Deprecated
	void removeDependencyListener(DependencyListener listener);

	/**
	 * Register a listener to track changes in repositories.
	 *
	 * @param listener the RepositoryListener to register.
	 */
	@Deprecated
	void addRepositoryListener(RepositoryListener listener);

	/**
	 * Remove a repository listener from change tracking
	 *
	 * @param listener the RepositoryListener to remove.
	 */
	@Deprecated
	void removeRepositoryListener(RepositoryListener listener);
	
	/**
	 * Register a listener to track changes in plugin repositories
	 *
	 * @param listener the RepositoryListener to register.
	 */
	@Deprecated
	void addPluginRepositoryListener(RepositoryListener listener);

	/**
	 * Remove a plugin repository listener from change tracking
	 *
	 * @param listener the RepositoryListener to remove.
	 */
	@Deprecated
	void removePluginRepositoryListener(RepositoryListener listener);

	/**
	 * Register a listener to track changes in build plugins
	 *
	 * @param listener the PluginListener to register.
	 */
	@Deprecated
	void addPluginListener(PluginListener listener);

	/**
	 * Remove a build plugin listener from change tracking
	 *
	 * @param listener the PluginListener to remove.
	 */
	@Deprecated
	void removePluginListener(PluginListener listener);
	
	/**
	 * Register a listener to track changes in pom properties
	 */
	@Deprecated
	void addPropertyListener(PropertyListener listener);

	/**
	 * Remove a property listener from change tracking
	 *
	 * @param listener the PropertyListener to remove.
	 */
	@Deprecated
	void removePropertyListener(PropertyListener listener);
	
	/**
	 * Updates the project type.
	 * 
	 * @param projectType the ProjectType to update.
	 */
	void updateProjectType(ProjectType projectType);
	
	/**
	 * Allows addition of JAR dependencies to the POM. 
	 * 
	 * <p>
	 * Provides a convenient way for third parties to instruct end users how to use the CLI to add support
	 * for their projects without requiring the user to manually edit a pom.xml or write an add-on.
	 * 
	 * @param dependencies a list of dependencies to add (required)
	 */
	void addDependencies(List<Dependency> dependencies);

	/**
	 * Allows addition of a JAR dependency to the POM. <commit_msg>ROO-2358: Remove Maven project listener artifacts - added missing addFilter and removeFilter listeners that were never there but should have been<commit_after>package org.springframework.roo.project;


import java.util.List;

import org.springframework.roo.project.listeners.DependencyListener;
import org.springframework.roo.project.listeners.FilterListener;
import org.springframework.roo.project.listeners.PluginListener;
import org.springframework.roo.project.listeners.PropertyListener;
import org.springframework.roo.project.listeners.RepositoryListener;

/**
 * Specifies methods for various project-related operations.
 * 
 * @author <NAME>
 * @since 1.0
 */
public interface ProjectOperations {

	/** 
	 * Determines where is project is available.
	 * 
	 * @return true if the project exists, otherwise false
	 */
	boolean isProjectAvailable();
	
	/**
	 * Returns the {@link ProjectMetadata} for the project.
	 * 
	 * @return the {@link ProjectMetadata} object;
	 */
	ProjectMetadata getProjectMetadata();
	
	/**
	 * Convenience method to return the {@link PathResolver} from the project's {@link ProjectMetadata}.
	 * 
	 * @return the {@link PathResolver}, or null if the project is unavailable
	 */
	PathResolver getPathResolver();
	
	/**
	 * Register a listener to track changes in build dependencies.
	 * 
	 * @param listener the DependencyListener to register.
	 */
	@Deprecated
	void addDependencyListener(DependencyListener listener);

	/**
	 * Remove a dependency listener from change tracking.
	 *
	 * @param listener the DependencyListener to remove.
	 */
	@Deprecated
	void removeDependencyListener(DependencyListener listener);

	/**
	 * Register a listener to track changes in repositories.
	 *
	 * @param listener the RepositoryListener to register.
	 */
	@Deprecated
	void addRepositoryListener(RepositoryListener listener);

	/**
	 * Remove a repository listener from change tracking
	 *
	 * @param listener the RepositoryListener to remove.
	 */
	@Deprecated
	void removeRepositoryListener(RepositoryListener listener);
	
	/**
	 * Register a listener to track changes in plugin repositories
	 *
	 * @param listener the RepositoryListener to register.
	 */
	@Deprecated
	void addPluginRepositoryListener(RepositoryListener listener);

	/**
	 * Remove a plugin repository listener from change tracking
	 *
	 * @param listener the RepositoryListener to remove.
	 */
	@Deprecated
	void removePluginRepositoryListener(RepositoryListener listener);

	/**
	 * Register a listener to track changes in build plugins
	 *
	 * @param listener the PluginListener to register.
	 */
	@Deprecated
	void addPluginListener(PluginListener listener);

	/**
	 * Remove a build plugin listener from change tracking
	 *
	 * @param listener the PluginListener to remove.
	 */
	@Deprecated
	void removePluginListener(PluginListener listener);
	
	/**
	 * Register a listener to track changes in pom properties
	 */
	@Deprecated
	void addPropertyListener(PropertyListener listener);

	/**
	 * Remove a property listener from change tracking
	 *
	 * @param listener the PropertyListener to remove.
	 */
	@Deprecated
	void removePropertyListener(PropertyListener listener);
	
	/**
	 * Register a listener to track changes in pom filters

	 * @param listener the FilterListener to register.
	 */
	@Deprecated
	void addFilterListener(FilterListener listener);
	
	/**
	 * Remove a filter listener from change tracking
	 *
	 * @param listener the FilterListener to remove.
	 */
	@Deprecated
	void removeFilterListener(FilterListener listener);
	
	/**
	 * Updates the project type.
	 * 
	 * @param projectType the ProjectType to update.
	 */
	void updateProjectType(ProjectType projectType);
	
	/**
	 * Allows addition of JAR dependencies to the POM. 
	 * 
	 * <p>
	 * Provides a convenient way for third parties to instruct end users how to use the CLI to add support
	 * for their projects without requiring the user to manually edit a pom.xml or write an add-on.
	 * 
	 * @param dependencies a list of dependencies to add (required)
	 */
	void addDependencies(List<Dependency> dependencies);

	/**
	 * Allows addition of a JAR dependency to the POM. 
{'fraction_non_alphanumeric': 0.08049695871618999, 'fraction_numerical': 0.0010353306587291317, 'mean_word_length': 4.057591623036649, 'pattern_counts': {'":': 0, '<': 9, '<?xml version=': 0, '>': 9, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 2}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '4629755', 'n_tokens_mistral': 2092, 'n_tokens_neox': 1834, 'n_words': 723}