package edu.ualberta.med.biobank.common.peer; import edu.ualberta.med.biobank.common.util.TypeReference; import java.util.Collections; import edu.ualberta.med.biobank.common.wrappers.Property; import java.util.List; import java.util.ArrayList; import edu.ualberta.med.biobank.model.Comment; import edu.ualberta.med.biobank.model.ActivityStatus; import edu.ualberta.med.biobank.model.Group; import java.util.Collection; import edu.ualberta.med.biobank.model.User; public class UserPeer extends PrincipalPeer { public static final Property<String, User> EMAIL = Property.create( "email" //$NON-NLS-1$ , User.class , new TypeReference<String>() {} , new Property.Accessor<String, User>() { private static final long serialVersionUID = 1L; @Override public String get(User model) { return model.getEmail(); } @Override public void set(User model, String value) { model.setEmail(value); } }); public static final Property<Boolean, User> NEED_PWD_CHANGE = Property.create( "needPwdChange" //$NON-NLS-1$ , User.class , new TypeReference<Boolean>() {} , new Property.Accessor<Boolean, User>() { private static final long serialVersionUID = 1L; @Override public Boolean get(User model) { return model.getNeedPwdChange(); } @Override public void set(User model, Boolean value) { model.setNeedPwdChange(value); } }); public static final Property<Long, User> CSM_USER_ID = Property.create( "csmUserId" //$NON-NLS-1$ , User.class , new TypeReference<Long>() {} , new Property.Accessor<Long, User>() { private static final long serialVersionUID = 1L; @Override public Long get(User model) { return model.getCsmUserId(); } @Override public void set(User model, Long value) { model.setCsmUserId(value); } }); public static final Property<String, User> LOGIN = Property.create( "login" //$NON-NLS-1$ , User.class , new TypeReference<String>() {} , new Property.Accessor<String, User>() { private static final long serialVersionUID = 1L; @Override public String get(User model) { return model.getLogin(); } @Override public void set(User model, String value) { model.setLogin(value); } }); public static final Property<String, User> FULL_NAME = Property.create( "fullName" //$NON-NLS-1$ , User.class , new TypeReference<String>() {} , new Property.Accessor<String, User>() { private static final long serialVersionUID = 1L; @Override public String get(User model) { return model.getFullName(); } @Override public void set(User model, String value) { model.setFullName(value); } }); public static final Property<Boolean, User> RECV_BULK_EMAILS = Property.create( "recvBulkEmails" //$NON-NLS-1$ , User.class , new TypeReference<Boolean>() {} , new Property.Accessor<Boolean, User>() { private static final long serialVersionUID = 1L; @Override public Boolean get(User model) { return model.getRecvBulkEmails(); } @Override public void set(User model, Boolean value) { model.setRecvBulkEmails(value); } }); public static final Property<Collection<Comment>, User> COMMENTS = Property.create( "comments" //$NON-NLS-1$ , User.class , new TypeReference<Collection<Comment>>() {} , new Property.Accessor<Collection<Comment>, User>() { private static final long serialVersionUID = 1L; @Override public Collection<Comment> get(User model) { return model.getComments(); } @Override public void set(User model, Collection<Comment> value) { model.getComments().clear(); model.getComments().addAll(value); } }); public static final Property<ActivityStatus, User> ACTIVITY_STATUS = Property.create( "activityStatus" //$NON-NLS-1$ , User.class , new TypeReference<ActivityStatus>() {} , new Property.Accessor<ActivityStatus, User>() { private static final long serialVersionUID = 1L; @Override public ActivityStatus get(User model) { return model.getActivityStatus(); } @Override public void set(User model, ActivityStatus value) { model.setActivityStatus(value); } }); public static final Property<Collection<Group>, User> GROUPS = Property.create( "groups" //$NON-NLS-1$ , User.class , new TypeReference<Collection<Group>>() {} , new Property.Accessor<Collection<Group>, User>() { private static final long serialVersionUID = 1L; @Override public Collection<Group> get(User model) { return model.getGroups(); } @Override public void set(User model, Collection<Group> value) { model.getGroups().clear(); model.getGroups().addAll(value); } }); public static final List<Property<?, ? super User>> PROPERTIES; static { List<Property<?, ? super User>> aList = new ArrayList<Property<?, ? super User>>(); aList.add(EMAIL); aList.add(NEED_PWD_CHANGE); aList.add(CSM_USER_ID); aList.add(LOGIN); aList.add(FULL_NAME); aList.add(RECV_BULK_EMAILS); aList.add(COMMENTS); aList.add(ACTIVITY_STATUS); aList.add(GROUPS); PROPERTIES = Collections.unmodifiableList(aList); }; }