/** * Finds the existing module for a module object or name. * * @param rootModule * the root module to start the search from. * @param moduleObject * the module object. * @param moduleName * the module name. * @return the stack of modules containing the found module. */ protected Module findModule(Module rootModule, String moduleName, Object moduleObject) { if (moduleName != null && moduleName.equals(rootModule.getName())) { return rootModule; } if (moduleObject != null && (rootModule instanceof BeanModule) && moduleObject.equals(((BeanModule) rootModule).getModuleObject())) { return rootModule; } if (rootModule.getSubModules() != null) { for (Module sub : rootModule.getSubModules()) { Module parentModule = findModule(sub, moduleName, moduleObject); if (parentModule != null) { return parentModule; } } } return null; }
/** * Finds the parent module where to add the selected component. * * @param component * the component to add as module object. * @param context * the action context. * @return the parent module to add the new module to. */ @SuppressWarnings("UnusedParameters") protected Module findDestinationModule(Object component, Map<String, Object> context) { Workspace workspace = getParentWorkspace(context); String moduleName = getParentModuleName(context); if (workspace == null || moduleName == null) { return getCurrentModule(context); } for (Module m : workspace.getModules()) { Module m2 = findModule(m, moduleName, null); if (m2 != null) { return m2; } } return null; }