Ejemplo n.º 1
0
  public static void readAgenda(
      MarshallerReaderContext context, RuleData _ruleData, DefaultAgenda agenda) {
    ProtobufMessages.Agenda _agenda = _ruleData.getAgenda();

    for (org.drools.core.marshalling.impl.ProtobufMessages.Agenda.AgendaGroup _agendaGroup :
        _agenda.getAgendaGroupList()) {
      InternalAgendaGroup group =
          (InternalAgendaGroup) agenda.getAgendaGroup(_agendaGroup.getName(), context.ruleBase);
      group.setActive(_agendaGroup.getIsActive());
      agenda.getAgendaGroupsMap().put(group.getName(), group);
    }

    for (String _groupName : _agenda.getFocusStack().getGroupNameList()) {
      agenda.addAgendaGroupOnStack(agenda.getAgendaGroup(_groupName));
    }

    for (ProtobufMessages.Agenda.RuleFlowGroup _ruleFlowGroup : _agenda.getRuleFlowGroupList()) {
      RuleFlowGroupImpl rfgi =
          new RuleFlowGroupImpl(
              _ruleFlowGroup.getName(),
              _ruleFlowGroup.getIsActive(),
              _ruleFlowGroup.getIsAutoDeactivate());
      agenda.getRuleFlowGroupsMap().put(_ruleFlowGroup.getName(), rfgi);

      //            readActivations( context,
      //                             _ruleFlowGroup.getActivationList() );

      for (NodeInstance _nodeInstance : _ruleFlowGroup.getNodeInstanceList()) {
        rfgi.addNodeInstance(
            _nodeInstance.getProcessInstanceId(), _nodeInstance.getNodeInstanceId());
      }
    }

    readActivations(context, _agenda.getActivationList(), _agenda.getRneaList());
    agenda.setActivationsFilter(context.filter);
  }