| /* |
| * $Id$ |
| * |
| * Licensed to the Apache Software Foundation (ASF) under one |
| * or more contributor license agreements. See the NOTICE file |
| * distributed with this work for additional information |
| * regarding copyright ownership. The ASF licenses this file |
| * to you 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.apache.struts2.s1; |
| |
| import java.util.HashMap; |
| import java.util.Iterator; |
| import java.util.Map; |
| |
| import org.apache.struts.config.ActionConfig; |
| import org.apache.struts.config.ControllerConfig; |
| import org.apache.struts.config.ExceptionConfig; |
| import org.apache.struts.config.FormBeanConfig; |
| import org.apache.struts.config.ForwardConfig; |
| import org.apache.struts.config.MessageResourcesConfig; |
| import org.apache.struts.config.ModuleConfig; |
| import org.apache.struts.config.PlugInConfig; |
| |
| import com.opensymphony.xwork2.config.entities.ExceptionMappingConfig; |
| import com.opensymphony.xwork2.config.entities.PackageConfig; |
| import com.opensymphony.xwork2.config.entities.ResultConfig; |
| |
| /** |
| * Wrapper for a Struts 1.x ModuleConfig based on an XWork PackageConfig. Using a wrapper object |
| * allows us to be explicit about what is and isn't implemented. |
| */ |
| class WrapperModuleConfig implements ModuleConfig { |
| |
| private Struts1Factory strutsFactory; |
| private PackageConfig delegate; |
| private Map _actionMappings; |
| private Map _exceptionConfigs; |
| private Map _actionForwards; |
| |
| public WrapperModuleConfig(Struts1Factory factory, PackageConfig config) { |
| delegate = config; |
| this.strutsFactory = factory; |
| } |
| |
| /** |
| * Add Struts ActionMappings (from XWork ExceptionConfigs). |
| */ |
| private void initActionMappings() { |
| |
| if (_actionMappings == null) { |
| _actionMappings = new HashMap(); |
| for (Iterator i = delegate.getActionConfigs().entrySet().iterator(); i.hasNext();) { |
| Map.Entry entry = (Map.Entry) i.next(); |
| String actionPath = '/' + (String) entry.getKey(); |
| com.opensymphony.xwork2.config.entities.ActionConfig actionConfig = |
| (com.opensymphony.xwork2.config.entities.ActionConfig) entry.getValue(); |
| _actionMappings.put(actionPath, strutsFactory.createActionMapping(actionConfig, actionPath, this)); |
| } |
| } |
| } |
| |
| /** |
| * Add Struts ExceptionConfigs (from XWork ExceptionMappingConfigs). |
| */ |
| private void initExceptionConfigs() { |
| if (_exceptionConfigs == null) { |
| _exceptionConfigs = new HashMap(); |
| for (Iterator i = delegate.getGlobalExceptionMappingConfigs().iterator(); i.hasNext();) { |
| ExceptionMappingConfig config = (ExceptionMappingConfig) i.next(); |
| _exceptionConfigs.put(config.getExceptionClassName(), strutsFactory.createExceptionConfig(config)); |
| } |
| } |
| } |
| |
| /** |
| * Add Struts ActionForwards (from XWork ResultConfigs). |
| */ |
| private void initActionForwards() { |
| if (_actionForwards == null) { |
| _actionForwards = new HashMap(); |
| for (Iterator i = delegate.getGlobalResultConfigs().entrySet().iterator(); i.hasNext();) { |
| Map.Entry entry = (Map.Entry) i.next(); |
| String name = (String) entry.getKey(); |
| ResultConfig config = (ResultConfig) entry.getValue(); |
| _actionForwards.put(name, strutsFactory.createActionForward(config)); |
| } |
| } |
| } |
| |
| public String getPrefix() { |
| return delegate.getNamespace(); |
| } |
| |
| public void setPrefix(String prefix) { |
| throw new UnsupportedOperationException("Not implemented - immutable"); |
| } |
| |
| public boolean getConfigured() { |
| return true; |
| } |
| |
| public ControllerConfig getControllerConfig() { |
| throw new UnsupportedOperationException("NYI"); |
| } |
| |
| public void setControllerConfig(ControllerConfig cc) { |
| throw new UnsupportedOperationException("Not implemented - immutable"); |
| } |
| |
| public String getActionFormBeanClass() { |
| throw new UnsupportedOperationException("NYI"); |
| } |
| |
| public void setActionFormBeanClass(String actionFormBeanClass) { |
| throw new UnsupportedOperationException("Not implemented - immutable"); |
| } |
| |
| public String getActionMappingClass() { |
| throw new UnsupportedOperationException("NYI"); |
| } |
| |
| public void setActionMappingClass(String actionMappingClass) { |
| throw new UnsupportedOperationException("Not implemented - immutable"); |
| } |
| |
| public void addActionConfig(ActionConfig config) { |
| throw new UnsupportedOperationException("Not implemented - immutable"); |
| } |
| |
| public void addExceptionConfig(ExceptionConfig config) { |
| throw new UnsupportedOperationException("Not implemented - immutable"); |
| } |
| |
| public void addFormBeanConfig(FormBeanConfig config) { |
| throw new UnsupportedOperationException("Not implemented - immutable"); |
| } |
| |
| public String getActionForwardClass() { |
| throw new UnsupportedOperationException("NYI"); |
| } |
| |
| public void setActionForwardClass(String actionForwardClass) { |
| throw new UnsupportedOperationException("Not implemented - immutable"); |
| } |
| |
| public void addForwardConfig(ForwardConfig config) { |
| throw new UnsupportedOperationException("NYI"); |
| } |
| |
| public void addMessageResourcesConfig(MessageResourcesConfig config) { |
| throw new UnsupportedOperationException("Not implemented - immutable"); |
| } |
| |
| public void addPlugInConfig(PlugInConfig plugInConfig) { |
| throw new UnsupportedOperationException("Not implemented - immutable"); |
| } |
| |
| public ActionConfig findActionConfig(String path) { |
| initActionMappings(); |
| return (ActionConfig) _actionMappings.get(path); |
| } |
| |
| public ActionConfig[] findActionConfigs() { |
| initActionMappings(); |
| return (ActionConfig[]) _actionMappings.values().toArray(new ActionConfig[_actionMappings.size()]); |
| } |
| |
| public ExceptionConfig findExceptionConfig(String type) { |
| initExceptionConfigs(); |
| return (ExceptionConfig) _exceptionConfigs.get(type); |
| } |
| |
| public ExceptionConfig[] findExceptionConfigs() { |
| initExceptionConfigs(); |
| return (ExceptionConfig[]) _exceptionConfigs.values().toArray(new ExceptionConfig[_exceptionConfigs.size()]); |
| } |
| |
| public FormBeanConfig findFormBeanConfig(String name) { |
| throw new UnsupportedOperationException("NYI"); |
| } |
| |
| public FormBeanConfig[] findFormBeanConfigs() { |
| throw new UnsupportedOperationException("NYI"); |
| } |
| |
| public ForwardConfig findForwardConfig(String name) { |
| initActionForwards(); |
| return (ForwardConfig) _actionForwards.get(name); |
| } |
| |
| public ForwardConfig[] findForwardConfigs() { |
| initActionForwards(); |
| return (ForwardConfig[]) _actionForwards.values().toArray(new ForwardConfig[_actionForwards.size()]); |
| } |
| |
| public ActionConfig findActionConfigId(String s) { |
| throw new UnsupportedOperationException("NYI"); |
| } |
| |
| public MessageResourcesConfig findMessageResourcesConfig(String key) { |
| throw new UnsupportedOperationException("NYI"); |
| } |
| |
| public MessageResourcesConfig[] findMessageResourcesConfigs() { |
| throw new UnsupportedOperationException("NYI"); |
| } |
| |
| public PlugInConfig[] findPlugInConfigs() { |
| throw new UnsupportedOperationException("NYI"); |
| } |
| |
| public void freeze() { |
| throw new UnsupportedOperationException("Not implemented - immutable"); |
| } |
| |
| public void removeActionConfig(ActionConfig config) { |
| throw new UnsupportedOperationException("Not implemented - immutable"); |
| } |
| |
| public void removeExceptionConfig(ExceptionConfig config) { |
| throw new UnsupportedOperationException("Not implemented - immutable"); |
| } |
| |
| public void removeFormBeanConfig(FormBeanConfig config) { |
| throw new UnsupportedOperationException("Not implemented - immutable"); |
| } |
| |
| public void removeForwardConfig(ForwardConfig config) { |
| throw new UnsupportedOperationException("Not implemented - immutable"); |
| } |
| |
| public void removeMessageResourcesConfig(MessageResourcesConfig config) { |
| throw new UnsupportedOperationException("Not implemented - immutable"); |
| } |
| |
| public ExceptionConfig findException(Class arg0) { |
| throw new UnsupportedOperationException("NYI"); |
| } |
| } |