/** * @see org.openmrs.module.webservices.rest.web.resource.api.Retrievable#retrieve(java.lang.String, * org.openmrs.module.webservices.rest.web.representation.Representation) */ @Override public Object retrieve(String uuid, RequestContext context) throws ResponseException { T delegate = getByUniqueId(uuid); if (delegate == null) throw new ObjectNotFoundException(); SimpleObject ret = asRepresentation(delegate, context.getRepresentation()); if (hasTypesDefined()) ret.add(RestConstants.PROPERTY_FOR_TYPE, getTypeName(delegate)); return ret; }
/** * @see org.openmrs.module.webservices.rest.web.resource.api.Creatable#create(org.springframework.web.context.request.WebRequest) */ @Override public Object create(SimpleObject propertiesToCreate, RequestContext context) throws ResponseException { T delegate = convert(propertiesToCreate); ValidateUtil.validate(delegate); delegate = save(delegate); SimpleObject ret = (SimpleObject) ConversionUtil.convertToRepresentation(delegate, context.getRepresentation()); // add the 'type' discriminator if we support subclasses if (hasTypesDefined()) { ret.add(RestConstants.PROPERTY_FOR_TYPE, getTypeName(delegate)); } return ret; }
String type = (String) propertiesToUpdate.remove(RestConstants.PROPERTY_FOR_TYPE); if (!delegate.getClass().equals(getActualSubclass(type))) { String nameToShow = getTypeName(delegate); if (nameToShow == null) nameToShow = delegate.getClass().getName(); ret.add(RestConstants.PROPERTY_FOR_TYPE, getTypeName(delegate));