private static void update(int _nProductForm) throws PureException {
   IStatement query = null;
   IObjects result = null;
   try {
     int[] aValues = { //
       1964, //
       1978, 1979, //
       1980, 1981, 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1989, //
       1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, //
       2000, 2001, 2002, 2003, 2004, 2005, 2006 //
     };
     IProductMgr mgr = (IProductMgr) ArkContentHelper.getContentMgrOf(Product.class);
     String strSQL =
         "SELECT {this.id},{this.serialNo},{this.publishDate} FROM {this} WHERE {this.productForm}="
             + _nProductForm
             + " AND year({this.publishDate})=?";
     for (int j = 0; j < aValues.length; j++) {
       query = mgr.createQuery(strSQL, 0);
       query.setInt(0, aValues[j]);
       result = query.executeQuery();
       int i = 1;
       for (Iterator iter = result.iterator(); iter.hasNext(); i++) {
         Product product = (Product) iter.next();
         int nSerialNo = aValues[j] * 1000000 + 100000 * _nProductForm + i;
         System.out.println(product.getId() + " : " + nSerialNo);
         product.setProperty("serialNo", nSerialNo);
         mgr.save(product);
       }
     }
   } finally {
     DolphinHelper.clear(result, query);
   }
 }
  public DolphinObject next() throws PureException {
    Publication publication = null;
    try {
      String sLine = buffReader.readLine();
      if (sLine == null) {
        clear();
        return null;
      }
      IProductMgr mgr = (IProductMgr) ArkContentHelper.getContentMgrOf(Product.class);
      int i = 0, j = 1;
      String sName, sValue = "", sTemp, sAuthorNames = "";
      while (sLine != null) {
        Product product = new Product();
        sName = sLine.trim();
        if ("题名".equals(sName)) {
          sValue = buffReader.readLine().trim();
        } else {
          sName = buffReader.readLine().trim();
          if ("题名".equals(sName)) {
            sValue = buffReader.readLine().trim();
          } else {
            sName = buffReader.readLine().trim();
            sValue = buffReader.readLine().trim();
          }
        }
        sTemp = buffReader.readLine().trim();
        for (i = 0; !sTemp.equals("作者"); i++) {
          sValue += sTemp;
          sTemp = buffReader.readLine().trim();
        }
        logger.debug("[" + (j++) + "] 题名:" + sValue);
        product.setProductName(sValue);
        sName = sTemp;
        //                sName = buffReader.readLine().trim();
        if (sName.length() == 0) {
          sName = buffReader.readLine().trim();
        }
        if ("作者".equals(sName)) {
          sValue = buffReader.readLine().trim();
          if (sValue.length() > 0) {
            sAuthorNames = sValue.substring(0, sValue.length() - 1);
          } else {
            sAuthorNames = "";
          }
          //                    logger.debug("作者:" + sValue);
        }
        sName = buffReader.readLine().trim();
        if (sName.length() == 0) {
          sName = buffReader.readLine().trim();
        }
        if ("中文关键词".equals(sName)) {
          sValue = buffReader.readLine().trim();
          product.setProperty("chineseKeyWords", sValue);
          //                    logger.debug("中文关键词:" + sValue);
        }
        sName = buffReader.readLine().trim();
        if (sName.length() == 0) {
          sName = buffReader.readLine().trim();
        }
        if ("单位".equals(sName)) {
          sValue = buffReader.readLine().trim();
        }
        sTemp = buffReader.readLine().trim();
        for (i = 0; !sTemp.equals("中文摘要"); i++) {
          sValue += sTemp;
          sTemp = buffReader.readLine().trim();
        }
        //                logger.debug("单位:" + sValue);
        product.setProperty("englishAuthorsDepts", sValue);
        int nPos = sValue.indexOf(",");
        if (nPos == -1) nPos = sValue.indexOf(" ");
        String sFirstAuthorDept = sValue.substring(0, nPos);
        product.setProperty("englishDept", sFirstAuthorDept);
        if (sFirstAuthorDept.indexOf("浙江大学") >= 0) {
          product.setProperty("isZju", true);
        } else {
          product.setProperty("isZju", false);
        }
        //                logger.debug("第一单位:" + sFirstAuthorDept + "; isZju:" +
        // product.getPropertyAsString("isZju"));

        sValue = buffReader.readLine().trim();
        for (i = 0; !sTemp.equals("基金"); i++) {
          sValue += sTemp;
          sTemp = buffReader.readLine().trim();
        }
        if (sValue.endsWith("中文摘要")) {
          sValue = sValue.substring(0, sValue.indexOf("中文摘要"));
        }
        //                logger.debug("中文摘要:" + sValue);
        product.setProperty("abstraction", sValue);

        sValue = buffReader.readLine().trim();
        for (i = 0; !sTemp.equals("刊名"); i++) {
          sValue += sTemp;
          sTemp = buffReader.readLine().trim();
        }
        if (sValue.endsWith("基金")) {
          sValue = sValue.substring(0, sValue.indexOf("基金"));
        }
        //                logger.debug("基金:" + sValue);
        product.setProperty("fund", sValue);

        sValue = buffReader.readLine().trim();
        //                logger.debug("刊名:" + sValue);
        product.setPublicationName(sValue);

        sName = buffReader.readLine().trim();
        if (sName.length() == 0) {
          sName = buffReader.readLine().trim();
        }
        if ("ISSN".equals(sName)) {
          sValue = buffReader.readLine().trim();
          //                    logger.debug("ISSN:" + sValue);
          product.setISSNCode(sValue);
          product.setPublicationId(getPublicationId(sValue));
        }
        sName = buffReader.readLine().trim();
        if (sName.length() == 0) {
          sName = buffReader.readLine().trim();
        }
        int nPublicationYear = 0;
        if ("年".equals(sName)) {
          sValue = buffReader.readLine().trim();
          //                    logger.debug("年:" + sValue);
          nPublicationYear = Integer.parseInt(sValue);
          product.setPublicationYear(nPublicationYear);
        }
        sName = buffReader.readLine().trim();
        if (sName.length() == 0) {
          sName = buffReader.readLine().trim();
        }
        if ("期".equals(sName)) {
          sValue = buffReader.readLine().trim();
          //                    logger.debug("期:" + sValue);
          product.setPublishNo(sValue);
        }
        sName = buffReader.readLine().trim();
        if (sName.length() == 0) {
          sName = buffReader.readLine().trim();
        }
        int nFirstAuthorId = 0;
        if ("第一责任人".equals(sName)) {
          sValue = buffReader.readLine().trim();
          //                    logger.debug("第一责任人:" + sValue);
          if (sValue.length() > 0) {
            sValue = sValue.substring(0, sValue.length() - 1);
            product.setProperty("firstAuthorName", sValue);
            nFirstAuthorId = getAuthorId(sValue);
            if (nFirstAuthorId > 0) {
              product.setProperty("firstAuthorType", 1);
              product.setInsideAuthorId(nFirstAuthorId);
              product.setInsideAuthorNo(1);
            } else {
              product.setProperty("firstAuthorType", 6);
            }
          }
        }
        sLine = buffReader.readLine();
        //                logger.debug("-----------------");

        // 论著编号
        product.setProductForm(ProductConstants.SPRODUCT_FORM_PAPER);
        product.setPublishDate(
            DateTimeUtil.parse(nPublicationYear + "-01-01", ForceConstants.DATE_FORMAT_STR));
        product.setProperty("serialNo", mgr.generateSerialNo(product));
        product.setProperty("isImport", true);
        product.setCreateUser("2006国内论文txt文件");

        String[] arrNames = StrUtil.split(sAuthorNames, ";");
        product.setAuthorsNum(arrNames.length);
        mgr.save(product);

        // --- save authors
        int nProductId = product.getId();
        //                logger.debug("product id : ; " + product.getId());

        IObjUserMappingMgr puMgr =
            (IObjUserMappingMgr) ArkContentHelper.getContentMgrOf(ObjUserMapping.class);
        boolean bFirstInsideAuthor = true;
        for (int k = 0; k < arrNames.length; k++) {
          ObjUserMapping author = new ObjUserMapping();
          int nAuthorId = getAuthorId(arrNames[k]);
          if (nAuthorId > 0) {
            author.setUserType("1");
            author.setUserId(nAuthorId);
            if (nFirstAuthorId == 0 && bFirstInsideAuthor) {
              product.setInsideAuthorId(nAuthorId);
              product.setInsideAuthorNo(k + 1);
              bFirstInsideAuthor = false;
            }
          } else {
            author.setUserType("2");
            author.setUserId(nAuthorId);
          }
          author.setUserName(arrNames[k]);
          author.setOrderNo(k + 1);
          author.setObjId(nProductId);
          author.setObjType(SRMTypes.PRODUCT);
          author.setWeightYear(WeightConstants.WEIGHT_YEAR_DEFAULT_VALUE);
          author.setCreateUser("2006国内论文txt文件");
          puMgr.save(author);
        }
      }
    } catch (IOException ex) {
      logger.error("IOException");
    }
    return publication;
  }