# Sapphire Extensions

## Service

ID | Description | Contexts
--- | --- | ---
DiagramLayoutPersistenceService.Project |  | Sapphire.Part
DiagramLayoutPersistenceService.SideBySide |  | Sapphire.Part
DiagramLayoutPersistenceService.Workspace |  | Sapphire.Part
Sapphire.CollationService.Declarative.Global | A CollationService implementation that derives its behavior from @Collation annotation. | Sapphire.Property.MetaModel
Sapphire.CollationService.Declarative.Instance | A CollationService implementation that derives its behavior from @Collation annotation. | Sapphire.Property.Instance
Sapphire.CollationService.Default | A CollationService implementation that is active when an explicit collation is not specified. The provided collation matches Java's default string comparison. | Sapphire.Property.MetaModel
Sapphire.CollationService.ListFromValue | Implementation of CollationService for list properties based on CollationService implementation of list member's value property. This service implementation will only activate if the list property has one possible type, and that type has a single property, and that property is a value property. | Sapphire.Property.Instance
Sapphire.ContentProposalService.PossibleValues | Implementation of ContentProposalService based on PossibleValuesService. | Sapphire.Property.Instance
Sapphire.ConversionService.DateToString | ConversionService implementation for Date to String conversions. | Sapphire
Sapphire.ConversionService.DateToString.Property | ConversionService implementation for Date to String conversions specified at property level using @Serialization annotation. | Sapphire.Property.MetaModel
Sapphire.ConversionService.EnumToString | ConversionService implementation for Enum to String conversions. | Sapphire
Sapphire.ConversionService.IFileToWorkspaceFileResourceStore | ConversionService implementation for IFile to WorkspaceFileResourceStore conversions. | Sapphire
Sapphire.ConversionService.ModelElementToDomDocument | ConversionService implementation for ModelElement to DOM Document conversions. | Sapphire
Sapphire.ConversionService.ModelElementToDomElement | ConversionService implementation for ModelElement to DOM Element conversions. | Sapphire
Sapphire.ConversionService.ModelElementToXmlElement | ConversionService implementation for ModelElement to XmlElement conversions. | Sapphire
Sapphire.ConversionService.ObjectToRootXmlResource | ConversionService implementation for Object to RootXmlResource conversions. Conversion is only performed if the object can be converted to ByteArrayResourceStore and if the resource store corresponds to a file with "xml" extension or if the context element type has XML binding annotations. | Sapphire
Sapphire.ConversionService.ObjectToString | ConversionService implementation for Object to String conversions that uses object's toString() method. | Sapphire
Sapphire.ConversionService.ResourceStoreToFile | ConversionService implementation for WorkspaceFileResourceStore to File conversions via IFile. | Sapphire
Sapphire.ConversionService.ResourceStoreToFile | ConversionService implementation for ResourceStore to File conversions via FileStoreEditorInput. Used in the case where an editor is open to a file outside of the workspace. | Sapphire
Sapphire.ConversionService.ResourceStoreToIContainer | ConversionService implementation for ResourceStore to IContainer conversions via IFile. | Sapphire
Sapphire.ConversionService.ResourceStoreToIFile | ConversionService implementation for ResourceStore to IFile conversions via FileEditorInput. | Sapphire
Sapphire.ConversionService.ResourceStoreToIJavaProject | ConversionService implementation for ResourceStore to IJavaProject conversions. | Sapphire
Sapphire.ConversionService.ResourceStoreToIProject | ConversionService implementation for ResourceStore to IProject conversions via IFile. | Sapphire
Sapphire.ConversionService.StringToBigDecimal | ConversionService implementation for String to BigDecimal conversions. | Sapphire
Sapphire.ConversionService.StringToBigInteger | ConversionService implementation for String to BigInteger conversions. | Sapphire
Sapphire.ConversionService.StringToBoolean | ConversionService implementation for String to Boolean conversions. | Sapphire
Sapphire.ConversionService.StringToByte | ConversionService implementation for String to Byte conversions. | Sapphire
Sapphire.ConversionService.StringToColor | ConversionService implementation for String to Color conversions. | Sapphire
Sapphire.ConversionService.StringToDate | ConversionService implementation for String to Date conversions. | Sapphire
Sapphire.ConversionService.StringToDate.Property | ConversionService implementation for String to Date conversions specified at property level using @Serialization annotation. | Sapphire.Property.MetaModel
Sapphire.ConversionService.StringToDouble | ConversionService implementation for String to Double conversions. | Sapphire
Sapphire.ConversionService.StringToEnum | ConversionService implementation for String to Enum conversions. | Sapphire
Sapphire.ConversionService.StringToFileName | ConversionService implementation for String to FileName conversions. | Sapphire
Sapphire.ConversionService.StringToFloat | ConversionService implementation for String to Float conversions. | Sapphire
Sapphire.ConversionService.StringToFunction | ConversionService implementation for String to Function conversions. | Sapphire.Property.Instance
Sapphire.ConversionService.StringToImageData | ConversionService implementation for String to ImageData conversions. | Sapphire.Element.Instance
Sapphire.ConversionService.StringToInteger | ConversionService implementation for String to Integer conversions. | Sapphire
Sapphire.ConversionService.StringToJavaIdentifier | ConversionService implementation for String to JavaIdentifier conversions. | Sapphire
Sapphire.ConversionService.StringToJavaPackageName | ConversionService implementation for String to JavaPackageName conversions. | Sapphire
Sapphire.ConversionService.StringToJavaTypeName | ConversionService implementation for String to JavaTypeName conversions. | Sapphire
Sapphire.ConversionService.StringToLong | ConversionService implementation for String to Long conversions. | Sapphire
Sapphire.ConversionService.StringToPath | ConversionService implementation for String to Path conversions. | Sapphire
Sapphire.ConversionService.StringToShort | ConversionService implementation for String to Short conversions. | Sapphire
Sapphire.ConversionService.StringToUri | ConversionService implementation for String to URI conversions. | Sapphire
Sapphire.ConversionService.StringToUrl | ConversionService implementation for String to URL conversions. | Sapphire
Sapphire.ConversionService.StringToVersion | ConversionService implementation for String to Version conversions. | Sapphire
Sapphire.ConversionService.StringToVersionConstraint | ConversionService implementation for String to VersionConstraint conversions. | Sapphire
Sapphire.ConversionService.WorkspaceFileResourceStoreToIFile | ConversionService implementation for WorkspaceFileResourceStore to IFile conversions. | Sapphire
Sapphire.ConversionService.XmlEditorResourceStoreToIEditorInputConversionService | ConversionService implementation for XmlEditorResourceStore to IEditorInput conversions. | Sapphire
Sapphire.ConversionService.XmlResourceToDomDocument | ConversionService implementation for XmlResource to DOM Document conversions. | Sapphire
Sapphire.ConversionService.XmlResourceToDomElement | ConversionService implementation for XmlResource to DOM Element conversions. | Sapphire
Sapphire.ConversionService.XmlResourceToXmlElement | ConversionService implementation for XmlResource to XmlElement conversions. | Sapphire
Sapphire.DefaultValueService.Standard | Implementation of DefaultValueService that draws the default value from @DefaultValue annotation. | Sapphire.Property.Instance
Sapphire.DependenciesService.Declarative | Implementation of DependenciesService that exposes dependencies specified by the @DependsOn annotation. | Sapphire.Property.Instance
Sapphire.DerivedValueService.Standard |  | Sapphire.Property.Instance
Sapphire.Diagrams.ConnectionService.Standard |  | Sapphire.Part
Sapphire.DocumentationService.Element.Standard |  | Sapphire.Element.Instance
Sapphire.DocumentationService.Property.Standard |  | Sapphire.Property.Instance
Sapphire.EnablementService.FunctionBased |  | Sapphire.Property.Instance
Sapphire.EnablementService.ParentPropertyState |  | Sapphire.Property.Instance
Sapphire.EnablementService.VersionCompatibility | Implementation of EnablementService that determines property's enablement state based on property's compatibility with the version compatibility target. | Sapphire.Property.Instance
Sapphire.FactsAggregationService |  | Sapphire.Property.Instance
Sapphire.FactsService.AbsolutePath | Creates fact statements about property's absolute path requirement by using semantical information specified by @AbsolutePath annotation. | Sapphire.Property.Instance
Sapphire.FactsService.DefaultValue | Creates fact statements about property's default value by using semantical information specified by DefaultValueService and @DefaultValue annotation. | Sapphire.Property.Instance
Sapphire.FactsService.Deprecated | Creates fact statements about property's deprecated state by using semantical information specified by @Deprecated annotation. | Sapphire.Property.Instance
Sapphire.FactsService.FileExtensions | Creates fact statements about valid file extensions for property's value by using semantical information specified by @FileExtensions annotation. | Sapphire.Property.Instance
Sapphire.FactsService.InitialValue | Creates fact statements about property's initial value by using semantical information specified by InitialValueService and @InitialValue annotation. | Sapphire.Property.Instance
Sapphire.FactsService.JavaTypeConstraint | Creates fact statements about Java type property's constraints by using semantical information specified by @JavaTypeConstraints annotation. | Sapphire.Property.Instance
Sapphire.FactsService.Length.List | An implementation of FactsService that creates fact statements about a list property's item count constraints by using the semantical information specified by the @Length annotation. | Sapphire.Property.MetaModel
Sapphire.FactsService.Length.Value | An implementation of FactsService that creates fact statements about a value property's text length constraints by using the semantical information specified by the @Length annotation. | Sapphire.Property.MetaModel
Sapphire.FactsService.MustExist | Creates fact statements about existence requirement on the entity referenced by property's value by using semantical information specified by @MustExist annotation. | Sapphire.Property.Instance
Sapphire.FactsService.NumericRange | Creates fact statements about numeric value property's range by using semantical information specified by @NumericRange annotation. | Sapphire.Property.Instance
Sapphire.FactsService.PreferDefaultValue | Creates fact statements about property's recommended value by using semantical information specified by @PreferDefaultValue annotation. | Sapphire.Property.Instance
Sapphire.FactsService.ProjectRelativePath | Creates fact statements about property's relative to the project path requirement by using semantical information specified by @ProjectRelativePath annotation. | Sapphire.Property.Instance
Sapphire.FactsService.ReadOnly | Creates fact statements about property's read-only state by using semantical information specified by @ReadOnly annotation. | Sapphire.Property.Instance
Sapphire.FactsService.Required | FactsService implementation that contributes fact statements based on semantics specified by RequiredConstraintService. | Sapphire.Property.Instance
Sapphire.FactsService.Serialization | Creates fact statements about property's serialization by using semantical information specified by the @Serialization annotation. | Sapphire.Property.MetaModel
Sapphire.FactsService.Static | Creates fact statements about property by using static content specified in @Fact annotations. | Sapphire.Property.Instance
Sapphire.FactsService.Unique | Creates fact statements about value property's uniqueness constraint by using semantical information specified by @Unique annotation. | Sapphire.Property.Instance
Sapphire.FactsService.ValidFileSystemResourceType | Creates fact statements about valid file system resource type (file or folder) for property's value by using semantical information specified by @ValidFileSystemResourceType annotation. | Sapphire.Property.Instance
Sapphire.FactsService.VersionCompatibility | Creates fact statements about property's version compatibility by using semantic information specified by @Since and @VersionCompatibility annotations. | Sapphire.Property.Instance
Sapphire.FactsService.WorkspaceRelativePath | Creates fact statements about property's relative to the workspace path requirement by using semantical information specified by @WorkspaceRelativePath annotation. | Sapphire.Property.Instance
Sapphire.FileExtensionsService.Declarative | Implementation of FileExtensionsService that derives its behavior from @FileExtensions annotation. | Sapphire.Property.Instance
Sapphire.ImageService.Static |  | Sapphire.Element.Instance
Sapphire.InitialValueService.Standard | Implementation of InitialValueService that draws the initial value from @InitialValue annotation. | Sapphire.Property.Instance
Sapphire.Java.JDT.ConversionService.ElementToContext | ConversionService implementation for Element to Context conversions when the resource is inside a Java project. | Sapphire
Sapphire.Java.JDT.TypeReferenceService | Resolves Java types visible to the Java project that the model is loaded from. | Sapphire.Property.Instance
Sapphire.Java.TypeConstraintService |  | Sapphire.Property.Instance
Sapphire.Java.TypeReferenceService | Resolves Java types visible to the class loader that contains a given model element type interface. | Sapphire.Property.Instance
Sapphire.Java.TypeValidationService |  | Sapphire.Property.Instance
Sapphire.ListSelectionService | ListSelectionService is a conduit between the presentation layer and anything that needs to observe or change the selection in a list property editor. | Sapphire.Part
Sapphire.LoggingService.Platform |  | Sapphire
Sapphire.LoggingService.Standard |  | Sapphire
Sapphire.MasterConversionService | Converts an object to the specified type by delegating to available ConversionService and UniversalConversionService implementations. If object is null or is already of desired type, the object is returned unchanged. | Sapphire Sapphire.Element.MetaModel Sapphire.Element.Instance Sapphire.Property.MetaModel Sapphire.Property.Instance Sapphire.Part
Sapphire.MasterVersionCompatibilityService | Aggregates the data from all applicable version compatibility services in order to produce a single statement about version compatibility. An implementation of this service is provided with Sapphire. This service is not intended to be implemented by adopters. | Sapphire.Property.Instance
Sapphire.PossibleTypesService.Standard | Implementation of PossibleTypesService using information specified by @Type annotation. | Sapphire.Property.MetaModel
Sapphire.PossibleValuesService.ElementReference | PossibleValuesService implementation that derives its behavior from ElementReferenceService. | Sapphire.Property.Instance
Sapphire.PossibleValuesService.Enum |  | Sapphire.Property.MetaModel
Sapphire.PossibleValuesService.ListFromValue | Implementation of PossibleValuesService for list properties based on PossibleValuesService implementation of list member's value property. This service implementation will only activate if the list property has one possible type, and that type has a single property, and that property is a value property, and that value property has a PossibleValuesService implementation in the property metamodel context. | Sapphire.Property.Instance
Sapphire.PossibleValuesService.ModelBased | PossibleValuesService implementation that derives its behavior from @PossibleValues annotation. | Sapphire.Property.Instance
Sapphire.PossibleValuesService.Static.List | Implementation of PossibleValuesService based on @PossibleValues annotation's values attribute.. | Sapphire.Property.Instance
Sapphire.PossibleValuesService.Static.Value | Implementation of PossibleValuesService based on @PossibleValues annotation's values attribute.. | Sapphire.Property.MetaModel
Sapphire.PossibleValuesService.ValueFromList | Implementation of PossibleValuesService for value properties based on PossibleValuesService implementation of the containing list property. This service implementation will only activate if the value property is the sole property in its type, and the element is contained by a list property, and the list property has a PossibleValueService implementation in the property instance context. | Sapphire.Property.Instance
Sapphire.ProblemsTraversalService | Produces a problem-annotated traversal order through the content outline, which can be used to find the next error or warning from any location in the content outline. An implementation of this service is provided with Sapphire. This service is not intended to be implemented by adopters. | Sapphire.Part
Sapphire.ReferenceService.ElementReference | ReferenceService implementation that derives its behavior from @ElementReference annotation. | Sapphire.Property.Instance
Sapphire.RelativePathService.Model |  | Sapphire.Property.Instance
Sapphire.RelativePathService.Project |  | Sapphire.Property.Instance
Sapphire.RelativePathService.Workspace |  | Sapphire.Property.Instance
Sapphire.RequiredConstraintService.Declarative | RequiredConstraintService implementation that derives its behavior from @Required annotation. | Sapphire.Property.Instance
Sapphire.SDK.UI.Definition.Java.TypeReferenceService |  | Sapphire.Property.Instance
Sapphire.TextSelectionService | TextSelectionService is a conduit between the presentation layer and anything that needs to observe or change the selection in a text property editor. | Sapphire.Part
Sapphire.UI.Definition.Java.TypeReferenceService |  | Sapphire.Property.Instance
Sapphire.ValidationService.AbsolutePath |  | Sapphire.Property.Instance
Sapphire.ValidationService.Declarative | ValidationService implementation that derives its behavior from @Validation annotation. | Sapphire.Property.Instance
Sapphire.ValidationService.Length.List | An implementation of ValidationService that produces a validation error when a list property's item count is outside of the constraints specified by the @Length annotation. | Sapphire.Property.Instance
Sapphire.ValidationService.Length.Value | An implementation of ValidationService that produces a validation error when a value property's text length is outside of the constraints specified by the @Length annotation. | Sapphire.Property.Instance
Sapphire.ValidationService.MalformedValue |  | Sapphire.Property.Instance
Sapphire.ValidationService.NumericRange |  | Sapphire.Property.Instance
Sapphire.ValidationService.PossibleValues |  | Sapphire.Property.Instance
Sapphire.ValidationService.PreferDefaultValue | Implementation of ValidationService that produces a validation warning when property value doesn't match its default. | Sapphire.Property.Instance
Sapphire.ValidationService.ProjectRelativePath |  | Sapphire.Property.Instance
Sapphire.ValidationService.Reference |  | Sapphire.Property.Instance
Sapphire.ValidationService.RelativePath |  | Sapphire.Property.Instance
Sapphire.ValidationService.Required | ValidationService implementation that validates whether the property conforms to semantics specified by RequiredConstraintService. | Sapphire.Property.Instance
Sapphire.ValidationService.UniqueValue |  | Sapphire.Property.Instance
Sapphire.ValidationService.VersionCompatibility | An implementation of ValidationService that produces a validation error when a property is not compatible with the version compatibility target yet contains data. | Sapphire.Property.Instance
Sapphire.ValueImageService.Default |  | Sapphire.Property.MetaModel
Sapphire.ValueImageService.Enum |  | Sapphire.Property.MetaModel
Sapphire.ValueLabelService.Default |  | Sapphire.Property.MetaModel
Sapphire.ValueLabelService.Enum |  | Sapphire.Property.MetaModel
Sapphire.ValueNormalizationService |  | Sapphire.Property.Instance
Sapphire.ValueNormalizationService.FileName | Implementation of ValueNormalizationService for value properties of type FileName. | Sapphire.Property.Instance
Sapphire.VersionCompatibilityService.Declarative | Implementation of VersionCompatibilityService that derives its behavior from @VersionCompatibility and @Since annotations. | Sapphire.Property.Instance
Sapphire.VersionCompatibilityService.ParentBased | Implementation of VersionCompatibilityService that derives its behavior from version compatibility of the containing element's parent property. | Sapphire.Property.Instance
Sapphire.VersionCompatibilityTargetService.Declarative | Implementation of VersionCompatibilityTargetService that derives its behavior from @VersionCompatibilityTarget annotation. | Sapphire.Element.Instance Sapphire.Property.Instance

