Class RecipeSignalListMerger
Meets a recipe option's submit signals with the signals the option already owns, by identity rather than by position: a recipe signal is matched to an existing one by its Guid, or — when either side has none — to the existing signal at the same position when it has the same type. A matched signal is edited in place, an existing signal the recipe leaves out is left untouched, a recipe signal with no match is appended into a slot of its own, and the list takes the recipe's order only when the recipe lists every signal (RecipeListOrder). Every signal the recipe writes leaves with a Guid, so a blank one is filled on its first write. A recipe signal is refused instead of written when it would give a signal a Guid another signal of the option already owns, or when its Guid matches nothing while the signal of the same type at its position carries a Guid of its own no recipe signal claims (RecipeIdentityConflict) — never appended beside it.
Inherited Members
Namespace: Serenity.ProjectRecipe.Infrastructure.Editor.Importers
Assembly: Serenity.UnityProjectRecipe.Infrastructure.Editor.dll
Syntax
public sealed class RecipeSignalListMerger
Methods
Merge(SerializedProperty, RecipeSignalDto[], string, List<string>)
Merges recipeSignals into the [SerializeReference] signal list
signalList. Signals whose type cannot be resolved are skipped (validation reported
them); call ApplyModifiedProperties* on the owning object afterwards.
Declaration
public static RecipeIdentityRefusals Merge(SerializedProperty signalList, RecipeSignalDto[] recipeSignals, string optionId, List<string> warnings)
Parameters
| Type | Name | Description |
|---|---|---|
| SerializedProperty | signalList | The option's submit-signal list property. |
| RecipeSignalDto[] | recipeSignals | The recipe's signals for that option (not null). |
| string | optionId | The option's Id, named in every conflict. |
| List<string> | warnings | Collects messages about fields the codec could not write. |
Returns
| Type | Description |
|---|---|
| RecipeIdentityRefusals | Each recipe signal left out rather than written. |