forum.bitel.ru
http://forum.bitel.ru/

[6.0] ошибка компиляции dynaction
http://forum.bitel.ru/viewtopic.php?f=19&t=9572
Страница 1 из 1

Автор:  nik247 [ 13 авг 2014, 19:10 ]
Заголовок сообщения:  [6.0] ошибка компиляции dynaction

Есть оригинальный класс: bitel.billing.server.contract.object.action.ActionObjectTable
Мне его нужно немного переделать через dynaction.
Скопипастил с оригинала, но скомпилировать никак не получается....
Код:
package ru.bitel.bgbilling.modules.contract.action;

import bitel.billing.common.TimeUtils;
import bitel.billing.server.contract.object.action.base.ActionBase;
import bitel.billing.server.contract.object.bean.ContractObject;
import bitel.billing.server.contract.object.bean.ObjectManager;
import bitel.billing.server.contract.object.bean.ObjectType;
import bitel.billing.server.contract.object.bean.ObjectTypeManager;
import java.sql.SQLException;
import java.util.Map;
import org.w3c.dom.Element;
import ru.bitel.bgbilling.common.BGException;
import ru.bitel.bgbilling.common.BGIllegalArgumentException;
import ru.bitel.common.XMLUtils;
import ru.bitel.common.model.Page;
import ru.bitel.common.model.SearchResult;

public class ActionObjectTable
    extends bitel.billing.server.contract.object.action.ActionObjectTable
{
  @Override
  public void doAction()
    throws SQLException, BGException
  {
    if (this.cid <= 0)
    {
      throw new BGIllegalArgumentException();
    }

    Page page = getPage();

    Element table = createElement(this.rootNode, "table");
    Element data = createElement(table, "data");

    Map typeMap = new ObjectTypeManager(this.con).getTypeMap();
    SearchResult searchResult = new SearchResult();
    searchResult.setPage(page);
    new ObjectManager(this.con).findObjectList(searchResult, this.cid, getIntParameter("filterTypeId", -1), getParameter("filterTitle"));

    for ( ContractObject object : searchResult.getList() )
    {
      Element row = createElement(data, "row");

      row.setAttribute("id", String.valueOf(object.getId()));
      row.setAttribute("title", object.getTitle());

      ObjectType type = (ObjectType)typeMap.get(Integer.valueOf(object.getTypeId()));
      if (type != null)
      {
        row.setAttribute("type", type.getTitle());
      }
      else
      {
        row.setAttribute("type", "???");
      }
      row.setAttribute("type_id", String.valueOf(object.getTypeId()));
      row.setAttribute("period", TimeUtils.formatPeriod(object.getDate1(), object.getDate2()));
    }
    setPageAttribute(table, page);

    if (getBooleanParameter("loadObjectTypes", false))
    {
      XMLUtils.createListElement(this.rootNode, "types", new ObjectTypeManager(this.con).getTypeList(false), ObjectType.class, new String[] { "id", "title" });
    }
  }
}

Мне нужно отфильтровать вывод вот этого куска (список типов объектов в договоре):
Код:
if (getBooleanParameter("loadObjectTypes", false))
    {
      XMLUtils.createListElement(this.rootNode, "types", new ObjectTypeManager(this.con).getTypeList(false), ObjectType.class, new String[] { "id", "title" });
    }

Но сначала нужно минимум получить тоже самое....
Ошибка следующая...
Код:
./dyn/ru/bitel/bgbilling/modules/contract/action/ActionObjectTable.java:41: incompatible types
found   : java.lang.Object
required: bitel.billing.server.contract.object.bean.ContractObject
    for ( ContractObject object : searchResult.getList() )
                                                      ^
Note: ./dyn/ru/bitel/bgbilling/modules/contract/action/ActionObjectTable.java uses unchecked or unsafe operations.
Note: Recompile with -Xlint:unchecked for details.
1 error

Автор:  Cromeshnic [ 13 авг 2014, 19:52 ]
Заголовок сообщения:  Re: [6.0] ошибка компиляции dynaction

Декомпилятор часто опускает параметризованные классы.
Очевидно, нужно
Код:
SearchResult<ContractObject> searchResult = new SearchResult<ContractObject>();

Автор:  nik247 [ 13 авг 2014, 20:54 ]
Заголовок сообщения:  Re: [6.0] ошибка компиляции dynaction

Cromeshnic писал(а):
Декомпилятор часто опускает параметризованные классы.
Очевидно, нужно
Код:
SearchResult<ContractObject> searchResult = new SearchResult<ContractObject>();

Спасибо большое - ошибка пропала.
Буду дальше доделывать.

Страница 1 из 1 Часовой пояс: UTC + 5 часов [ Летнее время ]
Powered by phpBB® Forum Software © phpBB Group
http://www.phpbb.com/