package cbe.inserting;
import java.util.ArrayList;
import java.util.List;
import org.apache.cayenne.access.DataContext;
import org.apache.commons.lang.StringUtils;
import cbe.inserting.model.Role;
import cbe.inserting.model.User;
/**
* Hello world!
*
*/
public class ManyToMany
{
public static void main( String[] args )
{
DataContext dc = DataContext.createDataContext();
Role admin = dc.newObject(Role.class);
admin.setName("ADMIN");
Role moderator = dc.newObject(Role.class);
moderator.setName("MODERATOR");
Role customer = dc.newObject(Role.class);
customer.setName("CUSTOMER");
dc.commitChanges();
User a1 = dc.newObject(User.class);
a1.setName("admin1");
a1.addToRoles(admin);
a1.addToRoles(moderator);
User a2 = dc.newObject(User.class);
a2.setName("admin2");
a2.addToRoles(admin);
User m1 = dc.newObject(User.class);
m1.setName("moderator1");
m1.addToRoles(moderator);
m1.addToRoles(customer);
User m2 = dc.newObject(User.class);
m2.setName("moderator2");
m2.addToRoles(moderator);
User c1 = dc.newObject(User.class);
c1.setName("customer1");
c1.addToRoles(customer);
c1.addToRoles(moderator);
User c2 = dc.newObject(User.class);
c2.setName("customer2");
c2.addToRoles(customer);
User c3 = dc.newObject(User.class);
c3.setName("customer3");
c3.addToRoles(customer);
System.out.println("Admins: " + getNames(admin.getUsers()));
System.out.println("Moderators: " + getNames(moderator.getUsers()));
System.out.println("Customers: " + getNames(customer.getUsers()));
dc.commitChanges();
}
private static String getNames(List<User> users)
{
List<String> names = new ArrayList<String>();
for (User user : users)
names.add(user.getName());
return StringUtils.join(names, ", ");
}
}