|
UML Modeling Layer | |||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||
java.lang.Objectcom.ibm.xtools.uml.msl.internal.lang.UMLLanguageManager
public class UMLLanguageManager
Singleton manager class which allows for basic queries about language types available in the system and some of the modeling dependencies that are needed to support a particular language.
| Nested Class Summary | |
|---|---|
static interface |
UMLLanguageManager.IActiveLanguageObserver
|
| Field Summary | |
|---|---|
protected IUMLLanguageDescriptor |
activeLanguage
Our currently active language |
protected Map<URI,Set<UMLLanguageManager.IActiveLanguageObserver>> |
observers
|
| Constructor Summary | |
|---|---|
protected |
UMLLanguageManager()
protected Constructor |
| Method Summary | |
|---|---|
boolean |
addActiveLanguageListener(UMLLanguageManager.IActiveLanguageObserver observer,
Resource filter)
Adds a observer to the set of observers that wish to be notified about changes to the active language. |
protected void |
addElementImportToLanguageLibraries(Package pkg,
Collection<URI> libraries)
Add language specific imports |
protected void |
addLanguageSpecificProfileApplications(Package pkg,
Collection<URI> profileURIs)
Add language specific profiles |
IUMLLanguageDescriptor |
addUserDefinedLanguage(String langId)
Add the given language to the list of user defined languages. |
protected LanguageChangeEvent |
createLanguageChangeEvent(IUMLLanguageDescriptor old,
IUMLLanguageDescriptor newLang)
Allow specialization of the LanguageChangeEvent if needed |
protected IUMLLanguageDescriptor |
findLanguageDescriptor(String languageId,
boolean searchDerived)
Null safe method that will find the language descriptor given the language Id. |
protected void |
fireLanguageChanged(LanguageChangeEvent event,
EObject context)
Determines the list of observers to notify, creates the Language Change Event, and delegates to fireNotificationJob. |
protected void |
fireNotificationJob(LanguageChangeEvent event,
Set<UMLLanguageManager.IActiveLanguageObserver> list)
Actually notify listeners. |
IUMLLanguageDescriptor |
getActiveDescriptor()
Note: This API should be used with caution. |
IUMLLanguageDescriptor |
getActiveDescriptor(EObject context)
Retrieves the language descriptor initialized with the given context. |
IUMLLanguageDescriptor |
getActiveDescriptor(EObject firstContext,
EObject defaultContext)
Retrieves the language descriptor initialized with the given context. |
IUMLLanguageDescriptor |
getActiveDescriptor(LanguageContext context)
Set the active descriptor and initialize it with the given context |
String |
getActiveLanguage(EObject context)
This is a utility method for getting the active language when the context for either the First or Model language will be the same. |
String |
getActiveLanguage(EObject firstLangContext,
EObject modelLangContext)
Determines the active language. |
String |
getActiveLanguage(LanguageContext context)
Uses the active descriptor to extract the language from the given context. |
Collection<IUMLDerivedLanguageDescriptor> |
getAllDerivedLanguages()
|
Collection<IUMLLanguageDescriptor> |
getAllDescriptors(boolean includeDerived)
Returns all the currently loaded 'static' descriptors (predefined and user defined). |
List<String> |
getAllLanguageDisplayNames(boolean includeDerived)
This method creates a sorted list of display names. |
Set<String> |
getAllLanguages()
|
Collection<IUMLLanguageDescriptor> |
getAllPredefinedLanguages()
|
Collection<IUMLLanguageDescriptor> |
getAllUserDefinedLanguages()
|
IUMLLanguageDescriptor |
getDescriptor(String langId)
Access to the descriptor for a given language. |
String |
getDescriptorID(IUMLLanguageDescriptor desc)
|
String |
getFirstLanguage(EObject context)
Utility method to get the first language. |
static UMLLanguageManager |
getInstance()
|
String |
getPersistedModelLanguage(EObject context)
Utility method to get the persisted language in the model. |
protected void |
internalSetActiveLanguage(IUMLLanguageDescriptor desc)
Set the active language |
boolean |
isActive(IUMLLanguageDescriptor language)
Determines if the given descriptor is currently active. |
boolean |
isFirstDescriptorActive()
Utility method for determining if the 'First' language descriptor is active |
boolean |
isModelDescriptorActive()
Utility method for determining if the 'Model' language descriptor is active |
void |
persistLanguageInRootPackage(EObject context,
IUMLLanguageDescriptor descriptor,
boolean loadLanguageDefaults)
Persists the language id of the given descriptor in to the root package that owns the given context. |
boolean |
removeActiveLanguageListener(UMLLanguageManager.IActiveLanguageObserver observer)
Removes the observer from the set of observers that wish to be notified about changes to the active language. |
IUMLLanguageDescriptor |
removeUserDefinedLanguage(String langId)
Provides API to remove a language from the list of user defined languages |
void |
setActiveDescriptor(IUMLLanguageDescriptor desc)
Sets the new active descriptor and notifies listeners |
IUMLLanguageDescriptor |
setActiveLanguage(String languageId)
Set the active language. |
void |
setActiveLanguageAsFirst()
Sets the active language to be 'First' |
void |
setActiveLanguageAsModel()
Sets the active language to be 'Model' |
protected void |
setupRootPackageForLanguage(Package pkg,
IUMLLanguageDescriptor descriptor)
Does the setup on the root package to enable language specific elements. |
| Methods inherited from class java.lang.Object |
|---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
| Field Detail |
|---|
protected IUMLLanguageDescriptor activeLanguage
protected Map<URI,Set<UMLLanguageManager.IActiveLanguageObserver>> observers
| Constructor Detail |
|---|
protected UMLLanguageManager()
| Method Detail |
|---|
public static UMLLanguageManager getInstance()
public IUMLLanguageDescriptor getActiveDescriptor()
FirstLanguageDescriptor or ModelLanguageDescriptorif it is
currently active.
If you have a context object to base your query on, use one of the following APIs:
UMLLanguageManager.getActiveDescriptor(EObject),
UMLLanguageManager.getActiveDescriptor(EObject, EObject)public IUMLLanguageDescriptor getActiveDescriptor(EObject context)
context - The semantic object to initialize the descriptor with
public IUMLLanguageDescriptor getActiveDescriptor(EObject firstContext,
EObject defaultContext)
firstContext - The context to be used to determine the first languagedefaultContext - The context to be used to determine the default language
public IUMLLanguageDescriptor getActiveDescriptor(LanguageContext context)
context -
public String getActiveLanguage(EObject context)
context - The element to use as the context for the first or default language
String identifier for the language that is
currently designated as "active" in the tooling environment.
public String getActiveLanguage(EObject firstLangContext,
EObject modelLangContext)
firstLangContext - -
the context to determine the first language frommodelLangContext - -
The context to determine the default language from
String identifier for the language that is
currently designated as "active" in the tooling environment.public String getActiveLanguage(LanguageContext context)
context - A LanguageContext object that contains the elements to used to determine the language if needed.
public Collection<IUMLLanguageDescriptor> getAllDescriptors(boolean includeDerived)
includeDerived - whether to include derived descriptors.public IUMLLanguageDescriptor getDescriptor(String langId)
lang - The language id to find
public boolean isModelDescriptorActive()
true if Default is activepublic boolean isFirstDescriptorActive()
true if First is activepublic IUMLLanguageDescriptor addUserDefinedLanguage(String langId)
lang - The language ID to try and add
IUMLLanguageDescriptor of the new language created, or null if it already existedpublic IUMLLanguageDescriptor removeUserDefinedLanguage(String langId)
lang - the language id to remove
IUMLLanguageDescriptor being removed, or null if one did not existpublic boolean isActive(IUMLLanguageDescriptor language)
language -
UMLLanguageManager#isActive(String)public String getPersistedModelLanguage(EObject context)
context - The context to find the root package from
public String getFirstLanguage(EObject context)
context - The context to try and extract the first language from
public Set<String> getAllLanguages()
Collection of predefined or user defined languages that are
available for use.public List<String> getAllLanguageDisplayNames(boolean includeDerived)
public Collection<IUMLDerivedLanguageDescriptor> getAllDerivedLanguages()
public Collection<IUMLLanguageDescriptor> getAllPredefinedLanguages()
public Collection<IUMLLanguageDescriptor> getAllUserDefinedLanguages()
public void setActiveLanguageAsModel()
public void setActiveLanguageAsFirst()
public IUMLLanguageDescriptor setActiveLanguage(String languageId)
languageId - The new language to be set as active
public void setActiveDescriptor(IUMLLanguageDescriptor desc)
desc - the new descriptor to make activeprotected void internalSetActiveLanguage(IUMLLanguageDescriptor desc)
desc -
protected void setupRootPackageForLanguage(Package pkg,
IUMLLanguageDescriptor descriptor)
pkg - descriptor -
public void persistLanguageInRootPackage(EObject context,
IUMLLanguageDescriptor descriptor,
boolean loadLanguageDefaults)
context - The context to find the root package fromdescriptor - The language descriptor that defines the language to persist. Or null
if the persisted language should be removed from the root package.loadLanguageDefaults - true if the given discriptor's Libraries, profiles, etc should be applied to the root model
false if just the language should be persisted
protected void addElementImportToLanguageLibraries(Package pkg,
Collection<URI> libraries)
pkg - libraries -
protected void addLanguageSpecificProfileApplications(Package pkg,
Collection<URI> profileURIs)
pkg - profileURIs -
protected void fireLanguageChanged(LanguageChangeEvent event,
EObject context)
old - newlang - context - contextChanged -
protected LanguageChangeEvent createLanguageChangeEvent(IUMLLanguageDescriptor old,
IUMLLanguageDescriptor newLang)
old - newLang - contextChanged -
protected void fireNotificationJob(LanguageChangeEvent event,
Set<UMLLanguageManager.IActiveLanguageObserver> list)
event - list -
protected IUMLLanguageDescriptor findLanguageDescriptor(String languageId,
boolean searchDerived)
languageId - searchDerived - whether to search the derived language list
public boolean addActiveLanguageListener(UMLLanguageManager.IActiveLanguageObserver observer,
Resource filter)
observer - The object to be notified of a changefilter - the resource to use as a filter for 'default' language changes
true if the observer was successfully added.
false otherwisepublic boolean removeActiveLanguageListener(UMLLanguageManager.IActiveLanguageObserver observer)
observer - The object no longer wanting to be notified
true if the observer was successfully removed.
false otherwisepublic String getDescriptorID(IUMLLanguageDescriptor desc)
|
UML Modeling Layer | |||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||