## Functions

Name | Description | Implementation Class
--- | --- | ---
Absolute | Returns the absolute path of a value for properties with a RelativePathService. | org.eclipse.sapphire.modeling.el.internal.AbsolutePathFunction
Avg | Computes the average of numbers in a collection. Typically, this function takes the collection as the sole parameter. However, when the collection is a model element list, a second parameter may be necessary to specify the name (in the form of a string) of the list entry's value property to use in aggregation. If the the collection is a model element list and the second parameter is not specified, this function will use list entry's first value property for aggregation. An average of an empty collection is 0. | org.eclipse.sapphire.modeling.el.AvgFunction
Concat | Concatenates two or more strings into a single string. Particularly useful in contexts where composite expressions cannot be used, such as where the result of concatenation needs to feed into another function or operator. | org.eclipse.sapphire.modeling.el.ConcatFunction
Content | Returns the content of a value or a transient. For value properties, the default is taken into account, if applicable. | org.eclipse.sapphire.modeling.el.internal.ContentFunction
Enabled | Returns the enablement of a property. | org.eclipse.sapphire.modeling.el.internal.EnabledFunction
Enabled | Determines if the property associated with the property editor is enabled. Can only be used in the context of a property editor. | org.eclipse.sapphire.ui.internal.PropertyEditorEnabledFunction
EncodeToXml | Encodes text for use as XML element content or an attribute value. | org.eclipse.sapphire.modeling.el.internal.EncodeToXmlFunction
EndsWith | Tests if a string ends with the specified suffix. | org.eclipse.sapphire.modeling.el.internal.EndsWithFunction
FirstSegment | Breaks a string into segments using the provided separators and returns the first segment. If no separators are found in the string, the entire string is returned. This function takes two string operands. The first is the string to tokenize. The second is a sequence of characters that individually should be treated as valid separators. | org.eclipse.sapphire.modeling.el.FirstSegmentFunction
Fragment | Returns a fragment of a string. The fragment starts at the index specified by the second argument and extends to the character before the index specified by the third argument. The length of the fragment is end index minus start index. A negative start index is normalized to zero. A start index exceeding the length of the input is normalized to the length of the input. An end index exceeding the length of the input is normalized to the length of the input. An end index that is smaller than the start index is normalized to the start index. | org.eclipse.sapphire.modeling.el.internal.FragmentFunction
Global | Returns a map of global objects maintained through Sapphire.global() API. | org.eclipse.sapphire.modeling.el.GlobalFunction
Head | Returns a fragment of a string starting at the beginning and not exceeding the specified length. A negative fragment length is normalized to zero. A fragment length exceeding the length of the input is normalized to the length of the input. | org.eclipse.sapphire.modeling.el.internal.HeadFunction
Image | Returns the image associated with the context model element. | org.eclipse.sapphire.modeling.el.ImageFunction
Index | Determines the index of a model element within its parent list. | org.eclipse.sapphire.modeling.el.internal.IndexFunction
InstanceOf | Determines if an object is of specified type. The object to be checked is the first operand and the type is the second operand. The type must be a fully-qualified Java class name. | org.eclipse.sapphire.modeling.el.InstanceOfFunction
LastSegment | Breaks a string into segments using the provided separators and returns the last segment. If no separators are found in the string, the entire string is returned. This function takes two string operands. The first is the string to tokenize. The second is a sequence of characters that individually should be treated as valid separators. | org.eclipse.sapphire.modeling.el.LastSegmentFunction
List | Constructs a list from arbitrary number of operands. | org.eclipse.sapphire.modeling.el.ListFunction
LowerCase | Converts a string to lower case. Can be used either as LowerCase( Name ) or as Name.LowerCase(). | org.eclipse.sapphire.modeling.el.LowerCaseFunction
Matches | Determines whether a string matches a regular expression. The full semantics are specified by Java's String.matches() function. | org.eclipse.sapphire.modeling.el.internal.MatchesFunction
Max | Finds the largest number in a collection. Typically, this function takes the collection as the sole parameter. However, when the collection is a model element list, a second parameter may be necessary to specify the name (in the form of a string) of the list entry's value property to use in aggregation. If the the collection is a model element list and the second parameter is not specified, this function will use list entry's first value property for aggregation. | org.eclipse.sapphire.modeling.el.MaxFunction
Message | Returns the message from a validation result. | org.eclipse.sapphire.modeling.el.internal.MessageFunction
Min | Finds the smallest number in a collection. Typically, this function takes the collection as the sole parameter. However, when the collection is a model element list, a second parameter may be necessary to specify the name (in the form of a string) of the list entry's value property to use in aggregation. If the the collection is a model element list and the second parameter is not specified, this function will use list entry's first value property for aggregation. | org.eclipse.sapphire.modeling.el.MinFunction
Parent | Returns the parent of the current model element. | org.eclipse.sapphire.modeling.el.ParentElementFunction
Parent | Returns the parent of the given part. | org.eclipse.sapphire.ui.internal.PartParentFunction
Part | Returns the context part. | org.eclipse.sapphire.ui.internal.PartFunction
Replace | Replaces all occurrences of a regular expression pattern with the provided replacement text. The full semantics are specified by Java's String.replaceAll( String, String ) function. | org.eclipse.sapphire.modeling.el.internal.ReplaceFunction
Root | Returns the root of the model. | org.eclipse.sapphire.modeling.el.RootElementFunction
SapphireVersionMatches | Determines whether Sapphire version matches a version constraint. A version constraint is a comma-separated list of specific versions, closed ranges (expressed using "[1.2.3-4.5)" syntax and open ranges (expressed using "[1.2.3" or "4.5)" syntax). The square brackets indicate that the range includes the specified version. The parenthesis indicate that the range goes up to, but does not actually include the specified version. | org.eclipse.sapphire.modeling.el.SapphireVersionMatchesFunction
Scale | Changes the scale of a decimal. | org.eclipse.sapphire.modeling.el.ScaleFunction
Severity | Returns the severity of a validation result. | org.eclipse.sapphire.modeling.el.internal.SeverityFunction
Size | Determines the size of a collection, a map, an array or a string. | org.eclipse.sapphire.modeling.el.internal.SizeFunction
StartsWith | Tests if a string starts with the specified prefix. | org.eclipse.sapphire.modeling.el.internal.StartsWithFunction
State | Returns the root element of editor page's persisted state, allowing access to various state properties. This is particularly useful when the persisted state is extended with custom properties wired to custom actions, as it allows any EL-enabled facility to integrate with the custom state property. | org.eclipse.sapphire.ui.internal.StateFunction
Sum | Computes the sum of numbers in a collection. Typically, this function takes the collection as the sole parameter. However, when the collection is a model element list, a second parameter may be necessary to specify the name (in the form of a string) of the list entry's value property to use in aggregation. If the the collection is a model element list and the second parameter is not specified, this function will use list entry's first value property for aggregation. A sum of an empty collection is 0. | org.eclipse.sapphire.modeling.el.SumFunction
Tail | Returns a fragment of a string starting at the end and not exceeding the specified length. A negative fragment length is normalized to zero. A fragment length exceeding the length of the input is normalized to the length of the input. | org.eclipse.sapphire.modeling.el.internal.TailFunction
Text | Returns the text of a value, taking into account the default, if applicable. | org.eclipse.sapphire.modeling.el.internal.TextFunction
UpperCase | Converts a string to upper case. Can be used either as UpperCase( Name ) or as Name.UpperCase(). | org.eclipse.sapphire.modeling.el.UpperCaseFunction
Validation | Returns the validation result of a property. | org.eclipse.sapphire.modeling.el.internal.ValidationFunction
Validation | Returns the validation result of a part. | org.eclipse.sapphire.ui.internal.PartValidationFunction
VersionMatches | Determines whether a version matches a version constraint. A version constraint is a comma-separated list of specific versions, closed ranges (expressed using "[1.2.3-4.5)" syntax and open ranges (expressed using "[1.2.3" or "4.5)" syntax). The square brackets indicate that the range includes the specified version. The parenthesis indicate that the range goes up to, but does not actually include the specified version. | org.eclipse.sapphire.modeling.el.VersionMatchesFunction

## Action

Action ID | Description | Key Binding | Contexts
--- | --- | --- | ---
Sapphire.Add | Adds an entity. A common use is to add a new element to the model. | SHIFT+CONTROL+ALT+n | Sapphire.ListPropertyEditor Sapphire.EditorPage.Outline.Node Sapphire.Diagram.Editor Sapphire.Diagram.Node Sapphire.Diagram.Node.Shape
Sapphire.Assist | Shows property editor assistance popup. The popup can also be accessed by clicking on the small decorator image (either a light builb, an error marker or a warning marker) that appears next to the property editor. | SHIFT+CONTROL+ALT+i | Sapphire.ValuePropertyEditor Sapphire.ElementPropertyEditor Sapphire.ListPropertyEditor Sapphire.WithDirective
Sapphire.Browse | Browses among possible values for a property. | SHIFT+CONTROL+ALT+l | Sapphire.ValuePropertyEditor
Sapphire.Create | Creates the entity referenced by the property value. | SHIFT+CONTROL+ALT+c | Sapphire.ValuePropertyEditor
Sapphire.Delete | Deletes an entity. A common use is to delete an element from the model. | DEL | Sapphire.ListPropertyEditor Sapphire.EditorPage.Outline Sapphire.EditorPage.Outline.Node Sapphire.Diagram.Node Sapphire.Diagram.Node.Shape Sapphire.Diagram.Connection Sapphire.Diagram.MultipleParts
Sapphire.Diagram.Connect | Create connection with the current node as the connection source. |  | Sapphire.Diagram.Node
Sapphire.Diagram.DeleteAllBendPoints | Deletes all bend points from a connection. |  | Sapphire.Diagram.Connection Sapphire.Diagram.MultipleParts
Sapphire.Diagram.DirectEdit | Direct edit a node, shape or connection | F2 | Sapphire.Diagram.Node.Hidden Sapphire.Diagram.Connection.Hidden Sapphire.Diagram.Node.Shape.Hidden
Sapphire.Diagram.Grid.Toggle | Show or hide the grid |  | Sapphire.Diagram.Editor
Sapphire.Diagram.Guides.Toggle | Show or hide the guides |  | Sapphire.Diagram.Editor
Sapphire.Diagram.Layout | Apply auto layout to diagram |  | Sapphire.Diagram.Editor
Sapphire.Diagram.Node.Default |  |  | Sapphire.Diagram.Node
Sapphire.Diagram.Print | Print the diagram. |  | Sapphire.Diagram.Editor Sapphire.Diagram.Header
Sapphire.Diagram.SaveAsImage | Save the diagram as an image. |  | Sapphire.Diagram.Editor Sapphire.Diagram.Header
Sapphire.Diagram.SelectAll | Select all edit parts in the diagram | CONTROL+a | Sapphire.Diagram.Editor
Sapphire.Diagram.SelectAllNodes | Select all node edit parts in the diagram |  | Sapphire.Diagram.Editor
Sapphire.Diagram.Zoom.Actual | Zoom the diagram to actual size. |  | Sapphire.Diagram.Editor Sapphire.Diagram.Header
Sapphire.Diagram.Zoom.In | Zoom in the diagram. |  | Sapphire.Diagram.Editor Sapphire.Diagram.Header
Sapphire.Diagram.Zoom.Out | Zoom out the diagram. |  | Sapphire.Diagram.Editor Sapphire.Diagram.Header
Sapphire.DoubleTap |  |  | Sapphire.Diagram.Node.Shape.Hidden
Sapphire.Help | Shows help content for the entity. |  | Sapphire.EditorPage Sapphire.Section
Sapphire.Jump | Shows the entity referenced by the property value. A common use is to open a file or another resource type referenced by a path held by the property. | SHIFT+CONTROL+ALT+j | Sapphire.ValuePropertyEditor Sapphire.ListPropertyEditor
Sapphire.Move.Down | Moves an entity down, from the perspective of how the entity appears on the screen. A common use is to move a model element one position towards the end of the list, swapping places with the following element. | SHIFT+CONTROL+ALT+ARROW_DOWN | Sapphire.ListPropertyEditor Sapphire.EditorPage.Outline.Node Sapphire.Diagram.Node.Shape
Sapphire.Move.Left | Moves an entity to the left, from the perspective of how the entity appears on the screen. |  | Sapphire.ListPropertyEditor
Sapphire.Move.Right | Moves an entity to the right, from the perspective of how the entity appears on the screen. |  | Sapphire.ListPropertyEditor
Sapphire.Move.Up | Moves an entity up, from the perspective of how the entity appears on the screen. A common use is to move a model element one position towards the beginning of the list, swapping places with the preceding element. | SHIFT+CONTROL+ALT+ARROW_UP | Sapphire.ListPropertyEditor Sapphire.EditorPage.Outline.Node Sapphire.Diagram.Node.Shape
Sapphire.Outline.CollapseAll | Collapses all nodes in the content outline. |  | Sapphire.EditorPage.Outline.Header
Sapphire.Outline.ExpandAll | Expands all nodes in the content outline. |  | Sapphire.EditorPage.Outline.Header
Sapphire.Outline.Hide | Hides the content outline that is embedded in an editor page. This is a toggle action. It can be used to show the embedded outline after it has been hidden. |  | Sapphire.EditorPage
Sapphire.Restore.Defaults | Restores properties in a section to their default values. For value properties, it means setting the property to null. For list properties, it means clearing the list. |  | Sapphire.Section
Sapphire.ShowInPropertiesView |  |  | Sapphire.Diagram.Editor Sapphire.Diagram.Node Sapphire.Diagram.Node.Shape Sapphire.Diagram.Connection
Sapphire.ShowInSource | Shows the model element associated with a given part in the corresponding source editor. |  | Sapphire.EditorPage.Outline.Node Sapphire.Diagram.Node Sapphire.Diagram.Connection Sapphire.Diagram.Node.Shape
Sapphire.ShowNextError | Shows the next validation error. | SHIFT+CONTROL+ALT+e | Sapphire.EditorPage.Outline.Node
Sapphire.ShowNextWarning | Shows the next validation warning. | SHIFT+CONTROL+ALT+w | Sapphire.EditorPage.Outline.Node

## Action Handlers

Action | Action Handler ID | Description
--- | --- | ---
Sapphire.Browse | Sapphire.Browse.Calendar | Opens a calendar to allow date selection. Activates if the property is a value property of type Date.
Sapphire.Browse | Sapphire.Browse.Color | Opens a color browse dialog. Activates if the property is a value property of type Color.
Sapphire.Browse | Sapphire.Browse.File.Absolute | Opens the native file browse dialog. Activates if the property is a value property, has @AbsolutePath annotation and has @ValidFileSystemResourceType annotation that specifies file type.
Sapphire.Browse | Sapphire.Browse.Folder.Absolute | Opens the native folder browse dialog. Activates if the property is a value property, has @AbsolutePath annotation and has @ValidFileSystemResourceType annotation that specifies folder type.
Sapphire.Browse | Sapphire.Browse.Java.Package | Opens a browse dialog listing applicable Java packages of the current project. Activates if the property is a value property and of type JavaPackageName.
Sapphire.Browse | Sapphire.Browse.Java.Type | Opens a browse dialog listing applicable Java types. Activates if the property is a reference value property from JavaTypeName to JavaType.
Sapphire.Browse | Sapphire.Browse.Path.Relative | Opens a browse dialog for a relative path to a file or a folder. Activates if the property is a value property and has a RelativePathService.
Sapphire.Browse | Sapphire.Browse.Possible | Opens a browse dialog listing possible values for the property. Activates if the property is a value property and has either @PossibleValuesProvider, @PossibleValues or @PossibleValuesFromModel annotation.
Sapphire.Create | Sapphire.Create.Java.Annotation | Creates the specified Java type and opens the created type using Eclipse Java Editor. Activates if the property is a reference value property from JavaTypeName to JavaType, has a @JavaTypeConstraint and specifies ANNOTATION among type kinds.
Sapphire.Create | Sapphire.Create.Java.Class | Creates the specified Java type and opens the created type using Eclipse Java Editor. Activates if the property is a reference value property from JavaTypeName to JavaType, has a @JavaTypeConstraint and specifies CLASS or ABSTRACT_CLASS among type kinds.
Sapphire.Create | Sapphire.Create.Java.Enum | Creates the specified Java type and opens the created type using Eclipse Java Editor. Activates if the property is a reference value property from JavaTypeName to JavaType, has a @JavaTypeConstraint and specifies ENUM among type kinds.
Sapphire.Create | Sapphire.Create.Java.Interface | Creates the specified Java type and opens the created type using Eclipse Java Editor. Activates if the property is a reference value property from JavaTypeName to JavaType, has a @JavaTypeConstraint and specifies INTERFACE among type kinds.
Sapphire.Delete | Sapphire.Diagram.Delete | Deletes the model element associated with a given diagram node or connection.
Sapphire.Delete | Sapphire.Outline.Delete | Deletes the model element associated with a given content outline node. Activates if the UI part is a content outline or a content outline node. All affected nodes must have the same parent and that parent must be a list property.
Sapphire.Diagram.DeleteAllBendPoints | Sapphire.Diagram.DeleteAllBendPoints.Connection |
Sapphire.Diagram.DeleteAllBendPoints | Sapphire.Diagram.DeleteAllBendPoints.MultipleParts |
Sapphire.Diagram.DirectEdit | Sapphire.Diagram.DirectEdit |
Sapphire.Diagram.Grid.Toggle | Sapphire.Diagram.Grid.Toggle | Show/Hide diagram grid
Sapphire.Diagram.Guides.Toggle | Sapphire.Diagram.Guides.Toggle | Show/Hide guides
Sapphire.Diagram.Layout | Sapphire.Diagram.Layout.Horizontal |
Sapphire.Diagram.Layout | Sapphire.Diagram.Layout.Vertical |
Sapphire.Diagram.Print | Sapphire.Diagram.Print |
Sapphire.Diagram.SaveAsImage | Sapphire.Diagram.SaveAsImage |
Sapphire.Diagram.SelectAll | Sapphire.Diagram.SelectAll |
Sapphire.Diagram.SelectAllNodes | Sapphire.Diagram.SelectAllNodes |
Sapphire.Diagram.Zoom.Actual | Sapphire.Diagram.Zoom.Actual |
Sapphire.Diagram.Zoom.In | Sapphire.Diagram.Zoom.In |
Sapphire.Diagram.Zoom.Out | Sapphire.Diagram.Zoom.Out |
Sapphire.Help | Sapphire.Help | Shows the documentation associated with a given UI part using Eclipse context help view.
Sapphire.Jump | Sapphire.Jump.Java.Type | Opens the specified Java type using Eclipse Java Editor. Activates if the property is a reference value property from JavaTypeName to JavaType.
Sapphire.Jump | Sapphire.Jump.Path.Relative | Opens the file specified by a relative path using the associated Eclipse editor. Activates if the property is a value property and has a RelativePathService.
Sapphire.Jump | Sapphire.Jump.URL | Opens the specified URL using an external web browser. Activates if the property is of type URL.
Sapphire.Move.Down | Sapphire.Diagram.MoveShapeDown | Moves the model element one position towards the end of the containing list, swapping places with the following element. Activates if selected part is a child of a shape factory.
Sapphire.Move.Down | Sapphire.Outline.Move.Down | Moves the model element one position towards the end of the containing list, swapping places with the following element. Activates if the UI part is a content outline node. The affected node must have a list property parent.
Sapphire.Move.Up | Sapphire.Diagram.MoveShapeUp | Moves the model element one position towards the beginning of the containing list, swapping places with the preceding element. Activates if selected part is a child of a shape factory.
Sapphire.Move.Up | Sapphire.Outline.Move.Up | Moves the model element one position towards the beginning of the containing list, swapping places with the preceding element. Activates if the UI part is a content outline node. The affected node must have a list property parent.
Sapphire.Outline.CollapseAll | Sapphire.Outline.CollapseAll | Collapses all nodes in the content outline.
Sapphire.Outline.ExpandAll | Sapphire.Outline.ExpandAll | Expands all nodes in the content outline.
Sapphire.Restore.Defaults | Sapphire.Restore.Defaults | Opens a dialog showing all properties in the section with non-default values. The user can select which of those properties to restore to their default state.
Sapphire.ShowInPropertiesView | Sapphire.Diagram.ShowInPropertiesView |
Sapphire.ShowInSource | Sapphire.Diagram.ShowInSource | Shows the model element associated with a given diagram node in the corresponding source editor.
Sapphire.ShowInSource | Sapphire.Outline.ShowInSource | Shows the model element associated with a given content outline node in the corresponding source editor.
Sapphire.ShowNextError | Sapphire.ShowNextError.Outline | Shows the next validation error.
Sapphire.ShowNextWarning | Sapphire.ShowNextWarning.Outline | Shows the next validation warning

## Action Handler Factories

Action | Description
--- | ---
Sapphire.Add | Creates an add action handler for every node type.
Sapphire.Add | Creates an add action handler for every shape factory.
Sapphire.Add | Creates an add action handler for every possible member element type for all lists whose members are shown as child nodes beneath the content outline node in question.
Sapphire.Diagram.Connect |

## Presentation Styles

ID | Part Type
--- | ---
Sapphire.Actuator.Button | Sapphire.Actuator
Sapphire.Actuator.Link | Sapphire.Actuator
Sapphire.PropertyEditor.PopUpListField | Sapphire.PropertyEditor
Sapphire.PropertyEditor.PopUpListField.Editable | Sapphire.PropertyEditor
Sapphire.PropertyEditor.PopUpListField.Strict | Sapphire.PropertyEditor
Sapphire.PropertyEditor.RadioButtonGroup | Sapphire.PropertyEditor
Sapphire.PropertyEditor.RadioButtonGroup.Horizontal | Sapphire.PropertyEditor
Sapphire.PropertyEditor.RadioButtonGroup.Vertical | Sapphire.PropertyEditor
Sapphire.PropertyEditor.Scale | Sapphire.PropertyEditor