public class UpdateAssetMetadataAction
    extends Action
    implements Serializable {
  private ServletConfig config;  final public ServletConfig getServletConfig() {
    config = getServlet().getServletConfig();
    return config;
  }  public ActionForward execute(ActionMapping mapping, ActionForm form,
                               HttpServletRequest request,
                               HttpServletResponse response) {
    /////////////////security tier////////////////
    DBMappingDynabean userInfo = new DBMappingDynabean();
    int result = SecuCtx.getUserInfo(request, userInfo, 0);
    if (result < 0) {
      ActionErrors errors = new ActionErrors();
      String errorDesc = Error.getDesc(result, "UNKNOW_SYSTEM_ERROR");
      errors.add(errorDesc, (new ActionError(errorDesc)));
      saveErrors(request, errors);
      return mapping.findForward("Login");
    }
    /////////////////security tier////////////////    ////////////////////////////upload iamge --start///////////////////////
    try {
      System.out.println("*************1 upload start ***********************"+config);
      SmartUpload mySmartUpload = new SmartUpload();
      mySmartUpload.setMaxFileSize(50000000);
      // Initialization      System.out.println("*************2 upload start ***********************"+config);
      ServletConfig config = getServletConfig();
      System.out.println("*************3 upload start ***********************" +
                         config);
      mySmartUpload.initialize(config, request, response);
      System.out.println("*************4 upload start ***********************" +
                         config);
      // Upload
      mySmartUpload.upload();
      System.out.println("*************5 upload start ***********************" +
                         config);
      // Save the file with the original name
      // in a virtual path of the web server
      String fileExt = mySmartUpload.getFiles().getFile(0).getFileExt();
      //String datetime = mySmartUpload.getRequest().getParameter("datetime");
      System.out.println("fileExt " + fileExt);
      //System.out.println("datetime "+datetime);
      String datetime = "datetime";
      mySmartUpload.getFiles().getFile(0).saveAs(SBConfiger.getString(
          "activex.storyboard.ftppath") + datetime + "." + fileExt);
      System.out.println("Image : " + SBConfiger.getString(
          "activex.storyboard.ftppath") + datetime + "." + fileExt);
      System.out.println("************* upload end ***********************");
    }
    catch (Exception e) {
      System.out.println("Error : " + e.toString());
    }
    ////////////////////////////upload image --end ////////////////////////    String userID = userInfo.get("user_id").toString();
    DynaValidatorActionForm sbsum = (DynaValidatorActionForm) form;
    String isNewVersion = request.getParameter("IsNewVersion");
    if (isNewVersion != null && isNewVersion.equals("true")) {
      result = AssetMetadataUtil.getAssetMetadataUtil().newAssetVersion(sbsum,
          userID);
    }
    else {
      result = AssetMetadataUtil.getAssetMetadataUtil().updateAssetMetadata(
          sbsum, userID);
    }    //////////////////////////////forward//////////////////////////////
    String type = ( (String) sbsum.get("AssetType"));
    String assetID = ( (String) sbsum.get("AssetID"));    AssetCommonDetails acds = new AssetCommonDetails();
    acds.setAsset_id(assetID);    result = AssetsUtil.getAssetsUtil().getAssetDetailsById(acds);    request.setAttribute("assetCommonDetails", acds);    IHashMap map = new IHashMap();
    result = StoryboardUtil.getStoryboardUtil().
        initDataForOpenStoryboardSummary(
        map);    if (result < 0) {
      ActionErrors errors = new ActionErrors();
      String errorDesc = Error.getDesc(result, "UNKNOW_SYSTEM_ERROR");
      errors.add(errorDesc, (new ActionError(errorDesc)));
      saveErrors(request, errors);
      saveToken(request);
      return new ActionForward(mapping.getInput());
    }    String[] keys = map.keys();
    for (int i = 0; i < keys.length; i++) {
      request.setAttribute(keys[i], map.get(keys[i]));
    }    if (type.equals(AssetConstance.STORYBOARD_TOTRENDASSETDETAILS)) {
      result = AssetsUtil.getAssetsUtil().getAssetTrend(assetID, sbsum);
      return mapping.findForward("ToTrendAssetDetails");
    }
    if (type.equals(AssetConstance.STORYBOARD_TOCOLORSDETAILS)) {
      result = AssetsUtil.getAssetsUtil().getAssetColors(assetID, sbsum);
      return mapping.findForward("ToColorsDetails");
    }
    if (type.equals(AssetConstance.STORYBOARD_TOFABRICSDETAILS)) {
      result = AssetsUtil.getAssetsUtil().getAssetFabric(assetID, sbsum);
      return mapping.findForward("ToFabricsDetails");
    }
    if (type.equals(AssetConstance.STORYBOARD_TOPRINTSPATTERNSDETAILS)) {
      result = AssetsUtil.getAssetsUtil().getAssetPrintParttern(assetID, sbsum);
      return mapping.findForward("ToPrintsPatternsDetails");
    }
    if (type.equals(AssetConstance.STORYBOARD_TOSTYLESDETAILS)) {
      result = AssetsUtil.getAssetsUtil().getAssetStyle(assetID, sbsum);
      return mapping.findForward("ToStylesDetails");
    }
    if (type.equals(AssetConstance.STORYBOARD_TOTRIMSDETAILS)) {
      result = AssetsUtil.getAssetsUtil().getAssetTrim(assetID, sbsum);
      return mapping.findForward("ToTrimsDetails");
    }
    if (type.equals(AssetConstance.STORYBOARD_TOOTHERDETAILS)) {
      result = AssetsUtil.getAssetsUtil().getAssetDetail(assetID, sbsum);
      return mapping.findForward("ToOtherDetails");
    }
    result = AssetsUtil.getAssetsUtil().getAssetDetail(assetID, sbsum);
    return mapping.findForward("ToOtherDetails");
  }}