package edu.stanford.peer.rbtm.test; import edu.stanford.peer.rbtm.engine.*; import edu.stanford.peer.rbtm.credential.*; import edu.stanford.peer.rbtm.util.*; public class EPub { static GraphEngine mgr = new GraphEngine(); static Entity alice = new SimpleEntity("Alice"); static Entity bob = new SimpleEntity("Bob"); static EntityExpression[] parts; public static void main(String arg[]) { loadCredentials(); performSearches(); } public static void performSearches() { System.out.println("Credential Manager contains:"); System.out.println(mgr); System.out.println("Forward search on " + alice + ":"); System.out.println(mgr.forwardSearch(alice)); System.out.println("------------------------------------"); System.out.println("Backward search on EPub.student:\n"); System.out.println(mgr.backwardSearch(new Role("EPub", "student"))); System.out.println("Backward search on EOrg.preferred:\n "); System.out.println(mgr.backwardSearch(new Role("EOrg", "preferred"))); parts = loadRoles(); Intersection i = new Intersection(); i.and(parts[0]).and(parts[1]); System.out.println("Backward search on " + i + ":\n "); System.out.println(mgr.backwardSearch(i)); } public static EntityExpression[] loadRoles() { EntityExpression[] parts = new EntityExpression[2]; parts[0] = new Role("EPub", "student"); parts[1] = new Role("EOrg", "preferred"); return parts; } public static void loadCredentials() { SimpleEntity abu = new SimpleEntity("ABU"), acm = new SimpleEntity("ACM"), bbb = new SimpleEntity("BBB"), eOrg = new SimpleEntity("EOrg"), ePub = new SimpleEntity("EPub"), stateU = new SimpleEntity("StateU"); SimpleRoleName stuID = new SimpleRoleName("stuID"), accredited = new SimpleRoleName("accredited"), student = new SimpleRoleName("student"), univ = new SimpleRoleName("university"), member = new SimpleRoleName("member"), preferred = new SimpleRoleName("preferred"), sale = new SimpleRoleName("sale"), discount = new SimpleRoleName("spdiscount"); Role ePubUniv = new Role(ePub, univ), acmMember = new Role(acm, member), abuAccredited = new Role(abu, accredited); LinkedRole ePubUnivStuID = new LinkedRole(ePubUniv, stuID); Intersection u = new Intersection(); u.and(new Role(eOrg, preferred)).and(new Role(ePub, student)); mgr.addCredential(new StaticCredential(new Role(ePub, sale), new Role(ePub, discount))); mgr.addCredential(new StaticCredential(ePub, discount, u)); mgr.addCredential(new StaticCredential(eOrg, preferred, acmMember)); mgr.addCredential(new StaticCredential(acmMember, alice)); mgr.addCredential(new StaticCredential(acmMember, bob)); mgr.addCredential(new StaticCredential(ePub, student, ePubUnivStuID)); mgr.addCredential(new StaticCredential(ePubUniv, abuAccredited)); mgr.addCredential(new StaticCredential(abuAccredited, stateU)); mgr.addCredential(new StaticCredential(stateU, stuID, alice)); mgr.addCredential(new StaticCredential(stateU, stuID, bob)); //mgr.addCredential(new StaticCredential()); } }