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 Upgrade4
implements UpgradeUnit
{
public int getFromVersion()
{
return 4;
}
public int getToVersion()
{
return 5;
}
public String getTitle()
{
return "Add comments and user IDs to news articles";
}
public boolean upgrade( Site site )
{
Iterator pages = site.getAllPages();
while ( pages.hasNext() )
{
DocumentPage next = (DocumentPage) pages.next();
try
{
XSMDocument doc = next.getXSMDocument();
Element gallery = doc.getContentElement();
if ( !gallery.getName().equals( "news" ) )
{
continue;
}
System.out.println( "upgrade 4 - " + doc.getPath() );
List items = gallery.getChildren( "article" );
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( "uid" ) );
index = nextItem.indexOf( nextItem.getChild( "time" ) );
Element comments;
nextItem.addContent( ++index, comments = new Element( "comments" ) );
comments.setAttribute( "next_index", "1" );
}
doc.save();
}
catch ( Exception e )
{
System.err.println( "Failed on file " + next.getPath() + e.getMessage() );
return false;
}
}
return true;
}
}