package edu.ualberta.med.biobank.common.peer; import java.util.ArrayList; import java.util.Collection; import java.util.Collections; import java.util.List; import java.util.Set; import edu.ualberta.med.biobank.common.util.TypeReference; import edu.ualberta.med.biobank.common.wrappers.Property; import edu.ualberta.med.biobank.model.Membership; import edu.ualberta.med.biobank.model.PermissionEnum; import edu.ualberta.med.biobank.model.Principal; import edu.ualberta.med.biobank.model.Role; public class MembershipPeer { public static final Property<Integer, Membership> ID = Property.create("id" //$NON-NLS-1$ , Membership.class , new TypeReference<Integer>() { } , new Property.Accessor<Integer, Membership>() { private static final long serialVersionUID = 1L; @Override public Integer get(Membership model) { return model.getId(); } @Override public void set(Membership model, Integer value) { model.setId(value); } }); public static final Property<Set<PermissionEnum>, Membership> PERMISSIONS = Property.create("permissions" //$NON-NLS-1$ , Membership.class , new TypeReference<Set<PermissionEnum>>() { } , new Property.Accessor<Set<PermissionEnum>, Membership>() { private static final long serialVersionUID = 1L; @Override public Set<PermissionEnum> get(Membership model) { return model.getPermissions(); } @Override public void set(Membership model, Set<PermissionEnum> value) { model.setPermissions(value); } }); public static final Property<Principal, Membership> PRINCIPAL = Property .create("principal" //$NON-NLS-1$ , Membership.class , new TypeReference<Principal>() { } , new Property.Accessor<Principal, Membership>() { private static final long serialVersionUID = 1L; @Override public Principal get(Membership model) { return model.getPrincipal(); } @Override public void set(Membership model, Principal value) { model.setPrincipal(value); } }); public static final Property<Collection<Role>, Membership> ROLES = Property .create("roles" //$NON-NLS-1$ , Membership.class , new TypeReference<Collection<Role>>() { } , new Property.Accessor<Collection<Role>, Membership>() { private static final long serialVersionUID = 1L; @Override public Collection<Role> get(Membership model) { return model.getRoles(); } @Override public void set(Membership model, Collection<Role> value) { model.getRoles().clear(); model.getRoles().addAll(value); } }); public static final List<Property<?, ? super Membership>> PROPERTIES; static { List<Property<?, ? super Membership>> aList = new ArrayList<Property<?, ? super Membership>>(); aList.add(ID); aList.add(PERMISSIONS); aList.add(PRINCIPAL); aList.add(ROLES); PROPERTIES = Collections.unmodifiableList(aList); }; }