import jp.dbcls.togows.soap.*;

public class KeggSearchCompoundsBySubcomp {

    public static void main(String[] args) {
        try {
            String mol = get_mol(); 
            int offset = 1; 
            int limit = 5; 

            TogowsKeggService service = new TogowsKeggServiceLocator();
            TogowsKeggPort stub = service.getTogowsKeggPort();

            StructureAlignment[] result = stub.keggSearchCompoundsBySubcomp(mol, offset, limit);
            for (int i = 0; i < result.length; i++) {
                System.out.println("target_id: " + result[i].getTarget_id());
                System.out.println("score: " + result[i].getScore());
                System.out.println("query_nodes:");
                int[] queryNodes = result[i].getQuery_nodes();
                for (int j = 0; j < queryNodes.length; j++) {
                    System.out.println("  " + queryNodes[j]);
                }
                System.out.println("target_nodes:");
                int[] targetNodes = result[i].getTarget_nodes();
                for (int j = 0; j < targetNodes.length; j++) {
                    System.out.println("  " + targetNodes[j]);
                }
            }

        } catch (Exception e) {
            e.printStackTrace();
        }
    }

    private static String get_mol() {
        // result of bget("-f m cpd:C00111")
        StringBuffer sb = new StringBuffer();
        sb.append(" \n");
        sb.append(" \n");
        sb.append(" \n");
        sb.append(" 10  9  0  0  0  0  0  0  0  0999 V2000\n");
        sb.append("   22.8555  -17.6695    0.0000 P   0  0  3  0  0  0  0  0  0  0  0  0\n");
        sb.append("   21.4279  -17.6628    0.0000 O   0  0  0  0  0  0  0  0  0  0  0  0\n");
        sb.append("   22.8992  -19.2106    0.0000 O   0  0  0  0  0  0  0  0  0  0  0  0\n");
        sb.append("   22.8950  -16.1215    0.0000 O   0  0  0  0  0  0  0  0  0  0  0  0\n");
        sb.append("   24.2890  -17.6497    0.0000 O   0  0  0  0  0  0  0  0  0  0  0  0\n");
        sb.append("   20.1911  -16.9523    0.0000 C   0  0  0  0  0  0  0  0  0  0  0  0\n");
        sb.append("   20.1911  -15.5247    0.0000 C   0  0  0  0  0  0  0  0  0  0  0  0\n");
        sb.append("   20.1911  -14.0971    0.0000 C   0  0  0  0  0  0  0  0  0  0  0  0\n");
        sb.append("   21.4787  -15.5247    0.0000 O   0  0  0  0  0  0  0  0  0  0  0  0\n");
        sb.append("   21.4279  -13.3801    0.0000 O   0  0  0  0  0  0  0  0  0  0  0  0\n");
        sb.append("  1  2  1  0     0  0\n");
        sb.append("  1  3  1  0     0  0\n");
        sb.append("  1  4  1  0     0  0\n");
        sb.append("  1  5  2  0     0  0\n");
        sb.append("  2  6  1  0     0  0\n");
        sb.append("  6  7  1  0     0  0\n");
        sb.append("  7  8  1  0     0  0\n");
        sb.append("  7  9  2  0     0  0\n");
        sb.append("  8 10  1  0     0  0\n");
        sb.append("M  END\n");
        return sb.toString();
    }
}
