1 /*
2 * Copyright 2004-2005 the original author or authors.
3 *
4 * Licensed under the Apache License, Version 2.0 (the "License"); you may not
5 * use this file except in compliance with the License. You may obtain a copy of
6 * the License at
7 *
8 * http://www.apache.org/licenses/LICENSE-2.0
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, WITHOUT
12 * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
13 * License for the specific language governing permissions and limitations under
14 * the License.
15 */
16 package net.sf.composite;
17
18 /***
19 * A composite that requires that all of its components implement a given
20 * interface. The interface is specified by
21 * {@link StrictlyTypedComposite#getComponentType()}.
22 *
23 * @author Matt Sgarlata
24 * @since Dec 28, 2004
25 */
26 public interface StrictlyTypedComposite {
27
28 /***
29 * Indicates a type which must be implemented by each of the components of
30 * this composite
31 *
32 * @return the type which must be implemented by each of the components of
33 * this composite
34 * @throws CompositeException
35 * if an error occurrs
36 */
37 public Class getComponentType() throws CompositeException;
38
39 }