/**
 * 
 */
package com.github.podd.utils;

import info.aduna.iteration.Iterations;

import java.util.List;

import org.openrdf.model.Model;
import org.openrdf.model.Resource;
import org.openrdf.model.Statement;
import org.openrdf.model.URI;
import org.openrdf.repository.RepositoryConnection;
import org.openrdf.repository.RepositoryException;

/**
 * This class contains static methods to help debug contents of an RDF repository
 * 
 * @author kutila
 * 
 */
public class DebugUtils
{
    
    public static void printContents(final Model model)
    {
        System.out.println("==================================================");
        System.out.println("Model Contents: ");
        System.out.println();
        final Statement[] allStatements = model.toArray(new Statement[0]);
        
        for(final Statement stmt : allStatements)
        {
            System.out.println("   {" + stmt.getSubject() + "}   <" + stmt.getPredicate() + ">  {" + stmt.getObject()
                    + "}");
        }
        System.out.println("==================================================");
    }
    
    /**
     * Helper method prints the contents of the given context of a Repository
     */
    public static void printContents(final RepositoryConnection conn, final URI context) throws RepositoryException
    {
        System.out.println("==================================================");
        System.out.println("Graph = " + context);
        System.out.println();
        final List<Statement> repoResults = Iterations.asList(conn.getStatements(null, null, null, false, context));
        for(final Statement stmt : repoResults)
        {
            System.out.println("   {" + stmt.getSubject() + "}   <" + stmt.getPredicate() + ">  {" + stmt.getObject()
                    + "}");
        }
        System.out.println("==================================================");
    }
    
    /**
     * Helper method prints the contents of the given context of a Repository
     */
    public static void printContexts(final RepositoryConnection conn) throws RepositoryException
    {
        System.out.println("==================================================");
        System.out.println("Contexts in Repository:  ");
        for(final Resource context : Iterations.asSet(conn.getContextIDs()))
        {
            System.out.println(context);
        }
        System.out.println("==================================================");
    }
    
}

@@ -844,32 +844,92 @@
 ents)%0A        %7B%0A
+            if(stmt.getContext() == null)%0A            %7B%0A    
             Syst
@@ -1014,55 +1014,300 @@
   %7B%22
- + stmt.getObject()%0A                    + %22%7D%22);
+%0A                        + stmt.getObject() + %22%7D%22);%0A            %7D%0A            else%0A            %7B%0A                System.out.println(%22   %7B%22 + stmt.getSubject() + %22%7D   %3C%22 + stmt.getPredicate() + %22%3E  %7B%22%0A                        + stmt.getObject() + %22%7D %5B%22 + stmt.getContext() + %22%5D%22);%0A            %7D
 %0A   

print context info also if available