001// License: GPL. For details, see LICENSE file. 002package org.openstreetmap.josm.data.sources; 003 004import javax.swing.ImageIcon; 005 006import org.openstreetmap.josm.tools.ImageProvider.ImageSizes; 007 008/** 009 * This is an enum for a source category (i.e. PHOTO/ELEVATION/etc.) 010 * 011 * @author Taylor Smock 012 * 013 * @param <T> The enum that is extending this interface 014 * @since 16545 015 */ 016public interface ISourceCategory<T extends Enum<T>> extends ICommonSource<T> { 017 /** 018 * Returns the unique string identifying this category. 019 * @return the unique string identifying this category 020 */ 021 String getCategoryString(); 022 023 /** 024 * Returns the description of this category. 025 * @return the description of this category 026 */ 027 String getDescription(); 028 029 /** 030 * Returns the category icon at the given size. 031 * @param size icon wanted size 032 * @return the category icon at the given size 033 */ 034 ImageIcon getIcon(ImageSizes size); 035}