package socialkademlia.dht;
import kademlia.dht.KadContent;
/**
* A JSocialKademliaStorageEntry class that is used to store a content on the DHT
*
* @author Joshua Kissoon
* @since 20140402
*/
public class JSocialKademliaStorageEntry implements SocialKademliaStorageEntry
{
private String content;
private final JSocialKademliaStorageEntryMetadata metadata;
private boolean isCompressed; // Is this entry in compressed form
{
this.isCompressed = false;
}
public JSocialKademliaStorageEntry(final KadContent content)
{
this(content, new JSocialKademliaStorageEntryMetadata(content));
}
public JSocialKademliaStorageEntry(final KadContent content, final JSocialKademliaStorageEntryMetadata metadata)
{
this.setContent(content.toSerializedForm());
this.metadata = metadata;
}
@Override
public final void setContent(final byte[] data)
{
this.content = new String(data);
}
@Override
public final void setContent(String data)
{
this.content = data;
}
@Override
public final byte[] getContent()
{
return this.content.getBytes();
}
@Override
public final String getContentString()
{
return this.content;
}
@Override
public final SocialKademliaStorageEntryMetadata getContentMetadata()
{
return this.metadata;
}
@Override
public boolean isCompressed()
{
return this.isCompressed;
}
@Override
public void setCompressed()
{
this.isCompressed = true;
}
@Override
public void setDecompressed()
{
this.isCompressed = false;
}
@Override
public String toString()
{
StringBuilder sb = new StringBuilder("[StorageEntry: ");
sb.append("[Content: ");
sb.append(this.getContent());
sb.append("]");
sb.append(this.getContentMetadata());
sb.append("]");
return sb.toString();
}
}