import com.plumtree.remote.prc.IRemoteSession;
import com.plumtree.remote.prc.RemoteSessionFactory;
import com.plumtree.remote.prc.search.*;
import java.net.URL;
import java.util.Enumeration;

public class SimpleSearch
{
    //simple example- just set the query and print results
    //include servlet.jar and all edk jars in the classpath
    public static void main(String[] args)
    {
        if (args.length < 4)
        {
            System.out.println("usage: SimpleSearch: soapendpoint username password querystring\n" +
            "For example: http://IP-GW-AS08:9080/ptapi/services/QueryInterfaceAPI Administrator plumtree *.doc");

             return;
        }

        try
        {
            URL url = new URL(args[0]);
            String username = args[1];
            String password = args[2];
            IRemoteSession session =
                    RemoteSessionFactory.getExplicitLoginContext(
                            url,
                            username,
                            password);
            ISearchFactory searchFactory = session.getSearchFactory();
            IPortalSearchRequest searchRequest = searchFactory.createPortalSearchRequest();
            searchRequest.setQuery(args[3]);
            searchRequest.setResultsCount(0, 10);
            ISearchResponse searchResponse = searchRequest.execute();

            //get information about the number of results returned
            System.out.println("Total matches is " + searchResponse.getTotalCount());
            System.out.println("First result is " + searchResponse.getFirstResultIndex());
            System.out.println("Number returned is " + searchResponse.getReturnedCount());

            //iterate through the results
            ISearchResultSet resultSet = searchResponse.getResultSet();
            Enumeration results = resultSet.getResults();
            while (results.hasMoreElements())
            {
                System.out.println("--------------------------------------------------");
                IPortalSearchResult result = (IPortalSearchResult) results.nextElement();
                System.out.println("name is " + result.getName());
                System.out.println("class id is " + result.getClassID());
                System.out.println("created is " + result.getCreated());
                System.out.println("excerpt is " + result.getExcerpt());
                System.out.println("last modified is " + result.getLastModified());
                System.out.println("object id is " + result.getObjectID());
                System.out.println("url is " + result.getURL());
                System.out.println("icon url is " + result.getIconURL());
                System.out.println("rank is " + result.getRank());
            }
        }
        catch (Exception e)
        {
            e.printStackTrace();
        }
    }
}