⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 xmlmodelhandler.java

📁 一个非常好的FRAMWRK!是一个外国组织做的!不!
💻 JAVA
字号:
/**
 * Copyright 2003-2005 the original author or authors.
 * 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.
  */

package com.jdon.model.handler;

import javax.servlet.http.HttpServletRequest;

import com.jdon.bussinessproxy.meta.MethodMetaArgs;
import com.jdon.controller.events.Event;
import com.jdon.controller.events.EventModel;
import com.jdon.controller.model.Model;
import com.jdon.controller.service.Service;
import com.jdon.controller.service.ServiceFacade;
import com.jdon.model.ModelHandler;
import com.jdon.util.Debug;


/**
 *  it is a meta ModelHandler, all methods are finished by
 *  the definition in jdonframework.xml
 * 
 *  XmlModelHandler is loaded by XmlHandlerClassFactory from container.xml
 * 
 *  XmlModelHandler is the client of container, XmlModelHandler will be made
 *  many instance by HandlerObjectFactory.
 * 
 * @author banq
 */
public class XmlModelHandler extends ModelHandler {
  private final static String module = XmlModelHandler.class.getName();
  
  private HandlerMethodMetaArgsFactory maFactory;;
  
  private ServiceFacade serviceFacade;

   
    /**
     * @param service
     */
   public XmlModelHandler() {
        this.maFactory = new HandlerMethodMetaArgsFactory();
        this.serviceFacade = new ServiceFacade();
   }
  /**
   * if your application need initialize the ModelForm,
   * this method is a option.
   * extends thie method. 
   */
  public Model initModel(HttpServletRequest request) throws Exception {
    Debug.logVerbose(" init model" , module);
    Model result = null;
    try {
        HandlerMetaDef hm = this.modelMapping.getHandlerMetaDef();
        String serviceName = hm.getServiceRef();
        MethodMetaArgs methodMetaArgs = maFactory.createinitMethod(hm);
        
        Service service = serviceFacade.getService(request);
        if (methodMetaArgs != null)
        result = (Model)service.execute(serviceName,
                                        methodMetaArgs,
                                        request);
    } catch (Exception e) {
       Debug.logError(" initModel error: " + e , module);
       throw new Exception(e);
    }
    return result;
  }
  
  

  public Model findModelByKey(String keyValue, HttpServletRequest request) throws
      java.lang.Exception {
    Debug.logVerbose(" findModel By Key:" + keyValue, module);
    Object result;
    try {
        HandlerMetaDef hm = this.modelMapping.getHandlerMetaDef();
        String serviceName = hm.getServiceRef();
        MethodMetaArgs methodMetaArgs = maFactory.createfindMethod(hm, keyValue);
        Debug.logVerbose(" create MethodMetaArgs for service Name:" + serviceName, module);
        Service service = serviceFacade.getService(request);
        result = service.execute(serviceName,
                                        methodMetaArgs,
                                        request);
    } catch (Exception e) {
        Debug.logError(" findModelByKey error: " + e + " maybe not define getMethod", module);
        throw new Exception(e);
    }
    Debug.logVerbose(" result type:" + result.getClass().getName(), module);
    return (Model) result;
  }

  public void serviceAction(EventModel em, HttpServletRequest request) throws
      java.lang.Exception {
      Debug.logVerbose(" enter serviceAction " , module);
    try {
      HandlerMetaDef hm = this.modelMapping.getHandlerMetaDef();
      String serviceName = hm.getServiceRef();
      MethodMetaArgs methodMetaArgs = null;
      switch (em.getActionType()) {
        case Event.CREATE:
          methodMetaArgs = maFactory.createCreateMethod(hm, em);
          break;
        case Event.EDIT:
          methodMetaArgs = maFactory.createUpdateMethod(hm, em);
          break;
        case Event.DELETE:
          methodMetaArgs = maFactory.createDeleteMethod(hm, em);
          break;
      }
      Debug.logVerbose( serviceName + methodMetaArgs.getMethodName() + " action  " , module);      
      Service service = serviceFacade.getService(request);
      service.execute(serviceName, methodMetaArgs, request);
    } catch (Exception ex) {
      Debug.logError(" serviceAction Error: " + ex + " maybe not define createMethod or updateMethod or deleteMethod", module);
      throw new Exception(" serviceAction Error:" + ex);
    }

  }
  
 
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -