All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.wings.externalizer.TextExternalizer Maven / Gradle / Ivy

The newest version!
/*
 */

/*
 * Copyright 2000,2005 wingS development team.
 *
 * This file is part of wingS (http://wingsframework.org).
 *
 * wingS is free software; you can redistribute it and/or modify
 * it under the terms of the GNU Lesser General Public License
 * as published by the Free Software Foundation; either version 2.1
 * of the License, or (at your option) any later version.
 *
 * Please see COPYING for the complete licence.
 */
package org.wings.externalizer;

import org.wings.io.Device;
import org.wings.resource.HttpHeader;

import java.io.Reader;
import java.io.StringReader;
import java.util.Collection;

public class TextExternalizer implements Externalizer {

    private static final Class[] SUPPORTED_CLASSES = {String.class};

    protected String extension;
    protected String mimeType;
    protected final String[] supportedMimeTypes = new String[1];


    public TextExternalizer(String mimeType, String extension) {
        this.mimeType = mimeType;
        this.extension = extension;

        supportedMimeTypes[0] = mimeType;
    }

    public TextExternalizer(String mimeType) {
        this(mimeType, "txt");
    }

    public TextExternalizer() {
        this("text/plain", "txt");
    }

    public void setExtension(String extension) {
        this.extension = extension;
    }

    @Override
    public String getId(String obj) {
        return null;
    }

    @Override
    public String getExtension(String obj) {
        return extension;
    }

    public void setMimeType(String mimeType) {
        this.mimeType = mimeType;
    }

    @Override
    public String getMimeType(String obj) {
        return mimeType;
    }

    @Override
    public boolean isFinal(String obj) {
        return true;
    }

    @Override
    public int getLength(String obj) {
        return -1;
    }

    @Override
    public void write(Object obj, Device out)
            throws java.io.IOException {
        Reader reader = new StringReader((String) obj);
        char[] buffer = new char[2048];
        int num;
        while ((num = reader.read(buffer)) > 0) {
            out.print(buffer, 0, num);
        }
        reader.close();
    }

    @Override
    public Class[] getSupportedClasses() {
        return SUPPORTED_CLASSES;
    }

    @Override
    public String[] getSupportedMimeTypes() {
        return supportedMimeTypes;
    }

    @Override
    public Collection getHeaders(String obj) {
        return null;
    }
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy