summaryrefslogtreecommitdiffstats
path: root/tags/java/sca/2.0-M3-RC1/modules/sca-api/src/main/java/org/oasisopen/sca/client/SCAClient.java
blob: c054179d8abff9667dd86a8d18310d3e3f61e90f (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
/* 
 * Copyright(C) OASIS(R) 2005,2009. All Rights Reserved. 2299
 * OASIS trademark, IPR and other policies apply. 2300
 */
package org.oasisopen.sca.client;

import java.net.URI;
import org.oasisopen.sca.NoSuchDomainException;
import org.oasisopen.sca.NoSuchServiceException;

/**
 * Client side interface that can be used to lookup SCA Services within a SCA
 * Domain.
 * <p>
 * The SCAClientFactory is used to obtain an implementation instance of the
 * SCAClient.
 * 
 * @see SCAClientFactory
 * @author OASIS Open
 */
public interface SCAClient {

    /**
     * Returns a reference proxy that implements the business interface <T> of a
     * service in a domain
     * 
     * @param serviceURI the relative URI of the target service. Takes the form
     *                componentName/serviceName. Can also take the extended form
     *                componentName/serviceName/bindingName to use a specific
     *                binding of the target service
     * @param domainURI the URI of an SCA Domain.
     * @param interfaze The business interface class of the service in the
     *                domain
     * @param <T> The business interface class of the service in the domain
     * @return a proxy to the target service, in the specified SCA Domain that
     *         implements the business interface <B>.
     * @throws NoSuchServiceException Service requested was not found
     * @throws NoSuchDomainException Domain requested was not found
     */
    <T> T getService(Class<T> interfaze, String serviceURI, URI domainURI) throws NoSuchServiceException, NoSuchDomainException;
}