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.Gds.BrowseNames.Applications:
{
if (createOrReplace)
{
if (Applications == null)
{
if (replacement == null)
{
Applications = new FolderState(this);
}
else
{
Applications = (FolderState)replacement;
}
}
}
instance = Applications;
break;
}
case Opc.Ua.Gds.BrowseNames.FindApplications:
{
if (createOrReplace)
{
if (FindApplications == null)
{
if (replacement == null)
{
FindApplications = new FindApplicationsMethodState(this);
}
else
{
FindApplications = (FindApplicationsMethodState)replacement;
}
}
}
instance = FindApplications;
break;
}
case Opc.Ua.Gds.BrowseNames.RegisterApplication:
{
if (createOrReplace)
{
if (RegisterApplication == null)
{
if (replacement == null)
{
RegisterApplication = new RegisterApplicationMethodState(this);
}
else
{
RegisterApplication = (RegisterApplicationMethodState)replacement;
}
}
}
instance = RegisterApplication;
break;
}
case Opc.Ua.Gds.BrowseNames.UpdateApplication:
{
if (createOrReplace)
{
if (UpdateApplication == null)
{
if (replacement == null)
{
UpdateApplication = new UpdateApplicationMethodState(this);
}
else
{
UpdateApplication = (UpdateApplicationMethodState)replacement;
}
}
}
instance = UpdateApplication;
break;
}
case Opc.Ua.Gds.BrowseNames.UnregisterApplication:
{
if (createOrReplace)
{
if (UnregisterApplication == null)
{
if (replacement == null)
{
UnregisterApplication = new UnregisterApplicationMethodState(this);
}
else
{
UnregisterApplication = (UnregisterApplicationMethodState)replacement;
}
}
}
instance = UnregisterApplication;
break;
}
case Opc.Ua.Gds.BrowseNames.GetApplication:
{
if (createOrReplace)
{
if (GetApplication == null)
{
if (replacement == null)
{
GetApplication = new GetApplicationMethodState(this);
}
else
{
GetApplication = (GetApplicationMethodState)replacement;
}
}
}
instance = GetApplication;
break;
}
case Opc.Ua.Gds.BrowseNames.QueryServers:
{
if (createOrReplace)
{
if (QueryServers == null)
{
if (replacement == null)
{
QueryServers = new QueryServersMethodState(this);
}
else
{
QueryServers = (QueryServersMethodState)replacement;
}
}
}
instance = QueryServers;
break;
}
}
if (instance != null)
{
return instance;
}
return base.FindChild(context, browseName, createOrReplace, replacement);
}