From: <se...@us...> - 2008-05-23 14:26:19
|
Revision: 160 http://acmcontester.svn.sourceforge.net/acmcontester/?rev=160&view=rev Author: sem62 Date: 2008-05-23 07:26:18 -0700 (Fri, 23 May 2008) Log Message: ----------- Removed code that was write Bohdan Figar and put my own code. This code was writing 2 years ago, bug he replaced it because he couldn't understand it. Modified Paths: -------------- RTE/src/edu/lnu/FireFly/Rte/Cmi.java RTE/src/edu/lnu/FireFly/Rte/CmiManager.java RTE/src/edu/lnu/FireFly/Rte/GlobalStateInformation.java Added Paths: ----------- RTE/src/edu/lnu/FireFly/Rte/Collection.java RTE/src/edu/lnu/FireFly/Rte/CollectionItem.java RTE/src/edu/lnu/FireFly/Rte/Element.java RTE/src/edu/lnu/FireFly/Rte/ElementDataFromItem.java RTE/src/edu/lnu/FireFly/Rte/ElementName.java RTE/src/edu/lnu/FireFly/Rte/LogError.java RTE/src/edu/lnu/FireFly/Rte/SimpleElement.java RTE/src/edu/lnu/FireFly/Rte/answers/ RTE/src/edu/lnu/FireFly/Rte/answers/Answers.java RTE/src/edu/lnu/FireFly/Rte/answers/AnswersItem.java RTE/src/edu/lnu/FireFly/Rte/comments/ RTE/src/edu/lnu/FireFly/Rte/comments/CommentsFromLMS.java RTE/src/edu/lnu/FireFly/Rte/comments/CommentsFromLMSItem.java RTE/src/edu/lnu/FireFly/Rte/comments/CommentsFromLearner.java RTE/src/edu/lnu/FireFly/Rte/comments/CommentsFromLearnerItem.java RTE/src/edu/lnu/FireFly/Rte/interaction/ RTE/src/edu/lnu/FireFly/Rte/interaction/Interactions.java RTE/src/edu/lnu/FireFly/Rte/interaction/InteractionsItem.java RTE/src/edu/lnu/FireFly/Rte/interaction/correct_responses/ RTE/src/edu/lnu/FireFly/Rte/interaction/correct_responses/Correct_responses.java RTE/src/edu/lnu/FireFly/Rte/interaction/correct_responses/Correct_responsesItem.java RTE/src/edu/lnu/FireFly/Rte/interaction/objectives/ RTE/src/edu/lnu/FireFly/Rte/interaction/objectives/Objectives.java RTE/src/edu/lnu/FireFly/Rte/interaction/objectives/ObjectivesItem.java RTE/src/edu/lnu/FireFly/Rte/learner_preference/ RTE/src/edu/lnu/FireFly/Rte/learner_preference/Learner_preference.java RTE/src/edu/lnu/FireFly/Rte/learner_preference/Learner_preferenceItem.java RTE/src/edu/lnu/FireFly/Rte/objectives/ RTE/src/edu/lnu/FireFly/Rte/objectives/GlobalObjectives.java RTE/src/edu/lnu/FireFly/Rte/objectives/ObjectiveMap.java RTE/src/edu/lnu/FireFly/Rte/objectives/Objectives.java RTE/src/edu/lnu/FireFly/Rte/objectives/ObjectivesItem.java RTE/src/edu/lnu/FireFly/Rte/objectives/score/ RTE/src/edu/lnu/FireFly/Rte/objectives/score/Score.java RTE/src/edu/lnu/FireFly/Rte/objectives/score/ScoreItem.java RTE/src/edu/lnu/FireFly/Rte/score/ RTE/src/edu/lnu/FireFly/Rte/score/Score.java RTE/src/edu/lnu/FireFly/Rte/score/ScoreItem.java RTE/src/make.jardesc Removed Paths: ------------- RTE/src/edu/lnu/FireFly/Rte/Activity.java RTE/src/edu/lnu/FireFly/Rte/CmiElement.java RTE/src/edu/lnu/FireFly/Rte/GlobalObjectivesManager.java RTE/src/edu/lnu/FireFly/Rte/ObjectiveMap.java RTE/src/edu/lnu/FireFly/Rte/Utils.java RTE/src/edu/lnu/FireFly/Rte/elements/ RTE/src/rte.jardesc Deleted: RTE/src/edu/lnu/FireFly/Rte/Activity.java =================================================================== --- RTE/src/edu/lnu/FireFly/Rte/Activity.java 2008-05-23 11:19:26 UTC (rev 159) +++ RTE/src/edu/lnu/FireFly/Rte/Activity.java 2008-05-23 14:26:18 UTC (rev 160) @@ -1,211 +0,0 @@ -package edu.lnu.FireFly.Rte; - -import java.util.ArrayList; - -import edu.lnu.FireFly.FFManifest.Manifest; -import edu.lnu.FireFly.FFManifest.Organization; -import edu.lnu.FireFly.FFManifest.TreeItem; -import edu.lnu.FireFly.FFManifest.item.Item; -import edu.lnu.FireFly.FFManifest.item.Presentation; -import edu.lnu.FireFly.FFManifest.item.sequencing.Sequencing; -import edu.lnu.FireFly.FFManifest.parser.TestDocException; -import edu.lnu.FireFly.FFManifest.resource.Resource; - -public class Activity { - // from Organization - public String structure; - public boolean objectivesGlobalToSystem; - // from Item - public String identifierref; - public boolean isvisible; - public String parameters; - public String timeLimitAction; - public String dataFromLMS; - public Double completionThreshold; - public Presentation presentation; - // both - public String identifier; - public String title; - public ArrayList<Activity> items; - public String metadata_adlcp_location = ""; - public Sequencing sequencing; - // other - public Activity parent; - public boolean isRoot = false; - private static Activity rootActivity; - - private static Manifest manifest = null; - - public Activity(Manifest manifest, Item item, Activity parentActivity){ - Activity.manifest = manifest; - - copyDataFromItem(item); - - parent = parentActivity; - - items = new ArrayList<Activity>(); - int i; - if (item.items != null){ - for (i = 0; i < item.items.size(); i++){ - items.add(new Activity(manifest, item.items.get(i), this)); - } - } - } - - private void copyDataFromItem(Item item) { - identifierref = item.identifierref; - isvisible = item.isvisible; - parameters = item.parameters; - timeLimitAction = item.timeLimitAction; - dataFromLMS = item.dataFromLMS; - completionThreshold = item.completionThreshold; - presentation = item.presentation; - identifier = item.identifier; - title = item.title; - sequencing = item.sequencing; - } - - public Activity(Manifest manifest, Organization organization){ - Activity.manifest = manifest; - - structure = organization.structure; - objectivesGlobalToSystem = organization.objectivesGlobalToSystem; - identifier = organization.identifier; - title = organization.title; - sequencing = organization.sequencing; - - isRoot = true; - items = new ArrayList<Activity>(); - int i; - for (i = 0; i < organization.items.size(); i++){ - items.add(new Activity(manifest, organization.items.get(i), this)); - } - rootActivity = this; - } - - public static Activity getRoot(){ - return rootActivity; - } - - public static void synchronizeActivitiesStructure(TreeItem anItem){ - Activity activity = Activity.findActivityByIdentifier(anItem.getIdentifier()); - for (int i=0; i<anItem.getChildCount(); i++){ - Item newRoot = (Item)anItem.getChild(i); - - Activity newActivity = Activity.findActivityByIdentifier(newRoot.getIdentifier()); - if (newActivity == null){ - newActivity = new Activity(manifest, newRoot, activity); - - activity.items.add(newActivity); - } else { - newActivity.copyDataFromItem(newRoot); - synchronizeActivitiesStructure(newRoot); - } - } - } - - public static void synchronizeActivitiesStructure(Manifest manifest){ - if (manifest != Activity.manifest){ - fullsynchronizeActivitiesStructure(manifest); - - return; - } - - try { - synchronizeActivitiesStructure(manifest.getRoot()); - } catch (TestDocException e) { - e.printStackTrace(); - } - } - - public static void fullsynchronizeActivitiesStructure(Manifest manifest) { - Activity.manifest = manifest; - - try { - new Activity(manifest, (Organization)manifest.organizations.getDefaultOrganization()); - } catch (TestDocException e) { - e.printStackTrace(); - } - } - - public Resource getResource(){ - if (identifierref == null){ - return null; - } - - for (int i=0; i < manifest.resources.resources.size(); i++){ - if (manifest.resources.resources.get(i).identifier.equals(identifierref)){ - return manifest.resources.resources.get(i); - } - } - return null; - } - - public boolean isLeaf(){ - return items.size() == 0; - } - - public int getChildIndex(String id){ - int i; - for (i = 0; i < items.size(); i++){ - if (id.equals(items.get(i).identifier)){ - break; - } - } - return i; - } - - public static Activity findActivityByIdentifier(String identifier){ - return rootActivity.findActivityByIdentifier2(identifier); - } - - public Activity findActivityByIdentifier2(String identifier){ - if (this.identifier.equals(identifier)){ - return this; - } - - for (int i=0; i<items.size(); i++){ - Activity item = items.get(i).findActivityByIdentifier2(identifier); - if (item != null){ - return item; - } - } - return null; - } - - public Activity getLastLeafInCluester(boolean ignoreForvarOnlyControlMode, boolean use_flow_control_mode_attribute){ - - if (isLeaf()){ - return this; - } - - if (!ignoreForvarOnlyControlMode && sequencing.controlMode.forwardOnly){ - return null; - } - - if (use_flow_control_mode_attribute && sequencing.controlMode.flow){ - return items.get(items.size() - 1).getLastLeafInCluester(ignoreForvarOnlyControlMode, use_flow_control_mode_attribute); - } - - return this; - } - - public Activity getFirstLeafInCluester(boolean use_flow_control_mode_attribute){ - if (isLeaf()){ - return this; - } - - if (use_flow_control_mode_attribute){ - } - - if (use_flow_control_mode_attribute && sequencing.controlMode.flow){ - return items.get(0).getFirstLeafInCluester(use_flow_control_mode_attribute); - } else { - return this; - } - } - - public String toString(){ - return title; - } -} Modified: RTE/src/edu/lnu/FireFly/Rte/Cmi.java =================================================================== --- RTE/src/edu/lnu/FireFly/Rte/Cmi.java 2008-05-23 11:19:26 UTC (rev 159) +++ RTE/src/edu/lnu/FireFly/Rte/Cmi.java 2008-05-23 14:26:18 UTC (rev 160) @@ -2,296 +2,140 @@ import java.util.ArrayList; -import edu.lnu.FireFly.FFManifest.item.sequencing.objectives.Objective; -import edu.lnu.FireFly.Rte.elements.AnswersElement; -import edu.lnu.FireFly.Rte.elements.CommentsFromLMSElement; -import edu.lnu.FireFly.Rte.elements.CommentsFromLearnerElement; -import edu.lnu.FireFly.Rte.elements.InteractionsElement; -import edu.lnu.FireFly.Rte.elements.LearnerPreferenceElement; -import edu.lnu.FireFly.Rte.elements.ObjectivesElement; -import edu.lnu.FireFly.Rte.elements.ScoreElement; +import edu.lnu.FireFly.FFManifest.TreeItem; +import edu.lnu.FireFly.FFManifest.item.Item; +import edu.lnu.FireFly.Rte.answers.Answers; +import edu.lnu.FireFly.Rte.comments.CommentsFromLMS; +import edu.lnu.FireFly.Rte.comments.CommentsFromLearner; +import edu.lnu.FireFly.Rte.interaction.Interactions; +import edu.lnu.FireFly.Rte.learner_preference.Learner_preference; +import edu.lnu.FireFly.Rte.objectives.Objectives; +import edu.lnu.FireFly.Rte.score.Score; -public class Cmi { - private CmiElement _version = new CmiElement("1.0"); - private ArrayList<CommentsFromLearnerElement> commentsFromLearner = new ArrayList<CommentsFromLearnerElement>(); - private ArrayList<CommentsFromLMSElement> commentsFromLMS = new ArrayList<CommentsFromLMSElement>(); - public CmiElement completionStatus = new CmiElement("unknown", - new String[] { "completed", "incomplete", "not attempted", - "unknown" }); +public class Cmi extends CollectionItem { + protected boolean initialized = false; - private CmiElement completionThreshold = new CmiElement(""); - private CmiElement credit = new CmiElement("credit", new String[] { - "credit", "no-credit" }); + public static LogError logErorr = new LogError(); - private CmiElement entry = new CmiElement("ab-initio", new String[] { - "ab-initio", "resume", "" }); - - private CmiElement exit = new CmiElement("", new String[] { "time-out", - "suspend", "logout", "normal", "" }); - - private ArrayList<InteractionsElement> interactions = new ArrayList<InteractionsElement>(); - private CmiElement launchData = new CmiElement(""); - private CmiElement learnerId = new CmiElement(""); - private CmiElement learnerName = new CmiElement(""); - private LearnerPreferenceElement learnerPreference = new LearnerPreferenceElement(); - private CmiElement location = new CmiElement(""); - private CmiElement maxTimeAllowed = new CmiElement(""); - private CmiElement mode = new CmiElement("normal", new String[] { "normal", - "browse", "review" }); - - private ArrayList<ObjectivesElement> objectives = new ArrayList<ObjectivesElement>(); - private CmiElement progressMeasure = new CmiElement(""); - private CmiElement scaledPassingScore = new CmiElement(""); - private ScoreElement score = new ScoreElement(); - private CmiElement sessionTime = new CmiElement(""); - private CmiElement successStatus = new CmiElement("unknown", new String[] { - "passed", "failed", "unknown" }); - - private CmiElement suspendData = new CmiElement(""); - private CmiElement timeLimitAction = new CmiElement(""); - private CmiElement totalTime = new CmiElement(""); + public Cmi(TreeItem item){ + elements.put("_version", new SimpleElement("characterstring", "r", "1.0")); + elements.put("learner_id", new SimpleElement("characterstring", "r", "ID_developer")); + elements.put("learner_name", new SimpleElement("characterstring", "r", "developer")); + elements.put("completetion_threshold", new ElementDataFromItem("real(10,7)range(0..1)", "r", "completetion_threshold")); + elements.put("progress_measure", new SimpleElement("real(10,7)range(0..1)", "rw", null)); + elements.put("scaled_passing_score", new ElementDataFromItem("real(10,7)range(-1..1)", "r", "scaled_passing_score")); + elements.put("session_time", new SimpleElement("timeinterval(second,10,2)", "w", "")); + elements.put("suspend_data", new SimpleElement("characterstring", "rw", null)); + elements.put("time_limit_action", new ElementDataFromItem("characterstring", "r", "time_limit_action")); + elements.put("total_time", new ElementDataFromItem("timeinterval(second,10,2)", "r", "total_time")); - public ArrayList<AnswersElement> answers = new ArrayList<AnswersElement>(); + SimpleElement t = new SimpleElement("characterstring", "rw", "unknown"); + t.addFixedToken("passed"); + t.addFixedToken("failed"); + t.addFixedToken("unknown"); + elements.put("success_status", t); + + t = new SimpleElement("characterstring", "wr", "unknown"); + t.addFixedToken("completed"); + t.addFixedToken("incomplete"); + t.addFixedToken("not attempted"); + t.addFixedToken("unknown"); + elements.put("completion_status", t); - private ArrayList<CmiElement> queryQueue = new ArrayList<CmiElement>(); + + t = new SimpleElement("characterstring", "r", "credit"); + t.addFixedToken("credit"); + t.addFixedToken("no-credit"); + elements.put("credit", t); - public Cmi(Activity activity) { - addManifestObjectives(activity); - } + t = new SimpleElement("characterstring", "r", "ab-initio"); + t.addFixedToken("ab-initio"); + t.addFixedToken("resume"); + t.addFixedToken(""); + elements.put("entry", t); - private void addManifestObjectives(Activity activity) { - if (activity == null || activity.sequencing == null - || activity.sequencing.objectives == null) { - return; - } + t = new SimpleElement("characterstring", "w", ""); + t.addFixedToken("time-out"); + t.addFixedToken("suspend"); + t.addFixedToken("logout"); + t.addFixedToken("normal"); + t.addFixedToken(""); + elements.put("exit", t); - Objective primaryObjective = activity.sequencing.objectives.primaryObjective; - ObjectivesElement oe = new ObjectivesElement(); - oe.id.value = primaryObjective.objectiveID; - objectives.add(oe); - if (primaryObjective.mapInfo.size() > 0) { - CmiManager.getInstance().getGlobalObjectivesManager() - .setGlobalObjectives(activity, primaryObjective); - } - int i; - for (i = 0; i < activity.sequencing.objectives.objective.size(); i++) { - primaryObjective = activity.sequencing.objectives.objective.get(i); - oe = new ObjectivesElement(); - oe.id.value = primaryObjective.objectiveID; - objectives.add(oe); - if (primaryObjective.mapInfo.size() > 0) { - CmiManager.getInstance().getGlobalObjectivesManager() - .setGlobalObjectives(activity, primaryObjective); - } - } - } + t = new SimpleElement("characterstring", "r", "normal"); + t.addFixedToken("normal"); + t.addFixedToken("browse"); + t.addFixedToken("review"); + elements.put("mode", t); - public void setValue(String element, String value) { - CmiElement current = getCmiElement(element); - if (current != null) { - current.value = value; - int i; - for (i = 0; i < queryQueue.size(); i++) { - queryQueue.get(i).value = value; - } - queryQueue.clear(); + elements.put("launch_data", new ElementDataFromItem("characterstring", "r", "launch_data")); + elements.put("max_time_allowed", new ElementDataFromItem("characterstring", "r", "max_time_allowed")); + elements.put("location", new SimpleElement("characterstring", "rw", null)); + + elements.put("interactions", new Interactions(true)); + elements.put("learner_preference", new Learner_preference(true)); + + if (item.getClass() == Item.class){ + elements.put("objectives", new Objectives((Item)item, true)); } + + elements.put("score", new Score(false)); + elements.put("comments_from_learner", new CommentsFromLearner(true)); + elements.put("comments_from_lms", new CommentsFromLMS(true)); + + answers = new Answers(true); + elements.put("answers", answers); } + + protected Answers answers = null; - public String getValue(String element) { - String result = ""; - CmiElement current = getCmiElement(element); - if (current != null) { - result = current.value; - if (!queryQueue.isEmpty()) { - result = queryQueue.get(queryQueue.size() - 1).value; - } - queryQueue.clear(); - } - return result; + public void initialize(){ + initialized = true; } + + public void terminate(){ + behaviour_completionStatusDetermine(); + initialized = false; + } - private CmiElement getCmiElement(String element) { - String first = element; - String second; - int number = 0; - if (element.indexOf(".") != -1) { - first = Utils.getFirst(element); - element = Utils.removeFirst(element); - } - if (element.indexOf(".") != -1) { - number = Integer.parseInt(Utils.getFirst(element)); - element = Utils.removeFirst(element); - } - second = element; - CmiElement returnElement = null; - if (first.equals("_version")) { - returnElement = _version; - } - if (first.equals("comments_from_learner")) { - if (second.equals("_count")) { - returnElement = new CmiElement(""); - returnElement.value = String - .valueOf(commentsFromLearner.size()); - } else { - CommentsFromLearnerElement cfle; - if (number < commentsFromLearner.size()) { - cfle = commentsFromLearner.get(number); - + private void behaviour_completionStatusDetermine() { + Element complate_status = ((Element)elements.get("completion_status")); + Element completetion_threshold = ((Element)elements.get("completetion_threshold")); + Element progress_measure = ((Element)elements.get("progress_measure")); + + if (completetion_threshold.initialized()){ + double threshold = Double.parseDouble(completetion_threshold.getValue(new ElementName(""))); + + if (progress_measure.initialized()){ + double measure = Double.parseDouble(progress_measure.getValue(new ElementName(""))); + + if (measure >= threshold){ + complate_status.setValue(new ElementName(""), "complate"); } else { - cfle = new CommentsFromLearnerElement(); - commentsFromLearner.add(cfle); + complate_status.setValue(new ElementName(""), "incomplate"); } - returnElement = cfle.getCmiElement(second); } } - if (first.equals("comments_from_LMS")) { - if (second.equals("_count")) { - returnElement = new CmiElement(""); - returnElement.value = String.valueOf(commentsFromLMS.size()); - } else { - CommentsFromLMSElement cfle; - if (number < commentsFromLMS.size()) { - cfle = commentsFromLMS.get(number); - - } else { - cfle = new CommentsFromLMSElement(); - commentsFromLMS.add(cfle); - } - returnElement = cfle.getCmiElement(second); - } - } - if (first.equals("completion_status")) { - returnElement = completionStatus; - } - if (first.equals("completion_threshold")) { - returnElement = completionThreshold; - } - if (first.equals("credit")) { - returnElement = credit; - } - if (first.equals("entry")) { - returnElement = entry; - } - if (first.equals("exit")) { - returnElement = exit; - } - if (first.equals("interactions")) { - if (second.equals("_count")) { - returnElement = new CmiElement(""); - returnElement.value = String.valueOf(interactions.size()); - } else { - InteractionsElement ie; - if (number < interactions.size()) { - ie = interactions.get(number); - - } else { - ie = new InteractionsElement(); - interactions.add(ie); - } - returnElement = ie.getCmiElement(second); - } - } - if (first.equals("launch_data")) { - returnElement = launchData; - } - if (first.equals("learner_id")) { - returnElement = learnerId; - } - if (first.equals("learner_name")) { - returnElement = learnerName; - } - if (first.equals("learner_preference")) { - returnElement = learnerPreference.getCmiElement(second); - } - if (first.equals("location")) { - returnElement = location; - } - if (first.equals("max_time_allowed")) { - returnElement = maxTimeAllowed; - } - if (first.equals("mode")) { - returnElement = mode; - } - if (first.equals("objectives")) { - if (second.equals("_count")) { - returnElement = new CmiElement(""); - returnElement.value = String.valueOf(objectives.size()); - } else { - ObjectivesElement oe; - if (number < objectives.size()) { - if (number < 0) { - return null; - } - - oe = objectives.get(number); - CmiManager.getInstance().getGlobalObjectivesManager() - .getGlobalObjectives(oe, second, queryQueue); - } else { - oe = new ObjectivesElement(); - objectives.add(oe); - } - returnElement = oe.getCmiElement(second); - } - } - if (first.equals("progress_measure")) { - returnElement = progressMeasure; - } - if (first.equals("scaled_passing_score")) { - returnElement = scaledPassingScore; - } - if (first.equals("score")) { - returnElement = score.getCmiElement(second); - } - if (first.equals("session_time")) { - returnElement = sessionTime; - } - if (first.equals("success_status")) { - returnElement = successStatus; - } - if (first.equals("suspend_data")) { - returnElement = suspendData; - } - if (first.equals("time_limit_action")) { - returnElement = timeLimitAction; - } - if (first.equals("total_time")) { - returnElement = totalTime; - } - if (first.equals("answers")) { - if (second.equals("_count")) { - returnElement = new CmiElement(""); - returnElement.value = String.valueOf(answers.size()); - } else { - AnswersElement ae; - if (number < answers.size()) { - ae = answers.get(number); - - } else { - ae = new AnswersElement(); - answers.add(ae); - } - returnElement = ae.getCmiElement(second); - } - } - return returnElement; } + public void clearAnswers(){ + answers.items.clear(); + } + public String[] getAnswers(){ ArrayList<String> res = new ArrayList<String>(); - for (int i=0; i < answers.size(); i++){ - res.add(answers.get(i).value.value); + for (int i=0; i < answers.items.size(); i++){ + CollectionItem item = answers.items.get(i); + res.add(item.getValue(new ElementName("value"))); } String[] result = new String[res.size()]; res.toArray(result); return result; } - - // public void checkResult(){ - // AnswersManager answersManager = new - // AnswersManager(GlobalStateInformation.getCurrentActivity()); - // answersManager.checkResult(); - // } + + public boolean initialized(){ + return initialized; + } } Deleted: RTE/src/edu/lnu/FireFly/Rte/CmiElement.java =================================================================== --- RTE/src/edu/lnu/FireFly/Rte/CmiElement.java 2008-05-23 11:19:26 UTC (rev 159) +++ RTE/src/edu/lnu/FireFly/Rte/CmiElement.java 2008-05-23 14:26:18 UTC (rev 160) @@ -1,19 +0,0 @@ -package edu.lnu.FireFly.Rte; - -public class CmiElement { - public String value; - public String[] tokens; - - public CmiElement(String v){ - value = v; - } - - public CmiElement(String v, String[] t){ - value = v; - tokens = new String[t.length]; - int i; - for (i = 0; i < t.length; i++){ - tokens[i] = t[i]; - } - } -} Modified: RTE/src/edu/lnu/FireFly/Rte/CmiManager.java =================================================================== --- RTE/src/edu/lnu/FireFly/Rte/CmiManager.java 2008-05-23 11:19:26 UTC (rev 159) +++ RTE/src/edu/lnu/FireFly/Rte/CmiManager.java 2008-05-23 14:26:18 UTC (rev 160) @@ -2,49 +2,52 @@ import java.util.HashMap; +import edu.lnu.FireFly.FFManifest.TreeItem; + /** * Manager of Cmi models * * @author Yuryj Semen */ public class CmiManager { - private static CmiManager obj = null; - private CmiManager(){} - - public static CmiManager getInstance(){ - - if (obj == null){ - obj = new CmiManager(); - } - - return obj; - } - /** * This hashmap containe pairs activity_id <==> CmiModel. */ - private HashMap<String, Cmi> activitiesVSModels = new HashMap<String, Cmi>(); + private HashMap<TreeItem, Cmi> activitiesVSModels = new HashMap<TreeItem, Cmi>(); /** * Global objectives models manager for managing global objectives. * It is under CMI models. */ - private GlobalObjectivesManager globalObjectivesManager = new GlobalObjectivesManager(); - public GlobalObjectivesManager getGlobalObjectivesManager() { - return globalObjectivesManager; - } +// private GlobalObjectivesManager globalObjectivesManager = new GlobalObjectivesManager(); +// public GlobalObjectivesManager getGlobalObjectivesManager() { +// return globalObjectivesManager; +// } /** * It give a requested Tracking model for specified activity * @param activity A specified activity for getting Cmi model * @return Cmi model for specified activity */ - public Cmi getModelForActivity(Activity activity){ - if (!activitiesVSModels.containsKey(activity.identifier)){ - activitiesVSModels.put(activity.identifier, new Cmi(activity)); + public Cmi getModelForActivity(TreeItem activity){ + if (!activitiesVSModels.containsKey(activity)){ + activitiesVSModels.put(activity, new Cmi(activity)); } - return activitiesVSModels.get(activity.identifier); + return activitiesVSModels.get(activity); } + + private static CmiManager obj = null; + private CmiManager(){ + + } + + public static CmiManager getInstance(){ + if (obj == null){ + obj = new CmiManager(); + } + + return obj; + } } Added: RTE/src/edu/lnu/FireFly/Rte/Collection.java =================================================================== --- RTE/src/edu/lnu/FireFly/Rte/Collection.java (rev 0) +++ RTE/src/edu/lnu/FireFly/Rte/Collection.java 2008-05-23 14:26:18 UTC (rev 160) @@ -0,0 +1,107 @@ +package edu.lnu.FireFly.Rte; + +import java.util.*; + +public class Collection extends Element{ + public ArrayList <CollectionItem>items = new ArrayList<CollectionItem>(); + public String _children = ""; + private boolean indexed = false; + + public Collection (boolean indexed){ + this.indexed = indexed; + } + + public void AddNewItem(){ + items.add(new CollectionItem()); + } + + + public boolean initialized(){ + return true; + } + + public String setValue(ElementName name, String value){ + Cmi.logErorr.LastError = 0; + + if (name.size() == 1){ + if (name.get(0).equals("_count")){ + Cmi.logErorr.LastError = 404; + System.out.print("error 404 at Collection.java(setValue(_count is read only))\n"); + return "False"; + } + + if (name.get(0).equals("_children")){ + Cmi.logErorr.LastError = 404; + System.out.print("error 404 at Collection.java(setValue(_children is read only))\n"); + return "False"; + } + } + + if (!indexed){ + name.push_top("0"); + } + + if (name.size() > 1){ + try{ + int n = Integer.valueOf((String)name.get(0)).intValue(); + + if (n > items.size()){ + Cmi.logErorr.LastError = 351; + System.out.print("error 351 at Collection.java(setValue(n > items.size()))\n"); + return "False"; + } + if (n == items.size()){ + AddNewItem(); + } + + return ((CollectionItem)items.get(n)).setValue(new ElementName(name, 1), value); + } + catch (Exception e){ + Cmi.logErorr.LastError = 401; + System.out.print("error 401 at Collection.java(setValue(Exception))\n"); + return "False"; + } + } + + Cmi.logErorr.LastError = 401; + System.out.print("error 401 at Collection.java(setValue(unknown value))\n"); + return "False"; + } + + public String getValue(ElementName name){ + Cmi.logErorr.LastError = 0; + + if (name.size() == 1){ + if (name.get(0).equals("_count")){ + return String.valueOf(items.size()); + } + + if (name.get(0).equals("_children")){ + return _children; + } + } + + if (!indexed){ + name.push_top("0"); + } + + if (name.size() > 1){ + try{ + int n = Integer.valueOf((String)name.get(0)).intValue(); + if (n >= items.size()){ + Cmi.logErorr.LastError = 301; + return ""; + } + + return ((CollectionItem)items.get(n)).getValue(new ElementName(name, 1)); + } + catch (Exception e){ + Cmi.logErorr.LastError = 401; + return ""; + } + } + + Cmi.logErorr.LastError = 401; + return ""; + } +} Added: RTE/src/edu/lnu/FireFly/Rte/CollectionItem.java =================================================================== --- RTE/src/edu/lnu/FireFly/Rte/CollectionItem.java (rev 0) +++ RTE/src/edu/lnu/FireFly/Rte/CollectionItem.java 2008-05-23 14:26:18 UTC (rev 160) @@ -0,0 +1,37 @@ +package edu.lnu.FireFly.Rte; + +import java.util.HashMap; + +public class CollectionItem extends Element { + public HashMap<String, Element> elements = new HashMap<String, Element>(); + + public String getValue(ElementName name){ + if (elements.containsKey(name.get(0))) + { + return ((Element)elements.get((String)name.get(0))).getValue(new ElementName(name, 1)); + } + + Cmi.logErorr.LastError = 201; + return ""; + } + + public String setValue(ElementName name, String val){ + if (name.size() < 1){ + Cmi.logErorr.LastError = 201; + System.out.print("error 201 at CollectionItem.java(setValue(name.size() < 1))\n"); + return "false"; + } + + if (elements.containsKey((String)name.get(0))){ + return ((Element)elements.get((String)name.get(0))).setValue(new ElementName(name, 1), val); + } + + System.out.print("error 201 at CollectionItem.java(setValue(element \"" + (String)name.get(0) + "\" not found))\n"); + Cmi.logErorr.LastError = 201; + return "false"; + } + + public boolean initialized(){ + return true; + } +} Added: RTE/src/edu/lnu/FireFly/Rte/Element.java =================================================================== --- RTE/src/edu/lnu/FireFly/Rte/Element.java (rev 0) +++ RTE/src/edu/lnu/FireFly/Rte/Element.java 2008-05-23 14:26:18 UTC (rev 160) @@ -0,0 +1,8 @@ +package edu.lnu.FireFly.Rte; + +public abstract class Element { + protected ElementName name; + public abstract String setValue(ElementName name, String value); + public abstract String getValue(ElementName name); + public abstract boolean initialized(); +} Added: RTE/src/edu/lnu/FireFly/Rte/ElementDataFromItem.java =================================================================== --- RTE/src/edu/lnu/FireFly/Rte/ElementDataFromItem.java (rev 0) +++ RTE/src/edu/lnu/FireFly/Rte/ElementDataFromItem.java 2008-05-23 14:26:18 UTC (rev 160) @@ -0,0 +1,95 @@ +package edu.lnu.FireFly.Rte; + +import java.util.ArrayList; + +import edu.lnu.FireFly.FFManifest.item.Item; + +public class ElementDataFromItem extends Element{ + protected String type; + protected String mode; + protected String fieldName; + + protected ArrayList<String> fixedTokens = new ArrayList<String>(); + + public void addFixedToken(String token){ + fixedTokens.add(token); + } + + public ElementDataFromItem(){ + type = "characterstring"; + mode = "r"; + } + + public ElementDataFromItem(String type, String mode, String fieldName){ + this.type = type; + this.mode = mode; + this.fieldName = fieldName; + } + + private String Value(){ + if (fieldName.equals("lunch_data")){ + return ((Item)GlobalStateInformation.getCurrentActivity()).dataFromLMS; + } + + if (fieldName.equals("completetion_threshold")){ + if (((Item)GlobalStateInformation.getCurrentActivity()).completionThreshold == null){ + return null; + } + return String.valueOf(((Item)GlobalStateInformation.getCurrentActivity()).completionThreshold); + } + + if (fieldName.equals("max_time_allowed")){ + return String.valueOf(((Item)GlobalStateInformation.getCurrentActivity()).sequencing.limitConditions.attemptAbsoluteDurationLimit); + } + + if (fieldName.equals("scaled_passing_score")){ + // TODO need realize !!! + return null; //String.valueOf(GlobalStateInformation.currentActivity.); + } + + if (fieldName.equals("time_limit_action")){ + // TODO need realize !!! + return null; //String.valueOf(GlobalStateInformation.currentActivity.); + } + + if (fieldName.equals("total_time")){ + // TODO need realize !!! + return null; //String.valueOf(GlobalStateInformation.currentActivity.); + } + + Cmi.logErorr.LastError = 401; + return ""; + } + + public String setValue(ElementName name, String value){ + Cmi.logErorr.LastError = 404; + return "false"; + } + + public boolean initialized(){ + return Value() != null; + } + + public String getValue(ElementName name){ + Cmi.logErorr.LastError = 0; + + if (GlobalStateInformation.getCurrentActivity() == null || name.size() != 1){ + Cmi.logErorr.LastError = 403; + return ""; + } + + if (((Item)GlobalStateInformation.getCurrentActivity()).completionThreshold == null){ + Cmi.logErorr.LastError = 403; + return ""; + } + + String res = Value(); + + if (res == null){ + Cmi.logErorr.LastError = 403; + return ""; + } + + return res; + } +} Added: RTE/src/edu/lnu/FireFly/Rte/ElementName.java =================================================================== --- RTE/src/edu/lnu/FireFly/Rte/ElementName.java (rev 0) +++ RTE/src/edu/lnu/FireFly/Rte/ElementName.java 2008-05-23 14:26:18 UTC (rev 160) @@ -0,0 +1,46 @@ +package edu.lnu.FireFly.Rte; + +import java.util.*; + +public class ElementName { + public ArrayList<String> path = null; + + public ElementName(ElementName name, int skipFirst) { + path = new ArrayList<String>(); + for (int i = skipFirst; i < name.size(); i++) { + path.add(name.get(i)); + } + } + + public ElementName(String name) { + path = explode(name, "."); + } + + private ArrayList<String> explode(String value, String delimiter) { + ArrayList<String> result = new ArrayList<String>(); + + while (true) { + int delimPos = value.indexOf(delimiter); + + if (delimPos < 0) { + result.add(value); + return result; + } + + result.add(value.substring(0, delimPos)); + value = value.substring(delimPos + 1); + } + } + + public void push_top(String s) { + path.add(0, s); + } + + public int size() { + return path.size(); + } + + public String get(int i) { + return (String) path.get(i); + } +} Deleted: RTE/src/edu/lnu/FireFly/Rte/GlobalObjectivesManager.java =================================================================== --- RTE/src/edu/lnu/FireFly/Rte/GlobalObjectivesManager.java 2008-05-23 11:19:26 UTC (rev 159) +++ RTE/src/edu/lnu/FireFly/Rte/GlobalObjectivesManager.java 2008-05-23 14:26:18 UTC (rev 160) @@ -1,50 +0,0 @@ -package edu.lnu.FireFly.Rte; - -import java.util.ArrayList; - -import edu.lnu.FireFly.FFManifest.item.sequencing.objectives.Objective; -import edu.lnu.FireFly.Rte.elements.ObjectivesElement; - -public class GlobalObjectivesManager { - private ArrayList<ObjectivesElement> globalObjectives = new ArrayList<ObjectivesElement>(); - private ArrayList<ObjectiveMap> objectiveMaps = new ArrayList<ObjectiveMap>(); - - public void setGlobalObjectives(Activity activity, Objective objective){ - int i; - for (i = 0; i < objective.mapInfo.size(); i++){ - if (getObjectiveById(objective.mapInfo.get(i).targetObjectiveID) == null){ - ObjectivesElement oe = new ObjectivesElement(); - oe.id.value = objective.mapInfo.get(i).targetObjectiveID; - globalObjectives.add(oe); - } - ObjectiveMap om = new ObjectiveMap(activity.identifier + objective.objectiveID, objective.mapInfo.get(i).targetObjectiveID); - objectiveMaps.add(om); - } - } - - public void getGlobalObjectives(ObjectivesElement oe, String element, ArrayList<CmiElement> list){ - String id = GlobalStateInformation.getCurrentActivity().identifier + oe.id.value; - int i; - for (i = 0; i < objectiveMaps.size(); i++){ - ObjectiveMap current = objectiveMaps.get(i); - if (current.activityObjectiveID.equals(id)){ - ObjectivesElement global = getObjectiveById(current.targetObjectiveID); - CmiElement ce = global.getCmiElement(element); - list.add(ce); - } - } - - } - - private ObjectivesElement getObjectiveById(String id){ - ObjectivesElement result = null; - int i; - for (i = 0; i < globalObjectives.size(); i++){ - if (globalObjectives.get(i).id.value.equals(id)){ - result = globalObjectives.get(i); - break; - } - } - return result; - } -} Modified: RTE/src/edu/lnu/FireFly/Rte/GlobalStateInformation.java =================================================================== --- RTE/src/edu/lnu/FireFly/Rte/GlobalStateInformation.java 2008-05-23 11:19:26 UTC (rev 159) +++ RTE/src/edu/lnu/FireFly/Rte/GlobalStateInformation.java 2008-05-23 14:26:18 UTC (rev 160) @@ -1,20 +1,22 @@ package edu.lnu.FireFly.Rte; +import edu.lnu.FireFly.FFManifest.TreeItem; + public class GlobalStateInformation { - protected static Activity currentActivity = null; - protected static Activity suspendedActivity = null; + protected static TreeItem currentActivity = null; + protected static TreeItem suspendedActivity = null; - public static Activity getCurrentActivity(){ + public static TreeItem getCurrentActivity(){ return currentActivity; } - public static void setCurrentActivity(Activity value){ + public static void setCurrentActivity(TreeItem value){ currentActivity = value; } - public static Activity getSuspendedActivity(){ + public static TreeItem getSuspendedActivity(){ return suspendedActivity; } - public static void setSuspendedActivity(Activity value){ + public static void setSuspendedActivity(TreeItem value){ suspendedActivity = value; } } Added: RTE/src/edu/lnu/FireFly/Rte/LogError.java =================================================================== --- RTE/src/edu/lnu/FireFly/Rte/LogError.java (rev 0) +++ RTE/src/edu/lnu/FireFly/Rte/LogError.java 2008-05-23 14:26:18 UTC (rev 160) @@ -0,0 +1,5 @@ +package edu.lnu.FireFly.Rte; + +public class LogError { + public int LastError = 0; +} Deleted: RTE/src/edu/lnu/FireFly/Rte/ObjectiveMap.java =================================================================== --- RTE/src/edu/lnu/FireFly/Rte/ObjectiveMap.java 2008-05-23 11:19:26 UTC (rev 159) +++ RTE/src/edu/lnu/FireFly/Rte/ObjectiveMap.java 2008-05-23 14:26:18 UTC (rev 160) @@ -1,16 +0,0 @@ -package edu.lnu.FireFly.Rte; - -public class ObjectiveMap { - public String activityObjectiveID = ""; - public String targetObjectiveID = ""; - public boolean readObjectiveSatisfiedStatus = true; - public boolean writeObjectiveSatisfiedStatus = false; - public boolean readObjectiveNormalizedMeasure = true; - public boolean writeObjectiveNormalizedMeasure = false; - - public ObjectiveMap(String localId, String globalId){ - activityObjectiveID = localId; - targetObjectiveID = globalId; - } - -} Added: RTE/src/edu/lnu/FireFly/Rte/SimpleElement.java =================================================================== --- RTE/src/edu/lnu/FireFly/Rte/SimpleElement.java (rev 0) +++ RTE/src/edu/lnu/FireFly/Rte/SimpleElement.java 2008-05-23 14:26:18 UTC (rev 160) @@ -0,0 +1,93 @@ +package edu.lnu.FireFly.Rte; + +import java.util.*; + +public class SimpleElement extends Element{ + protected String value; + protected String type; + protected String mode; + + protected ArrayList<String> fixedTokens = new ArrayList<String>(); + + public void addFixedToken(String token){ + fixedTokens.add(token); + } + + public boolean initialized(){ + return value != null; + } + + public SimpleElement(){ + value = ""; + type = "characterstring"; + mode = "rw"; + } + + public SimpleElement(String type, String mode, String value){ + this.value = value; + this.type = type; + this.mode = mode; + } + + public String setValue(ElementName name, String value){ + Cmi.logErorr.LastError = 0; + + if (name.size() != 0){ + Cmi.logErorr.LastError = 403; + System.out.print("error 403 at SimpleElement.java(setValue(name.size() != 0))\n"); + return "False"; + } + + if (fixedTokens.size() > 0){ + boolean contain = false; + for (int i=0; i<fixedTokens.size(); i++){ + if (fixedTokens.get(i).equals(value)){ + contain = true; + } + } + if (!contain){ + Cmi.logErorr.LastError = 406; + System.out.print("error 406 at SimpleElement.java(setValue(!contain fixed value))\n"); + return "False"; + } + } + + if (!mode.contains("w")){ + Cmi.logErorr.LastError = 404; + System.out.print("error 404 at SimpleElement.java(setValue(read only))\n"); + return "false"; + } + + // TODO \xCD\xE5\xEE\xE1\xF5\xB3\xE4\xED\xE0 \xEF\xE5\xF0\xE5\xE2\xB3\xF0\xEA\xE0 \xED\xE0 \xE2\xB3\xE4\xEF\xEE\xE2\xB3\xE4\xED\xB3\xF1\xF2\xFC \xF2\xE8\xEF\xF3 (field type) + + this.value = value; + +// Navigation.updateUI(); + + return "true"; + } + + public String getValue(ElementName name){ + Cmi.logErorr.LastError = 0; + + if (value == null || name.size() != 0){ + Cmi.logErorr.LastError = 403; + return ""; + } + + if (fixedTokens.size() > 0){ + if (!fixedTokens.contains(value)){ + Cmi.logErorr.LastError = 406; + System.out.print("\nInternal error. May be default element value not in fixed list!!!"); + return ""; + } + } + + if (!mode.contains("r")){ + Cmi.logErorr.LastError = 405; + return ""; + } + + return value; + } +} Deleted: RTE/src/edu/lnu/FireFly/Rte/Utils.java =================================================================== --- RTE/src/edu/lnu/FireFly/Rte/Utils.java 2008-05-23 11:19:26 UTC (rev 159) +++ RTE/src/edu/lnu/FireFly/Rte/Utils.java 2008-05-23 14:26:18 UTC (rev 160) @@ -1,32 +0,0 @@ -package edu.lnu.FireFly.Rte; - -public class Utils { - public static String getFirst(String s){ - return s.substring(0, s.indexOf(".")); - } - - public static String removeFirst(String s){ - int index = s.indexOf(".") + 1; - return s.substring(index, s.length()); - } - - public static String getActivityType(Activity activity){ - if (activity == null || activity.getResource() == null){ - return "asset"; - } - - if (activity.getResource().scormType.equals("sco")){ - return "sco"; - } - return "asset"; - } - - public static String getChoiceTarget(String choice){ - choice = choice.substring(choice.indexOf("choice") + 6, choice.length()); - choice = choice.trim(); - choice = choice.substring(choice.indexOf("target") + 6, choice.length() - 1); - choice = choice.trim(); - choice = choice.substring(choice.indexOf("=") + 1, choice.length()); - return choice.trim(); - } -} Added: RTE/src/edu/lnu/FireFly/Rte/answers/Answers.java =================================================================== --- RTE/src/edu/lnu/FireFly/Rte/answers/Answers.java (rev 0) +++ RTE/src/edu/lnu/FireFly/Rte/answers/Answers.java 2008-05-23 14:26:18 UTC (rev 160) @@ -0,0 +1,14 @@ +package edu.lnu.FireFly.Rte.answers; + +import edu.lnu.FireFly.Rte.Collection; + +public class Answers extends Collection { + public Answers(boolean indexed){ + super(indexed); + _children = AnswersItem._children; + } + + public void AddNewItem(){ + items.add(new AnswersItem()); + } +} Added: RTE/src/edu/lnu/FireFly/Rte/answers/AnswersItem.java =================================================================== --- RTE/src/edu/lnu/FireFly/Rte/answers/AnswersItem.java (rev 0) +++ RTE/src/edu/lnu/FireFly/Rte/answers/AnswersItem.java 2008-05-23 14:26:18 UTC (rev 160) @@ -0,0 +1,12 @@ +package edu.lnu.FireFly.Rte.answers; + +import edu.lnu.FireFly.Rte.CollectionItem; +import edu.lnu.FireFly.Rte.SimpleElement; + +public class AnswersItem extends CollectionItem{ + public static String _children = "value"; + + public AnswersItem(){ + elements.put("value", new SimpleElement("characterstring", "rw", "")); + } +} \ No newline at end of file Added: RTE/src/edu/lnu/FireFly/Rte/comments/CommentsFromLMS.java =================================================================== --- RTE/src/edu/lnu/FireFly/Rte/comments/CommentsFromLMS.java (rev 0) +++ RTE/src/edu/lnu/FireFly/Rte/comments/CommentsFromLMS.java 2008-05-23 14:26:18 UTC (rev 160) @@ -0,0 +1,14 @@ +package edu.lnu.FireFly.Rte.comments; + +import edu.lnu.FireFly.Rte.Collection; + +public class CommentsFromLMS extends Collection{ + public CommentsFromLMS(boolean indexed){ + super(indexed); + _children = CommentsFromLMSItem._children; + } + + public void AddNewItem(){ + items.add(new CommentsFromLMSItem()); + } +} Added: RTE/src/edu/lnu/FireFly/Rte/comments/CommentsFromLMSItem.java =================================================================== --- RTE/src/edu/lnu/FireFly/Rte/comments/CommentsFromLMSItem.java (rev 0) +++ RTE/src/edu/lnu/FireFly/Rte/comments/CommentsFromLMSItem.java 2008-05-23 14:26:18 UTC (rev 160) @@ -0,0 +1,15 @@ +package edu.lnu.FireFly.Rte.comments; + +import edu.lnu.FireFly.Rte.CollectionItem; +import edu.lnu.FireFly.Rte.SimpleElement; + +public class CommentsFromLMSItem extends CollectionItem { +public static String _children = "comment,location,timestamp"; + + public CommentsFromLMSItem() + { + elements.put("comment", new SimpleElement("characterstring", "r", null)); + elements.put("location", new SimpleElement("characterstring", "r", "")); + elements.put("timestamp", new SimpleElement("time(second,10,0)", "r", null)); + } +} Added: RTE/src/edu/lnu/FireFly/Rte/comments/CommentsFromLearner.java =================================================================== --- RTE/src/edu/lnu/FireFly/Rte/comments/CommentsFromLearner.java (rev 0) +++ RTE/src/edu/lnu/FireFly/Rte/comments/CommentsFromLearner.java 2008-05-23 14:26:18 UTC (rev 160) @@ -0,0 +1,14 @@ +package edu.lnu.FireFly.Rte.comments; + +import edu.lnu.FireFly.Rte.Collection; + +public class CommentsFromLearner extends Collection{ + public CommentsFromLearner(boolean indexed){ + super(indexed); + _children = CommentsFromLearnerItem._children; + } + + public void AddNewItem(){ + items.add(new CommentsFromLearnerItem()); + } +} Added: RTE/src/edu/lnu/FireFly/Rte/comments/CommentsFromLearnerItem.java =================================================================== --- RTE/src/edu/lnu/FireFly/Rte/comments/CommentsFromLearnerItem.java (rev 0) +++ RTE/src/edu/lnu/FireFly/Rte/comments/CommentsFromLearnerItem.java 2008-05-23 14:26:18 UTC (rev 160) @@ -0,0 +1,16 @@ +package edu.lnu.FireFly.Rte.comments; + +import edu.lnu.FireFly.Rte.CollectionItem; +import edu.lnu.FireFly.Rte.SimpleElement; + +public class CommentsFromLearnerItem extends CollectionItem { + public static String _children = "comment,location,timestamp"; + + public CommentsFromLearnerItem() + { + elements.put("comment", new SimpleElement("characterstring", "rw", null)); + elements.put("location", new SimpleElement("characterstring", "rw", null)); + elements.put("timestamp", new SimpleElement("time(second,10,0)", "rw", null)); + } + +} Added: RTE/src/edu/lnu/FireFly/Rte/interaction/Interactions.java =================================================================== --- RTE/src/edu/lnu/FireFly/Rte/interaction/Interactions.java (rev 0) +++ RTE/src/edu/lnu/FireFly/Rte/interaction/Interactions.java 2008-05-23 14:26:18 UTC (rev 160) @@ -0,0 +1,14 @@ +package edu.lnu.FireFly.Rte.interaction; + +import edu.lnu.FireFly.Rte.Collection; + +public class Interactions extends Collection { + public Interactions(boolean indexed){ + super(indexed); + _children = InteractionsItem._children; + } + + public void AddNewItem(){ + items.add(new InteractionsItem()); + } +} Added: RTE/src/edu/lnu/FireFly/Rte/interaction/InteractionsItem.java =================================================================== --- RTE/src/edu/lnu/FireFly/Rte/interaction/InteractionsItem.java (rev 0) +++ RTE/src/edu/lnu/FireFly/Rte/interaction/InteractionsItem.java 2008-05-23 14:26:18 UTC (rev 160) @@ -0,0 +1,46 @@ +package edu.lnu.FireFly.Rte.interaction; + +import edu.lnu.FireFly.Rte.CollectionItem; +import edu.lnu.FireFly.Rte.SimpleElement; + +public class InteractionsItem extends CollectionItem{ + public static String _children = "id,type,objectives,timestamp,correct_responses,weighting,result,latency,description"; + + public InteractionsItem(){ + SimpleElement t; + + elements.put("id", new SimpleElement("characterstring", "rw", "")); + elements.put("description", new SimpleElement("characterstring", "rw", null)); + elements.put("timestamp", new SimpleElement("time(second, 10, 0)", "rw", null)); + elements.put("weighting", new SimpleElement("real(10, 7)", "rw", null)); + elements.put("learner_response", new SimpleElement("characterstring", "rw", null)); + elements.put("latency", new SimpleElement("timeinterval(second, 10, 2)", "rw", null)); + + t = new SimpleElement("characterstring", "rw", null); + // TODO Must be uncommmented. +/* + t.addFixedToken("correct"); + t.addFixedToken("incorrect"); + t.addFixedToken("unanticipated"); + t.addFixedToken("neutral"); + t.addFixedToken("real(10,7)"); // not realized +*/ + elements.put("result", t); + + t = new SimpleElement("characterstring", "rw", null); + t.addFixedToken("true-false"); + t.addFixedToken("choice"); + t.addFixedToken("fill-in"); + t.addFixedToken("long-fill-in"); + t.addFixedToken("likert"); + t.addFixedToken("matching"); + t.addFixedToken("performaqnce"); + t.addFixedToken("sequencing"); + t.addFixedToken("numeric"); + t.addFixedToken("other"); + elements.put("type", t); + + elements.put("objectives", new edu.lnu.FireFly.Rte.interaction.objectives.Objectives(true)); + elements.put("correct_responses", new edu.lnu.FireFly.Rte.interaction.correct_responses.Correct_responses(true)); + } +} Added: RTE/src/edu/lnu/FireFly/Rte/interaction/correct_responses/Correct_responses.java =================================================================== --- RTE/src/edu/lnu/FireFly/Rte/interaction/correct_responses/Correct_responses.java (rev 0) +++ RTE/src/edu/lnu/FireFly/Rte/interaction/correct_responses/Correct_responses.java 2008-05-23 14:26:18 UTC (rev 160) @@ -0,0 +1,14 @@ +package edu.lnu.FireFly.Rte.interaction.correct_responses; + +import edu.lnu.FireFly.Rte.Collection; + +public class Correct_responses extends Collection { + public Correct_responses(boolean indexed){ + super(indexed); + _children = Correct_responsesItem._children; + } + + public void AddNewItem(){ + items.add(new Correct_responsesItem()); + } +} Added: RTE/src/edu/lnu/FireFly/Rte/interaction/correct_responses/Correct_responsesItem.java =================================================================== --- RTE/src/edu/lnu/FireFly/Rte/interaction/correct_responses/Correct_responsesItem.java (rev 0) +++ RTE/src/edu/lnu/FireFly/Rte/interaction/correct_responses/Correct_responsesItem.java 2008-05-23 14:26:18 UTC (rev 160) @@ -0,0 +1,17 @@ +package edu.lnu.FireFly.Rte.interaction.correct_responses; + +import edu.lnu.FireFly.Rte.CollectionItem; +import edu.lnu.FireFly.Rte.SimpleElement; + +public class Correct_responsesItem extends CollectionItem { + public static String _children = "pattern"; + + public Correct_responsesItem(){ + elements.put("pattern", new SimpleElement("characterstring", "rw", "")); + elements.put("weighting", new SimpleElement("real(10,7)", "rw", null)); + elements.put("learner_response", new SimpleElement("characterstring", "rw", "")); + elements.put("result", new SimpleElement("characterstring", "rw", "")); + elements.put("description", new SimpleElement("characterstring", "rw", "")); + + } +} Added: RTE/src/edu/lnu/FireFly/Rte/interaction/objectives/Objectives.java =================================================================== --- RTE/src/edu/lnu/FireFly/Rte/interaction/objectives/Objectives.java (rev 0) +++ RTE/src/edu/lnu/FireFly/Rte/interaction/objectives/Objectives.java 2008-05-23 14:26:18 UTC (rev 160) @@ -0,0 +1,14 @@ +package edu.lnu.FireFly.Rte.interaction.objectives; + +import edu.lnu.FireFly.Rte.Collection; + +public class Objectives extends Collection { + public Objectives(boolean indexed){ + super(indexed); + _children = ObjectivesItem._children; + } + + public void AddNewItem(){ + items.add(new ObjectivesItem()); + } +} Added: RTE/src/edu/lnu/FireFly/Rte/interaction/objectives/ObjectivesItem.java =================================================================== --- RTE/src/edu/lnu/FireFly/Rte/interaction/objectives/ObjectivesItem.java (rev 0) +++ RTE/src/edu/lnu/FireFly/Rte/interaction/objectives/ObjectivesItem.java 2008-05-23 14:26:18 UTC (rev 160) @@ -0,0 +1,12 @@ +package edu.lnu.FireFly.Rte.interaction.objectives; + +import edu.lnu.FireFly.Rte.CollectionItem; +import edu.lnu.FireFly.Rte.SimpleElement; + +public class ObjectivesItem extends CollectionItem{ + public static String _children = "id"; + + public ObjectivesItem(){ + elements.put("id", new SimpleElement("characterstring", "rw", "")); + } +} Added: RTE/src/edu/lnu/FireFly/Rte/learner_preference/Learner_preference.java =================================================================== --- RTE/src/edu/lnu/FireFly/Rte/learner_preference/Learner_preference.java (rev 0) +++ RTE/src/edu/lnu/FireFly/Rte/learner_preference/Learner_preference.java 2008-05-23 14:26:18 UTC (rev 160) @@ -0,0 +1,14 @@ +package edu.lnu.FireFly.Rte.learner_preference; + +import edu.lnu.FireFly.Rte.Collection; + +public class Learner_preference extends Collection { + public Learner_preference(boolean indexed){ + super(indexed); + _children = Learner_preferenceItem._children; + } + + public void AddNewItem(){ + items.add(new Learner_preferenceItem()); + } +} Added: RTE/src/edu/lnu/FireFly/Rte/learner_preference/Learner_preferenceItem.java =================================================================== --- RTE/src/edu/lnu/FireFly/Rte/learner_preference/Learner_preferenceItem.java (rev 0) +++ RTE/src/edu/lnu/FireFly/Rte/learner_preference/Learner_preferenceItem.java 2008-05-23 14:26:18 UTC (rev 160) @@ -0,0 +1,24 @@ +package edu.lnu.FireFly.Rte.learner_preference; + +import edu.lnu.FireFly.Rte.CollectionItem; +import edu.lnu.FireFly.Rte.SimpleElement; + +public class Learner_preferenceItem extends CollectionItem{ + public static String _children = "audio_level,language,delivery_speed,"; + + public Learner_preferenceItem(){ + elements.put("audio_level", new SimpleElement("real(10,7)range(0..*)", "rw", "0")); + elements.put("language", new SimpleElement("characterstring", "rw", "")); + elements.put("delivery_speed", new SimpleElement("real(10,7)range(0..*)", "rw", "1")); + + SimpleElement t = new SimpleElement("real(10,7)", "rw", "0"); + t.addFixedToken("off"); + t.addFixedToken("on"); + t.addFixedToken("no_change"); + t.addFixedToken("-1"); + t.addFixedToken("0"); + t.addFixedToken("1"); + // TODO -1 equals to off ... etc. Need realize !!! + elements.put("audio_captioning", t); + } +} Added: RTE/src/edu/lnu/FireFly/Rte/objectives/GlobalObjectives.java =================================================================== --- RTE/src/edu/lnu/FireFly/Rte/objectives/GlobalObjectives.java (rev 0) +++ RTE/src/edu/lnu/FireFly/Rte/objectives/GlobalObjectives.java 2008-05-23 14:26:18 UTC (rev 160) @@ -0,0 +1,41 @@ +package edu.lnu.FireFly.Rte.objectives; + +import java.util.*; +import edu.lnu.FireFly.Rte.ElementName; + +public class GlobalObjectives { + private static ArrayList<ObjectivesItem> list = new ArrayList<ObjectivesItem>(); + + public static boolean registered(String id){ + for (int i=0; i < list.size(); i++){ + ObjectivesItem item = (ObjectivesItem) list.get(i); + String globalId = item.getValue(new ElementName("globalId")); + if (globalId.equals(id)){ + return true; + } + } + + return false; + } + + public static void put(ObjectivesItem item){ + String id = item.getValue(new ElementName("id")); + + if (!registered(id)){ + item.setValue(new ElementName("globalId"), id.substring(0)); + list.add(item); + } + } + + public static ObjectivesItem get(String id){ + for (int i=0; i < list.size(); i++){ + ObjectivesItem item = (ObjectivesItem) list.get(i); + String globalId = item.getValue(new ElementName("globalId")); + if (globalId.equals(id)){ + return item; + } + } + + return null; + } +} Added: RTE/src/edu/lnu/FireFly/Rte/objectives/ObjectiveMap.java =================================================================== --- RTE/src/edu/lnu/FireFly/Rte/objectives/ObjectiveMap.java (rev 0) +++ RTE/src/edu/lnu/FireFly/Rte/objectives/ObjectiveMap.java 2008-05-23 14:26:18 UTC (rev 160) @@ -0,0 +1,16 @@ +package edu.lnu.FireFly.Rte.objectives; + +public class ObjectiveMap { + public String activityObjectiveID = ""; + public String targetObjectiveID = ""; + public boolean readObjectiveSatisfiedStatus = true; + public boolean writeObjectiveSatisfiedStatus = false; + public boolean readObjectiveNormalizedMeasure = true; + public boolean writeObjectiveNormalizedMeasure = false; + + public ObjectiveMap(String localId, String globalId){ + activityObjectiveID = localId; + targetObjectiveID = globalId; + } + +} Added: RTE/src/edu/lnu/FireFly/Rte/objectives/Objectives.java =================================================================== --- RTE/src/edu/lnu/FireFly/Rte/objectives/Objectives.java (rev 0) +++ RTE/src/edu/lnu/FireFly/Rte/objectives/Objectives.java 2008-05-23 14:26:18 UTC (rev 160) @@ -0,0 +1,102 @@ +package edu.lnu.FireFly.Rte.objectives; + +import java.util.ArrayList; + +import edu.lnu.FireFly.FFManifest.item.Item; +import edu.lnu.FireFly.FFManifest.item.sequencing.objectives.MapInfo; +import edu.lnu.FireFly.FFManifest.item.sequencing.objectives.Objective; +import edu.lnu.FireFly.Rte.Collection; +import edu.lnu.FireFly.Rte.ElementName; + +public class Objectives extends Collection { + public static ArrayList<ObjectiveMap> objectiveMap = new ArrayList<ObjectiveMap>(); + + public static void registerGlobalObjective(String id){ + if (!GlobalObjectives.registered(id)){ + ObjectivesItem item = new ObjectivesItem(); + item.setValue(new ElementName("id"), id); + GlobalObjectives.put(item); + } + } + + public Objectives(Item current, boolean indexed){ + super(indexed); + _children = ObjectivesItem._children; + String localId = ""; + + try{ + if (current.sequencing.objectives.primaryObjective.objectiveID.length() > 0){ + localId = current.sequencing.objectives.primaryObjective.objectiveID; + setValue(new ElementName("0.id"), localId); + + for (int i = 0; i < current.sequencing.objectives.primaryObjective.mapInfo.size(); i++){ + String globalId = ((MapInfo)current.sequencing.objectives.primaryObjective.mapInfo.get(i)).targetObjectiveID; + + registerGlobalObjective(globalId); + objectiveMap.add(new ObjectiveMap(localId, globalId)); + }; + + for (int i = 0; i < current.sequencing.objectives.objective.size(); i++){ + Objecti... [truncated message content] |