// Path: micro-genie-application/src/main/java/io/microgenie/application/database/EntityDatabusRepository.java
// public static class Key{
// 	private String hash;
// 	private String range;
// 	public Key(){}
// 	public Key(final String hash){
// 		this.hash = hash;
// 	}
// 	public Key(final String hash, final String range){
// 		this.hash = hash;
// 		this.range = range;
// 	}
// 	public static Key create(final String hash){
// 		return create(hash, null);
// 	}
// 	public static Key create(final String hash, final String range){
// 		return new Key(hash, range);
// 	}
// 	public String getHash() {
// 		return hash;
// 	}
// 	public void setHash(final String hash) {
// 		this.hash = hash;
// 	}
// 	public String getRange() {
// 		return range;
// 	}
// 	public void setRange(final String range) {
// 		this.range = range;
// 	}
// 	@Override
// 	public int hashCode(){
// 		return HashCodeBuilder.reflectionHashCode(this);
// 	}
// 	@Override
// 	public boolean equals(Object obj) {
// 		return EqualsBuilder.reflectionEquals(this, obj);
// 	 } 
// }
// 
// Path: examples/dropwizard-example/src/main/java/io/microgenie/example/data/LibraryRepository.java
// public class LibraryRepository extends EntityDatabusRepository<Library> {
// 
// 	public LibraryRepository(final StateChangePublisher changePublisher) {
// 		super(Library.class, changePublisher);
// 	}
// 
// 	@Override
// 	public PartitionedDataKeyWithItem<Library> createPartitionedDataKey(final Library item) {
// 		return null;
// 	}
// 
// 	@Override
// 	protected void delete(final Library item) {
// 		
// 	}
// 
// 	@Override
// 	protected List<Library> getList(final List<Library> items) {
// 		return null;
// 	}
// 
// 	@Override
// 	public Library get(final Key key) {
// 		return null;
// 	}
// 
// 	@Override
// 	public void delete(final Key key) {
// 		
// 	}
// 
// 	@Override
// 	public void save(final Library item) {
// 		
// 	}
// 
// 	@Override
// 	public void save(final List<Library> items) {
// 		
// 	}
// }
// 
// Path: examples/dropwizard-example/src/main/java/io/microgenie/example/models/Library.java
// @DynamoDBTable(tableName="dw-example-library")
// public class Library {
// 	
// 	private String id;
// 	private String name;
// 	private String address;
// 	private String city;
// 	private String state;
// 	public String getState() {
// 		return state;
// 	}
// 	public void setState(String state) {
// 		this.state = state;
// 	}
// 	public String getCity() {
// 		return city;
// 	}
// 	public void setCity(String city) {
// 		this.city = city;
// 	}
// 	public String getAddress() {
// 		return address;
// 	}
// 	public void setAddress(String address) {
// 		this.address = address;
// 	}
// 	public String getName() {
// 		return name;
// 	}
// 	public void setName(String name) {
// 		this.name = name;
// 	}
// 	public String getId() {
// 		return id;
// 	}
// 	public void setId(String id) {
// 		this.id = id;
// 	}
// }


import io.microgenie.application.database.EntityDatabusRepository.Key;
import io.microgenie.example.data.LibraryRepository;
import io.microgenie.example.models.Library;
import javax.ws.rs.Consumes;
import javax.ws.rs.GET;
import javax.ws.rs.Path;
import javax.ws.rs.PathParam;
import javax.ws.rs.Produces;
import com.codahale.metrics.annotation.Timed;
package io.microgenie.example.resources;





@Path(value="libraries")
@Consumes(value="application/json")
@Produces(value="application/json")
public class LibraryResource extends BaseResource{
	
	private final LibraryRepository repository;
	
	public LibraryResource(final LibraryRepository repository){
		this.repository = repository;
	}
	

