| /* |
| * Copyright 2004 The Apache Software Foundation. |
| * |
| * Licensed 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. |
| * |
| * $Header:$ |
| */ |
| package org.apache.action2.legacy; |
| |
| import org.apache.struts.action.ActionMapping; |
| import org.apache.struts.action.ActionForward; |
| import org.apache.struts.config.ModuleConfig; |
| import org.apache.struts.config.ExceptionConfig; |
| import org.apache.struts.config.ForwardConfig; |
| import com.opensymphony.xwork.config.entities.ActionConfig; |
| import com.opensymphony.xwork.config.entities.ResultConfig; |
| import com.opensymphony.xwork.config.entities.ExceptionMappingConfig; |
| |
| import java.util.Iterator; |
| import java.util.Map; |
| import java.util.List; |
| import java.util.HashMap; |
| |
| /** |
| * Wrapper for a Struts 1.x ActionMapping based on an XWork ActionConfig. Using a wrapper object |
| * allows us to be explicit about what is and isn't implemented. |
| */ |
| class WrapperActionMapping extends ActionMapping { |
| |
| private ActionConfig delegate; |
| private String actionPath; |
| |
| public WrapperActionMapping(ActionConfig delegate) { |
| this.delegate = delegate; |
| forwards = null; |
| exceptions = null; |
| } |
| |
| public WrapperActionMapping(ActionConfig delegate, String actionPath, ModuleConfig moduleConfig) { |
| this(delegate); |
| this.moduleConfig = moduleConfig; |
| this.actionPath = actionPath; |
| } |
| |
| /** |
| * Add Struts ForwardConfigs (from XWork ResultConfigs). |
| */ |
| private void initActionForwards() { |
| if (forwards == null) { |
| forwards = new HashMap(); |
| StrutsFactory strutsFactory = StrutsFactory.getStrutsFactory(); |
| Map results = delegate.getResults(); |
| for (Iterator i = results.entrySet().iterator(); i.hasNext();) { |
| Map.Entry entry = (Map.Entry) i.next(); |
| ActionForward wrapper = strutsFactory.createActionForward((ResultConfig) entry.getValue()); |
| forwards.put(wrapper.getName(), wrapper); |
| } |
| } |
| } |
| |
| /** |
| * Add XWork ExceptionConfigs (from XWork ExceptionMappingConfigs) |
| */ |
| private void initExceptionConfigs() { |
| if (exceptions == null) { |
| exceptions = new HashMap(); |
| StrutsFactory strutsFactory = StrutsFactory.getStrutsFactory(); |
| List exceptionMappings = delegate.getExceptionMappings(); |
| for (Iterator i = exceptionMappings.iterator(); i.hasNext();) { |
| ExceptionConfig wrapper = strutsFactory.createExceptionConfig((ExceptionMappingConfig) i.next()); |
| exceptions.put(wrapper.getType(), wrapper); |
| } |
| } |
| } |
| |
| public ActionForward findForward(String name) { |
| initActionForwards(); |
| return super.findForward(name); |
| } |
| |
| public String[] findForwards() { |
| initActionForwards(); |
| return super.findForwards(); |
| } |
| |
| public ForwardConfig findForwardConfig(String name) { |
| initActionForwards(); |
| return super.findForwardConfig(name); |
| } |
| |
| public ForwardConfig[] findForwardConfigs() { |
| initActionForwards(); |
| return super.findForwardConfigs(); |
| } |
| |
| public ExceptionConfig findExceptionConfig(String type) { |
| initExceptionConfigs(); |
| return super.findExceptionConfig(type); |
| } |
| |
| public ExceptionConfig[] findExceptionConfigs() { |
| initExceptionConfigs(); |
| return super.findExceptionConfigs(); |
| } |
| |
| public ExceptionConfig findException(Class type) { |
| initExceptionConfigs(); |
| return super.findException(type); |
| } |
| |
| public ActionForward getInputForward() { |
| throw new UnsupportedOperationException("NYI"); |
| } |
| |
| public ModuleConfig getModuleConfig() { |
| if (moduleConfig == null) { |
| StrutsFactory strutsFactory = StrutsFactory.getStrutsFactory(); |
| moduleConfig = strutsFactory.createModuleConfig(delegate.getPackageName()); |
| } |
| |
| return moduleConfig; |
| } |
| |
| public void setModuleConfig(ModuleConfig moduleConfig) { |
| throw new UnsupportedOperationException("Not implemented - immutable"); |
| } |
| |
| public String getAttribute() { |
| throw new UnsupportedOperationException("NYI"); |
| } |
| |
| public void setAttribute(String attribute) { |
| throw new UnsupportedOperationException("Not implemented - immutable"); |
| } |
| |
| public String getForward() { |
| throw new UnsupportedOperationException("NYI"); |
| } |
| |
| public void setForward(String forward) { |
| throw new UnsupportedOperationException("Not implemented - immutable"); |
| } |
| |
| public String getInclude() { |
| throw new UnsupportedOperationException("NYI"); |
| } |
| |
| public void setInclude(String include) { |
| throw new UnsupportedOperationException("Not implemented - immutable"); |
| } |
| |
| public String getInput() { |
| throw new UnsupportedOperationException("NYI"); |
| } |
| |
| public void setInput(String input) { |
| throw new UnsupportedOperationException("Not implemented - immutable"); |
| } |
| |
| public String getMultipartClass() { |
| throw new UnsupportedOperationException("NYI"); |
| } |
| |
| public void setMultipartClass(String multipartClass) { |
| throw new UnsupportedOperationException("Not implemented - immutable"); |
| } |
| |
| public String getName() { |
| // Note: in Struts, this is a name reference to a form bean defined in the config file. |
| throw new UnsupportedOperationException("NYI"); |
| } |
| |
| public void setName(String name) { |
| throw new UnsupportedOperationException("Not implemented - immutable"); |
| } |
| |
| public String getParameter() { |
| throw new UnsupportedOperationException("NYI"); |
| } |
| |
| public void setParameter(String parameter) { |
| throw new UnsupportedOperationException("Not implemented - immutable"); |
| } |
| |
| public String getPath() { |
| return actionPath; |
| } |
| |
| public void setPath(String path) { |
| throw new UnsupportedOperationException("Not implemented - immutable"); |
| } |
| |
| public String getPrefix() { |
| throw new UnsupportedOperationException("NYI"); |
| } |
| |
| public void setPrefix(String prefix) { |
| throw new UnsupportedOperationException("Not implemented - immutable"); |
| } |
| |
| public String getRoles() { |
| throw new UnsupportedOperationException("NYI"); |
| } |
| |
| public void setRoles(String roles) { |
| throw new UnsupportedOperationException("Not implemented - immutable"); |
| } |
| |
| public String[] getRoleNames() { |
| throw new UnsupportedOperationException("NYI"); |
| } |
| |
| public String getScope() { |
| throw new UnsupportedOperationException("Not implemented - immutable"); |
| } |
| |
| public void setScope(String scope) { |
| throw new UnsupportedOperationException("NYI"); |
| } |
| |
| public String getSuffix() { |
| throw new UnsupportedOperationException("NYI"); |
| } |
| |
| public void setSuffix(String suffix) { |
| throw new UnsupportedOperationException("Not implemented - immutable"); |
| } |
| |
| public String getType() { |
| throw new UnsupportedOperationException("NYI"); |
| } |
| |
| public void setType(String type) { |
| throw new UnsupportedOperationException("Not implemented - immutable"); |
| } |
| |
| public boolean getUnknown() { |
| throw new UnsupportedOperationException("NYI"); |
| } |
| |
| public void setUnknown(boolean unknown) { |
| throw new UnsupportedOperationException("Not implemented - immutable"); |
| } |
| |
| public boolean getValidate() { |
| throw new UnsupportedOperationException("NYI"); |
| } |
| |
| public void setValidate(boolean validate) { |
| throw new UnsupportedOperationException("Not implemented - immutable"); |
| } |
| |
| public void removeExceptionConfig(ExceptionConfig config) { |
| throw new UnsupportedOperationException("Not implemented - immutable"); |
| } |
| |
| public void removeForwardConfig(ForwardConfig config) { |
| throw new UnsupportedOperationException("Not implemented - immutable"); |
| } |
| |
| public void addExceptionConfig(ExceptionConfig config) { |
| throw new UnsupportedOperationException("Not implemented - immutable"); |
| } |
| |
| public void addForwardConfig(ForwardConfig config) { |
| throw new UnsupportedOperationException("Not implemented - immutable"); |
| } |
| |
| public String toString() { |
| return "wrapper -> " + delegate.toString(); |
| } |
| } |