class AnalyticNodeDescriptor implements AnalyticDescriptor {

    public Analytic instantiateAnalytic() {
        Constructor<?>[] constructorArray = analyticClass.getConstructors();
        for (Constructor<?> constructor : constructorArray) {
            Class<?>[] parameterTypes = constructor.getParameterTypes();
            if(parameterTypes.length == constructorArgs.length) {
                Object[] parameters = new Object[parameterTypes.length];
                for (int i = 0;i < parameterTypes.length;i++) {
                    parameters[i] = new Integer(this.constructorArgs[i]);
                }
                try {
                    Analytic a = (Analytic)constructor.newInstance(parameters);
                    a.setName(nodeName);
                    return a;
                }catch(Exception e) { }
            }
        }
        throw new IllegalStateException("Unable to instantiate Analytic class using constructor containing " + 
            (constructorArgs == null ? 0:constructorArgs.length) + " arguments");
    }

    public  AnalyticNodeDescriptor(String networkName, String nodeName);

}