01: /*
02: * uDig - User Friendly Desktop Internet GIS client http://udig.refractions.net (C) 2004,
03: * Refractions Research Inc. This library is free software; you can redistribute it and/or modify it
04: * under the terms of the GNU Lesser General Public License as published by the Free Software
05: * Foundation; version 2.1 of the License. This library is distributed in the hope that it will be
06: * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
07: * FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.
08: */
09: package net.refractions.udig.project.internal;
10:
11: import java.util.List;
12:
13: import org.eclipse.emf.common.util.URI;
14: import org.eclipse.emf.ecore.EObject;
15:
16: /**
17: * TODO Purpose of net.refractions.udig.project.internal
18: * <p>
19: * </p>
20: *
21: * @author Jesse
22: * @since 1.0.0
23: * @model
24: */
25: public interface ProjectRegistry extends EObject {
26:
27: /**
28: * <!-- begin-user-doc --> <!-- end-user-doc -->
29: * @generated
30: */
31: String copyright = "uDig - User Friendly Desktop Internet GIS client http://udig.refractions.net (C) 2004, Refractions Research Inc. This library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; version 2.1 of the License. This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details."; //$NON-NLS-1$
32:
33: /**
34: * Will create or return the default project. This project is called: workspace/newProject.udig
35: * (in english versions)
36: *
37: * @return the default project
38: */
39: public Project getDefaultProject();
40:
41: /**
42: * Returns the last selected/modified project
43: *
44: * @return the last selected/modified project
45: * @model transient="true"
46: */
47: public Project getCurrentProject();
48:
49: /**
50: * Sets the value of the '{@link net.refractions.udig.project.internal.ProjectRegistry#getCurrentProject <em>Current Project</em>}' reference.
51: * <!-- begin-user-doc --> <!-- end-user-doc -->
52: * @param value the new value of the '<em>Current Project</em>' reference.
53: * @see #getCurrentProject()
54: * @generated
55: */
56: void setCurrentProject(Project value);
57:
58: /**
59: * Returns the Project that is associated with the filename.
60: * <p>
61: * If the Project is not part of the ProjectRegistry it is loaded.
62: * </p>
63: * <p>
64: * <ul>
65: * <li>Loads projects when required.</li>
66: * </ul>
67: *
68: * @model
69: * @param uri The file name of the Project
70: * @return The Project that maps to the file indicated by name
71: */
72: public Project getProject(URI uri);
73:
74: /**
75: * Returns the Project that is associated with the filename.
76: * <p>
77: * If the Project is not part of the ProjectRegistry it is loaded.
78: * </p>
79: * <p>
80: * <ul>
81: * <li>Loads projects when required.</li>
82: * </ul>
83: *
84: * @model
85: * @param uri The file name of the Project
86: * @return The Project that maps to the file indicated by name
87: */
88: public Project getProject(String projectPath);
89:
90: /**
91: * @model type="Project" containment="false" resolveProxies="true"
92: * @return All the projects registered with the ProjectRegistry. This is a muteable list.
93: */
94: public List<Project> getProjects();
95:
96: }
|