	/**
	* Get the item by it's id
	* @param id
	* @return library
	*/
// Path: micro-genie-application/src/main/java/io/microgenie/application/database/EntityDatabusRepository.java
// public static class Key{
// 	private String hash;
// 	private String range;
// 	public Key(){}
// 	public Key(final String hash){
// 		this.hash = hash;
// 	}
// 	public Key(final String hash, final String range){
// 		this.hash = hash;
// 		this.range = range;
// 	}
// 	public static Key create(final String hash){
// 		return create(hash, null);
// 	}
// 	public static Key create(final String hash, final String range){
// 		return new Key(hash, range);
// 	}
// 	public String getHash() {
// 		return hash;
// 	}
// 	public void setHash(final String hash) {
// 		this.hash = hash;
// 	}
// 	public String getRange() {
// 		return range;
// 	}
// 	public void setRange(final String range) {
// 		this.range = range;
// 	}
// 	@Override
// 	public int hashCode(){
// 		return HashCodeBuilder.reflectionHashCode(this);
// 	}
// 	@Override
// 	public boolean equals(Object obj) {
// 		return EqualsBuilder.reflectionEquals(this, obj);
// 	 } 
// }
// 
// Path: examples/dropwizard-example/src/main/java/io/microgenie/example/data/LibraryRepository.java
// public class LibraryRepository extends EntityDatabusRepository<Library> {
// 
// 	public LibraryRepository(final StateChangePublisher changePublisher) {
// 		super(Library.class, changePublisher);
// 	}
// 
// 	@Override
// 	public PartitionedDataKeyWithItem<Library> createPartitionedDataKey(final Library item) {
// 		return null;
// 	}
// 
// 	@Override
// 	protected void delete(final Library item) {
// 		
// 	}
// 
// 	@Override
// 	protected List<Library> getList(final List<Library> items) {
// 		return null;
// 	}
// 
// 	@Override
// 	public Library get(final Key key) {
// 		return null;
// 	}
// 
// 	@Override
// 	public void delete(final Key key) {
// 		
// 	}
// 
// 	@Override
// 	public void save(final Library item) {
// 		
// 	}
// 
// 	@Override
// 	public void save(final List<Library> items) {
// 		
// 	}
// }
// 
// Path: examples/dropwizard-example/src/main/java/io/microgenie/example/models/Library.java
// @DynamoDBTable(tableName="dw-example-library")
// public class Library {
// 	
// 	private String id;
// 	private String name;
// 	private String address;
// 	private String city;
// 	private String state;
// 	public String getState() {
// 		return state;
// 	}
// 	public void setState(String state) {
// 		this.state = state;
// 	}
// 	public String getCity() {
// 		return city;
// 	}
// 	public void setCity(String city) {
// 		this.city = city;
// 	}
// 	public String getAddress() {
// 		return address;
// 	}
// 	public void setAddress(String address) {
// 		this.address = address;
// 	}
// 	public String getName() {
// 		return name;
// 	}
// 	public void setName(String name) {
// 		this.name = name;
// 	}
// 	public String getId() {
// 		return id;
// 	}
// 	public void setId(String id) {
// 		this.id = id;
// 	}
// }


// Path: examples/dropwizard-example/src/main/java/io/microgenie/example/resources/LibraryResource.java
import io.microgenie.application.database.EntityDatabusRepository.Key;
import io.microgenie.example.data.LibraryRepository;
import io.microgenie.example.models.Library;
import javax.ws.rs.Consumes;
import javax.ws.rs.GET;
import javax.ws.rs.Path;
import javax.ws.rs.PathParam;
import javax.ws.rs.Produces;
import com.codahale.metrics.annotation.Timed;

package io.microgenie.example.resources;





@Path(value="libraries")
@Consumes(value="application/json")
@Produces(value="application/json")
public class LibraryResource extends BaseResource{
	
	private final LibraryRepository repository;
	
	public LibraryResource(final LibraryRepository repository){
		this.repository = repository;
	}
	

	/**
	* Get the item by it's id
	* @param id
	* @return library
	*/
	@Timed