// Path: backend/src/main/java/no/akvaplan/postsense/datatypes/BucketData.java
// public class BucketData {
// 	private String id;
// 	private String bucketName;
// 	private List<String> keyIds;
// 	
// 	public BucketData() {
// 		keyIds = new ArrayList<>();
// 	}
// 	
// 	public BucketData(String id) {
// 		this();
// 		this.id = id;
// 		this.bucketName = id;
// 	}
// 	
// 	public String getId() {
// 		return id;
// 	}
// 	
// 	public void setId(String id) {
// 		this.id = id;
// 	}
// 
// 	public String getBucketName() {
// 		return bucketName;
// 	}
// 	
// 	public void setBucketName(String bucketName) {
// 		this.bucketName = bucketName;
// 	}	
// 	
// 	public List<String> getKeyIds() {
// 		return keyIds;
// 	}
// 	
// 	public void setKeyIds(List<String> keyIds) {
// 		this.keyIds = keyIds;
// 	}
// }
// 
// Path: backend/src/main/java/no/akvaplan/postsense/datatypes/KeyData.java
// public class KeyData {
// 	private String id;
// 	private String keyName;
// 	
// 	public KeyData() {
// 		// TODO Auto-generated constructor stub
// 	}
// 	
// 	public KeyData(String id) {
// 		this.id = id;
// 		this.keyName = keyName;
// 	}
// 	
// 	public String getId() {
// 		return id;
// 	}
// 	
// 	public void setId(String id) {
// 		this.id = id;
// 	}
// 	
// 	public String getKeyName() {
// 		return keyName;
// 	}
// 	
// 	public void setKeyName(String keyName) {
// 		this.keyName = keyName;
// 	}
// }
// 
// Path: backend/src/main/java/no/akvaplan/postsense/datatypes/KeyValue.java
// public class KeyValue {
// 	String id;
// 	String keyName;
// 	String value;
// 	
// 	public KeyValue() {
// 		// TODO Auto-generated constructor stub
// 	}
// 	
// 	public KeyValue(String id, String value) {
// 		this.id = id;
// 		this.value = value;
// 	}
// 	
// 	public String getKeyName() {
// 		return keyName;
// 	}
// 	
// 	public void setKeyName(String keyName) {
// 		this.keyName = keyName;
// 	}
// 	
// 	public String getId() {
// 		return id;
// 	}
// 	
// 	public void setId(String id) {
// 		this.id = id;
// 	}
// 	
// 	public String getValue() {
// 		return value;
// 	}
// 	
// 	public void setValue(String value) {
// 		this.value = value;
// 	}
// }


import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import org.apache.log4j.Logger;
import no.akvaplan.postsense.datatypes.BucketData;
import no.akvaplan.postsense.datatypes.KeyData;
import no.akvaplan.postsense.datatypes.KeyValue;
import com.basho.riak.client.IRiakClient;
import com.basho.riak.client.RiakException;
import com.basho.riak.client.RiakRetryFailedException;
import com.basho.riak.client.bucket.Bucket;
import com.basho.riak.client.query.indexes.BucketIndex;
import com.google.gson.Gson;
			bucket = riakClient.fetchBucket(bucketName).execute();
			
			for (String key : bucket.fetchIndex(BucketIndex.index).withValue("$key").execute()) {
				keyList.add(new KeyData(key));
			}
		} catch (RiakRetryFailedException rrfe) {
            rrfe.printStackTrace();
        } catch (RiakException e) {
            e.printStackTrace();
        }
		
		return keyList;
	}
	
	public KeyValue getKeyValue(String bucketName, String key) {
		KeyValue keyValue = new KeyValue();
		keyValue.setId(bucketName + "___" + key);
		keyValue.setKeyName(key);
		
		Bucket bucket = null;
		try {
			bucket = riakClient.fetchBucket(bucketName).execute();
			keyValue.setValue(bucket.fetch(key).execute().getValueAsString());
		} catch (RiakRetryFailedException rrfe) {
            rrfe.printStackTrace();
        }   
		
		return keyValue;
	}
	
