new help method for generating radio mediums during config load.
This commit is contained in:
parent
aaaf19f72d
commit
5c1dcd25c3
1 changed files with 30 additions and 3 deletions
|
@ -26,13 +26,16 @@
|
||||||
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
||||||
* SUCH DAMAGE.
|
* SUCH DAMAGE.
|
||||||
*
|
*
|
||||||
* $Id: RadioMedium.java,v 1.1 2006/08/21 12:12:55 fros4943 Exp $
|
* $Id: RadioMedium.java,v 1.2 2007/01/09 10:18:08 fros4943 Exp $
|
||||||
*/
|
*/
|
||||||
|
|
||||||
package se.sics.cooja;
|
package se.sics.cooja;
|
||||||
|
import java.lang.reflect.Constructor;
|
||||||
|
import java.lang.reflect.InvocationTargetException;
|
||||||
import java.util.Collection;
|
import java.util.Collection;
|
||||||
|
import java.util.Observable;
|
||||||
import java.util.Observer;
|
import java.util.Observer;
|
||||||
|
import org.apache.log4j.Logger;
|
||||||
import org.jdom.Element;
|
import org.jdom.Element;
|
||||||
|
|
||||||
import se.sics.cooja.interfaces.Position;
|
import se.sics.cooja.interfaces.Position;
|
||||||
|
@ -50,6 +53,7 @@ import se.sics.cooja.interfaces.Radio;
|
||||||
* @author Fredrik Osterlind
|
* @author Fredrik Osterlind
|
||||||
*/
|
*/
|
||||||
public abstract class RadioMedium {
|
public abstract class RadioMedium {
|
||||||
|
private static Logger logger = Logger.getLogger(RadioMedium.class);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Registers a mote to this medium.
|
* Registers a mote to this medium.
|
||||||
|
@ -118,6 +122,11 @@ public abstract class RadioMedium {
|
||||||
*/
|
*/
|
||||||
public abstract void addRadioMediumObserver(Observer observer);
|
public abstract void addRadioMediumObserver(Observer observer);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @return Radio medium observable
|
||||||
|
*/
|
||||||
|
public abstract Observable getRadioMediumObservable();
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Deletes an radio medium observer.
|
* Deletes an radio medium observer.
|
||||||
*
|
*
|
||||||
|
@ -171,6 +180,24 @@ public abstract class RadioMedium {
|
||||||
* Config XML elements
|
* Config XML elements
|
||||||
* @return True if config was set successfully, false otherwise
|
* @return True if config was set successfully, false otherwise
|
||||||
*/
|
*/
|
||||||
public abstract boolean setConfigXML(Collection<Element> configXML);
|
public abstract boolean setConfigXML(Collection<Element> configXML, boolean visAvailable);
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This method creates an instance of the given class with the given
|
||||||
|
* simulation constructor argument. Instead of calling the constructors
|
||||||
|
* directly this method may be used.
|
||||||
|
*
|
||||||
|
* @return Radio medium instance
|
||||||
|
*/
|
||||||
|
public static final RadioMedium generateInterface(
|
||||||
|
Class<? extends RadioMedium> radioMediumClass, Simulation simulation)
|
||||||
|
throws NoSuchMethodException, InvocationTargetException,
|
||||||
|
IllegalAccessException, InstantiationException {
|
||||||
|
|
||||||
|
// Generating radio medium
|
||||||
|
Constructor constr = radioMediumClass
|
||||||
|
.getConstructor(new Class[] { Simulation.class });
|
||||||
|
return (RadioMedium) constr.newInstance(new Object[] { simulation });
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue