// SPDX-FileCopyrightText: 2021 Nextcloud GmbH and Nextcloud contributors // SPDX-License-Identifier: AGPL-3.0-or-later // Created using [yUML](https://github.com/jaime-olivares/vscode-yuml) // {type:class} // {direction:topDown} // {generate:true} [note: Classes used on board import. Methods just to illustrate. {bg:cornsilk}] [ApiController]<-[BoardImportApiController|+import();+getAllowedSystems();+getConfigSchema()] [BoardImportApiController]uses-.->[BoardImportService|+import();+bootstrap();+validateSystem();#validateConfig();#validateData();] [Command]<-[BoardImport|+boardImportCommandService|#configure();#execute(input,output)] [BoardImport]uses-.->[BoardImportCommandService|+bootstrap();+import();+validateSystem();#validateConfig();#validateData()] [BoardImportCommandService]->[BoardImportService] [BoardImportService]uses-.->[TrelloApiService|+name:string] [TrelloApiService]uses-.->[BoardImportService] [TrelloApiService]implements-.-^[<> ABoardImportService|#needValidateData:false|+needValidateData():bool] [BoardImportService]uses-.->[TrelloJsonService|+name:string;#needValidateData:true] [TrelloJsonService]uses-.->[BoardImportService] [BoardImportService]-[note: validateSystem is public because is used on Api. {bg:cornsilk}] [TrelloJsonService]-[note: To create an import to another system, create another class similar to this. {bg:cornsilk}] [TrelloJsonService]implements-.-^[<> ABoardImportService]