|
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] |