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 java.util.Date;
import edu.ualberta.med.biobank.model.ResearchGroup;
import edu.ualberta.med.biobank.model.Address;
import edu.ualberta.med.biobank.model.Dispatch;
import edu.ualberta.med.biobank.model.RequestSpecimen;
import java.util.Collection;
import edu.ualberta.med.biobank.model.Request;
public class RequestPeer {
public static final Property<Integer, Request> ID = Property.create(
"id" //$NON-NLS-1$
, Request.class
, new TypeReference<Integer>() {}
, new Property.Accessor<Integer, Request>() { private static final long serialVersionUID = 1L;
@Override
public Integer get(Request model) {
return model.getId();
}
@Override
public void set(Request model, Integer value) {
model.setId(value);
}
});
public static final Property<Date, Request> CREATED = Property.create(
"created" //$NON-NLS-1$
, Request.class
, new TypeReference<Date>() {}
, new Property.Accessor<Date, Request>() { private static final long serialVersionUID = 1L;
@Override
public Date get(Request model) {
return model.getCreated();
}
@Override
public void set(Request model, Date value) {
model.setCreated(value);
}
});
public static final Property<Date, Request> SUBMITTED = Property.create(
"submitted" //$NON-NLS-1$
, Request.class
, new TypeReference<Date>() {}
, new Property.Accessor<Date, Request>() { private static final long serialVersionUID = 1L;
@Override
public Date get(Request model) {
return model.getSubmitted();
}
@Override
public void set(Request model, Date value) {
model.setSubmitted(value);
}
});
public static final Property<ResearchGroup, Request> RESEARCH_GROUP = Property.create(
"researchGroup" //$NON-NLS-1$
, Request.class
, new TypeReference<ResearchGroup>() {}
, new Property.Accessor<ResearchGroup, Request>() { private static final long serialVersionUID = 1L;
@Override
public ResearchGroup get(Request model) {
return model.getResearchGroup();
}
@Override
public void set(Request model, ResearchGroup value) {
model.setResearchGroup(value);
}
});
public static final Property<Address, Request> ADDRESS = Property.create(
"address" //$NON-NLS-1$
, Request.class
, new TypeReference<Address>() {}
, new Property.Accessor<Address, Request>() { private static final long serialVersionUID = 1L;
@Override
public Address get(Request model) {
return model.getAddress();
}
@Override
public void set(Request model, Address value) {
model.setAddress(value);
}
});
public static final Property<Collection<Dispatch>, Request> DISPATCHES = Property.create(
"dispatches" //$NON-NLS-1$
, Request.class
, new TypeReference<Collection<Dispatch>>() {}
, new Property.Accessor<Collection<Dispatch>, Request>() { private static final long serialVersionUID = 1L;
@Override
public Collection<Dispatch> get(Request model) {
return model.getDispatches();
}
@Override
public void set(Request model, Collection<Dispatch> value) {
model.getDispatches().clear();
model.getDispatches().addAll(value);
}
});
public static final Property<Collection<RequestSpecimen>, Request> REQUEST_SPECIMENS = Property.create(
"requestSpecimens" //$NON-NLS-1$
, Request.class
, new TypeReference<Collection<RequestSpecimen>>() {}
, new Property.Accessor<Collection<RequestSpecimen>, Request>() { private static final long serialVersionUID = 1L;
@Override
public Collection<RequestSpecimen> get(Request model) {
return model.getRequestSpecimens();
}
@Override
public void set(Request model, Collection<RequestSpecimen> value) {
model.getRequestSpecimens().clear();
model.getRequestSpecimens().addAll(value);
}
});
public static final List<Property<?, ? super Request>> PROPERTIES;
static {
List<Property<?, ? super Request>> aList = new ArrayList<Property<?, ? super Request>>();
aList.add(ID);
aList.add(CREATED);
aList.add(SUBMITTED);
aList.add(RESEARCH_GROUP);
aList.add(ADDRESS);
aList.add(DISPATCHES);
aList.add(REQUEST_SPECIMENS);
PROPERTIES = Collections.unmodifiableList(aList);
};
}