Index: lams_central/src/java/org/lamsfoundation/lams/authoring/ObjectExtractor.java =================================================================== diff -u -r9bef1de27d0d527d75191115a535bc2c4311ade9 -r56d3e2b01ea43c10d95f83427a82094c724b578c --- lams_central/src/java/org/lamsfoundation/lams/authoring/ObjectExtractor.java (.../ObjectExtractor.java) (revision 9bef1de27d0d527d75191115a535bc2c4311ade9) +++ lams_central/src/java/org/lamsfoundation/lams/authoring/ObjectExtractor.java (.../ObjectExtractor.java) (revision 56d3e2b01ea43c10d95f83427a82094c724b578c) @@ -63,6 +63,7 @@ import org.lamsfoundation.lams.usermanagement.WorkspaceFolder; import org.lamsfoundation.lams.usermanagement.dao.hibernate.UserDAO; import org.lamsfoundation.lams.usermanagement.dao.hibernate.WorkspaceFolderDAO; +import org.lamsfoundation.lams.util.wddx.WDDXProcessorConversionException; import org.lamsfoundation.lams.util.wddx.WDDXTAGS; /** @@ -131,7 +132,7 @@ calculateFirstActivity(learningDesignDTO.getFirstActivityUIID(),learningDesign); return learningDesign; } - private void parseActivities(LearningDesignDTO learningDesignDTO, LearningDesign learningDesign){ + private void parseActivities(LearningDesignDTO learningDesignDTO, LearningDesign learningDesign) throws WDDXProcessorConversionException{ HashSet set = new HashSet(); if(learningDesignDTO.getActivities()!=null){ ArrayList table = learningDesignDTO.getActivities(); @@ -147,7 +148,7 @@ learningDesign.setActivities(set); learningDesignDAO.update(learningDesign); } - private void parseTransitions(LearningDesignDTO learningDesignDTO, LearningDesign learningDesign){ + private void parseTransitions(LearningDesignDTO learningDesignDTO, LearningDesign learningDesign) throws WDDXProcessorConversionException{ HashSet set = new HashSet(); if(learningDesignDTO.getTransitions()!=null){ ArrayList table = learningDesignDTO.getTransitions(); @@ -319,12 +320,12 @@ Transition transition = new Transition(); transition.setTransitionUIID(transitionDTO.getTransitionUIID()); if(transitionDTO.getToUIID()!=null){ - Activity toActivity = activityDAO.getActivityByUIID(transitionDTO.getToUIID(),learningDesign); + Activity toActivity = activityDAO.getActivityByUIID(transitionDTO.getToUIID(), learningDesign); transition.setToActivity(toActivity); transition.setToUIID(transitionDTO.getToUIID()); } if(transitionDTO.getFromUIID()!=null){ - Activity fromActivity = activityDAO.getActivityByUIID(transitionDTO.getFromUIID(),learningDesign); + Activity fromActivity = activityDAO.getActivityByUIID(transitionDTO.getFromUIID(), learningDesign); transition.setFromActivity(fromActivity); transition.setFromUIID(transitionDTO.getFromUIID()); } Index: lams_common/src/java/org/lamsfoundation/lams/learningdesign/dto/AuthoringActivityDTO.java =================================================================== diff -u -rb0e60dcaf9e70b994ba004f4ce83feda7923ad39 -r56d3e2b01ea43c10d95f83427a82094c724b578c --- lams_common/src/java/org/lamsfoundation/lams/learningdesign/dto/AuthoringActivityDTO.java (.../AuthoringActivityDTO.java) (revision b0e60dcaf9e70b994ba004f4ce83feda7923ad39) +++ lams_common/src/java/org/lamsfoundation/lams/learningdesign/dto/AuthoringActivityDTO.java (.../AuthoringActivityDTO.java) (revision 56d3e2b01ea43c10d95f83427a82094c724b578c) @@ -36,6 +36,7 @@ import org.lamsfoundation.lams.learningdesign.SequenceActivity; import org.lamsfoundation.lams.learningdesign.SynchGateActivity; import org.lamsfoundation.lams.learningdesign.ToolActivity; +import org.lamsfoundation.lams.util.wddx.WDDXProcessorConversionException; import org.lamsfoundation.lams.util.wddx.WDDXTAGS; /** * @author Manpreet Minhas @@ -261,88 +262,54 @@ this.applyGrouping = activity.getApplyGrouping(); this.groupingSupportType = activity.getGroupingSupportType(); } - public AuthoringActivityDTO(Hashtable activityDetails){ - if(activityDetails.containsKey("activityUIID")) - this.activityUIID =convertToInteger(activityDetails.get("activityUIID")); - if(activityDetails.containsKey("description")) - this.description =(String)activityDetails.get("description"); - if(activityDetails.containsKey("title")) - this.title = (String)activityDetails.get("title"); - if(activityDetails.containsKey("helpText")) - this.helpText =(String)activityDetails.get("helpText"); - if(activityDetails.containsKey("xcoord")) - this.xcoord = convertToInteger(activityDetails.get("xcoord")); - if(activityDetails.containsKey("ycoord")) - this.ycoord = convertToInteger(activityDetails.get("ycoord")); + + + public AuthoringActivityDTO(Hashtable activityDetails) throws WDDXProcessorConversionException{ + this.activityUIID = convertToInteger(activityDetails,"activityUIID"); + this.description = convertToString(activityDetails,"description"); + this.title = convertToString(activityDetails,"title"); + this.helpText = convertToString(activityDetails,"helpText"); + this.xcoord = convertToInteger(activityDetails, "xcoord"); + this.ycoord = convertToInteger(activityDetails, "ycoord"); + + this.parentActivityID = convertToLong(activityDetails, "parentActivityID"); + this.parentUIID = convertToInteger(activityDetails, "parentUIID"); + + this.activityTypeID = convertToInteger(activityDetails, "activityTypeID"); + this.groupingID = convertToLong(activityDetails,"groupingID"); + this.groupingUIID = convertToInteger(activityDetails,"groupingUIID"); + this.orderID = convertToInteger(activityDetails,"orderID"); + this.defineLater = convertToBoolean(activityDetails,"defineLater"); + this.learningDesignID = convertToLong(activityDetails,"learningDesignID"); + this.learningLibraryID = convertToLong(activityDetails,"learningLibraryID"); + this.createDateTime = convertToDate(activityDetails,"createDateTime"); + this.runOffline = convertToBoolean(activityDetails,"runOffline"); + this.maxOptions = convertToInteger(activityDetails,"maxOptions"); + this.minOptions = convertToInteger(activityDetails,"minOptions"); + this.optionsInstructions = convertToString(activityDetails,"optionsInstructions"); + this.toolID = convertToLong(activityDetails,"toolID"); + this.toolContentID = convertToLong(activityDetails,"toolContentID"); + this. activityCategoryID = convertToInteger(activityDetails,"activityCategoryID"); + + this.gateActivityLevelID = convertToInteger(activityDetails,"gateActivityLevelID"); + this.gateOpen = convertToBoolean(activityDetails,"gateOpen"); + this.gateEndTimeOffset = convertToLong(activityDetails,"gateEndTimeOffset"); + this.gateStartTimeOffset = convertToLong(activityDetails,"gateStartTimeOffset"); + this.gateEndDateTime = convertToDate(activityDetails,"gateEndDateTime"); + this.gateStartDateTime = convertToDate(activityDetails,"gateStartDateTime"); - if(activityDetails.containsKey("parentActivityID")) - this.parentActivityID = convertToLong(activityDetails.get("parentActivityID")); - - if(activityDetails.containsKey("parentUIID")) - this.parentUIID =convertToInteger(activityDetails.get("parentUIID")); - - if(activityDetails.containsKey("activityTypeID")) - this.activityTypeID = convertToInteger(activityDetails.get("activityTypeID")); - if(activityDetails.containsKey("groupingID")) - this.groupingID = convertToLong(activityDetails.get("groupingID")); - if(activityDetails.containsKey("groupingUIID")) - this.groupingUIID = convertToInteger(activityDetails.get("groupingUIID")); - if(activityDetails.containsKey("orderID")) - this.orderID = convertToInteger(activityDetails.get("orderID")); - if(activityDetails.containsKey("defineLater")) - this.defineLater = (Boolean) activityDetails.get("defineLater"); - if(activityDetails.containsKey("learningDesignID")) - this.learningDesignID = convertToLong(activityDetails.get("learningDesignID")); - if(activityDetails.containsKey("learningLibraryID")) - this.learningLibraryID = convertToLong(activityDetails.get("learningLibraryID")); - if(activityDetails.containsKey("createDateTime")) - this.createDateTime = (Date)activityDetails.get("createDateTime"); - if(activityDetails.containsKey("runOffline")) - this.runOffline = (Boolean) activityDetails.get("runOffline"); - if(activityDetails.containsKey("maxOptions")) - this.maxOptions = convertToInteger(activityDetails.get("maxOptions")); - if(activityDetails.containsKey("minOptions")) - this.minOptions = convertToInteger(activityDetails.get("minOptions")); - if(activityDetails.containsKey("optionsInstructions")) - this.optionsInstructions =(String)activityDetails.get("optionsInstructions"); - if(activityDetails.containsKey("toolID")) - this.toolID =convertToLong(activityDetails.get("toolID")); - if(activityDetails.containsKey("toolContentID")) - this.toolContentID = convertToLong(activityDetails.get("toolContentID")); - if(activityDetails.containsKey("activityCategoryID")) - this. activityCategoryID = convertToInteger(activityDetails.get("activityCategoryID")); - - if(activityDetails.containsKey("gateActivityLevelID")) - this.gateActivityLevelID = convertToInteger(activityDetails.get("gateActivityLevelID")); - if(activityDetails.containsKey("gateOpen")) - this.gateOpen = (Boolean)activityDetails.get("gateOpen"); - if(activityDetails.containsKey("gateEndTimeOffset")) - this.gateEndTimeOffset = convertToLong(activityDetails.get("gateEndTimeOffset")); - if(activityDetails.containsKey("gateStartTimeOffset")) - this.gateStartTimeOffset = convertToLong(activityDetails.get("gateStartTimeOffset")); - if(activityDetails.containsKey("gateEndDateTime")) - this.gateEndDateTime = (Date)activityDetails.get("gateEndDateTime"); - if(activityDetails.containsKey("gateStartDateTime")) - this.gateStartDateTime = (Date)activityDetails.get("gateStartDateTime"); - - if(activityDetails.containsKey("libraryActivityUiImage")) - this.libraryActivityUiImage=(String)activityDetails.get("libraryActivityUiImage"); - if(activityDetails.containsKey("createGroupingID")) - this.createGroupingID= convertToLong(activityDetails.get("createGroupingID")); - if(activityDetails.containsKey("createGroupingUIID")) - this.createGroupingUIID=convertToInteger(activityDetails.get("createGroupingUIID")); - if(activityDetails.containsKey("libraryActivityID")) - this.libraryActivityID=convertToLong(activityDetails.get("libraryActivityID")); - if(activityDetails.containsKey("applyGrouping")) - this.applyGrouping=(Boolean)activityDetails.get("applyGrouping"); - if(activityDetails.containsKey("groupingSupportType")) - this.groupingSupportType=convertToInteger(activityDetails.get("groupingSupportType")); - if(activityDetails.containsKey("groupingType")) - this.groupingType=convertToInteger(activityDetails.get("groupingType")); + this.libraryActivityUiImage=convertToString(activityDetails,"libraryActivityUiImage"); + this.createGroupingID= convertToLong(activityDetails,"createGroupingID"); + this.createGroupingUIID=convertToInteger(activityDetails,"createGroupingUIID"); + this.libraryActivityID=convertToLong(activityDetails,"libraryActivityID"); + this.applyGrouping=convertToBoolean(activityDetails,"applyGrouping"); + this.groupingSupportType=convertToInteger(activityDetails,"groupingSupportType"); + this.groupingType=convertToInteger(activityDetails,"groupingType"); if(activityDetails.containsKey("groupingDTO")){ Hashtable groupingDetails = (Hashtable) activityDetails.get("groupingDTO"); this.groupingDTO = new GroupingDTO(groupingDetails); } + } private void processActivityType(Object activity){ if(activity instanceof GroupingActivity) Index: lams_common/src/java/org/lamsfoundation/lams/learningdesign/dto/BaseDTO.java =================================================================== diff -u -rb0e60dcaf9e70b994ba004f4ce83feda7923ad39 -r56d3e2b01ea43c10d95f83427a82094c724b578c --- lams_common/src/java/org/lamsfoundation/lams/learningdesign/dto/BaseDTO.java (.../BaseDTO.java) (revision b0e60dcaf9e70b994ba004f4ce83feda7923ad39) +++ lams_common/src/java/org/lamsfoundation/lams/learningdesign/dto/BaseDTO.java (.../BaseDTO.java) (revision 56d3e2b01ea43c10d95f83427a82094c724b578c) @@ -22,60 +22,114 @@ */ package org.lamsfoundation.lams.learningdesign.dto; -import org.lamsfoundation.lams.util.wddx.WDDXTAGS; +import java.util.Date; +import java.util.Hashtable; +import org.lamsfoundation.lams.util.wddx.WDDXProcessor; +import org.lamsfoundation.lams.util.wddx.WDDXProcessorConversionException; + + /** - * @author Manpreet Minhas + * @author Manpreet Minhas, Fiona Malikoff * * This class acts as base class for all authoring DTO's. + * It will contain any helper methods for DTOs. * - * FLASH returns Long and Integer values as Double. - * - * For example, a value of 10 would returned as 10.0 - * - * This class contains utility methods for converting this - * Double value into the required data types. - * - * All Integer and Long null values are represented as - * -111111.0 in flash, which are indicated by - * WDDXTAGS.NUMERIC_NULL_VALUE_INTEGER and - * WDDXTAGS.NUMERIC_NULL_VALUE_LONG - * attributes defined in the WDDXTAGS interface. - * So if the object being converted is equivalent to this - * value it returns null rather than returning -111111. - * */ public class BaseDTO { - /** - * This method converts the passed - * Object into an Integer - * - * @param ob The object to be converted - * @return Integer The required value - */ - public Integer convertToInteger(Object ob){ - if ( ob != null ) { - Double doub = (Double)ob; - Integer integer = new Integer(doub.intValue()); - if(!integer.equals(WDDXTAGS.NUMERIC_NULL_VALUE_INTEGER)) - return integer; - } - return null; + + /** Get an Integer from a hashtable, based on the given key. + * If the key doesn't exist, return null. + * Uses WDDXProcessor.getInteger(), which handles string inputs + * and Flash null values. + * @param table Hashtable containing values from Flash. Must not be null + * or NullPointerException will be thrown. + * @param key Key of entry in table. Must not be null + * or NullPointerException will be thrown. + * @return Integer value of entry in table, or null. + * @throws WDDXProcessorConversionException if the value cannot be converted. + * @author Fiona Malikoff + */ + protected Integer convertToInteger(Hashtable table, String key) + throws WDDXProcessorConversionException { + if(table.containsKey(key)) { + return WDDXProcessor.convertToInteger(key, table.get(key)); + } + return null; } - /** - * This method converts the passed - * Object into Long - * - * @param ob The object to be converted - * @return Long The required value - */ - public Long convertToLong(Object ob){ - if ( ob != null ) { - Double doub = (Double)ob; - Long longValue = new Long(doub.longValue()); - if(!longValue.equals(WDDXTAGS.NUMERIC_NULL_VALUE_LONG)) - return longValue; - } + + /** Get an Long from a hashtable, based on the given key. + * If the key doesn't exist, return null. + * Uses WDDXProcessor.getLong(), which handles string inputs + * and Flash null values. + * @param table Hashtable containing values from Flash. Must not be null + * or NullPointerException will be thrown. + * @param key Key of entry in table. Must not be null + * or NullPointerException will be thrown. + * @return Integer value of entry in table, or null. + * @throws WDDXProcessorConversionException if the value cannot be converted. + * @author Fiona Malikoff + */ + protected Long convertToLong(Hashtable table, String key) + throws WDDXProcessorConversionException { + if(table.containsKey(key)) { + return WDDXProcessor.convertToLong(key, table.get(key)); + } return null; } + + /** Get an String from a hashtable, based on the given key. + * If the key doesn't exist, return null. + * @param table Hashtable containing values from Flash. Must not be null + * or NullPointerException will be thrown. + * @param key Key of entry in table. Must not be null + * or NullPointerException will be thrown. + * @return Integer value of entry in table, or null. + * @throws WDDXProcessorConversionException if the value cannot be converted. + * @author Fiona Malikoff + */ + protected String convertToString(Hashtable table, String key) + throws WDDXProcessorConversionException { + if(table.containsKey(key)) { + return WDDXProcessor.convertToString(key, table.get(key)); + } + return null; + } + + /** Get an Boolean from a hashtable, based on the given key. + * If the key doesn't exist, return null. + * @param table Hashtable containing values from Flash. Must not be null + * or NullPointerException will be thrown. + * @param key Key of entry in table. Must not be null + * or NullPointerException will be thrown. + * @return Integer value of entry in table, or null. + * @throws WDDXProcessorConversionException if the value cannot be converted. + * @author Fiona Malikoff + */ + protected Boolean convertToBoolean(Hashtable table, String key) + throws WDDXProcessorConversionException { + if(table.containsKey(key)) { + return WDDXProcessor.convertToBoolean(key, table.get(key)); + } + return null; + } + + /** Get an Date from a hashtable, based on the given key. + * If the key doesn't exist, return null. + * @param table Hashtable containing values from Flash. Must not be null + * or NullPointerException will be thrown. + * @param key Key of entry in table. Must not be null + * or NullPointerException will be thrown. + * @return Integer value of entry in table, or null. + * @throws WDDXProcessorConversionException if the value cannot be converted. + * @author Fiona Malikoff + */ + protected Date convertToDate(Hashtable table, String key) + throws WDDXProcessorConversionException { + if(table.containsKey(key)) { + return WDDXProcessor.convertToDate(key, table.get(key)); + } + return null; + } + } Index: lams_common/src/java/org/lamsfoundation/lams/learningdesign/dto/GroupingDTO.java =================================================================== diff -u -r8e98619391a7b227ca6d7f16b884e219149e4a23 -r56d3e2b01ea43c10d95f83427a82094c724b578c --- lams_common/src/java/org/lamsfoundation/lams/learningdesign/dto/GroupingDTO.java (.../GroupingDTO.java) (revision 8e98619391a7b227ca6d7f16b884e219149e4a23) +++ lams_common/src/java/org/lamsfoundation/lams/learningdesign/dto/GroupingDTO.java (.../GroupingDTO.java) (revision 56d3e2b01ea43c10d95f83427a82094c724b578c) @@ -28,6 +28,7 @@ import org.lamsfoundation.lams.learningdesign.Grouping; import org.lamsfoundation.lams.learningdesign.RandomGrouping; import org.lamsfoundation.lams.lesson.LessonClass; +import org.lamsfoundation.lams.util.wddx.WDDXProcessorConversionException; import org.lamsfoundation.lams.util.wddx.WDDXTAGS; /** @@ -65,22 +66,14 @@ Object object = Grouping.getGroupingInstance(groupingType); processGroupingActivity(object); } - public GroupingDTO(Hashtable groupingDetails){ - if(groupingDetails.containsKey("groupingID")) - this.groupingID =convertToLong(groupingDetails.get("groupingID")); - if(groupingDetails.containsKey("groupingUIID")) - this.groupingUIID =convertToInteger(groupingDetails.get("groupingUIID")); - if(groupingDetails.containsKey("maxNumberOfGroups")) - this.maxNumberOfGroups =convertToInteger(groupingDetails.get("maxNumberOfGroups")); - if(groupingDetails.containsKey("groupingType")) - this.groupingType =convertToInteger(groupingDetails.get("groupingType")); - if(groupingDetails.containsKey("staffGroupID")) - this.staffGroupID =convertToLong(groupingDetails.get("staffGroupID")); - if(groupingDetails.containsKey("numberOfGroups")) - this.numberOfGroups =convertToInteger(groupingDetails.get("numberOfGroups")); - if(groupingDetails.containsKey("learnersPerGroup")) - this.learnersPerGroup =convertToInteger(groupingDetails.get("learnersPerGroup")); - + public GroupingDTO(Hashtable groupingDetails) throws WDDXProcessorConversionException{ + this.groupingID =convertToLong(groupingDetails,"groupingID"); + this.groupingUIID =convertToInteger(groupingDetails,"groupingUIID"); + this.maxNumberOfGroups =convertToInteger(groupingDetails,"maxNumberOfGroups"); + this.groupingType =convertToInteger(groupingDetails,"groupingType"); + this.staffGroupID =convertToLong(groupingDetails,"staffGroupID"); + this.numberOfGroups =convertToInteger(groupingDetails,"numberOfGroups"); + this.learnersPerGroup =convertToInteger(groupingDetails,"learnersPerGroup"); } public void processGroupingActivity(Object object){ if(object instanceof RandomGrouping) Index: lams_common/src/java/org/lamsfoundation/lams/learningdesign/dto/LearningDesignDTO.java =================================================================== diff -u -rb0e60dcaf9e70b994ba004f4ce83feda7923ad39 -r56d3e2b01ea43c10d95f83427a82094c724b578c --- lams_common/src/java/org/lamsfoundation/lams/learningdesign/dto/LearningDesignDTO.java (.../LearningDesignDTO.java) (revision b0e60dcaf9e70b994ba004f4ce83feda7923ad39) +++ lams_common/src/java/org/lamsfoundation/lams/learningdesign/dto/LearningDesignDTO.java (.../LearningDesignDTO.java) (revision 56d3e2b01ea43c10d95f83427a82094c724b578c) @@ -33,6 +33,7 @@ import org.lamsfoundation.lams.learningdesign.ComplexActivity; import org.lamsfoundation.lams.learningdesign.LearningDesign; import org.lamsfoundation.lams.learningdesign.Transition; +import org.lamsfoundation.lams.util.wddx.WDDXProcessorConversionException; import org.lamsfoundation.lams.util.wddx.WDDXTAGS; /** @@ -187,29 +188,29 @@ this.activities = populateActivities(learningDesign); this.transitions = populateTransitions(learningDesign); } - public LearningDesignDTO(Hashtable table){ + public LearningDesignDTO(Hashtable table) throws WDDXProcessorConversionException{ - this.learningDesignUIID = convertToInteger(table.get("learningDesignUIID")); - this.description = (String)table.get("description"); - this.title = (String)table.get("title"); - this.firstActivityUIID = convertToInteger(table.get("firstActivityUIID")); - this.maxID = convertToInteger(table.get("maxID")); - this.validDesign = (Boolean)table.get("validDesign"); - this.readOnly = (Boolean)table.get("readOnly");; - this.dateReadOnly = (Date)table.get("dateReadOnly"); - this.offlineInstructions= (String) table.get("offlineInstructions"); - this.onlineInstructions =(String) table.get("onlineInstructions"); - this.userID = convertToInteger(table.get("userID")); - this.helpText = (String)table.get("helpText"); - this.copyTypeID = convertToInteger(table.get("copyTypeID")); - this.createDateTime = (Date)table.get("createDateTime"); - this.version = (String)table.get("version"); - this.parentLearningDesignID = convertToLong(table.get("parentLearningDesignID")); - this.workspaceFolderID =convertToInteger(table.get("workspaceFolderID")); - this.duration = convertToLong(table.get("duration")); - this.licenseID =convertToLong(table.get("licenseID")); - this.licenseText = (String)table.get("licenseText"); - this.lastModifiedDateTime =(Date)table.get("lastModifiedDateTime"); + this.learningDesignUIID = convertToInteger(table,"learningDesignUIID"); + this.description = convertToString(table,"description"); + this.title = convertToString(table,"title"); + this.firstActivityUIID = convertToInteger(table,"firstActivityUIID"); + this.maxID = convertToInteger(table,"maxID"); + this.validDesign = convertToBoolean(table,"validDesign"); + this.readOnly = convertToBoolean(table,"readOnly");; + this.dateReadOnly = convertToDate(table,"dateReadOnly"); + this.offlineInstructions= convertToString(table,"offlineInstructions"); + this.onlineInstructions =convertToString(table,"onlineInstructions"); + this.userID = convertToInteger(table,"userID"); + this.helpText = convertToString(table,"helpText"); + this.copyTypeID = convertToInteger(table,"copyTypeID"); + this.createDateTime = convertToDate(table,"createDateTime"); + this.version = convertToString(table,"version"); + this.parentLearningDesignID = convertToLong(table,"parentLearningDesignID"); + this.workspaceFolderID = convertToInteger(table,"workspaceFolderID"); + this.duration = convertToLong(table,"duration"); + this.licenseID =convertToLong(table,"licenseID"); + this.licenseText = convertToString(table,"licenseText"); + this.lastModifiedDateTime =convertToDate(table,"lastModifiedDateTime"); Vector activityDetails = (Vector)table.get("activities"); this.activities = new ArrayList(); Index: lams_common/src/java/org/lamsfoundation/lams/learningdesign/dto/TransitionDTO.java =================================================================== diff -u -r8e98619391a7b227ca6d7f16b884e219149e4a23 -r56d3e2b01ea43c10d95f83427a82094c724b578c --- lams_common/src/java/org/lamsfoundation/lams/learningdesign/dto/TransitionDTO.java (.../TransitionDTO.java) (revision 8e98619391a7b227ca6d7f16b884e219149e4a23) +++ lams_common/src/java/org/lamsfoundation/lams/learningdesign/dto/TransitionDTO.java (.../TransitionDTO.java) (revision 56d3e2b01ea43c10d95f83427a82094c724b578c) @@ -26,6 +26,7 @@ import java.util.Hashtable; import org.lamsfoundation.lams.learningdesign.Transition; +import org.lamsfoundation.lams.util.wddx.WDDXProcessorConversionException; import org.lamsfoundation.lams.util.wddx.WDDXTAGS; @@ -76,27 +77,17 @@ this.fromActivityID = transition.getFromActivity().getActivityId(); this.learningDesignID = transition.getLearningDesign().getLearningDesignId(); } - public TransitionDTO(Hashtable transitionDetails){ - if(transitionDetails.containsKey("transitionID")) - transitionID= convertToLong(transitionDetails.get("transitionID")); - if(transitionDetails.containsKey("transitionUIID")) - transitionUIID=convertToInteger(transitionDetails.get("transitionUIID")); - if(transitionDetails.containsKey("toUIID")) - toUIID=convertToInteger(transitionDetails.get("toUIID")); - if(transitionDetails.containsKey("fromUIID")) - fromUIID=convertToInteger(transitionDetails.get("fromUIID")); - if(transitionDetails.containsKey("description")) - description=(String)transitionDetails.get("description"); - if(transitionDetails.containsKey("title")) - title=(String)transitionDetails.get("title"); - if(transitionDetails.containsKey("createDateTime")) - createDateTime=(Date)transitionDetails.get("createDateTime"); - if(transitionDetails.containsKey("toActivityID")) - toActivityID=convertToLong(transitionDetails.get("toActivityID")); - if(transitionDetails.containsKey("fromActivityID")) - fromActivityID=convertToLong(transitionDetails.get("fromActivityID")); - if(transitionDetails.containsKey("learningDesignID")) - learningDesignID=convertToLong(transitionDetails.get("learningDesignID")); + public TransitionDTO(Hashtable transitionDetails) throws WDDXProcessorConversionException{ + transitionID= convertToLong(transitionDetails,"transitionID"); + transitionUIID=convertToInteger(transitionDetails,"transitionUIID"); + toUIID=convertToInteger(transitionDetails,"toUIID"); + fromUIID=convertToInteger(transitionDetails,"fromUIID"); + description=convertToString(transitionDetails,"description"); + title=convertToString(transitionDetails,"title"); + createDateTime=convertToDate(transitionDetails,"createDateTime"); + toActivityID=convertToLong(transitionDetails,"toActivityID"); + fromActivityID=convertToLong(transitionDetails,"fromActivityID"); + learningDesignID=convertToLong(transitionDetails,"learningDesignID"); } /** * @return Returns the createDateTime. Index: lams_common/src/java/org/lamsfoundation/lams/themes/dto/CSSStyleDTO.java =================================================================== diff -u -rb0e60dcaf9e70b994ba004f4ce83feda7923ad39 -r56d3e2b01ea43c10d95f83427a82094c724b578c --- lams_common/src/java/org/lamsfoundation/lams/themes/dto/CSSStyleDTO.java (.../CSSStyleDTO.java) (revision b0e60dcaf9e70b994ba004f4ce83feda7923ad39) +++ lams_common/src/java/org/lamsfoundation/lams/themes/dto/CSSStyleDTO.java (.../CSSStyleDTO.java) (revision 56d3e2b01ea43c10d95f83427a82094c724b578c) @@ -29,6 +29,7 @@ import org.apache.log4j.Logger; import org.lamsfoundation.lams.themes.CSSProperty; import org.lamsfoundation.lams.themes.CSSStyle; +import org.lamsfoundation.lams.util.wddx.WDDXProcessor; /** * Models the Theme structure that is used to communicate with Flash. @@ -50,7 +51,15 @@ * @param styleHashtable */ public CSSStyleDTO(Hashtable styleHashtable) { - super(styleHashtable); + // copy all the entries from the input table to the new table. + // don't copy any null entries. + Iterator iter = styleHashtable.entrySet().iterator(); + while ( iter.hasNext() ) { + Map.Entry entry = (Map.Entry) iter.next(); + if ( ! WDDXProcessor.isNull(entry.getValue())) { + this.put(entry.getKey(), entry.getValue()); + } + } } /** Index: lams_common/src/java/org/lamsfoundation/lams/themes/dto/CSSThemeDTO.java =================================================================== diff -u -rb0e60dcaf9e70b994ba004f4ce83feda7923ad39 -r56d3e2b01ea43c10d95f83427a82094c724b578c --- lams_common/src/java/org/lamsfoundation/lams/themes/dto/CSSThemeDTO.java (.../CSSThemeDTO.java) (revision b0e60dcaf9e70b994ba004f4ce83feda7923ad39) +++ lams_common/src/java/org/lamsfoundation/lams/themes/dto/CSSThemeDTO.java (.../CSSThemeDTO.java) (revision 56d3e2b01ea43c10d95f83427a82094c724b578c) @@ -30,6 +30,7 @@ import org.apache.log4j.Logger; import org.lamsfoundation.lams.learningdesign.dto.BaseDTO; import org.lamsfoundation.lams.themes.CSSThemeVisualElement; +import org.lamsfoundation.lams.util.wddx.WDDXProcessorConversionException; /** * Models the Theme structure that is used to communicate with Flash. @@ -63,12 +64,13 @@ /** * Create the DTO using the data from Flash + * @throws WDDXProcessorConversionException */ - public CSSThemeDTO(Hashtable wddxData) { + public CSSThemeDTO(Hashtable wddxData) throws WDDXProcessorConversionException { if ( wddxData != null ) { - this.id = convertToLong(wddxData.get(ID_TAG)); - this.name = (String) wddxData.get(NAME_TAG); - this.description = (String) wddxData.get(DESCRIPTION_TAG); + this.id = convertToLong(wddxData,ID_TAG); + this.name = convertToString(wddxData,NAME_TAG); + this.description = convertToString(wddxData,DESCRIPTION_TAG); Hashtable so = (Hashtable) wddxData.get(BASE_STYLE_OBJECT_TAG); if ( so != null ) { baseStyleObject = new CSSStyleDTO(so); Index: lams_common/src/java/org/lamsfoundation/lams/themes/dto/CSSVisualElementDTO.java =================================================================== diff -u -rb0e60dcaf9e70b994ba004f4ce83feda7923ad39 -r56d3e2b01ea43c10d95f83427a82094c724b578c --- lams_common/src/java/org/lamsfoundation/lams/themes/dto/CSSVisualElementDTO.java (.../CSSVisualElementDTO.java) (revision b0e60dcaf9e70b994ba004f4ce83feda7923ad39) +++ lams_common/src/java/org/lamsfoundation/lams/themes/dto/CSSVisualElementDTO.java (.../CSSVisualElementDTO.java) (revision 56d3e2b01ea43c10d95f83427a82094c724b578c) @@ -28,6 +28,7 @@ import org.lamsfoundation.lams.learningdesign.dto.BaseDTO; import org.lamsfoundation.lams.themes.CSSStyle; import org.lamsfoundation.lams.themes.CSSThemeVisualElement; +import org.lamsfoundation.lams.util.wddx.WDDXProcessorConversionException; /** * Models the Theme structure that is used to communicate with Flash. @@ -52,10 +53,11 @@ /** * Create the DTO using the data from Flash + * @throws WDDXProcessorConversionException */ - public CSSVisualElementDTO(Hashtable wddxData) { + public CSSVisualElementDTO(Hashtable wddxData) throws WDDXProcessorConversionException { if ( wddxData != null ) { - this.name = (String) wddxData.get(CSSThemeDTO.NAME_TAG); + this.name = convertToString(wddxData,CSSThemeDTO.NAME_TAG); Hashtable so = (Hashtable) wddxData.get(CSSThemeDTO.STYLE_OBJECT_TAG); if ( so != null ) { styleObject = new CSSStyleDTO(so);