Removed DOCUMENT ME comments that were generated and applied source code
[utils] / system / general / src / main / java / org / wamblee / system / core / RequiredInterface.java
index 0fea736057bbc32849ef977004a91520b7a3f2ff..b535628b3a24463724e7c049afa03b15dd5a4356 100644 (file)
@@ -1,51 +1,62 @@
 /*
  * Copyright 2007 the original author or authors.
- * 
+ *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
  * You may obtain a copy of the License at
- * 
+ *
  *      http://www.apache.org/licenses/LICENSE-2.0
- * 
+ *
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  * See the License for the specific language governing permissions and
  * limitations under the License.
- */ 
+ */
 package org.wamblee.system.core;
 
-public interface RequiredInterface {
+/**
+ * 
+ * @author $author$
+ * @version $Revision: 1.6 $
+ */
+public interface RequiredInterface extends NamedInterface {
+    /**
+     * 
+     * @return True iff the required interface is optional.
+     */
+    boolean isOptional();
+
+    /**
+     * Checks if the service is provided by a given provided interface.
+     * 
+     * @param aInterface
+     *            Provided interface.
+     * 
+     * @return
+     */
+    boolean implementedBy(ProvidedInterface aInterface);
+
+    /**
+     * Sets the provider of this interface.
+     * 
+     * @param aProvider
+     *            Provider.
+     */
+    void setProvider(ProvidedInterface aProvider);
+
+    /**
+     * Gets the provider interface.
+     * 
+     * @return Provider or null if not set.
+     */
+    ProvidedInterface getProvider();
 
-       /**
-        * Name for the interface. 
-        */
-       public String getName(); 
-       
-       /**
-        * Checks if the service is provided by a given provided interface. 
-        * @param aInterface Provided interface. 
-        * @return
-        */
-       boolean implementedBy(ProvidedInterface aInterface);
-       
-       /**
-        * Sets the provider of this interface. 
-        * @param aProvider Provider. 
-        */
-       void setProvider(ProvidedInterface aProvider);
-       
-       /**
-        * Getst the provider interface. 
-        * @return Provider or null if not set. 
-        */
-       ProvidedInterface getProvider(); 
-       
-       /**
-        * Gets the implementation of the required interface. 
-        * @param <T>
-        * @param aClass Interface type. 
-        * @return Interface implementation or null if not known yet. 
-        */
-       <T> T getImplementation(Class<T> aClass); 
+    /**
+     * Determines if the requirements of the current interface are at least
+     * those of the given required interface.
+     * 
+     * 
+     */
+    boolean covers(RequiredInterface aInterface);
 }