Package org.jetbrains.mps.openapi.model
Class SModelName
- java.lang.Object
 - 
- org.jetbrains.mps.openapi.model.SModelName
 
 
- 
public final class SModelName extends Object
Name of a model is complicated matter, we distinguish qualified/long and simple name, namespace fraction, and optional stereotype fraction of it.[ {namespace} '.'] {simple name} [ '@' {stereotype} ]To avoid use of utility methods scattered around the code that extract certain fractions of the model name, this object gives access to all relevant parts of the name.- Since:
 - 3.4
 
 
- 
- 
Constructor Summary
Constructors Constructor Description SModelName(CharSequence qualifiedName, CharSequence stereotype)SModelName(CharSequence namespace, CharSequence simpleName, CharSequence stereotype)SModelName(String qualifiedCompleteName) 
- 
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description booleanequals(Object obj)StringgetLongName()StringgetNamespace()StringgetShortNameWithStereotype()Similar togetSimpleName(), just keeps stereotype part, if anyStringgetSimpleName()StringgetStereotype()StringgetValue()inthashCode()booleanhasStereotype()booleanhasStereotype(CharSequence stereotype)booleanisEmpty()Covers the case when we constructed aSModelReferencewithSModelIdonly, unaware of actual model name.StringtoString()SModelNamewithoutStereotype()Construct a name with the identical qualified name, and without any stereotype.SModelNamewithStereotype(CharSequence newStereotype) 
 - 
 
- 
- 
Constructor Detail
- 
SModelName
public SModelName(@NotNull String qualifiedCompleteName)
- Throws:
 IllegalArgumentException- if name contains illegal characters
 
- 
SModelName
public SModelName(@Nullable CharSequence namespace, @NotNull CharSequence simpleName, @Nullable CharSequence stereotype)
- Throws:
 IllegalArgumentException- if any component of a model name contains illegal characters
 
- 
SModelName
public SModelName(@NotNull CharSequence qualifiedName, @Nullable CharSequence stereotype)
- Throws:
 IllegalArgumentException- if any component of a model name contains illegal characters
 
 - 
 
- 
Method Detail
- 
isEmpty
public boolean isEmpty()
Covers the case when we constructed aSModelReferencewithSModelIdonly, unaware of actual model name.- Returns:
 trueiff model name is blank.
 
- 
getValue
@NotNull public String getValue()
- Returns:
 - complete name of the model which includes optional namespace part, model name and optional stereotype, such as 'generator' or 'tests', separated by the '@' character e.g. 'jetbrains.mps.sample.generator.main@generator'
 
 
- 
getLongName
@NotNull public String getLongName()
- Returns:
 - qualified model name (namespace and simple name), without stereotype
 
 
- 
getSimpleName
@NotNull public String getSimpleName()
- Returns:
 - name of the model without namespace nor stereotype, empty string iff model name is blank.
 
 
- 
getShortNameWithStereotype
@NotNull public String getShortNameWithStereotype()
Similar togetSimpleName(), just keeps stereotype part, if any- Returns:
 - name of the model without namespace but with stereotype, if any.
 
 
- 
hasStereotype
public boolean hasStereotype()
- Returns:
 trueiffgetStereotype()would return non-empty value
 
- 
hasStereotype
public boolean hasStereotype(@Nullable CharSequence stereotype)
- Returns:
 trueiffstereotypematches the argument. Name without stereotype matches bothnulland""argument values.- Since:
 - 2018.3
 
 
- 
withStereotype
@NotNull public SModelName withStereotype(@Nullable CharSequence newStereotype)
- Parameters:
 newStereotype- stereotype for the constructed name, ornullto indicate new name shall not specify stereotype (identical towithoutStereotype()- Returns:
 - model name with qualified name identical to this model name and with a given stereotype. May return same instance if new stereotype is the same as actual.
 
 
- 
withoutStereotype
@NotNull public SModelName withoutStereotype()
Construct a name with the identical qualified name, and without any stereotype. May returnthisif there's no stereotype in the actual name (SModelNameis immutable).- Returns:
 - model name without a stereotype, never 
null 
 
 - 
 
 -