1/* 2 * Copyright (c) 2022 Huawei Device Co., Ltd. 3 * Licensed under the Apache License, Version 2.0 (the "License"); 4 * you may not use this file except in compliance with the License. 5 * You may obtain a copy of the License at 6 * 7 * http://www.apache.org/licenses/LICENSE-2.0 8 * 9 * Unless required by applicable law or agreed to in writing, software 10 * distributed under the License is distributed on an "AS IS" BASIS, 11 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 * See the License for the specific language governing permissions and 13 * limitations under the License. 14 */ 15 16import { TimelineDataImpl } from '../model/browser/photo/TimelineDataImpl'; 17import { PhotoDataImpl } from '../model/browser/photo/PhotoDataImpl'; 18import { AlbumDataImpl } from '../model/browser/album/AlbumDataImpl'; 19import type { BrowserDataInterface } from './BrowserDataInterface'; 20 21export class BrowserDataFactory { 22 static readonly TYPE_PHOTO = 'photo'; 23 static readonly TYPE_ALBUM = 'album'; 24 static readonly TYPE_GROUP = 'group'; 25 static readonly TYPE_DISTRIBUTED = 'distributed'; 26 27 static getFeature(type: string, param?: unknown): BrowserDataInterface { 28 if (type == BrowserDataFactory.TYPE_ALBUM) { 29 return new AlbumDataImpl(param); 30 } else if (type == BrowserDataFactory.TYPE_PHOTO) { 31 return new PhotoDataImpl(); 32 } else if (type == BrowserDataFactory.TYPE_GROUP) { 33 return new TimelineDataImpl(); 34 } 35 return null; 36 } 37}