001/***************************************************************************** 002 * Copyright by The HDF Group. * 003 * Copyright by the Board of Trustees of the University of Illinois. * 004 * All rights reserved. * 005 * * 006 * This file is part of the HDF Java Products distribution. * 007 * The full copyright notice, including terms governing use, modification, * 008 * and redistribution, is contained in the files COPYING and Copyright.html. * 009 * COPYING can be found at the root of the source code distribution tree. * 010 * Or, see https://support.hdfgroup.org/products/licenses.html * 011 * If you do not have access to either file, you may request a copy from * 012 * help@hdfgroup.org. * 013 ****************************************************************************/ 014 015package hdf.view; 016 017import hdf.view.ViewProperties.DataViewType; 018import hdf.view.ImageView.ImageViewFactory; 019import hdf.view.MetaDataView.MetaDataViewFactory; 020import hdf.view.PaletteView.PaletteViewFactory; 021import hdf.view.TableView.TableViewFactory; 022import hdf.view.TreeView.TreeViewFactory; 023 024/** 025 * Following the Abstract Factory Pattern, represents a class to produce 026 * different types of DataView factory classes depending on the given 027 * DataViewType enum value. 028 * 029 * @author jhenderson 030 * @version 1.0 4/17/2018 031 */ 032public class DataViewFactoryProducer { 033 034 private final static org.slf4j.Logger log = org.slf4j.LoggerFactory.getLogger(DataViewFactoryProducer.class); 035 036 public static DataViewFactory getFactory(DataViewType viewType) { 037 log.trace("getFactory(): start"); 038 039 if (viewType == DataViewType.TABLE) { 040 log.trace("getFactory(): returning TableView factory instance"); 041 log.trace("getFactory(): finish"); 042 043 return new TableViewFactory(); 044 } 045 else if (viewType == DataViewType.IMAGE) { 046 log.trace("getFactory(): returning ImageView factory instance"); 047 log.trace("getFactory(): finish"); 048 049 return new ImageViewFactory(); 050 } 051 else if (viewType == DataViewType.PALETTE) { 052 log.trace("getFactory(): returning PaletteView factory instance"); 053 log.trace("getFactory(): finish"); 054 055 return new PaletteViewFactory(); 056 } 057 else if (viewType == DataViewType.METADATA) { 058 log.trace("getFactory(): returning MetaDataView factory instance"); 059 log.trace("getFactory(): finish"); 060 061 return new MetaDataViewFactory(); 062 } 063 else if (viewType == DataViewType.TREEVIEW) { 064 log.trace("getFactory(): returning TreeView factory instance"); 065 log.trace("getFactory(): finish"); 066 067 return new TreeViewFactory(); 068 } 069 070 log.trace("getFactory(): no suitable factory class found"); 071 log.trace("getFactory(): finish"); 072 073 return null; 074 } 075}