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.ResearchGroup;
import edu.ualberta.med.biobank.model.Contact;
import edu.ualberta.med.biobank.model.Patient;
import edu.ualberta.med.biobank.model.Comment;
import edu.ualberta.med.biobank.model.Membership;
import edu.ualberta.med.biobank.model.Site;
import edu.ualberta.med.biobank.model.StudyEventAttr;
import edu.ualberta.med.biobank.model.ActivityStatus;
import edu.ualberta.med.biobank.model.AliquotedSpecimen;
import edu.ualberta.med.biobank.model.SourceSpecimen;
import java.util.Collection;
import edu.ualberta.med.biobank.model.Study;
public class StudyPeer {
public static final Property<Integer, Study> ID = Property.create(
"id" //$NON-NLS-1$
, Study.class
, new TypeReference<Integer>() {}
, new Property.Accessor<Integer, Study>() { private static final long serialVersionUID = 1L;
@Override
public Integer get(Study model) {
return model.getId();
}
@Override
public void set(Study model, Integer value) {
model.setId(value);
}
});
public static final Property<String, Study> NAME = Property.create(
"name" //$NON-NLS-1$
, Study.class
, new TypeReference<String>() {}
, new Property.Accessor<String, Study>() { private static final long serialVersionUID = 1L;
@Override
public String get(Study model) {
return model.getName();
}
@Override
public void set(Study model, String value) {
model.setName(value);
}
});
public static final Property<String, Study> NAME_SHORT = Property.create(
"nameShort" //$NON-NLS-1$
, Study.class
, new TypeReference<String>() {}
, new Property.Accessor<String, Study>() { private static final long serialVersionUID = 1L;
@Override
public String get(Study model) {
return model.getNameShort();
}
@Override
public void set(Study model, String value) {
model.setNameShort(value);
}
});
public static final Property<ResearchGroup, Study> RESEARCH_GROUP = Property.create(
"researchGroup" //$NON-NLS-1$
, Study.class
, new TypeReference<ResearchGroup>() {}
, new Property.Accessor<ResearchGroup, Study>() { private static final long serialVersionUID = 1L;
@Override
public ResearchGroup get(Study model) {
return model.getResearchGroup();
}
@Override
public void set(Study model, ResearchGroup value) {
model.setResearchGroup(value);
}
});
public static final Property<Collection<Contact>, Study> CONTACTS = Property.create(
"contacts" //$NON-NLS-1$
, Study.class
, new TypeReference<Collection<Contact>>() {}
, new Property.Accessor<Collection<Contact>, Study>() { private static final long serialVersionUID = 1L;
@Override
public Collection<Contact> get(Study model) {
return model.getContacts();
}
@Override
public void set(Study model, Collection<Contact> value) {
model.getContacts().clear();
model.getContacts().addAll(value);
}
});
public static final Property<Collection<Patient>, Study> PATIENTS = Property.create(
"patients" //$NON-NLS-1$
, Study.class
, new TypeReference<Collection<Patient>>() {}
, new Property.Accessor<Collection<Patient>, Study>() { private static final long serialVersionUID = 1L;
@Override
public Collection<Patient> get(Study model) {
return model.getPatients();
}
@Override
public void set(Study model, Collection<Patient> value) {
model.getPatients().clear();
model.getPatients().addAll(value);
}
});
public static final Property<Collection<Comment>, Study> COMMENTS = Property.create(
"comments" //$NON-NLS-1$
, Study.class
, new TypeReference<Collection<Comment>>() {}
, new Property.Accessor<Collection<Comment>, Study>() { private static final long serialVersionUID = 1L;
@Override
public Collection<Comment> get(Study model) {
return model.getComments();
}
@Override
public void set(Study model, Collection<Comment> value) {
model.getComments().clear();
model.getComments().addAll(value);
}
});
public static final Property<Collection<Membership>, Study> MEMBERSHIPS = Property.create(
"memberships" //$NON-NLS-1$
, Study.class
, new TypeReference<Collection<Membership>>() {}
, new Property.Accessor<Collection<Membership>, Study>() { private static final long serialVersionUID = 1L;
@Override
public Collection<Membership> get(Study model) {
return model.getMemberships();
}
@Override
public void set(Study model, Collection<Membership> value) {
model.getMemberships().clear();
model.getMemberships().addAll(value);
}
});
public static final Property<Collection<Site>, Study> SITES = Property.create(
"sites" //$NON-NLS-1$
, Study.class
, new TypeReference<Collection<Site>>() {}
, new Property.Accessor<Collection<Site>, Study>() { private static final long serialVersionUID = 1L;
@Override
public Collection<Site> get(Study model) {
return model.getSites();
}
@Override
public void set(Study model, Collection<Site> value) {
model.getSites().clear();
model.getSites().addAll(value);
}
});
public static final Property<Collection<StudyEventAttr>, Study> STUDY_EVENT_ATTRS = Property.create(
"studyEventAttrs" //$NON-NLS-1$
, Study.class
, new TypeReference<Collection<StudyEventAttr>>() {}
, new Property.Accessor<Collection<StudyEventAttr>, Study>() { private static final long serialVersionUID = 1L;
@Override
public Collection<StudyEventAttr> get(Study model) {
return model.getStudyEventAttrs();
}
@Override
public void set(Study model, Collection<StudyEventAttr> value) {
model.getStudyEventAttrs().clear();
model.getStudyEventAttrs().addAll(value);
}
});
public static final Property<ActivityStatus, Study> ACTIVITY_STATUS = Property.create(
"activityStatus" //$NON-NLS-1$
, Study.class
, new TypeReference<ActivityStatus>() {}
, new Property.Accessor<ActivityStatus, Study>() { private static final long serialVersionUID = 1L;
@Override
public ActivityStatus get(Study model) {
return model.getActivityStatus();
}
@Override
public void set(Study model, ActivityStatus value) {
model.setActivityStatus(value);
}
});
public static final Property<Collection<AliquotedSpecimen>, Study> ALIQUOTED_SPECIMENS = Property.create(
"aliquotedSpecimens" //$NON-NLS-1$
, Study.class
, new TypeReference<Collection<AliquotedSpecimen>>() {}
, new Property.Accessor<Collection<AliquotedSpecimen>, Study>() { private static final long serialVersionUID = 1L;
@Override
public Collection<AliquotedSpecimen> get(Study model) {
return model.getAliquotedSpecimens();
}
@Override
public void set(Study model, Collection<AliquotedSpecimen> value) {
model.getAliquotedSpecimens().clear();
model.getAliquotedSpecimens().addAll(value);
}
});
public static final Property<Collection<SourceSpecimen>, Study> SOURCE_SPECIMENS = Property.create(
"sourceSpecimens" //$NON-NLS-1$
, Study.class
, new TypeReference<Collection<SourceSpecimen>>() {}
, new Property.Accessor<Collection<SourceSpecimen>, Study>() { private static final long serialVersionUID = 1L;
@Override
public Collection<SourceSpecimen> get(Study model) {
return model.getSourceSpecimens();
}
@Override
public void set(Study model, Collection<SourceSpecimen> value) {
model.getSourceSpecimens().clear();
model.getSourceSpecimens().addAll(value);
}
});
public static final List<Property<?, ? super Study>> PROPERTIES;
static {
List<Property<?, ? super Study>> aList = new ArrayList<Property<?, ? super Study>>();
aList.add(ID);
aList.add(NAME);
aList.add(NAME_SHORT);
aList.add(RESEARCH_GROUP);
aList.add(CONTACTS);
aList.add(PATIENTS);
aList.add(COMMENTS);
aList.add(MEMBERSHIPS);
aList.add(SITES);
aList.add(STUDY_EVENT_ATTRS);
aList.add(ACTIVITY_STATUS);
aList.add(ALIQUOTED_SPECIMENS);
aList.add(SOURCE_SPECIMENS);
PROPERTIES = Collections.unmodifiableList(aList);
};
}