assert(step != null);
if (step == null && task.getVerb().toString().equals("DUMMY_TASK")) {  taskSucceeded(allocation, null); } else if (step != null) {
    public void execute() {        // assumming that the LittleJILExpanderPlugin has already published a stepsTable        stepsTable = (LittleJILStepsTable) stepsTableSubscription.first();        assert(stepsTable != null);        // ditto        resourceTable = (LittleJILResourceTable) resourceTableSubscription.first();        assert(resourceTable != null);        for (Enumeration allocations = allocationsSubscription.getAddedList(); allocations.hasMoreElements();) {            Allocation allocation = (Allocation) allocations.nextElement();            Task task = allocation.getTask();            // first get all "in" parameters for this task            Hashtable inParams = new Hashtable();            Step step = stepsTable.getStep(task);            assert(step != null);            StepInterface stepInterface = step.getStepInterface();            if (stepInterface != null) {                for (Enumeration params = stepInterface.getParameters(); params.hasMoreElements();) {                    ParameterDeclaration declaration = (ParameterDeclaration) params.nextElement();                    // if it's a resource, get it from the table and put in the hashtable                    if (declaration.getMode() == ParameterDeclaration.RESOURCE_ACQUISITION) {                        // first check if the param value is an Iterator. If it is, it means we are iterating                        // through a resource set, so just get the next value and add that to in params                        Object resource = null;                        if (declaration.getParameterValue() instanceof Iterator) {                            Iterator iterator = ((Iterator) declaration.getParameterValue());                            if (!iterator.hasNext()) {                                blackboard.publishAdd(new LittleJILException(task,                                        "NoMoreResourcesAvailable: " + declaration.getName()));                                continue;                            }                            resource = iterator.next();                        } else {                            resource = resourceTable.getResource(step.getDiagram(), declaration.getName());                            if (resource == null) {                                blackboard.publishAdd(new LittleJILException(task,                                        "ResourceUnavailableException: " + declaration.getName()));                                continue;                            }                        }                        logger.debug("adding resource to in params: " + declaration.getName() + "=" + resource);                        inParams.put(declaration.getName(), resource);                    }                    else if (declaration.getMode() != ParameterDeclaration.COPY_OUT) {                        inParams.put(declaration.getName(), declaration.getParameterValue());                    }                }            }            // call implemented excuteTask method            executeTask(allocation, inParams);        }    }