Index: lams_common/src/java/org/lamsfoundation/lams/learningdesign/service/ToolContentVersionFilter.java =================================================================== diff -u -r463716d6023591c9c35eeb5057a16c903289029e -red8c89caae86b884a60a084273aad96e6986de08 --- lams_common/src/java/org/lamsfoundation/lams/learningdesign/service/ToolContentVersionFilter.java (.../ToolContentVersionFilter.java) (revision 463716d6023591c9c35eeb5057a16c903289029e) +++ lams_common/src/java/org/lamsfoundation/lams/learningdesign/service/ToolContentVersionFilter.java (.../ToolContentVersionFilter.java) (revision ed8c89caae86b884a60a084273aad96e6986de08) @@ -48,22 +48,33 @@ // container class for removed class private class RemovedField { - private Class ownerClass; + private String ownerClass; private String fieldname; private RemovedField(Class ownerClass, String fieldname) { + this.ownerClass = ownerClass.getName(); + this.fieldname = fieldname; + } + + private RemovedField(String ownerClass, String fieldname) { this.ownerClass = ownerClass; this.fieldname = fieldname; } } // container class for added class private class AddedField { - private Class ownerClass; + private String ownerClass; private String fieldname; private String defaultValue; private AddedField(Class ownerClass, String fieldname, String defaultValue) { + this.ownerClass = ownerClass.getName(); + this.fieldname = fieldname; + this.defaultValue = defaultValue; + } + + private AddedField(String ownerClass, String fieldname, String defaultValue) { this.ownerClass = ownerClass; this.fieldname = fieldname; this.defaultValue = defaultValue; @@ -72,15 +83,21 @@ // container class for renamed class private class RenamedField { - private Class ownerClass; + private String ownerClass; private String oldFieldname; private String newFieldname; - private RenamedField(Class ownerClass2, String oldFieldname2, String newFieldname2) { - ownerClass = ownerClass2; - oldFieldname = oldFieldname2; - newFieldname = newFieldname2; + private RenamedField(Class ownerClass, String oldFieldname, String newFieldname) { + this.ownerClass = ownerClass.getName(); + this.oldFieldname = oldFieldname; + this.newFieldname = newFieldname; } + + private RenamedField(String ownerClass, String oldFieldname, String newFieldname) { + this.ownerClass = ownerClass; + this.oldFieldname = oldFieldname; + this.newFieldname = newFieldname; + } } /** @@ -94,6 +111,10 @@ removedFieldList.add(new RemovedField(ownerClass, fieldname)); } + public void removeField(String ownerClass, String fieldname) { + removedFieldList.add(new RemovedField(ownerClass, fieldname)); + } + /** * When a field is added to tool Hibernate POJO class, this method is optional in upXXXToYYY()/downXXXToYYY() * methods. It could set default value for this added fields. @@ -105,6 +126,10 @@ addedFieldList.add(new AddedField(ownerClass, fieldname, defaultValue)); } + public void addField(String ownerClass, String fieldname, String defaultValue) { + addedFieldList.add(new AddedField(ownerClass, fieldname, defaultValue)); + } + /** * When a field is renamed in tool Hibernate POJO class, this method must be call in upXXXToYYY()/downXXXToYYY() * methods. @@ -116,6 +141,10 @@ renamedFieldList.add(new RenamedField(ownerClass, oldFieldname, newFieldname)); } + public void renameField(String ownerClass, String oldFieldname, String newFieldname) { + renamedFieldList.add(new RenamedField(ownerClass, oldFieldname, newFieldname)); + } + /** * Call by lams import tool service core. Do not use it in tool version filter class. * @@ -141,37 +170,37 @@ private void retrieveXML(Element root) throws IOException { for (RemovedField remove : removedFieldList) { - if (StringUtils.equals(root.getNodeName(), remove.ownerClass.getName()) - || StringUtils.equals(root.getAttribute("class"), remove.ownerClass.getName())) { + if (StringUtils.equals(root.getNodeName(), remove.ownerClass) + || StringUtils.equals(root.getAttribute("class"), remove.ownerClass)) { Node node = root.getFirstChild(); while (node != null) { Node oldNode = node; node = node.getNextSibling(); if (oldNode.getNodeName().equals(remove.fieldname)) { root.removeChild(oldNode); - ToolContentVersionFilter.log.debug("Field " + remove.fieldname + " in class " - + remove.ownerClass.getName() + " was removed."); + ToolContentVersionFilter.log.debug( + "Field " + remove.fieldname + " in class " + remove.ownerClass + " was removed."); } } } } // add all new fields for this class for (AddedField added : addedFieldList) { - if (StringUtils.equals(root.getNodeName(), added.ownerClass.getName())) { + if (StringUtils.equals(root.getNodeName(), added.ownerClass)) { Element element = root.getOwnerDocument().createElement(added.fieldname); element.setTextContent(added.defaultValue); root.appendChild(element); - ToolContentVersionFilter.log.debug("Field " + added.fieldname + " in class " - + added.ownerClass.getName() + " was added by value " + added.defaultValue); + ToolContentVersionFilter.log.debug("Field " + added.fieldname + " in class " + added.ownerClass + + " was added by value " + added.defaultValue); } } // rename all marked fields for this class for (RenamedField renamed : renamedFieldList) { - if (StringUtils.equals(root.getNodeName(), renamed.ownerClass.getName())) { + if (StringUtils.equals(root.getNodeName(), renamed.ownerClass)) { Node node = root.getFirstChild(); while (node != null) { Node oldNode = node; @@ -188,7 +217,7 @@ } root.replaceChild(newElement, oldNode); ToolContentVersionFilter.log.debug("Field " + renamed.oldFieldname + " in class " - + renamed.ownerClass.getName() + " was renamed to " + renamed.newFieldname); + + renamed.ownerClass + " was renamed to " + renamed.newFieldname); } } }