/*************************************************** * * cismet GmbH, Saarbruecken, Germany * * ... and it just works. * ****************************************************/ /* * To change this license header, choose License Headers in Project Properties. * To change this template file, choose Tools | Templates * and open the template in the editor. */ package de.cismet.cismap.commons.drophandler.filematcher.builtin; import java.io.File; import java.util.ArrayList; import java.util.Arrays; import java.util.Collection; import java.util.HashMap; import java.util.Map; import de.cismet.cismap.commons.drophandler.MappingComponentDropHandlerFileMatcher; /** * DOCUMENT ME! * * @author jruiz * @version $Revision$, $Date$ */ public class MappingComponentDropHandlerFileTypeMatcher implements MappingComponentDropHandlerFileMatcher { //~ Static fields/initializers --------------------------------------------- public static String[] VIDEO_TYPES = new String[] { "mov", "mpeg", "mpg", "avi", "mkv" }; public static String[] IMAGE_TYPES = new String[] { "jpg", "jpeg", "bmp", "tif", "tiff", "png" }; public static String[] TEXT_TYPES = new String[] { "txt", "csv" }; public static String[] BINARY_TYPES = new String[] { "exe" }; public static Map<FileType, String> typeExtensionMap = new HashMap<>(); //~ Enums ------------------------------------------------------------------ /** * DOCUMENT ME! * * @version $Revision$, $Date$ */ public enum FileType { //~ Enum constants ----------------------------------------------------- ANY, VIDEO, IMAGE, TEXT, BINARY } //~ Instance fields -------------------------------------------------------- private final MappingComponentDropHandlerFileExtensionMatcher extensionMatcher; private final Collection<FileType> types; //~ Constructors ----------------------------------------------------------- /** * Creates a new MappingComponentDropHandlerFileTypeMatcher object. * * @param type DOCUMENT ME! */ public MappingComponentDropHandlerFileTypeMatcher(final FileType type) { this(Arrays.asList(type)); } /** * Creates a new MappingComponentDropHandlerFileTypeMatcher object. * * @param types DOCUMENT ME! */ public MappingComponentDropHandlerFileTypeMatcher(final Collection<FileType> types) { final Collection<String> extensions = new ArrayList<>(); for (final FileType type : types) { switch (type) { case VIDEO: { extensions.addAll(Arrays.asList(VIDEO_TYPES)); } break; case IMAGE: { extensions.addAll(Arrays.asList(IMAGE_TYPES)); } break; case TEXT: { extensions.addAll(Arrays.asList(TEXT_TYPES)); } break; case BINARY: { extensions.addAll(Arrays.asList(BINARY_TYPES)); } break; } } this.types = types; this.extensionMatcher = new MappingComponentDropHandlerFileExtensionMatcher(extensions); } //~ Methods ---------------------------------------------------------------- @Override public boolean isMatching(final File file) { if (types.contains(FileType.ANY)) { return true; } else { return extensionMatcher.isMatching(file); } } } //layerwidgetprovider