@Override public DirectRender directRenderFor(H.Format acceptType) { MimeType mimeType = MimeType.findByContentType(acceptType.contentType()); if (mimeType.test(MimeType.Trait.excel)) { return ExcelDirectRender.INSTANCE; } return null; }
public static List<MimeType> filterByTrait(Trait trait) { List<MimeType> mimeTypes = new ArrayList<>(); for (MimeType mimeType : allMimeTypes()) { if (mimeType.test(trait)) { mimeTypes.add(mimeType); } } return mimeTypes; }
public Builder mimeType(MimeType mimeType) { String fileExtension = mimeType.fileExtension(); isXlsx = fileExtension.startsWith("xl") && fileExtension.length() == 4; return this; }
public STAGE contentType(String contentType) { MimeType type = MimeType.findByContentType(contentType); if (null == type) { type = MimeType.findByFileExtension(contentType); } if (null != type) { this.mimeType = type; } else { E.unexpected("Content type unrecognized: " + contentType); } return me(); }
public boolean test(MimeType mimeType) { return mimeType.test(this); } }
/** * Construct an SObject with key and file specified * * @see #of(String, File, Map) */ public static SObject of(String key, File file) { if (file.canRead() && file.isFile()) { SObject sobj = new FileSObject(key, file); String fileName = file.getName(); sobj.setAttribute(ATTR_FILE_NAME, file.getName()); String fileExtension = S.fileExtension(fileName); MimeType mimeType = MimeType.findByFileExtension(fileExtension); String type = null != mimeType ? mimeType.type() : null; sobj.setAttribute(ATTR_CONTENT_TYPE, type); sobj.setAttribute(ATTR_CONTENT_LENGTH, S.string(file.length())); return sobj; } else { return getInvalidObject(key, new IOException("File is a directory or not readable")); } }
public STAGE sourceName(String name) { this.sourceName = name; if (null == mimeType) { mimeType = MimeType.findByFileExtension(S.fileExtension(sourceName)); } return me(); }
/** * Register an {@link InputStreamHandler} with all {@link MimeType mime types} by {@link MimeType.Trait}. * * @param trait * the trait of mimetype * @param handler * the input stream handler */ public static void registerInputStreamHandler(MimeType.Trait trait, InputStreamHandler handler) { $.requireNotNull(handler); List<MimeType> mimeTypes = MimeType.filterByTrait(trait); for (MimeType mimeType : mimeTypes) { registerInputStreamHandler(mimeType, handler); } }
traits.add(trait.name()); MimeType mimeType = new MimeType(fileExtension, type, traits.map(new $.Transformer<String, Trait>() { @Override public Trait transform(String s) {
public STAGE contentType(String contentType) { MimeType type = MimeType.findByContentType(contentType); if (null == type) { type = MimeType.findByFileExtension(contentType); } if (null != type) { this.mimeType = type; } else { E.unexpected("Content type unrecognized: " + contentType); } return me(); }
public boolean test(MimeType mimeType) { return mimeType.test(this); } }
/** * Construct an SObject with key and file specified * * @see #of(String, File, Map) */ public static SObject of(String key, File file) { if (file.canRead() && file.isFile()) { SObject sobj = new FileSObject(key, file); String fileName = file.getName(); sobj.setAttribute(ATTR_FILE_NAME, file.getName()); String fileExtension = S.fileExtension(fileName); MimeType mimeType = MimeType.findByFileExtension(fileExtension); String type = null != mimeType ? mimeType.type() : null; sobj.setAttribute(ATTR_CONTENT_TYPE, type); sobj.setAttribute(ATTR_CONTENT_LENGTH, S.string(file.length())); return sobj; } else { return getInvalidObject(key, new IOException("File is a directory or not readable")); } }
public STAGE sourceName(String name) { this.sourceName = name; if (null == mimeType) { mimeType = MimeType.findByFileExtension(S.fileExtension(sourceName)); } return me(); }
/** * Register an {@link InputStreamHandler} with all {@link MimeType mime types} by {@link MimeType.Trait}. * * @param trait * the trait of mimetype * @param handler * the input stream handler */ public static void registerInputStreamHandler(MimeType.Trait trait, InputStreamHandler handler) { $.requireNotNull(handler); List<MimeType> mimeTypes = MimeType.filterByTrait(trait); for (MimeType mimeType : mimeTypes) { registerInputStreamHandler(mimeType, handler); } }
traits.add(trait.name()); MimeType mimeType = new MimeType(fileExtension, type, traits.map(new $.Transformer<String, Trait>() { @Override public Trait transform(String s) {
@Override public void render(Object result, ActionContext context) { MimeType mimeType = MimeType.findByContentType(context.accept().contentType()); E.illegalStateIfNot(mimeType.test(MimeType.Trait.excel)); H.Response resp = context.resp(); resp.contentDisposition(context.attachmentName(), false); ExcelWriter.Builder builder = ExcelWriter.builder() .dateFormat(context.dateFormatPattern(true)) .filter(filter(context)) .headerMap(headerMapping(context)) .fieldStylePatterns(excelDataFormatManager().fieldStyleLookup) .headerTransformer(Keyword.Style.READABLE.asTransformer()); if (mimeType.test(MimeType.Trait.xlsx)) { builder.asXlsx(); } builder.build().write(result, context.resp().outputStream()); }
public static List<MimeType> filterByTrait(Trait trait) { List<MimeType> mimeTypes = new ArrayList<>(); for (MimeType mimeType : allMimeTypes()) { if (mimeType.test(trait)) { mimeTypes.add(mimeType); } } return mimeTypes; }
if (null != sourceName) { String suffix = S.fileExtension(sourceName); mimeType = MimeType.findByFileExtension(suffix);
if (null != sourceName) { String suffix = S.fileExtension(sourceName); mimeType = MimeType.findByFileExtension(suffix);