Carbide.c++

com.nokia.carbide.cpp.epoc.engine.model
Interface IModel<View>

All Known Subinterfaces:
IBldInfModel, IBldInfOwnedModel, IImageMakefileModel, IImageMakefileOwnedModel, IMakefileModel, IMakefileOwnedModel, IMMPModel, IMMPOwnedModel, IOwnedModel<View>

public interface IModel<View>

This manages a single file's contents and provides "views" onto its contents and resolves changes to such views to rewrite the contents.

Instances of this interface are possibly shared and their documents managed by an IModelProvider.

BIG FAT WARNING: Upcasting to IOwnedModel to access the document is not allowed unless you are 100% sure you just created the model yourself and have not yet relinquished it to the provider!


Method Summary
 void addListener(IModelListener listener)
          Add listener, ignore duplicates
 View createView(IViewConfiguration configuration)
          Creates a view onto the contents of the model using the given configuration and filter.
 IModelProvider<IOwnedModel<View>,IModel<View>> getModelProvider()
          Get the model provider owning this model, if any.
 IPath getPath()
          Get full filesystem path to file
 IView[] getViews()
          Get a copy of the active views on model
 void removeListener(IModelListener listener)
          Remove listener, ignore missing
 

Method Detail

getPath

IPath getPath()
Get full filesystem path to file


createView

View createView(IViewConfiguration configuration)
Creates a view onto the contents of the model using the given configuration and filter. The model must be parsed first.


getViews

IView[] getViews()
Get a copy of the active views on model

Returns:
array of views (never null)

addListener

void addListener(IModelListener listener)
Add listener, ignore duplicates


removeListener

void removeListener(IModelListener listener)
Remove listener, ignore missing


getModelProvider

IModelProvider<IOwnedModel<View>,IModel<View>> getModelProvider()
Get the model provider owning this model, if any.

Registering a model via @link{IModelProvider#registerModel()} or retrieving one via @link{IModelProvider#getSharedModel()} will set the model's provider.


Carbide.c++