Skip to main content

Notice: this Wiki will be going read only early in 2024 and edits will no longer be possible. Please see: https://gitlab.eclipse.org/eclipsefdn/helpdesk/-/wikis/Wiki-shutdown-plan for the plan.

Jump to: navigation, search

E4/Resources/Semantic File System/Where to Look at First

Semantic File System implementation consists of following Eclipse Plugins: 

  • org.eclipse.core.resources.semantic
    • contains SFS implementation as well as API to be used by tools and SPI for writing own content providers
  • org.eclipse.ui.resources.semantic
    • Team UI contributions (Team menu items, Label Decorator, Property Page etc)
  • org.eclipse.core.resources.semantic.examples
    • Examples of content providers, demo wizards etc
  • org.eclipse.core.resources.semantic.test
    • JUnit tests
  • org.eclipse.e4.demo.e4photo.withSFS
    • Addon to e4 Photo Demo that adds resource handling that runs on top of SFS

The Java package org.eclipse.core.resources.semantic.api contains API interfaces and classes to be used by tools in order to manipulate semantic resource tree. The most important ones are:

  • ISemanticResource
  • ISemanticFile
  • ISemanticFolder
  • ISemanticFileSystem

The Java package org.eclipse.core.resources.semantic.spi contains SPI interfaces and classes to be used for implementation of own content providers. The most important ones are:

  • ISemanticContentProvider
    • defines contract to be fulfilled by content provider, the interface should not be implemented directly
  • ContentProvider
    • base class for all content providers, MUST be subclassed instead of implementing ISemanticContentProvider (in order to provide ability to introduce new methods without
      affecting existing code)
  • ISemanticFileStore
    • callback API of a file store to be called by content providers in order to manipulate semantic resource tree
  • CachingContentProvider
    • base class to be subclassed by all content providers that support local caching of content

The following class diagram provides an rouch overview over dependencies between main classes and interfaces of SFS: SFSClassDiagram.png

Copyright © Eclipse Foundation, Inc. All Rights Reserved.