// Path: backend/src/main/java/no/akvaplan/postsense/datatypes/BucketData.java
// public class BucketData {
// 	private String id;
// 	private String bucketName;
// 	private List<String> keyIds;
// 	
// 	public BucketData() {
// 		keyIds = new ArrayList<>();
// 	}
// 	
// 	public BucketData(String id) {
// 		this();
// 		this.id = id;
// 		this.bucketName = id;
// 	}
// 	
// 	public String getId() {
// 		return id;
// 	}
// 	
// 	public void setId(String id) {
// 		this.id = id;
// 	}
// 
// 	public String getBucketName() {
// 		return bucketName;
// 	}
// 	
// 	public void setBucketName(String bucketName) {
// 		this.bucketName = bucketName;
// 	}	
// 	
// 	public List<String> getKeyIds() {
// 		return keyIds;
// 	}
// 	
// 	public void setKeyIds(List<String> keyIds) {
// 		this.keyIds = keyIds;
// 	}
// }
// 
// Path: backend/src/main/java/no/akvaplan/postsense/datatypes/KeyData.java
// public class KeyData {
// 	private String id;
// 	private String keyName;
// 	
// 	public KeyData() {
// 		// TODO Auto-generated constructor stub
// 	}
// 	
// 	public KeyData(String id) {
// 		this.id = id;
// 		this.keyName = keyName;
// 	}
// 	
// 	public String getId() {
// 		return id;
// 	}
// 	
// 	public void setId(String id) {
// 		this.id = id;
// 	}
// 	
// 	public String getKeyName() {
// 		return keyName;
// 	}
// 	
// 	public void setKeyName(String keyName) {
// 		this.keyName = keyName;
// 	}
// }
// 
// Path: backend/src/main/java/no/akvaplan/postsense/datatypes/KeyValue.java
// public class KeyValue {
// 	String id;
// 	String keyName;
// 	String value;
// 	
// 	public KeyValue() {
// 		// TODO Auto-generated constructor stub
// 	}
// 	
// 	public KeyValue(String id, String value) {
// 		this.id = id;
// 		this.value = value;
// 	}
// 	
// 	public String getKeyName() {
// 		return keyName;
// 	}
// 	
// 	public void setKeyName(String keyName) {
// 		this.keyName = keyName;
// 	}
// 	
// 	public String getId() {
// 		return id;
// 	}
// 	
// 	public void setId(String id) {
// 		this.id = id;
// 	}
// 	
// 	public String getValue() {
// 		return value;
// 	}
// 	
// 	public void setValue(String value) {
// 		this.value = value;
// 	}
// }


// Path: backend/src/main/java/no/haagensoftware/riak/dao/RiakBucketDao.java
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import org.apache.log4j.Logger;
import no.akvaplan.postsense.datatypes.BucketData;
import no.akvaplan.postsense.datatypes.KeyData;
import no.akvaplan.postsense.datatypes.KeyValue;
import com.basho.riak.client.IRiakClient;
import com.basho.riak.client.RiakException;
import com.basho.riak.client.RiakRetryFailedException;
import com.basho.riak.client.bucket.Bucket;
import com.basho.riak.client.query.indexes.BucketIndex;
import com.google.gson.Gson;

			bucket = riakClient.fetchBucket(bucketName).execute();
			
			for (String key : bucket.fetchIndex(BucketIndex.index).withValue("$key").execute()) {
				keyList.add(new KeyData(key));
			}
		} catch (RiakRetryFailedException rrfe) {
            rrfe.printStackTrace();
        } catch (RiakException e) {
            e.printStackTrace();
        }
		
		return keyList;
	}
	
	public KeyValue getKeyValue(String bucketName, String key) {
		KeyValue keyValue = new KeyValue();
		keyValue.setId(bucketName + "___" + key);
		keyValue.setKeyName(key);
		
		Bucket bucket = null;
		try {
			bucket = riakClient.fetchBucket(bucketName).execute();
			keyValue.setValue(bucket.fetch(key).execute().getValueAsString());
		} catch (RiakRetryFailedException rrfe) {
            rrfe.printStackTrace();
        }   
		
		return keyValue;
	}
	
	public void persistKeyValue(String bucketName, String key, KeyValue keyValue) {