package freenet.clients.fcp;

import java.io.UnsupportedEncodingException;

import freenet.keys.FreenetURI;
import freenet.support.SimpleFieldSet;
import freenet.support.api.Bucket;
import freenet.support.io.ArrayBucket;
import freenet.support.io.NullBucket;

public class BookmarkFeed extends N2NFeedMessage {

	public static final String NAME = "BookmarkFeed";
	private final String name;
	private final FreenetURI URI;
	private final boolean hasAnActivelink;

	public BookmarkFeed(String header, String shortText, String text, short priorityClass, long updatedTime,
			String sourceNodeName, long composed, long sent, long received,
			String name, FreenetURI URI, String description, boolean hasAnActivelink) {
		super(header, shortText, text, priorityClass, updatedTime, sourceNodeName, composed, sent, received);
		this.name = name;
		this.URI = URI;
		this.hasAnActivelink = hasAnActivelink;
		final Bucket descriptionBucket;
		try {
			if(description != null)
				descriptionBucket = new ArrayBucket(description.getBytes("UTF-8"));
			else
				descriptionBucket = new NullBucket();
		} catch (UnsupportedEncodingException e) {
			throw new Error("Impossible: JVM doesn't support UTF-8: " + e, e);
		}
		buckets.put("Description", descriptionBucket);

	}

	@Override
	public SimpleFieldSet getFieldSet() {
		SimpleFieldSet fs = super.getFieldSet();
		fs.putSingle("Name", name);
		fs.putSingle("URI", URI.toString());
		fs.put("HasAnActivelink", hasAnActivelink);
		return fs;
	}

	@Override
	public String getName() {
		return NAME;
	}

}
