@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); } }