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.Membership;
import java.util.Collection;
import edu.ualberta.med.biobank.model.Principal;
public class PrincipalPeer {
public static final Property<Integer, Principal> ID = Property.create(
"id" //$NON-NLS-1$
, Principal.class
, new TypeReference<Integer>() {}
, new Property.Accessor<Integer, Principal>() { private static final long serialVersionUID = 1L;
@Override
public Integer get(Principal model) {
return model.getId();
}
@Override
public void set(Principal model, Integer value) {
model.setId(value);
}
});
public static final Property<Collection<Membership>, Principal> MEMBERSHIPS = Property.create(
"memberships" //$NON-NLS-1$
, Principal.class
, new TypeReference<Collection<Membership>>() {}
, new Property.Accessor<Collection<Membership>, Principal>() { private static final long serialVersionUID = 1L;
@Override
public Collection<Membership> get(Principal model) {
return model.getMemberships();
}
@Override
public void set(Principal model, Collection<Membership> value) {
model.getMemberships().clear();
model.getMemberships().addAll(value);
}
});
public static final List<Property<?, ? super Principal>> PROPERTIES;
static {
List<Property<?, ? super Principal>> aList = new ArrayList<Property<?, ? super Principal>>();
aList.add(ID);
aList.add(MEMBERSHIPS);
PROPERTIES = Collections.unmodifiableList(aList);
};
}