public class GradingService extends Object
| Constructor and Description |
|---|
GradingService() |
| Modifier and Type | Method and Description |
|---|---|
String |
applyPrecisionToNumberString(String numberStr,
int decimalPlaces)
CALCULATED_QUESTION
applyPrecisionToNumberString() takes a string representation of a number and returns
a string representation of that number, rounded to the specified number of
decimal places, including trimming decimal places if needed.
|
int |
autoSubmitAssessments() |
static String |
cleanFormula(String formula)
Cleans up formula text so that whitespaces are normalized or removed
|
void |
completeItemGradingData(AssessmentGradingData assessmentGradingData) |
AssessmentGradingAttachment |
createAssessmentGradingAttachment(AssessmentGradingData assessmentGrading,
String resourceId,
String filename,
String protocol) |
ItemGradingAttachment |
createItemGradingAttachment(ItemGradingData itemGrading,
String resourceId,
String filename,
String protocol) |
void |
deleteAll(Collection c) |
Map<String,String> |
determineRandomValuesForRanges(Map<String,String> variableRangeMap,
long itemId,
long gradingId,
String agentId,
int validAnswersAttemptCount)
CALCULATED_QUESTION
Takes a map of ranges and randomly chooses values for those ranges and stores them in a new map.
|
List<String> |
extractCalcQAnswersArray(Map<Integer,String> answerList,
ItemDataIfc item,
Long gradingId,
String agentId)
CALCULATED_QUESTION
This is a busy method.
|
List<String> |
extractCalculations(String text)
extractCalculations() is a utility function for Calculated Questions.
|
List<String> |
extractFormulas(String text)
extractFormulas() is a utility function for Calculated Questions.
|
protected List<String> |
extractInstructionSegments(String instructions)
CALCULATED_QUESTION
Takes the instructions and breaks it into segments, based on the location
of formula names.
|
List<String> |
extractVariables(String text)
extractVariables() is a utility function for Calculated Questions.
|
boolean |
fibmatch(String answer,
String input,
boolean casesensitive,
boolean ignorespaces) |
int |
getActualNumberRetake(Long publishedAssessmentId,
String agentIdString) |
Map<Long,Integer> |
getActualNumberRetakeHash(String agentIdString) |
List |
getAllAssessmentGradingByAgentId(Long publishedAssessmentId,
String agentIdString) |
List |
getAllAssessmentGradingData(Long publishedId) |
List<ItemGradingData> |
getAllItemGradingDataForItemInGrading(Long assesmentGradingId,
Long publihsedItemId) |
List<AssessmentGradingData> |
getAllSubmissions(String publishedId)
Get all submissions for a published assessment from the back end.
|
double |
getAnswerScore(ItemGradingData data,
Map publishedAnswerHash)
This grades multiple choice and true false questions.
|
double |
getAnswerScoreMCQ(ItemGradingData data,
Map publishedAnswerHash)
This grades multiple choice and true false questions.
|
Map<Long,AssessmentGradingData> |
getAssessmentGradingByItemGradingId(String publishedAssessmentId) |
List |
getAssessmentGradingIds(String publishedItemId) |
List |
getAssessmentGradingsByScoringType(Integer scoringType,
Long publishedAssessmentId) |
boolean |
getCalcQResult(ItemGradingData data,
ItemDataIfc itemdata,
Map<Integer,String> calculatedAnswersMap,
int calcQuestionAnswerSequence) |
double |
getCalcQScore(ItemGradingData data,
ItemDataIfc itemdata,
Map<Integer,String> calculatedAnswersMap,
int calcQuestionAnswerSequence)
CALCULATED_QUESTION
Returns a double score value for the ItemGrading element being scored for a Calculated Question
|
List |
getExportResponsesData(String publishedAssessmentId,
boolean anonymous,
String audioMessage,
String fileUploadMessage,
String noSubmissionMessage,
boolean showPartAndTotalScoreSpreadsheetColumns,
String poolString,
String partString,
String questionString,
String textString,
String rationaleString,
String itemGradingCommentsString,
Map useridMap,
String responseCommentString) |
boolean |
getFIBResult(ItemGradingData data,
Map fibmap,
ItemDataIfc itemdata,
Map publishedAnswerHash) |
double |
getFIBScore(ItemGradingData data,
Map fibmap,
ItemDataIfc itemdata,
Map publishedAnswerHash)
This grades Fill In Blank questions.
|
String |
getFileName(Long itemGradingId,
String agentId,
String filename) |
boolean |
getFINResult(ItemGradingData data,
ItemDataIfc itemdata,
Map publishedAnswerHash) |
double |
getFINScore(ItemGradingData data,
ItemDataIfc itemdata,
Map publishedAnswerHash) |
boolean |
getHasGradingData(Long publishedAssessmentId) |
List<Boolean> |
getHasGradingDataAndHasSubmission(Long publishedAssessmentId) |
AssessmentGradingData |
getHighestAssessmentGrading(String publishedAssessmentId,
String agentId) |
List |
getHighestAssessmentGradingList(Long publishedId) |
AssessmentGradingData |
getHighestSubmittedAssessmentGrading(String publishedAssessmentId,
String agentId) |
AssessmentGradingData |
getHighestSubmittedAssessmentGrading(String publishedAssessmentId,
String agentId,
String assessmentGradingId) |
List |
getHighestSubmittedOrGradedAssessmentGradingList(Long publishedId) |
double |
getImageMapScore(ItemGradingData data,
ItemDataIfc itemdata,
Map publishedItemTextHash,
Map publishedAnswerHash) |
Map |
getInProgressCounts(String siteId) |
ItemGradingData |
getItemGrading(String itemGradingId) |
ItemGradingData |
getItemGradingData(String assessmentGradingId,
String publishedItemId) |
List |
getItemGradingIds(Long assessmentGradingId) |
Set |
getItemGradingSet(String assessmentGradingId) |
Map |
getItemScores(Long itemId,
List scores,
boolean loadItemGradingAttachment) |
Map |
getItemScores(Long publishedId,
Long itemId,
String which)
Get the score information for each item from the assessment score.
|
Map |
getItemScores(Long publishedId,
Long itemId,
String which,
boolean loadItemGradingAttachment) |
Set<PublishedItemData> |
getItemSet(Long publishedAssessmentId,
Long sectionId) |
AssessmentGradingData |
getLastAssessmentGradingByAgentId(String publishedAssessmentId,
String agentIdString) |
List |
getLastAssessmentGradingList(Long publishedId) |
Map |
getLastItemGradingData(String publishedId,
String agentId)
Get the last set of itemgradingdata for a student per assessment
|
ItemGradingData |
getLastItemGradingDataByAgent(String publishedItemId,
String agentId) |
List<Integer> |
getLastItemGradingDataPosition(Long assessmentGradingId,
String agentId) |
AssessmentGradingData |
getLastSavedAssessmentGradingByAgentId(String publishedAssessmentId,
String agentIdString) |
AssessmentGradingData |
getLastSubmittedAssessmentGradingByAgentId(String publishedAssessmentId,
String agentIdString,
String assessmentGradingId) |
List |
getLastSubmittedAssessmentGradingList(Long publishedId) |
List |
getLastSubmittedOrGradedAssessmentGradingList(Long publishedId) |
int |
getLateSubmissionsNumberByAgentId(Long publishedAssessmentId,
String agentIdString,
Date dueDate) |
MediaData |
getMedia(String mediaId) |
List<MediaData> |
getMediaArray(ItemGradingData i) |
List<MediaData> |
getMediaArray(String itemGradingId) |
List<MediaData> |
getMediaArray(String publishedId,
String publishItemId,
String which) |
List<MediaData> |
getMediaArray2(String itemGradingId) |
Map<Long,List<ItemGradingData>> |
getMediaItemGradingHash(Long assessmentGradingId) |
int |
getNumberRetake(Long publishedAssessmentId,
String agentIdString) |
Map<Long,StudentGradingSummaryData> |
getNumberRetakeHash(String agentIdString) |
PublishedAssessmentIfc |
getPublishedAssessmentByAssessmentGradingId(String id) |
PublishedAssessmentIfc |
getPublishedAssessmentByPublishedItemId(String publishedItemId) |
List |
getPublishedItemIds(Long assessmentGradingId) |
Integer |
getScoringType(PublishedAssessmentIfc pub) |
Map<Long,Map<String,Long>> |
getSiteActualNumberRetakeHash(String siteIdString) |
Map<Long,Map<String,Long>> |
getSiteInProgressCountHash(String siteId) |
List |
getSiteNeedResubmitList(String siteId) |
Map<Long,Map<String,Integer>> |
getSiteNumberRetakeHash(String siteIdString) |
Map<Long,Map<String,Integer>> |
getSiteSubmissionCountHash(String siteId) |
Map |
getStudentGradingData(String assessmentGradingId)
Get the grading data for a given submission
|
List |
getStudentGradingSummaryData(Long publishedAssessmentId,
String agentIdString) |
int |
getSubmissionSizeOfPublishedAssessment(String publishedAssessmentId) |
Map |
getSubmitData(String publishedId,
String agentId,
Integer scoringoption,
String assessmentGradingId)
Get the last submission for a student per assessment
|
Map |
getSubmittedCounts(String siteId) |
String |
getTextForId(Long typeId) |
double |
getTotalCorrectScore(ItemGradingData data,
Map publishedAnswerHash) |
List |
getTotalScores(String publishedId,
String which)
Get all scores for a published assessment from the back end.
|
List |
getTotalScores(String publishedId,
String which,
boolean getSubmittedOnly) |
Long |
getTypeId(Long itemGradingId) |
List |
getUnSubmittedAssessmentGradingDataList(Long publishedAssessmentId,
String agentIdString) |
List |
getUpdatedAssessmentList(String agentId,
String siteId) |
boolean |
hasDistractors(ItemDataIfc item)
hasDistractors looks at an itemData object for a Matching question and determines
if all of the choices have correct matches or not.
|
boolean |
isAnswerValid(String answer)
CALCULATED_QUESTION
Takes an answer string and checks for the value returned
is NaN or Infinity, indicating a Samigo formula parse error
Returns false if divide by zero is detected.
|
boolean |
isDistractor(ItemTextIfc itemText)
determines if the passed parameter is a distractor
For ItemTextIfc objects that hold data for matching type questions, a distractor
is a choice that has no valid matches (i.e. no correct answers).
|
boolean |
isNegativeSqrt(String expression)
isNegativeSqrt() looks at the incoming expression and looks specifically
to see if it executes the SQRT function.
|
AssessmentGradingData |
load(String assessmentGradingId) |
AssessmentGradingData |
load(String assessmentGradingId,
boolean loadGradingAttachment) |
void |
notifyDeleteToGradebook(List gdataList,
PublishedAssessmentIfc pub,
String studentId)
This method is added to update student's total score to gradebook
after submit attept is deleted in assessment.
|
void |
notifyGradebookByScoringType(AssessmentGradingData data,
PublishedAssessmentIfc pub) |
String |
processFormulaIntoValue(String formula,
int decimalPlaces)
CALCULATED_QUESTION
Process a single formula into a final string representing the calculated value of the formula
|
void |
removeAssessmentGradingAttachment(String attachmentId) |
void |
removeItemGradingAttachment(String attachmentId) |
String |
replaceCalculationsWithValues(String expression,
int decimalPlaces)
CALCULATED_QUESTION
replaceMappedVariablesWithNumbers() takes a string and substitutes any variable
names found with the value of the variable.
|
String |
replaceMappedVariablesWithNumbers(String expression,
Map<String,String> variables)
CALCULATED_QUESTION
replaceMappedVariablesWithNumbers() takes a string and substitutes any variable
names found with the value of the variable.
|
void |
saveItemGrading(ItemGradingData item) |
Long |
saveMedia(byte[] media,
String mimeType) |
Long |
saveMedia(MediaData mediaData) |
void |
saveOrUpdateAll(Collection<ItemGradingData> c) |
void |
saveOrUpdateAssessmentGrading(AssessmentGradingData assessment) |
void |
saveOrUpdateAssessmentGradingOnly(AssessmentGradingData assessment) |
void |
saveOrUpdateAttachments(List list) |
void |
saveStudentGradingSummaryData(StudentGradingSummaryIfc studentGradingSummaryData) |
void |
saveTotalScores(List gdataList,
PublishedAssessmentIfc pub) |
void |
storeGrades(AssessmentGradingData data,
boolean regrade,
PublishedAssessmentIfc pub,
Map publishedItemHash,
Map publishedItemTextHash,
Map publishedAnswerHash,
boolean persistToDB) |
void |
storeGrades(AssessmentGradingData data,
boolean regrade,
PublishedAssessmentIfc pub,
Map publishedItemHash,
Map publishedItemTextHash,
Map publishedAnswerHash,
boolean persistToDB,
Map invalidFINMap,
List invalidSALengthList)
This is the big, complicated mess where we take all the items in
an assessment, store the grading data, auto-grade it, and update
everything.
|
void |
storeGrades(AssessmentGradingData data,
PublishedAssessmentIfc pub,
Map publishedItemHash,
Map publishedItemTextHash,
Map publishedAnswerHash,
boolean persistToDB,
Map invalidFINMap,
List invalidSALengthList)
Assume this is a new item.
|
void |
storeGrades(AssessmentGradingData data,
PublishedAssessmentIfc pub,
Map publishedItemHash,
Map publishedItemTextHash,
Map publishedAnswerHash,
Map invalidFINMap,
List invalidSALengthList)
Assume this is a new item.
|
String |
toScientificNotation(String numberStr,
int decimalPlaces)
CALCULATED_QUESTION
toScientificNotation() Takes a string representation of a number and returns
a string representation of that number, in scientific notation.
|
void |
updateAssessmentGradingScore(AssessmentGradingData adata,
PublishedAssessmentIfc pub,
String newComment,
String oldComment) |
void |
updateAutosubmitEventLog(AssessmentGradingData adata) |
void |
updateItemScore(ItemGradingData gdata,
double scoreDifference,
PublishedAssessmentIfc pub) |
Map |
validate(String value)
Validate a students numeric answer
|
public static final String ANSWER_TYPE_COMPLEX
public static final String ANSWER_TYPE_REAL
public static final String OPEN_BRACKET
public static final String CLOSE_BRACKET
public static final String CALCULATION_OPEN
public static final String CALCULATION_CLOSE
public static final String FORMAT_MASK
public static final BigDecimal DEFAULT_MAX_THRESHOLD
public static final BigDecimal DEFAULT_MIN_THRESHOLD
public static final String CALCQ_VAR_FORM_NAME
public static final String CALCQ_VAR_FORM_NAME_EXPRESSION
public static final String CALCQ_VAR_FORM_NAME_EXPRESSION_FORMATTED
public static final Pattern CALCQ_ANSWER_PATTERN
public static final Pattern CALCQ_FORMULA_PATTERN
public static final Pattern CALCQ_FORMULA_SPLIT_PATTERN
public static final Pattern CALCQ_CALCULATION_PATTERN
public static final Pattern CALCQ_ANSWER_AVOID_DOUBLE_MINUS
public static final Pattern CALCQ_ANSWER_AVOID_PLUS_MINUS
public static final Pattern CALCQ_FORMULA_ALLOW_POINT_NUMBER
public static final Pattern CALCQ_FORMULA_ALLOW_NUMBER_POINT
public List getTotalScores(String publishedId, String which)
public List getTotalScores(String publishedId, String which, boolean getSubmittedOnly)
public List<AssessmentGradingData> getAllSubmissions(String publishedId)
public List getHighestSubmittedOrGradedAssessmentGradingList(Long publishedId)
public List getLastSubmittedAssessmentGradingList(Long publishedId)
public List getLastSubmittedOrGradedAssessmentGradingList(Long publishedId)
public void saveTotalScores(List gdataList, PublishedAssessmentIfc pub)
public void notifyDeleteToGradebook(List gdataList, PublishedAssessmentIfc pub, String studentId)
gdataList - a list of AssessmentGradingDatapub - PublishedAssessment objectstudentId - public List getAssessmentGradingsByScoringType(Integer scoringType, Long publishedAssessmentId)
public Integer getScoringType(PublishedAssessmentIfc pub)
public Map getItemScores(Long publishedId, Long itemId, String which)
public Map getItemScores(Long publishedId, Long itemId, String which, boolean loadItemGradingAttachment)
public Map getLastItemGradingData(String publishedId, String agentId)
public Map getStudentGradingData(String assessmentGradingId)
public Map getSubmitData(String publishedId, String agentId, Integer scoringoption, String assessmentGradingId)
public int getSubmissionSizeOfPublishedAssessment(String publishedAssessmentId)
public List<MediaData> getMediaArray(ItemGradingData i)
public Map<Long,List<ItemGradingData>> getMediaItemGradingHash(Long assessmentGradingId)
public List<MediaData> getMediaArray(String publishedId, String publishItemId, String which)
public ItemGradingData getLastItemGradingDataByAgent(String publishedItemId, String agentId)
public ItemGradingData getItemGradingData(String assessmentGradingId, String publishedItemId)
public AssessmentGradingData load(String assessmentGradingId)
public AssessmentGradingData load(String assessmentGradingId, boolean loadGradingAttachment)
public ItemGradingData getItemGrading(String itemGradingId)
public AssessmentGradingData getLastAssessmentGradingByAgentId(String publishedAssessmentId, String agentIdString)
public AssessmentGradingData getLastSavedAssessmentGradingByAgentId(String publishedAssessmentId, String agentIdString)
public AssessmentGradingData getLastSubmittedAssessmentGradingByAgentId(String publishedAssessmentId, String agentIdString, String assessmentGradingId)
public void saveItemGrading(ItemGradingData item)
public void saveOrUpdateAssessmentGrading(AssessmentGradingData assessment)
public void saveOrUpdateAssessmentGradingOnly(AssessmentGradingData assessment)
public AssessmentGradingData getHighestAssessmentGrading(String publishedAssessmentId, String agentId)
public AssessmentGradingData getHighestSubmittedAssessmentGrading(String publishedAssessmentId, String agentId, String assessmentGradingId)
public AssessmentGradingData getHighestSubmittedAssessmentGrading(String publishedAssessmentId, String agentId)
public Map<Long,AssessmentGradingData> getAssessmentGradingByItemGradingId(String publishedAssessmentId)
public void updateItemScore(ItemGradingData gdata, double scoreDifference, PublishedAssessmentIfc pub)
public void storeGrades(AssessmentGradingData data, PublishedAssessmentIfc pub, Map publishedItemHash, Map publishedItemTextHash, Map publishedAnswerHash, Map invalidFINMap, List invalidSALengthList) throws GradebookServiceException, FinFormatException
public void storeGrades(AssessmentGradingData data, PublishedAssessmentIfc pub, Map publishedItemHash, Map publishedItemTextHash, Map publishedAnswerHash, boolean persistToDB, Map invalidFINMap, List invalidSALengthList) throws GradebookServiceException, FinFormatException
public void storeGrades(AssessmentGradingData data, boolean regrade, PublishedAssessmentIfc pub, Map publishedItemHash, Map publishedItemTextHash, Map publishedAnswerHash, boolean persistToDB) throws GradebookServiceException, FinFormatException
public void storeGrades(AssessmentGradingData data, boolean regrade, PublishedAssessmentIfc pub, Map publishedItemHash, Map publishedItemTextHash, Map publishedAnswerHash, boolean persistToDB, Map invalidFINMap, List invalidSALengthList) throws GradebookServiceException, FinFormatException
public void notifyGradebookByScoringType(AssessmentGradingData data, PublishedAssessmentIfc pub)
public double getAnswerScore(ItemGradingData data, Map publishedAnswerHash)
public void updateAutosubmitEventLog(AssessmentGradingData adata)
public double getFIBScore(ItemGradingData data, Map fibmap, ItemDataIfc itemdata, Map publishedAnswerHash)
public boolean getFIBResult(ItemGradingData data, Map fibmap, ItemDataIfc itemdata, Map publishedAnswerHash)
public double getFINScore(ItemGradingData data, ItemDataIfc itemdata, Map publishedAnswerHash) throws FinFormatException
FinFormatExceptionpublic boolean getFINResult(ItemGradingData data, ItemDataIfc itemdata, Map publishedAnswerHash) throws FinFormatException
FinFormatExceptionpublic double getImageMapScore(ItemGradingData data, ItemDataIfc itemdata, Map publishedItemTextHash, Map publishedAnswerHash)
public Map validate(String value)
value - answer to validateANSWER_TYPE_REAL or ANSWER_TYPE_COMPLEXpublic double getCalcQScore(ItemGradingData data, ItemDataIfc itemdata, Map<Integer,String> calculatedAnswersMap, int calcQuestionAnswerSequence)
calcQuestionAnswerSequence - the order of answers in the listpublic boolean getCalcQResult(ItemGradingData data, ItemDataIfc itemdata, Map<Integer,String> calculatedAnswersMap, int calcQuestionAnswerSequence)
public double getTotalCorrectScore(ItemGradingData data, Map publishedAnswerHash)
public void deleteAll(Collection c)
public void updateAssessmentGradingScore(AssessmentGradingData adata, PublishedAssessmentIfc pub, String newComment, String oldComment)
public void saveOrUpdateAll(Collection<ItemGradingData> c)
public PublishedAssessmentIfc getPublishedAssessmentByAssessmentGradingId(String id)
public PublishedAssessmentIfc getPublishedAssessmentByPublishedItemId(String publishedItemId)
public List<Integer> getLastItemGradingDataPosition(Long assessmentGradingId, String agentId)
public Set<PublishedItemData> getItemSet(Long publishedAssessmentId, Long sectionId)
public boolean fibmatch(String answer, String input, boolean casesensitive, boolean ignorespaces)
public List getAllAssessmentGradingByAgentId(Long publishedAssessmentId, String agentIdString)
public List<ItemGradingData> getAllItemGradingDataForItemInGrading(Long assesmentGradingId, Long publihsedItemId)
public Map<Long,Map<String,Integer>> getSiteSubmissionCountHash(String siteId)
public Map<Long,Map<String,Long>> getSiteInProgressCountHash(String siteId)
public int getActualNumberRetake(Long publishedAssessmentId, String agentIdString)
public Map<Long,Map<String,Long>> getSiteActualNumberRetakeHash(String siteIdString)
public List getStudentGradingSummaryData(Long publishedAssessmentId, String agentIdString)
public Map<Long,StudentGradingSummaryData> getNumberRetakeHash(String agentIdString)
public Map<Long,Map<String,Integer>> getSiteNumberRetakeHash(String siteIdString)
public void saveStudentGradingSummaryData(StudentGradingSummaryIfc studentGradingSummaryData)
public int getLateSubmissionsNumberByAgentId(Long publishedAssessmentId, String agentIdString, Date dueDate)
public List getExportResponsesData(String publishedAssessmentId, boolean anonymous, String audioMessage, String fileUploadMessage, String noSubmissionMessage, boolean showPartAndTotalScoreSpreadsheetColumns, String poolString, String partString, String questionString, String textString, String rationaleString, String itemGradingCommentsString, Map useridMap, String responseCommentString)
publishedAssessmentId - anonymous - audioMessage - fileUploadMessage - noSubmissionMessage - showPartAndTotalScoreSpreadsheetColumns - poolString - partString - questionString - textString - rationaleString - itemGradingCommentsString - useridMap - responseCommentString - public boolean getHasGradingData(Long publishedAssessmentId)
public List<String> extractCalculations(String text)
For example, if the passed parameter is {a} + {b} = {{c}}, [[{a}+{b}]],
the resulting list would contain one entry: a string of "{a}+{b}"
Formulas must contain at least one variable OR parens OR calculation symbol (*-+/)
text - contents to be searchedpublic List<String> extractFormulas(String text)
For example, if the passed parameter is {a} + {b} = {{c}},
the resulting list would contain one entry: a string of "c"
Formulas must begin with an alpha, but subsequent character can be alpha-numeric
text - contents to be searchedpublic List<String> extractVariables(String text)
For example, if the passed parameter is {a} + {b} = {{c}},
the resulting list would contain two entries: strings of "a" and "b"
Variables must begin with an alpha, but subsequent character can be alpha-numeric.
Note - a formula, encoded as {{ }}, will not be mistaken for a variable.
text - content to be searchedprotected List<String> extractInstructionSegments(String instructions)
Note - in this context, it would probably be easier if any variable value substitutions have occurred before the breakup is done; otherwise, each segment will need to have substitutions done.
instructions - string to be broken uppublic String toScientificNotation(String numberStr, int decimalPlaces)
numberStr - decimalPlaces - public String applyPrecisionToNumberString(String numberStr, int decimalPlaces)
numberStr - decimalPlaces - public List<String> extractCalcQAnswersArray(Map<Integer,String> answerList, ItemDataIfc item, Long gradingId, String agentId)
Note: If a divide by zero occurs. We change the random values and try again. It gets limited chances to get valid values and then will return "infinity" as the answer.
answerList - will enter the method empty and be filled with sequential answers to the questionpublic boolean isAnswerValid(String answer)
public String replaceMappedVariablesWithNumbers(String expression, Map<String,String> variables)
Note - this function comprehends syntax like "5{x}". If "x" is 37, the result would be "5*37"
expression - - the string being substituted intovariables - - Map key is the variable name, value is what will be
substituted into the expression.public String replaceCalculationsWithValues(String expression, int decimalPlaces) throws SamigoExpressionError
Note - this function comprehends syntax like "5{x}". If "x" is 37, the result would be "5*37"
expression - - the string which will be scanned for calculationsIllegalStateException - if the formula value cannot be calculatedSamigoExpressionError - if the formula cannot be parsedpublic String processFormulaIntoValue(String formula, int decimalPlaces) throws SamigoExpressionError
formula - the formula to process (e.g. 1 * 2 + 3 - 4), All variable replacement must have already happeneddecimalPlaces - number of decimals to include in the final outputIllegalStateException - if the formula value cannot be calculated (typically caused by 0 divisors and the like)SamigoExpressionError - if the formula cannot be parsedpublic static String cleanFormula(String formula)
formula - formula with variables or withoutpublic boolean isNegativeSqrt(String expression) throws SamigoExpressionError
Note - the incoming expression should have no variables. They should have been replaced before this function was called
expression - a mathematical formula, with all variables replaced by
real values, to be evaluatedSamigoExpressionError - if the evaluation of the SQRT function throws
some other parse errorpublic Map<String,String> determineRandomValuesForRanges(Map<String,String> variableRangeMap, long itemId, long gradingId, String agentId, int validAnswersAttemptCount)
public List<Boolean> getHasGradingDataAndHasSubmission(Long publishedAssessmentId)
public int autoSubmitAssessments()
public ItemGradingAttachment createItemGradingAttachment(ItemGradingData itemGrading, String resourceId, String filename, String protocol)
public AssessmentGradingAttachment createAssessmentGradingAttachment(AssessmentGradingData assessmentGrading, String resourceId, String filename, String protocol)
public void removeItemGradingAttachment(String attachmentId)
public void removeAssessmentGradingAttachment(String attachmentId)
public void saveOrUpdateAttachments(List list)
public void completeItemGradingData(AssessmentGradingData assessmentGradingData)
public double getAnswerScoreMCQ(ItemGradingData data, Map publishedAnswerHash)
public boolean hasDistractors(ItemDataIfc item)
item - public boolean isDistractor(ItemTextIfc itemText)
For ItemTextIfc objects that hold data for matching type questions, a distractor is a choice that has no valid matches (i.e. no correct answers). This function returns if this ItemTextIfc object has any correct answers
itemText - Copyright © 2003–2020 Sakai Project. All rights reserved.