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.Container; import edu.ualberta.med.biobank.model.ContainerType; import edu.ualberta.med.biobank.model.Study; import java.util.Collection; import edu.ualberta.med.biobank.model.Site; public class SitePeer extends CenterPeer { public static final Property<Collection<Container>, Site> CONTAINERS = Property.create( "containers" //$NON-NLS-1$ , Site.class , new TypeReference<Collection<Container>>() {} , new Property.Accessor<Collection<Container>, Site>() { private static final long serialVersionUID = 1L; @Override public Collection<Container> get(Site model) { return model.getContainers(); } @Override public void set(Site model, Collection<Container> value) { model.getContainers().clear(); model.getContainers().addAll(value); } }); public static final Property<Collection<ContainerType>, Site> CONTAINER_TYPES = Property.create( "containerTypes" //$NON-NLS-1$ , Site.class , new TypeReference<Collection<ContainerType>>() {} , new Property.Accessor<Collection<ContainerType>, Site>() { private static final long serialVersionUID = 1L; @Override public Collection<ContainerType> get(Site model) { return model.getContainerTypes(); } @Override public void set(Site model, Collection<ContainerType> value) { model.getContainerTypes().clear(); model.getContainerTypes().addAll(value); } }); public static final Property<Collection<Study>, Site> STUDIES = Property.create( "studies" //$NON-NLS-1$ , Site.class , new TypeReference<Collection<Study>>() {} , new Property.Accessor<Collection<Study>, Site>() { private static final long serialVersionUID = 1L; @Override public Collection<Study> get(Site model) { return model.getStudies(); } @Override public void set(Site model, Collection<Study> value) { model.getStudies().clear(); model.getStudies().addAll(value); } }); public static final List<Property<?, ? super Site>> PROPERTIES; static { List<Property<?, ? super Site>> aList = new ArrayList<Property<?, ? super Site>>(); aList.add(CONTAINERS); aList.add(CONTAINER_TYPES); aList.add(STUDIES); PROPERTIES = Collections.unmodifiableList(aList); }; }