Class 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
    • Method Detail

      • isEmpty

        public boolean isEmpty()
        Covers the case when we constructed a SModelReference with SModelId only, unaware of actual model name.
        Returns:
        true iff 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:
        true iff getStereotype() would return non-empty value
      • hasStereotype

        public boolean hasStereotype​(@Nullable
                                     CharSequence stereotype)
        Returns:
        true iff stereotype matches the argument. Name without stereotype matches both null and "" argument values.
        Since:
        2018.3
      • withStereotype

        @NotNull
        public SModelName withStereotype​(@Nullable
                                         CharSequence newStereotype)
        Parameters:
        newStereotype - stereotype for the constructed name, or null to indicate new name shall not specify stereotype (identical to withoutStereotype()
        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 return this if there's no stereotype in the actual name (SModelName is immutable).
        Returns:
        model name without a stereotype, never null
      • hashCode

        public int hashCode()
        Overrides:
        hashCode in class Object