@Override
 public void setProperty(String propertyName, Object propertyValue)
     throws UnknownPropertyException {
   AssessmentItemCompletionMsgPayload specificPayload =
       (AssessmentItemCompletionMsgPayload) payload;
   switch (propertyName) {
     case "CourseSection":
       CourseSection courseSection = (CourseSection) propertyValue;
       specificPayload.Course_Section_Source_System_Record_Id = courseSection.getId();
       break;
     case "Quiz":
       Quiz quiz = (Quiz) propertyValue;
       specificPayload.Assessment_Source_System_Record_Id = quiz.getId();
       break;
     case "Question":
       Question question = (Question) propertyValue;
       specificPayload.Assessment_Item_Source_System_Record_Id = question.getId();
       specificPayload.Possible_Points = question.getPointsPossible();
       break;
     case "Person":
       User person = (User) propertyValue;
       specificPayload.Person_Source_System_Record_Id = person.getPersonId();
       break;
     case "CompletionOriginator":
       specificPayload.Ref_Assessment_Item_Completion_Source_Code = propertyValue.toString();
       break;
     default:
       throw new UnknownPropertyException(
           "Failed to build message due to unknown property : " + propertyName);
   }
 }