org.schmant.project
Interface Project

All Known Subinterfaces:
IntelliJJavaProject, JavaProject
All Known Implementing Classes:
AbstractJavaProject, AbstractProject, EclipseJavaProjectImpl, IntelliJJavaProjectImpl

public interface Project

A Project is an abstraction of a … project. This can for instance be a Java project in an Eclipse Workspace (a ProjectRepository).

A project is of one or more ProjectType:s and its contents live in a DirectoryView.

Project objects should be immutable value objects. They should not contain any mutable internal state.

Since:
0.5
Author:
Karl Gustafsson
See Also:
ProjectRepository

Method Summary
 DirectoryView getDirectory()
          Get the project's home directory.
 String getName()
          Get the name of this project.
 Set<ProjectType> getTypes()
          Get the project types for the project.
 boolean isOfType(ProjectType t)
          Is this project of the specified type?
 

Method Detail

getName

String getName()
Get the name of this project. It is up to the ProjectRepository implementation to decide how projects should be named.

Returns:
The project's name.

getDirectory

DirectoryView getDirectory()
Get the project's home directory.

Returns:
The project's home directory.

getTypes

Set<ProjectType> getTypes()
Get the project types for the project.

Returns:
The project types.

isOfType

boolean isOfType(ProjectType t)
Is this project of the specified type?

Parameters:
t - The project type.
Returns:
true if the project is of the specified type.