2015-01-07 2 views
0

Я пытаюсь получить доступ к поведению дедушки и бабушки и его хранилищу данных в JADE. У меня есть вложенное поведение уровня 3 в агенте Supervisor, как показано на рисунке ниже. enter image description hereКак получить доступ к поведению родителя второго уровня (grandparent) в JADE?

является иерархией

ContractNetResponder->Sequencial->ContractNetInitiator 

ContractResponder(blue)->InquireServiceList(white)->Inquire(yellow) 

Я пытаюсь доступ к хранилищу данных ContractResponder в поведении Inquire. Я могу получить доступ к поведению InquireServiceList из поведения Inquire, но не к ContractResponder. Это то, что я до сих пор:

InquireServiceList parent= (InquireServiceList) this.getParent(); 
      System.out.println("1!! Parent ="+parent.getBehaviourName()+" Class ="+parent.getClass()); 

      ContractNetResponder grandparent= parent. //I need to get parent here 

ответ

0

Одним из путей решения этой проблемы было overide метод GetParent() в родительском поведении и изменения visibilty от защищенных общественности. Это решение было предложено Arnould Guidat в списке рассылки для разработки jade-development.

0

Также проверьте root(); метод в поведении для доступа к корневому поведению.