/*
- * Copyright 2007 the original author or authors.
- *
+ * Copyright 2005-2010 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;
import org.wamblee.reflection.ReflectionUtils;
import java.util.Arrays;
-
/**
- * DOCUMENT ME!
- *
+ *
* @author $author$
* @version $Revision$
*/
public class DefaultRequiredInterface implements RequiredInterface {
- /**
- * DOCUMENT ME!
- */
private String name;
- /**
- * DOCUMENT ME!
- */
private boolean optional;
- /**
- * DOCUMENT ME!
- */
private Class[] required;
- /**
- * DOCUMENT ME!
- */
private ProvidedInterface provider;
-/**
+ /**
* Creates a new DefaultRequiredInterface object.
- *
- * @param aName DOCUMENT ME!
- * @param aInterface DOCUMENT ME!
+ *
*/
public DefaultRequiredInterface(String aName, Class aInterface) {
this(aName, new Class[] { aInterface });
}
-/**
+ /**
* Creates a new DefaultRequiredInterface object.
- *
- * @param aName DOCUMENT ME!
- * @param aInterfaces DOCUMENT ME!
+ *
*/
public DefaultRequiredInterface(String aName, Class[] aInterfaces) {
this(aName, aInterfaces, false);
}
-/**
+ /**
* Creates a new DefaultRequiredInterface object.
- *
- * @param aName DOCUMENT ME!
- * @param aInterface DOCUMENT ME!
- * @param aIsOptional DOCUMENT ME!
+ *
*/
public DefaultRequiredInterface(String aName, Class aInterface,
boolean aIsOptional) {
this(aName, new Class[] { aInterface }, aIsOptional);
}
-/**
+ /**
* Creates a new DefaultRequiredInterface object.
- *
- * @param aName DOCUMENT ME!
- * @param aInterfaces DOCUMENT ME!
- * @param aIsOptional DOCUMENT ME!
+ *
*/
public DefaultRequiredInterface(String aName, Class[] aInterfaces,
boolean aIsOptional) {
- name = aName;
- optional = aIsOptional;
- required = aInterfaces;
+ name = aName;
+ optional = aIsOptional;
+ required = aInterfaces;
}
- /**
- * DOCUMENT ME!
- *
- * @return DOCUMENT ME!
- */
@Override
public String getName() {
return name;
}
- /**
- * DOCUMENT ME!
- *
- * @return DOCUMENT ME!
- */
@Override
public boolean isOptional() {
return optional;
}
- /**
- * DOCUMENT ME!
- *
- * @param aDescriptor DOCUMENT ME!
- *
- * @return DOCUMENT ME!
- */
@Override
public boolean implementedBy(ProvidedInterface aDescriptor) {
Class[] provided = aDescriptor.getInterfaceTypes();
}
/**
- * Check if the required interface is implemented by one of the
- * provided interfaces.
- *
- * @param aRequired required interface
- * @param aProvided Provided interfaces.
- *
+ * Check if the required interface is implemented by one of the provided
+ * interfaces.
+ *
+ * @param aRequired
+ * required interface
+ * @param aProvided
+ * Provided interfaces.
+ *
* @return
*/
private boolean serviceProvided(Class aRequired, Class[] aProvided) {
for (Class provided : aProvided) {
try {
- provided = ReflectionUtils.wrapIfNeeded(provided);
- aRequired = ReflectionUtils.wrapIfNeeded(aRequired);
+ provided = ReflectionUtils.wrapIfNeeded(provided);
+ aRequired = ReflectionUtils.wrapIfNeeded(aRequired);
provided.asSubclass(aRequired);
return true;
return false;
}
- /**
- * DOCUMENT ME!
- *
- * @return DOCUMENT ME!
- */
@Override
public ProvidedInterface getProvider() {
return provider;
}
- /**
- * DOCUMENT ME!
- *
- * @param aProvider DOCUMENT ME!
- */
@Override
public void setProvider(ProvidedInterface aProvider) {
assert aProvider != null;
provider = aProvider;
}
- /**
- * DOCUMENT ME!
- *
- * @param obj DOCUMENT ME!
- *
- * @return DOCUMENT ME!
- */
@Override
- public boolean equals(Object obj) {
- return this == obj;
+ public boolean equals(Object aObject) {
+ return this == aObject;
}
- /**
- * DOCUMENT ME!
- *
- * @param obj DOCUMENT ME!
- *
- * @return DOCUMENT ME!
- */
@Override
- public boolean covers(RequiredInterface obj) {
- // TODO do more than equals.
- if (!(obj instanceof DefaultRequiredInterface)) {
+ public boolean covers(RequiredInterface aObject) {
+ // TODO do more than equals.
+ if (!(aObject instanceof DefaultRequiredInterface)) {
return false;
}
- DefaultRequiredInterface descr = (DefaultRequiredInterface) obj;
+ DefaultRequiredInterface descr = (DefaultRequiredInterface) aObject;
if (required.length != descr.required.length) {
return false;
String[] interfaces2 = new String[required.length];
for (int i = 0; i < required.length; i++) {
- interfaces1[i] = required[i].getName();
- interfaces2[i] = descr.required[i].getName();
+ interfaces1[i] = required[i].getName();
+ interfaces2[i] = descr.required[i].getName();
}
Arrays.sort(interfaces1);
return Arrays.equals(interfaces1, interfaces2);
}
- /**
- * DOCUMENT ME!
- *
- * @return DOCUMENT ME!
- */
@Override
public int hashCode() {
- return required.hashCode();
+ return Arrays.hashCode(required);
}
- /**
- * DOCUMENT ME!
- *
- * @return DOCUMENT ME!
- */
@Override
public String toString() {
StringBuffer buf = new StringBuffer();