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.ParameterSet:
{
if (createOrReplace)
{
if (ParameterSet == null)
{
if (replacement == null)
{
ParameterSet = new BaseObjectState(this);
}
else
{
ParameterSet = (BaseObjectState)replacement;
}
}
}
instance = ParameterSet;
break;
}
case Opc.Ua.Di.BrowseNames.MethodSet:
{
if (createOrReplace)
{
if (MethodSet == null)
{
if (replacement == null)
{
MethodSet = new BaseObjectState(this);
}
else
{
MethodSet = (BaseObjectState)replacement;
}
}
}
instance = MethodSet;
break;
}
case Opc.Ua.Di.BrowseNames.Identification:
{
if (createOrReplace)
{
if (Identification == null)
{
if (replacement == null)
{
Identification = new FunctionalGroupState(this);
}
else
{
Identification = (FunctionalGroupState)replacement;
}
}
}
instance = Identification;
break;
}
case Opc.Ua.Di.BrowseNames.Lock:
{
if (createOrReplace)
{
if (Lock == null)
{
if (replacement == null)
{
Lock = new LockingServicesState(this);
}
else
{
Lock = (LockingServicesState)replacement;
}
}
}
instance = Lock;
break;
}
}
if (instance != null)
{
return instance;
}
return base.FindChild(context, browseName, createOrReplace, replacement);
}