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()StringgetSimpleName()StringgetStereotype()StringgetValue()inthashCode()booleanhasStereotype()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.
-
hasStereotype
public boolean hasStereotype()
- Returns:
trueiffgetStereotype()would return non-empty value
-
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
-
-