AGUtils.java

package com.franz.agbase.examples;

import com.franz.agbase.*;

/**
 * Demonstrates some basics of using TriplesIterators and ValueSetIterators
 * and showing results.
 * 
 * This is a general utility class with no main method.
 * 
 */
public class AGUtils {
    
    /**
     * A default limit on the number of triples to show, to avoid showing
     * overwhelmingly many. 
     */
    private static int showLimit = 100;
    
    public static void showTriples(String msg, TriplesIterator it) throws AllegroGraphException {
        System.out.println(msg);
        showTriples(it);
    }
    
    public static void showTriples(TriplesIterator it) throws AllegroGraphException {
        showTriples(it, showLimit);
    }
    
    public static void showTriples(TriplesIterator it, int limit) throws AllegroGraphException {
        int i=0;
        while (i<limit && it.step()) {
            showTriple(it.getTriple());
            i++;
        }
        if (it.step()) {
            System.out.println("[Showing " + limit + " triples, there are more]");
        }
    }
    
    public static void showTriple(Triple tr) throws AllegroGraphException {
        System.out.println(tr.toString());
    }

    public static void showResults(ValueSetIterator it) throws AllegroGraphException {
        String[] var = it.getNames();
        System.out.println("Number of solutions: " + it.getCount());
        for (int i=0; it.hasNext(); i++) {
            ValueObject[] objects = it.next();
            System.out.println("Solution " + (i+1) + ":");
            for (int j = 0; j < objects.length; j++) {
                ValueObject term = objects[j];
                System.out.println("  " + var[j] + " = " + printValueObject(term));
            }
        }
    }

    public static String printValueObject(ValueObject o) {
        String result;
        if (== null) {
            result = "Null";
        } else if (instanceof LiteralNode) {
            LiteralNode l = (LiteralNode)o;
            result = l.getLabel();
        } else if (instanceof BlankNode) {
            BlankNode b = (BlankNode)o;
            result = b.getID();
        } else if (instanceof ValueNode) {
            ValueNode n = (ValueNode)o;
            result = n.toString();
        } else {
            result = o.toString();
        }
        return result;
    }

    public static void showURI (URINode r) {
        System.out.println(r.getURI() + ":");
        System.out.println("  Namespace: " + r.getNamespace());
        System.out.println("  LocalName: " + r.getLocalName());
    }

    public static void showLiteral (LiteralNode lit) {
        System.out.println("Literal: " + lit.toString());
        System.out.println("  Label: " + lit.getLabel());
        System.out.println("  Datatype: " + lit.getDatatype());
        System.out.println("  Language: " + lit.getLanguage());
        // Note that only Literals added to the store have a UPI
        System.out.println("  UPI: " + ((ValueNode)lit).queryAGId());
    }
    
    public static void showEncodedLiteral (EncodedLiteral lit) {
        System.out.println("EncodedLiteral: " + lit.toString());
        System.out.println("  Label: " + lit.getLabel());
        System.out.println("  Datatype: " + lit.getDatatype());
        System.out.println("  Language: " + lit.getLanguage());
        // Note that only Literals added to the store have a UPI
        System.out.println("  UPI: " + ((ValueNode)lit).queryAGId());
    }
    
    public static void printObjectArray(String msg, Object[] objArr) {
        System.out.println(msg);
        if (objArr != null) {
            for (int i=0; i<objArr.length;i++) {
                System.out.println("  "+i+": "+objArr[i]);
            }
        }
    }
    
    public static void printUPIArray(String msg, AllegroGraph ts, UPI[] objArr) throws AllegroGraphException {
        System.out.println(msg);
        if (objArr != null) {
            for (int i=0; i<objArr.length;i++) {
                String[] parts = ts.getParts(objArr[i]);
                System.out.println("  "+i+": "+parts[1]);
            }
        }
    }
    
    public static String upiArrayToString(AllegroGraph ts, UPI[] objArr) throws AllegroGraphException {
        StringBuffer buf = new StringBuffer();
        if (objArr != null) {
            buf.append("{");
            for (int i=0; i<objArr.length;i++) {
                String[] parts = ts.getParts(objArr[i]);
                buf.append(parts[1]).append(" ");
            }
            buf.append("}");
        }
        return buf.toString();
    }
    
    public static void printStringArray(String msg, String[] objArr) {
        System.out.println(msg);
        if (objArr != null) {
            for (int i=0; i<objArr.length;i++) {
                System.out.println("  "+i+": "+objArr[i]);
            }
        }
    }
    
    public static String elapsedTime(long start) {
        long total = System.currentTimeMillis() - start;
        long min = total/60000;
        long msec = total%60000;
        double sec = msec/1000.0;
        String report;
        if (min > 0) {
            report = min + ":" + sec + " minutes:seconds";
        } else {
            report = sec + " seconds";
        }
        return report;
    }
    
}

Up | Next

Copyright © 2023 Franz Inc., All Rights Reserved | Privacy Statement Twitter