/* This code is part of Freenet. It is distributed under the GNU General
* Public License, version 2 (or at your option any later version). See
* http://www.gnu.org/ for further details of the GPL. */
package freenet.client.filter;
import java.util.LinkedList;
import java.util.List;
import freenet.client.FetchException;
import freenet.client.FetchException.FetchExceptionMode;
import freenet.l10n.NodeL10n;
import freenet.support.HTMLEncoder;
public class KnownUnsafeContentTypeException extends UnsafeContentTypeException {
private static final long serialVersionUID = -1;
FilterMIMEType type;
public KnownUnsafeContentTypeException(FilterMIMEType type) {
this.type = type;
}
@Override
public String getMessage() {
StringBuilder sb = new StringBuilder();
sb.append(l10n("knownUnsafe"));
sb.append(l10n("noFilter"));
return sb.toString();
}
@Override
public List<String> details() {
List<String> details = new LinkedList<String>();
if(type.dangerousInlines) details.add(l10n("dangerousInlinesLabel")+l10n("dangerousInlines"));
if(type.dangerousLinks) details.add(l10n("dangerousLinksLabel")+l10n("dangerousLinks"));
if(type.dangerousScripting) details.add(l10n("dangerousScriptsLabel")+l10n("dangerousScripts"));
if(type.dangerousScripting) details.add(l10n("dangerousMetadataLabel")+l10n("dangerousMetadata"));
return details;
}
@Override
public String getHTMLEncodedTitle() {
return l10n("title", "type", HTMLEncoder.encode(type.primaryMimeType));
}
@Override
public String getRawTitle() {
return l10n("title", "type", type.primaryMimeType);
}
private static String l10n(String key) {
return NodeL10n.getBase().getString("KnownUnsafeContentTypeException."+key);
}
private static String l10n(String key, String pattern, String value) {
return NodeL10n.getBase().getString("KnownUnsafeContentTypeException."+key, pattern, value);
}
@Override
public FetchExceptionMode getFetchErrorCode() {
return FetchExceptionMode.CONTENT_VALIDATION_BAD_MIME;
}
}