/**
*
*/
package org.hivedb.versioning;
import java.util.List;
import java.util.Map;
import org.hivedb.util.functional.Pair;
import org.hivedb.util.functional.Transform;
public class NewFooXmlModernizationPaver extends XmlModernizationPaverImpl<NewFoo> {
public static final Integer NEW_FOO_XML_VERSION = 100;
public NewFooXmlModernizationPaver(Integer blobVersion)
{
super(blobVersion, getModernizerMap());
}
private static Map<Integer,Modernizer<NewFoo>> modernizerMap;
@SuppressWarnings("unchecked")
protected static Map<Integer,Modernizer<NewFoo>> getModernizerMap() {
if (modernizerMap == null)
modernizerMap = Transform.toMap((Pair<Integer,Modernizer<NewFoo>>[])new Pair[] {
// Instructions to modernize to the current blob version
new Pair(NEW_FOO_XML_VERSION, new Modernizer<NewFoo>() {
public String getNewAbreviatedElementName(String abreviatedElementName) {
if("dt".equals(abreviatedElementName))
// Sample abreviated name update: update the abreviated name of DefaultTN to current name
return "dtn";
return abreviatedElementName;
}
public String getNewElementName(String elementName) {
if("defaultTN".equals(elementName))
// Sample field name update: update name of DefaultTN to current name
return "defaultThumbnail";
return elementName;
}
public Boolean isDeletedElement(String abreviatedElementName) {
return abreviatedElementName.equals("o");
}
public Object getUpdatedElementValue(String elementName, Object elementValue) {
if ("active".equals(elementName))
// Sample update: flip value of "active"
elementValue = !((Boolean)elementValue);
else if ("colors".equals(elementName))
// Sample update: add a new color
((List)elementValue).add(71);
return elementValue;
}
public NewFoo modifyInstance(NewFoo instance) {
// Sample instance modification to default a new field
((NewFoo)instance).setGluttony("glutton");
return instance;
}
}),
});
return modernizerMap;
}
}