package de.mpg.mpiz_koeln.featureClient.test;

import java.util.Collection;

import org.biomoby.shared.MobyException;
import org.biomoby.shared.datatypes.AminoAcidSequence;
import org.biomoby.shared.datatypes.FASTA_AA;
import org.biomoby.shared.datatypes.MobyInteger;
import org.biomoby.shared.datatypes.MobyObject;
import org.biomoby.shared.datatypes.MobyString;

import de.mpg.mpiz_koeln.featureClient.FeatureClient;
import de.mpg.mpiz_koeln.featureClient.FeatureClientException;
import de.mpg.mpiz_koeln.featureClient.FeatureClientResult;

class SingleCallWithParameters {
    public static void main( String[] args ) throws FeatureClientException, MobyException {
        FeatureClient client = new FeatureClient();
        client.setTimeout( 120 );
        client.addService( "GetInAndOrthologsFromRefSeq" );

        MobyObject organism = new MobyObject();
        organism.setId( "Arabidopsis thaliana" );
        organism.setNamespace( "taxon" );
        organism.setName( "organism" );

        AminoAcidSequence sequence = new AminoAcidSequence();
        sequence.set_SequenceString( new MobyString( "MASKKMTKSYFDVLGICCTSEVPLIENILNSMDGVKEFSVIVPSRTVIVV"
                + "HDTLILSQFQIVKALNQAQLEANVRVTGETNFKNKWPSPFAVVSGILLLL"
                + "SFFKYLYSPFRWLAVAAVVAGIYPILAKAVASLARFRIDINILVVVTVGA" ) );
        sequence.set_Length( new MobyInteger( 50 ) );
        sequence.setName( "sequence" );

        MobyObject geneName = new MobyObject();
        geneName.setId( "my_gene" );
        geneName.setName( "gene_name" );

        client.setSingleCallInput( organism, sequence, geneName );

        Collection < FeatureClientResult > result = client.call();

        for ( FeatureClientResult mobyServiceResult : result ) {
            Collection< FASTA_AA > fastas = mobyServiceResult.getSingleCallResult();
            for ( FASTA_AA fasta_aa : fastas ) {
                System.out.println( fasta_aa.get_content() );
                System.out.println();
            }
        }
        System.exit( 0 );
    }
}
