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.Clinic;
import edu.ualberta.med.biobank.model.Study;
import java.util.Collection;
import edu.ualberta.med.biobank.model.Contact;
public class ContactPeer {
public static final Property<Integer, Contact> ID = Property.create(
"id" //$NON-NLS-1$
, Contact.class
, new TypeReference<Integer>() {}
, new Property.Accessor<Integer, Contact>() { private static final long serialVersionUID = 1L;
@Override
public Integer get(Contact model) {
return model.getId();
}
@Override
public void set(Contact model, Integer value) {
model.setId(value);
}
});
public static final Property<String, Contact> TITLE = Property.create(
"title" //$NON-NLS-1$
, Contact.class
, new TypeReference<String>() {}
, new Property.Accessor<String, Contact>() { private static final long serialVersionUID = 1L;
@Override
public String get(Contact model) {
return model.getTitle();
}
@Override
public void set(Contact model, String value) {
model.setTitle(value);
}
});
public static final Property<String, Contact> FAX_NUMBER = Property.create(
"faxNumber" //$NON-NLS-1$
, Contact.class
, new TypeReference<String>() {}
, new Property.Accessor<String, Contact>() { private static final long serialVersionUID = 1L;
@Override
public String get(Contact model) {
return model.getFaxNumber();
}
@Override
public void set(Contact model, String value) {
model.setFaxNumber(value);
}
});
public static final Property<String, Contact> NAME = Property.create(
"name" //$NON-NLS-1$
, Contact.class
, new TypeReference<String>() {}
, new Property.Accessor<String, Contact>() { private static final long serialVersionUID = 1L;
@Override
public String get(Contact model) {
return model.getName();
}
@Override
public void set(Contact model, String value) {
model.setName(value);
}
});
public static final Property<String, Contact> OFFICE_NUMBER = Property.create(
"officeNumber" //$NON-NLS-1$
, Contact.class
, new TypeReference<String>() {}
, new Property.Accessor<String, Contact>() { private static final long serialVersionUID = 1L;
@Override
public String get(Contact model) {
return model.getOfficeNumber();
}
@Override
public void set(Contact model, String value) {
model.setOfficeNumber(value);
}
});
public static final Property<String, Contact> PAGER_NUMBER = Property.create(
"pagerNumber" //$NON-NLS-1$
, Contact.class
, new TypeReference<String>() {}
, new Property.Accessor<String, Contact>() { private static final long serialVersionUID = 1L;
@Override
public String get(Contact model) {
return model.getPagerNumber();
}
@Override
public void set(Contact model, String value) {
model.setPagerNumber(value);
}
});
public static final Property<String, Contact> EMAIL_ADDRESS = Property.create(
"emailAddress" //$NON-NLS-1$
, Contact.class
, new TypeReference<String>() {}
, new Property.Accessor<String, Contact>() { private static final long serialVersionUID = 1L;
@Override
public String get(Contact model) {
return model.getEmailAddress();
}
@Override
public void set(Contact model, String value) {
model.setEmailAddress(value);
}
});
public static final Property<String, Contact> MOBILE_NUMBER = Property.create(
"mobileNumber" //$NON-NLS-1$
, Contact.class
, new TypeReference<String>() {}
, new Property.Accessor<String, Contact>() { private static final long serialVersionUID = 1L;
@Override
public String get(Contact model) {
return model.getMobileNumber();
}
@Override
public void set(Contact model, String value) {
model.setMobileNumber(value);
}
});
public static final Property<Clinic, Contact> CLINIC = Property.create(
"clinic" //$NON-NLS-1$
, Contact.class
, new TypeReference<Clinic>() {}
, new Property.Accessor<Clinic, Contact>() { private static final long serialVersionUID = 1L;
@Override
public Clinic get(Contact model) {
return model.getClinic();
}
@Override
public void set(Contact model, Clinic value) {
model.setClinic(value);
}
});
public static final Property<Collection<Study>, Contact> STUDIES = Property.create(
"studies" //$NON-NLS-1$
, Contact.class
, new TypeReference<Collection<Study>>() {}
, new Property.Accessor<Collection<Study>, Contact>() { private static final long serialVersionUID = 1L;
@Override
public Collection<Study> get(Contact model) {
return model.getStudies();
}
@Override
public void set(Contact model, Collection<Study> value) {
model.getStudies().clear();
model.getStudies().addAll(value);
}
});
public static final List<Property<?, ? super Contact>> PROPERTIES;
static {
List<Property<?, ? super Contact>> aList = new ArrayList<Property<?, ? super Contact>>();
aList.add(ID);
aList.add(TITLE);
aList.add(FAX_NUMBER);
aList.add(NAME);
aList.add(OFFICE_NUMBER);
aList.add(PAGER_NUMBER);
aList.add(EMAIL_ADDRESS);
aList.add(MOBILE_NUMBER);
aList.add(CLINIC);
aList.add(STUDIES);
PROPERTIES = Collections.unmodifiableList(aList);
};
}