// Path: people/src/main/java/com/example/people/ejb/PersonRoleManager.java
// @Remote
// public interface PersonRoleManager extends Serializable {
//     void createPersonWithRoles(String firstName, String lastName, int[] roleIds);
//     Person getPerson(int id);
//     List<Person> getAllPersons();
//     void deletePerson(int id);
//     void updatePerson(int id, String firstName, String lastName, int[] roleIds);
// 
//     void createRole(String name, String description);
//     Role getRole(int id);
//     List<Role> getAllRoles();
//     void deleteRole(int id);
// 
//     long getPersonCountBelongingToRole(int roleId);
// }
// 
// Path: people/src/main/java/com/example/people/entities/Role.java
// @Entity
// @Table(name = "PEOPLE_ROLE")
// @NamedQuery(name = "selectAllRoles", query = "select o from Role o order by o.id")
// public class Role implements Serializable {
// 
//     private static final long serialVersionUID = 238947623894234L;
//     
//     @Id
//     @GeneratedValue(strategy = GenerationType.AUTO)
//     private int id;
// 
//     @Column(nullable = false)
//     private String name;
//     
//     @Column(nullable = false)
//     private String description;
// 
//     protected Role() {
//     }
// 
//     public Role(String name, String description) {
//         id = 0;
//         this.name = name;
//         this.description = description;
//     }
//     
//     public int getId() {
//         return id;
//     }
// 
//     public String getName() {
//         return name;
//     }
// 
//     public void setName(String name) {
//         this.name = name;
//     }
// 
//     public String getDescription() {
//         return description;
//     }
// 
//     public void setDescription(String description) {
//         this.description = description;
//     }
// 
//     @Override
//     public int hashCode() {
//         return Objects.hashCode(name) ^ Objects.hashCode(description);
//     }
// 
//     @Override
//     public boolean equals(Object obj) {
//         if (obj == null || getClass() != obj.getClass())
//             return false;
// 
//         final Role other = (Role) obj;
//         return Objects.equals(this.name, other.name)
//                 && Objects.equals(this.description, other.description);
//     }
//     
// }


import com.example.people.ejb.PersonRoleManager;
import com.example.people.entities.Role;
import java.io.Serializable;
import java.util.List;
import javax.ejb.EJB;
import javax.enterprise.context.SessionScoped;
import javax.inject.Named;
        description = "";
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getDescription() {
        return description;
    }

    public void setDescription(String description) {
        this.description = description;
    }
    
    public String add() {
        if (!name.isEmpty() && !description.isEmpty())
            manager.createRole(name, description);
        return backToList();
    }

    public String backToList() {
        name = description = "";
        return "back";
    }
    
// Path: people/src/main/java/com/example/people/ejb/PersonRoleManager.java
// @Remote
// public interface PersonRoleManager extends Serializable {
//     void createPersonWithRoles(String firstName, String lastName, int[] roleIds);
//     Person getPerson(int id);
//     List<Person> getAllPersons();
//     void deletePerson(int id);
//     void updatePerson(int id, String firstName, String lastName, int[] roleIds);
// 
//     void createRole(String name, String description);
//     Role getRole(int id);
//     List<Role> getAllRoles();
//     void deleteRole(int id);
// 
//     long getPersonCountBelongingToRole(int roleId);
// }
// 
// Path: people/src/main/java/com/example/people/entities/Role.java
// @Entity
// @Table(name = "PEOPLE_ROLE")
// @NamedQuery(name = "selectAllRoles", query = "select o from Role o order by o.id")
// public class Role implements Serializable {
// 
//     private static final long serialVersionUID = 238947623894234L;
//     
//     @Id
//     @GeneratedValue(strategy = GenerationType.AUTO)
//     private int id;
// 
//     @Column(nullable = false)
//     private String name;
//     
//     @Column(nullable = false)
//     private String description;
// 
//     protected Role() {
//     }
// 
//     public Role(String name, String description) {
//         id = 0;
//         this.name = name;
//         this.description = description;
//     }
//     
//     public int getId() {
//         return id;
//     }
// 
//     public String getName() {
//         return name;
//     }
// 
//     public void setName(String name) {
//         this.name = name;
//     }
// 
//     public String getDescription() {
//         return description;
//     }
// 
//     public void setDescription(String description) {
//         this.description = description;
//     }
// 
//     @Override
//     public int hashCode() {
//         return Objects.hashCode(name) ^ Objects.hashCode(description);
//     }
// 
//     @Override
//     public boolean equals(Object obj) {
//         if (obj == null || getClass() != obj.getClass())
//             return false;
// 
//         final Role other = (Role) obj;
//         return Objects.equals(this.name, other.name)
//                 && Objects.equals(this.description, other.description);
//     }
//     
// }


// Path: people/src/main/java/com/example/people/ejb/mbean/RoleList.java
import com.example.people.ejb.PersonRoleManager;
import com.example.people.entities.Role;
import java.io.Serializable;
import java.util.List;
import javax.ejb.EJB;
import javax.enterprise.context.SessionScoped;
import javax.inject.Named;

        description = "";
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getDescription() {
        return description;
    }

    public void setDescription(String description) {
        this.description = description;
    }
    
    public String add() {
        if (!name.isEmpty() && !description.isEmpty())
            manager.createRole(name, description);
        return backToList();
    }

    public String backToList() {
        name = description = "";
        return "back";
    }
    
    public List<Role> getAllRoles() {