com.github.datalking.io.EncodedResource Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of play-mvc Show documentation
Show all versions of play-mvc Show documentation
simple mvc framework based on java servlet.
The newest version!
package com.github.datalking.io;
import com.github.datalking.util.Assert;
import com.github.datalking.util.ObjectUtils;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.Reader;
import java.nio.charset.Charset;
/**
* @author yaoo on 5/28/18
*/
public class EncodedResource {
private final Resource resource;
// 资源编码
private final String encoding;
private final Charset charset;
public EncodedResource(Resource resource) {
this(resource, null, null);
}
public EncodedResource(Resource resource, String encoding) {
this(resource, encoding, null);
}
public EncodedResource(Resource resource, Charset charset) {
this(resource, null, charset);
}
private EncodedResource(Resource resource, String encoding, Charset charset) {
super();
Assert.notNull(resource, "Resource must not be null");
this.resource = resource;
this.encoding = encoding;
this.charset = charset;
}
public final Resource getResource() {
return this.resource;
}
public final String getEncoding() {
return this.encoding;
}
public final Charset getCharset() {
return this.charset;
}
public boolean requiresReader() {
return (this.encoding != null || this.charset != null);
}
public Reader getReader() throws IOException {
if (this.charset != null) {
return new InputStreamReader(this.resource.getInputStream(), this.charset);
} else if (this.encoding != null) {
return new InputStreamReader(this.resource.getInputStream(), this.encoding);
} else {
return new InputStreamReader(this.resource.getInputStream());
}
}
public InputStream getInputStream() throws IOException {
return this.resource.getInputStream();
}
@Override
public boolean equals(Object other) {
if (this == other) {
return true;
}
if (!(other instanceof EncodedResource)) {
return false;
}
EncodedResource otherResource = (EncodedResource) other;
return (this.resource.equals(otherResource.resource) &&
ObjectUtils.nullSafeEquals(this.charset, otherResource.charset) &&
ObjectUtils.nullSafeEquals(this.encoding, otherResource.encoding));
}
@Override
public int hashCode() {
return this.resource.hashCode();
}
@Override
public String toString() {
return this.resource.toString();
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy