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.User; import java.util.Collection; import edu.ualberta.med.biobank.model.Group; public class GroupPeer extends PrincipalPeer { public static final Property<String, Group> DESCRIPTION = Property.create( "description" //$NON-NLS-1$ , Group.class , new TypeReference<String>() {} , new Property.Accessor<String, Group>() { private static final long serialVersionUID = 1L; @Override public String get(Group model) { return model.getDescription(); } @Override public void set(Group model, String value) { model.setDescription(value); } }); public static final Property<String, Group> NAME = Property.create( "name" //$NON-NLS-1$ , Group.class , new TypeReference<String>() {} , new Property.Accessor<String, Group>() { private static final long serialVersionUID = 1L; @Override public String get(Group model) { return model.getName(); } @Override public void set(Group model, String value) { model.setName(value); } }); public static final Property<Collection<User>, Group> USERS = Property.create( "users" //$NON-NLS-1$ , Group.class , new TypeReference<Collection<User>>() {} , new Property.Accessor<Collection<User>, Group>() { private static final long serialVersionUID = 1L; @Override public Collection<User> get(Group model) { return model.getUsers(); } @Override public void set(Group model, Collection<User> value) { model.getUsers().clear(); model.getUsers().addAll(value); } }); public static final List<Property<?, ? super Group>> PROPERTIES; static { List<Property<?, ? super Group>> aList = new ArrayList<Property<?, ? super Group>>(); aList.add(DESCRIPTION); aList.add(NAME); aList.add(USERS); PROPERTIES = Collections.unmodifiableList(aList); }; }