Index: sakai-lamstwo/impl/logic/src/java/org/lamsfoundation/lams/integrations/sakai/logic/impl/LamstwoLogicImpl.java =================================================================== RCS file: /usr/local/cvsroot/sakai-lamstwo/impl/logic/src/java/org/lamsfoundation/lams/integrations/sakai/logic/impl/LamstwoLogicImpl.java,v diff -u -r1.2 -r1.3 --- sakai-lamstwo/impl/logic/src/java/org/lamsfoundation/lams/integrations/sakai/logic/impl/LamstwoLogicImpl.java 9 May 2007 03:35:26 -0000 1.2 +++ sakai-lamstwo/impl/logic/src/java/org/lamsfoundation/lams/integrations/sakai/logic/impl/LamstwoLogicImpl.java 19 Sep 2007 02:02:34 -0000 1.3 @@ -37,6 +37,7 @@ import org.lamsfoundation.lams.webservice.LessonManager; import org.lamsfoundation.lams.webservice.LessonManagerService; import org.lamsfoundation.lams.webservice.LessonManagerServiceLocator; +import org.lamsfoundation.ld.integration.Constants; import org.sakaiproject.authz.api.AuthzGroup; import org.sakaiproject.authz.api.AuthzGroupService; import org.sakaiproject.authz.api.AuthzPermissionException; @@ -351,7 +352,7 @@ String learningDesigns = "[]"; // empty javascript array try { - String serviceURL = serverAddress + "/services/xml/LearningDesignRepository?" + String serviceURL = serverAddress + "/services/xml/timestamp?" + "datetime=" + datetime + "&username=" + URLEncoder.encode(username, "utf8") + "&serverId=" + URLEncoder.encode(serverID, "utf8") @@ -646,17 +647,23 @@ - private String convertToTigraFormat(Node node) { + /** + * + * @param node the node from which to do the recursive conversion + * @return the string converted to tigra format + */ + public static String convertToTigraFormat(Node node) { StringBuilder sb = new StringBuilder(); - if (node.getNodeName().equals(LamstwoConstants.ELEM_FOLDER)) { + if (node.getNodeName().equals(Constants.ELEM_FOLDER)) { sb.append("['"); - sb.append( - node.getAttributes().getNamedItem( - LamstwoConstants.ATTR_NAME).getNodeValue()).append( - "',").append("null").append(','); - + + StringBuilder attribute= new StringBuilder(node.getAttributes().getNamedItem( + Constants.ATTR_NAME).getNodeValue().replace("'", "\\'")); + + sb.append(attribute.append("',").append("null").append(',')); + NodeList children = node.getChildNodes(); if (children.getLength() == 0) { sb.append("['',null]"); @@ -669,15 +676,21 @@ } sb.append(']'); } else if (node.getNodeName().equals( - LamstwoConstants.ELEM_LEARNING_DESIGN)) { + Constants.ELEM_LEARNING_DESIGN)) { sb.append('['); - sb.append('\'').append( - node.getAttributes().getNamedItem( - LamstwoConstants.ATTR_NAME).getNodeValue()).append( - '\'').append(',').append('\'').append( - node.getAttributes().getNamedItem( - LamstwoConstants.ATTR_RESOURCE_ID).getNodeValue()) - .append('\''); + + StringBuilder attrName = new StringBuilder(node.getAttributes().getNamedItem( + Constants.ATTR_NAME).getNodeValue().replace("'", "\\'")); + StringBuilder attrResId = new StringBuilder(node.getAttributes().getNamedItem( + Constants.ATTR_RESOURCE_ID).getNodeValue().replace("'", "\\'")); + + sb.append('\'') + .append(attrName + .append('\'') + .append(',') + .append('\'') + .append(attrResId.append('\''))); + sb.append(']'); } return sb.toString();