代码:
package test;
class Member{
private String mid;
private String name;
private Role roles[];
public Member() {}
public Member(String mid, String name)
{
this.mid = mid;
this.name = name;
}
// 省略普通属性的setter getter
public void setRoles(Role roles[]){
this.roles = roles;
}
public Role[] getRoles(){
return this.roles;
}
public String getInfo()
{
return "【用户信息】 mid = " + this.mid + "、name = " + this.name;
}
}
class Role{
private long rid;
private String title;
private Member members[];
private Privilege privileges[];
public Role() {}
public Role(long rid, String title)
{
this.rid = rid;
this.title = title;
}
// 省略普通属性的setter getter
public void setMembers(Member members[]){
this.members = members;
}
public Member[] getMembers() {
return this.members;
}
public void setPrivileges(Privilege privileges[]){
this.privileges = privileges;
}
public Privilege[] getPrivileges() {
return this.privileges;
}
public String getInfo()
{
return "【角色信息】 rid = " + this.rid + "、title = " + this.title;
}
}
class Privilege{
private long pid;
private String title;
private Role role;
public Privilege() {}
public Privilege(long pid, String title)
{
this.pid = pid;
this.title = title;
}
// 省略普通属性的setter getter
public void setRole(Role role) {
this.role = role;
}
public Role getRole() {
return this.role;
}
public String getInfo()
{
return "【权限信息】 pid = " + this.pid + "、title = " + this.title;
}
}
public class Company{
public static void main(String args[]){
System.out.println("Hello");
Member mem1 = new Member("mldn-1", "zhangsan");
Member mem2 = new Member("mldn-2", "lisi");
Role role1 = new Role(1L, "系统配置");
Role role2 = new Role(2L, "备份管理");
Role role3 = new Role(3L, "人事管理");
Privilege pri1 = new Privilege(1000L, "系统初始化");
Privilege pri2 = new Privilege(1001L, "系统还原");
Privilege pri3 = new Privilege(1002L, "系统环境修改");
Privilege pri4 = new Privilege(2000L, "备份员工数据");
Privilege pri5 = new Privilege(2001L, "备份部门数据");
Privilege pri6 = new Privilege(2002L, "备份公文数据");
Privilege pri7 = new Privilege(3000L, "增加员工");
Privilege pri8 = new Privilege(3001L, "编辑员工");
Privilege pri9 = new Privilege(3002L, "浏览员工");
Privilege pri10 = new Privilege(3003L, "员工离职");
// 增加角色与权限的对应关系
role1.setPrivileges(new Privilege[] {pri1, pri2, pri3});
role2.setPrivileges(new Privilege[] {pri4, pri5, pri6});
role3.setPrivileges(new Privilege[] {pri7, pri8, pri9, pri10});
// 增加权限与角色的对应
pri1.setRole(role1);
pri2.setRole(role1);
pri3.setRole(role1);
pri4.setRole(role2);
pri5.setRole(role2);
pri6.setRole(role2);
pri7.setRole(role3);
pri8.setRole(role3);
pri9.setRole(role3);
pri10.setRole(role3);
// 增加用户与角色的对应关系
mem1.setRoles(new Role[] {role1, role2});
mem2.setRoles(new Role[] {role1, role2, role3});
role1.setMembers(new Member[] {mem1, mem2});
role2.setMembers(new Member[] {mem1, mem2});
role3.setMembers(new Member[] {mem2});
// 根据要求获取数据
System.out.println("------通过用户查找信息------");
System.out.println(mem2.getInfo());
// for(Role r : mem2.getRoles()) {
// System.out.println("\t" + r.getInfo());
// for(int i = 0; i < r.getPrivileges().length; i++) {
// System.out.println("\t\t" + r.getPrivileges()[i].getInfo());
// }
// }
for(int i = 0; i < mem2.getRoles().length; i++)
{
System.out.println("\t" + mem2.getRoles()[i].getInfo());
for(int j = 0; j < mem2.getRoles()[i].getPrivileges().length; j++)
{
System.out.println("\t\t" + mem2.getRoles()[i].getPrivileges()[j].getInfo());
}
}
System.out.println("------通过角色查找信息------");
System.out.println(role2.getInfo());
for(Privilege p : role2.getPrivileges()){
System.out.println("\t" + p.getInfo());
}
for(Member m : role2.getMembers()) {
System.out.println("\t" + m.getInfo());
}
System.out.println("------通过权限查找信息------");
System.out.println(pri1.getInfo());
System.out.println("\t" + pri1.getRole().getInfo());
for(int i=0; i < pri1.getRole().getMembers().length; i++)
{
System.out.println("\t\t" + pri1.getRole().getMembers()[i].getInfo());
}
}
}