package com.rectang.xsm.site.upgrades;
import com.rectang.xsm.site.*;
import com.rectang.xsm.io.XSMDocument;
import java.util.Iterator;
import java.util.List;
import org.jdom.Element;
public class Upgrade5
implements UpgradeUnit
{
public int getFromVersion()
{
return 5;
}
public int getToVersion()
{
return 6;
}
public String getTitle()
{
return "Add metadata \"email\" to PreviewedFile pages";
}
public boolean upgrade( Site site )
{
Iterator pages = site.getAllPages();
while ( pages.hasNext() )
{
DocumentPage next = (DocumentPage) pages.next();
try
{
XSMDocument doc = next.getXSMDocument();
Element previewedFile = doc.getContentElement();
if ( !previewedFile.getName().equals( "previewedfile" ) )
{
continue;
}
System.out.println( "upgrade 5 - " + doc.getPath() );
List items = previewedFile.getChildren( "item" );
if ( items == null || items.size() == 0 )
{
continue;
}
Iterator itemIter = items.iterator();
while ( itemIter.hasNext() )
{
Element nextItem = (Element) itemIter.next();
int index = nextItem.indexOf( nextItem.getChild( "author" ) );
nextItem.addContent( ++index, new Element( "email" ) );
}
doc.save();
}
catch ( Exception e )
{
System.err.println( "Failed on file " + next.getPath() + e.getMessage() );
return false;
}
}
return true;
}
}