package amazon;

import com.netdimen.amazon.AmazonSearchPort;
import com.netdimen.amazon.AmazonSearchService;
import com.netdimen.amazon.AmazonSearchService_Impl;
import com.netdimen.amazon.KeywordRequest;
import com.netdimen.amazon.ProductInfo;
import java.rmi.RemoteException;

/**
 * Title:        Amazon Web Services 2.0 Client
 * Description:  Simple keyword query of Amazon.com using Web services APIs.
 * Copyright:    Copyright (c) 2003
 * Company:      NetDimensions
 * @author Robert Lowe
 * @version 1.0
 */
public final class AmazonClient {
    /** Developer tag. */
    private static final String DEVTAG = "XXXXXXXXXXXXX";
    
    /** Creates a new instance. */
    private AmazonClient() {
        super();
    }
    
    /**
     * Creates an Amazon.com search service.
     * 
     * @return the Amazon.com search service.
     */
    private static final AmazonSearchService getAmazonSearchService() {
        return new AmazonSearchService_Impl();
    }
    
    /**
     * Searches Amazon.com for the specified keyword.
     * 
     * @param keyword the keyword.
     */
    private static final void doKeywordSearch(final String keyword) {
        System.out.println("Searching for '" + keyword + "'");
        final AmazonSearchService searcher = getAmazonSearchService();
        final AmazonSearchPort port = searcher.getAmazonSearchPort();
        final KeywordRequest req = new KeywordRequest();
        req.setKeyword(keyword);
        req.setDevtag(DEVTAG);
        try {
            final ProductInfo results = port.keywordSearchRequest(req);
        } catch (final RemoteException e) {
            e.printStackTrace();
        }
    }
    
    /**
     * Runs the client.
     * 
     * @param args command-line arguments.
     */
    public static final void main(final String[] args) {
        doKeywordSearch("aardvarks");
    }
}