1 /**
2 * Copyright 2005-2013 The Kuali Foundation
3 *
4 * Licensed under the Educational Community License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
7 *
8 * http://www.opensource.org/licenses/ecl2.php
9 *
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
15 */
16 package org.kuali.rice.ksb.api.registry;
17
18 import org.kuali.rice.core.api.mo.common.Versioned;
19 import org.kuali.rice.ksb.api.bus.ServiceConfiguration;
20
21 /**
22 * A service descriptor includes a serialized XML representation of the
23 * {@link ServiceConfiguration} for the service.
24 *
25 * <p>It's expected that a client of this service which needs this information
26 * will materialize this value when it's needed to obtain additional
27 * information about the configuration information for the service. The
28 * process for materializing the information can be dependent upon the
29 * type of the {@link ServiceInfo} which contains this descriptor.
30 *
31 * <p>The separation of this descriptor information from the main
32 * {@link ServiceInfo} allows for clients of the registry to only load the
33 * basic information about the services in the registry, and then pull in the
34 * full descriptor for the services they actually need to invoke and work with.
35 *
36 * @author Kuali Rice Team (rice.collab@kuali.org)
37 *
38 */
39 public interface ServiceDescriptorContract extends Versioned {
40
41 /**
42 * Returns the id of this service descriptor. This value should be unique
43 * across service descriptors. This value is generated when the service
44 * is published to the registry, so this value can be null if the service
45 * has not yet been published to the registry.
46 *
47 * @return the id of this service descriptor, or null if the service and
48 * it's descriptor has not yet been published to the registry
49 */
50 String getId();
51
52 /**
53 * Returns an XML value which can be used to materialize the {@link ServiceConfiguration}
54 * for the service.
55 *
56 * @return the XML representation of the {@link ServiceConfiguration} for the service,
57 * should never return a null or blank value
58 */
59 String getDescriptor();
60
61 }