package com.akjava.lib.common.io; import java.util.List; import com.akjava.lib.common.utils.FileNames; import com.google.common.base.Optional; import com.google.common.collect.Lists; /** * has extension * @author aki * */ public class FileType { String type; String subtype; String extension; public String getType() { return type; } public void setType(String type) { this.type = type; } public String getSubtype() { return subtype; } public void setSubtype(String subtype) { this.subtype = subtype; } public String getExtension() { return extension; } public FileType(String type, String subtype) { this(type,subtype,subtype); } public String getMimeType(){ return getType()+"/"+getSubtype(); } public FileType(String type, String subtype, String extension) { super(); this.type = type; this.subtype = subtype; this.extension = extension; } public void setExtension(String extension) { this.extension = extension; } public static final FileType WEBP=new FileType("image","webp"); public static final FileType PNG=new FileType("image","png"); public static final FileType JPEG=new FileType("image","jpeg","jpg"); public static final FileType GIF=new FileType("image","gif"); public static final FileType BMP=new FileType("image","bmp"); public static final List<FileType> fileTypes=Lists.newArrayList(WEBP,PNG,JPEG,GIF,BMP); /** * * @param extension * @return Warning possible null if not exist ,right now only some image file type supported */ public static Optional<FileType> getFileTypeFromFileName(String fileName){ String extension=FileNames.getExtension(fileName); FileType type=FileType.getFileTypeByExtension(extension); return Optional.fromNullable(type); } /** * * @param extension * @return Warning possible null if not exist ,right now only some image file type supported */ public static FileType getFileTypeByExtension(String extension){ extension=extension.toLowerCase(); for(FileType fileType:fileTypes){ if(fileType.getExtension().equals(extension)){ return fileType; } } return null; } public String toString(){ return subtype;//for valuelistbox } }