//----------------------------------------------------------------
//
// Copyright (c) Microsoft Corporation. All rights reserved.
//
//----------------------------------------------------------------
namespace System.Activities.Presentation.Model
{
using System.Collections.Generic;
using System.Linq;
using System.Runtime;
// this class is to share common code among classes that implements IModelTreeItem, currently ModelItemImpl, ModelItemCollectionImpl and ModelItemDictionaryImpl
internal class ModelTreeItemHelper
{
private List extraPropertyBackPointers;
public ModelTreeItemHelper()
{
this.extraPropertyBackPointers = new List();
}
public List ExtraPropertyBackPointers
{
get { return this.extraPropertyBackPointers; }
}
public void RemoveExtraPropertyBackPointer(ModelItem parent, string propertyName)
{
Fx.Assert(parent != null, "parent should not be null");
Fx.Assert(!string.IsNullOrEmpty(propertyName), "propertyName should not be null or empty");
BackPointer backPointer = this.extraPropertyBackPointers.FirstOrDefault((bp) => bp.DestinationVertex == parent && propertyName == bp.PropertyName);
if (backPointer != null)
{
this.extraPropertyBackPointers.Remove(backPointer);
}
else
{
Fx.Assert("BackPointer not found");
}
}
}
}