// Path: sample-web-app/src/main/java/com/example/model/Person.java
// public class Person {
// 	private String email;
// 	private String firstName;
// 	private String lastName;
// 		
// 	public Person() {
// 	}
// 	
// 	public Person( final String email ) {
// 		this.email = email;
// 	}
// 	
// 	public Person( final String firstName, final String lastName ) {
// 		this.firstName = firstName;
// 		this.lastName = lastName;
// 	}
// 
// 	public String getEmail() {
// 		return email;
// 	}
// 	
// 	public void setEmail( final String email ) {
// 		this.email = email;
// 	}
// 		
// 	public String getFirstName() {
// 		return firstName;
// 	}
// 	
// 	public String getLastName() {
// 		return lastName;
// 	}
// 	
// 	public void setFirstName( final String firstName ) {
// 		this.firstName = firstName;
// 	}
// 	
// 	public void setLastName( final String lastName ) {
// 		this.lastName = lastName;
// 	}		
// }
// 
// Path: sample-web-app/src/main/java/com/example/services/PeopleService.java
// @Service
// public class PeopleService {
// 	private final ConcurrentMap< String, Person > persons = new ConcurrentHashMap< String, Person >(); 
// 	
// 	public Collection< Person > getPeople( int page, int pageSize ) {
// 		final Collection< Person > slice = new ArrayList< Person >( pageSize );
// 		
//         final Iterator< Person > iterator = persons.values().iterator();
//         for( int i = 0; slice.size() < pageSize && iterator.hasNext(); ) {
//         	if( ++i > ( ( page - 1 ) * pageSize ) ) {
//         		slice.add( iterator.next() );
//         	}
//         }
// 		
// 		return slice;
// 	}
// 	
// 	public Person getByEmail( final String email ) {
// 		final Person person = persons.get( email );
// 		
// 		if( person == null ) {
// 			throw new PersonNotFoundException( email );
// 		}
// 		
// 		return person;
// 	}
// 
// 	public Person addPerson( final String email, final String firstName, final String lastName ) {
// 		final Person person = new Person( email );
// 		person.setFirstName( firstName );
// 		person.setLastName( lastName );
// 				
// 		if( persons.putIfAbsent( email, person ) != null ) {
// 			throw new PersonAlreadyExistsException( email );
// 		}
// 		
// 		return person;
// 	}
// 	
// 	public void removePerson( final String email ) {
// 		if( persons.remove( email ) == null ) {
// 			throw new PersonNotFoundException( email );
// 		}
// 	}
// }


import java.util.Collection;
import javax.inject.Inject;
import javax.ws.rs.DELETE;
import javax.ws.rs.DefaultValue;
import javax.ws.rs.FormParam;
import javax.ws.rs.GET;
import javax.ws.rs.POST;
import javax.ws.rs.PUT;
import javax.ws.rs.Path;
import javax.ws.rs.PathParam;
import javax.ws.rs.Produces;
import javax.ws.rs.QueryParam;
import javax.ws.rs.core.Context;
import javax.ws.rs.core.MediaType;
import javax.ws.rs.core.Response;
import javax.ws.rs.core.UriInfo;
import com.example.model.Person;
import com.example.services.PeopleService;
package com.example.rs;




@Path("/people")
public class PeopleRestService {
	@Inject
// Path: sample-web-app/src/main/java/com/example/model/Person.java
// public class Person {
// 	private String email;
// 	private String firstName;
// 	private String lastName;
// 		
// 	public Person() {
// 	}
// 	
// 	public Person( final String email ) {
// 		this.email = email;
// 	}
// 	
// 	public Person( final String firstName, final String lastName ) {
// 		this.firstName = firstName;
// 		this.lastName = lastName;
// 	}
// 
// 	public String getEmail() {
// 		return email;
// 	}
// 	
// 	public void setEmail( final String email ) {
// 		this.email = email;
// 	}
// 		
// 	public String getFirstName() {
// 		return firstName;
// 	}
// 	
// 	public String getLastName() {
// 		return lastName;
// 	}
// 	
// 	public void setFirstName( final String firstName ) {
// 		this.firstName = firstName;
// 	}
// 	
// 	public void setLastName( final String lastName ) {
// 		this.lastName = lastName;
// 	}		
// }
// 
// Path: sample-web-app/src/main/java/com/example/services/PeopleService.java
// @Service
// public class PeopleService {
// 	private final ConcurrentMap< String, Person > persons = new ConcurrentHashMap< String, Person >(); 
// 	
// 	public Collection< Person > getPeople( int page, int pageSize ) {
// 		final Collection< Person > slice = new ArrayList< Person >( pageSize );
// 		
//         final Iterator< Person > iterator = persons.values().iterator();
//         for( int i = 0; slice.size() < pageSize && iterator.hasNext(); ) {
//         	if( ++i > ( ( page - 1 ) * pageSize ) ) {
//         		slice.add( iterator.next() );
//         	}
//         }
// 		
// 		return slice;
// 	}
// 	
// 	public Person getByEmail( final String email ) {
// 		final Person person = persons.get( email );
// 		
// 		if( person == null ) {
// 			throw new PersonNotFoundException( email );
// 		}
// 		
// 		return person;
// 	}
// 
// 	public Person addPerson( final String email, final String firstName, final String lastName ) {
// 		final Person person = new Person( email );
// 		person.setFirstName( firstName );
// 		person.setLastName( lastName );
// 				
// 		if( persons.putIfAbsent( email, person ) != null ) {
// 			throw new PersonAlreadyExistsException( email );
// 		}
// 		
// 		return person;
// 	}
// 	
// 	public void removePerson( final String email ) {
// 		if( persons.remove( email ) == null ) {
// 			throw new PersonNotFoundException( email );
// 		}
// 	}
// }


// Path: sample-web-app/src/main/java/com/example/rs/PeopleRestService.java
import java.util.Collection;
import javax.inject.Inject;
import javax.ws.rs.DELETE;
import javax.ws.rs.DefaultValue;
import javax.ws.rs.FormParam;
import javax.ws.rs.GET;
import javax.ws.rs.POST;
import javax.ws.rs.PUT;
import javax.ws.rs.Path;
import javax.ws.rs.PathParam;
import javax.ws.rs.Produces;
import javax.ws.rs.QueryParam;
import javax.ws.rs.core.Context;
import javax.ws.rs.core.MediaType;
import javax.ws.rs.core.Response;
import javax.ws.rs.core.UriInfo;
import com.example.model.Person;
import com.example.services.PeopleService;

package com.example.rs;




@Path("/people")
public class PeopleRestService {
	@Inject
	private PeopleService peopleService;