| <?xml version="1.0" encoding="UTF-8"?> |
| <html> |
| <head> |
| <meta |
| name="root" |
| content="../../../../../" /> |
| <title>component core resources api overview</title> |
| </head> |
| |
| <body> |
| <abstract> |
| The ComponentCore Virtual Path API allows clients to navigate |
| logical collections of files within Eclipse projects using API |
| similar to the Eclipse IResource API. |
| </abstract> |
| |
| <a name="top"/> |
| <!-- |
| <p> |
| The following document includes information on these topics: |
| <ul> |
| <li><a href="#virtual-path">Pointer 1</a> A description</li> |
| </ul> |
| </p> |
| --> |
| <a name="virtual-path"/> |
| <h2>Virtual Path API</h2> |
| <BR /> |
| <p> |
| The Virtual Path API provides a facade to the flexible project model. |
| Each IVirtualResource represents a resource from the runtime component |
| under a virtual runtime path. Each IVirtualResource may represent one |
| or more Eclipse Platfrom resources located at the same runtime path. |
| </p> |
| <p> |
| Each IVirtualResource is contained by exactly one IVirtualComponent. |
| However, the underlying resources that are represented by the |
| IVirtualResource may be contained by multiple IVirtualComponents. |
| IVirtualComponents are contained by IFlexibleProjects. Each |
| IFlexibleProject may contain one or more IVirtualComponents. |
| </p> |
| <img src="../../../../../../overview/mapping.jpg" |
| caption="A visual representation of a possible mapping between a Virtual structure and a Platform Resource structure." |
| width="600" height="466" |
| /> |
| <img src="../../../../../../overview/virtual_path_api.jpg" caption="Virtual Path Model" /> |
| <!-- |
| <codesnippet caption="An example snippet."> |
| ... |
| import org.eclipse.emf.common.util.URI; |
| ... |
| public static void makeFlexible(IProject aTargetProject) { |
| ModuleCore moduleCoreInstance = null; |
| try { |
| ModuleCoreNature.addModuleCoreNatureIfNecessary(aTargetProject); |
| moduleCoreInstance = ModuleCore.getModuleCoreForWrite(aTargetProject); |
| ... work with moduleCoreInstance and underlying model ... |
| moduleCoreInstance.saveIfNecessary(aProgressMonitor); |
| } finally { |
| if (moduleCoreInstance != null) { |
| moduleCoreInstance.dispose(); |
| } |
| } |
| } |
| </codesnippet> |
| <codesnippet caption="An example snippet."> |
| ... |
| import org.eclipse.emf.common.util.URI; |
| ... |
| public static void makeFlexible(IProject aTargetProject) { |
| ModuleCore moduleCoreInstance = null; |
| try { |
| ModuleCoreNature.addModuleCoreNatureIfNecessary(aTargetProject); |
| moduleCoreInstance = ModuleCore.getModuleCoreForWrite(aTargetProject); |
| ... work with moduleCoreInstance and underlying model ... |
| moduleCoreInstance.saveIfNecessary(aProgressMonitor); |
| } finally { |
| if (moduleCoreInstance != null) { |
| moduleCoreInstance.dispose(); |
| } |
| } |
| } |
| </codesnippet> |
| --> |
| <a href="#top">top</a> |
| </body> |
| </html> |
| |