protected override BaseInstanceState FindChild(
ISystemContext context,
QualifiedName browseName,
bool createOrReplace,
BaseInstanceState replacement)
{
if (QualifiedName.IsNull(browseName))
{
return null;
}
BaseInstanceState instance = null;
switch (browseName.Name)
{
case Opc.Ua.Di.BrowseNames.RevisionCounter:
{
if (createOrReplace)
{
if (RevisionCounter == null)
{
if (replacement == null)
{
RevisionCounter = new PropertyState<uint>(this);
}
else
{
RevisionCounter = (PropertyState<uint>)replacement;
}
}
}
instance = RevisionCounter;
break;
}
case Opc.Ua.Di.BrowseNames.ActualMode:
{
if (createOrReplace)
{
if (ActualMode == null)
{
if (replacement == null)
{
ActualMode = new PropertyState<LocalizedText>(this);
}
else
{
ActualMode = (PropertyState<LocalizedText>)replacement;
}
}
}
instance = ActualMode;
break;
}
case Opc.Ua.Di.BrowseNames.PermittedMode:
{
if (createOrReplace)
{
if (PermittedMode == null)
{
if (replacement == null)
{
PermittedMode = new PropertyState<LocalizedText[]>(this);
}
else
{
PermittedMode = (PropertyState<LocalizedText[]>)replacement;
}
}
}
instance = PermittedMode;
break;
}
case Opc.Ua.Di.BrowseNames.NormalMode:
{
if (createOrReplace)
{
if (NormalMode == null)
{
if (replacement == null)
{
NormalMode = new PropertyState<LocalizedText[]>(this);
}
else
{
NormalMode = (PropertyState<LocalizedText[]>)replacement;
}
}
}
instance = NormalMode;
break;
}
case Opc.Ua.Di.BrowseNames.TargetMode:
{
if (createOrReplace)
{
if (TargetMode == null)
{
if (replacement == null)
{
TargetMode = new PropertyState<LocalizedText[]>(this);
}
else
{
TargetMode = (PropertyState<LocalizedText[]>)replacement;
}
}
}
instance = TargetMode;
break;
}
}
if (instance != null)
{
return instance;
}
return base.FindChild(context, browseName, createOrReplace, replacement);
}