/// <summary> /// Finds the child with the specified browse name. /// </summary> 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); }