X-Git-Url: http://wamblee.org/gitweb/?a=blobdiff_plain;f=system%2Fgeneral%2Fsrc%2Fmain%2Fjava%2Forg%2Fwamblee%2Fsystem%2Fcore%2FRequiredInterface.java;h=b535628b3a24463724e7c049afa03b15dd5a4356;hb=8de36ff0206c996baf3ee4adc3e2293b12ff5f39;hp=0fea736057bbc32849ef977004a91520b7a3f2ff;hpb=4845c677310814de4c98e22aad483e49b9dfc594;p=utils diff --git a/system/general/src/main/java/org/wamblee/system/core/RequiredInterface.java b/system/general/src/main/java/org/wamblee/system/core/RequiredInterface.java index 0fea7360..b535628b 100644 --- a/system/general/src/main/java/org/wamblee/system/core/RequiredInterface.java +++ b/system/general/src/main/java/org/wamblee/system/core/RequiredInterface.java @@ -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 - * @param aClass Interface type. - * @return Interface implementation or null if not known yet. - */ - T getImplementation(Class aClass); + /** + * Determines if the requirements of the current interface are at least + * those of the given required interface. + * + * + */ + boolean covers(RequiredInterface aInterface); }