Plan.html

744 lines | 32.314 kB Blame History Raw Download
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<!--NewPage-->
<HTML>
<HEAD>
<!-- Generated by javadoc (build 1.6.0_17) on Sun Jan 31 23:53:46 EST 2010 -->
<TITLE>
Plan
</TITLE>

<META NAME="date" CONTENT="2010-01-31">

<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../../stylesheet.css" TITLE="Style">

<SCRIPT type="text/javascript">
function windowTitle()
{
    if (location.href.indexOf('is-external=true') == -1) {
        parent.document.title="Plan";
    }
}
</SCRIPT>
<NOSCRIPT>
</NOSCRIPT>

</HEAD>

<BODY BGCOLOR="white" onload="windowTitle();">
<HR>


<!-- ========= START OF TOP NAVBAR ======= -->
<A NAME="navbar_top"><!-- --></A>
<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
<TR>
<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
<A NAME="navbar_top_firstrow"><!-- --></A>
<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
  <TR ALIGN="center" VALIGN="top">
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/Plan.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
  </TR>
</TABLE>
</TD>
<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
</EM>
</TD>
</TR>

<TR>
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
&nbsp;<A HREF="../../../../../../br/pucrio/inf/les/bdijade/plan/OutputPlanBody.html" title="interface in br.pucrio.inf.les.bdijade.plan"><B>PREV CLASS</B></A>&nbsp;
&nbsp;<A HREF="../../../../../../br/pucrio/inf/les/bdijade/plan/PlanBody.html" title="interface in br.pucrio.inf.les.bdijade.plan"><B>NEXT CLASS</B></A></FONT></TD>
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
  <A HREF="../../../../../../index.html?br/pucrio/inf/les/bdijade/plan/Plan.html" target="_top"><B>FRAMES</B></A>  &nbsp;
&nbsp;<A HREF="Plan.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
&nbsp;<SCRIPT type="text/javascript">
  <!--
  if(window==top) {
    document.writeln('<A HREF="../../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
  }
  //-->
</SCRIPT>
<NOSCRIPT>
  <A HREF="../../../../../../allclasses-noframe.html"><B>All Classes</B></A>
</NOSCRIPT>


</FONT></TD>
</TR>
<TR>
<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
DETAIL:&nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
</TR>
</TABLE>
<A NAME="skip-navbar_top"></A>
<!-- ========= END OF TOP NAVBAR ========= -->

<HR>
<!-- ======== START OF CLASS DATA ======== -->
<H2>
<FONT SIZE="-1">
br.pucrio.inf.les.bdijade.plan</FONT>
<BR>
Class Plan</H2>
<PRE>
java.lang.Object
  <IMG SRC="../../../../../../resources/inherit.gif" ALT="extended by "><A HREF="../../../../../../br/pucrio/inf/les/bdijade/util/MetadataElement.html" title="class in br.pucrio.inf.les.bdijade.util">br.pucrio.inf.les.bdijade.util.MetadataElement</A>
      <IMG SRC="../../../../../../resources/inherit.gif" ALT="extended by "><B>br.pucrio.inf.les.bdijade.plan.Plan</B>
</PRE>
<DL>
<DT><B>Direct Known Subclasses:</B> <DD><A HREF="../../../../../../br/pucrio/inf/les/bdijade/plan/SimplePlan.html" title="class in br.pucrio.inf.les.bdijade.plan">SimplePlan</A></DD>
</DL>
<HR>
<DL>
<DT><PRE>public abstract class <B>Plan</B><DT>extends <A HREF="../../../../../../br/pucrio/inf/les/bdijade/util/MetadataElement.html" title="class in br.pucrio.inf.les.bdijade.util">MetadataElement</A></DL>
</PRE>

<P>
This class represents the plan abstraction. It defines the goals that the
 plan can achieve, in which context, and knows which is its plan body.
<P>

<P>
<DL>
<DT><B>Author:</B></DT>
  <DD>ingrid</DD>
</DL>
<HR>

<P>
<!-- =========== FIELD SUMMARY =========== -->

<A NAME="field_summary"><!-- --></A>
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
<B>Field Summary</B></FONT></TH>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>private &nbsp;java.util.Set&lt;java.lang.Class&lt;? extends <A HREF="../../../../../../br/pucrio/inf/les/bdijade/goal/Goal.html" title="interface in br.pucrio.inf.les.bdijade.goal">Goal</A>&gt;&gt;</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../../br/pucrio/inf/les/bdijade/plan/Plan.html#goals">goals</A></B></CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>protected &nbsp;java.lang.String</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../../br/pucrio/inf/les/bdijade/plan/Plan.html#id">id</A></B></CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>private &nbsp;java.util.Set&lt;jade.lang.acl.MessageTemplate&gt;</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../../br/pucrio/inf/les/bdijade/plan/Plan.html#messageTemplates">messageTemplates</A></B></CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>private &nbsp;<A HREF="../../../../../../br/pucrio/inf/les/bdijade/core/PlanLibrary.html" title="class in br.pucrio.inf.les.bdijade.core">PlanLibrary</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../../br/pucrio/inf/les/bdijade/plan/Plan.html#planLibrary">planLibrary</A></B></CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
</TR>
</TABLE>
&nbsp;<A NAME="fields_inherited_from_class_br.pucrio.inf.les.bdijade.util.MetadataElement"><!-- --></A>
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
<TH ALIGN="left"><B>Fields inherited from class br.pucrio.inf.les.bdijade.util.<A HREF="../../../../../../br/pucrio/inf/les/bdijade/util/MetadataElement.html" title="class in br.pucrio.inf.les.bdijade.util">MetadataElement</A></B></TH>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD><CODE><A HREF="../../../../../../br/pucrio/inf/les/bdijade/util/MetadataElement.html#metadata">metadata</A></CODE></TD>
</TR>
</TABLE>
&nbsp;
<!-- ======== CONSTRUCTOR SUMMARY ======== -->

<A NAME="constructor_summary"><!-- --></A>
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
<B>Constructor Summary</B></FONT></TH>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD><CODE><B><A HREF="../../../../../../br/pucrio/inf/les/bdijade/plan/Plan.html#Plan(java.lang.String)">Plan</A></B>(java.lang.String&nbsp;id)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Constructs a new Plan.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD><CODE><B><A HREF="../../../../../../br/pucrio/inf/les/bdijade/plan/Plan.html#Plan(java.lang.String, java.lang.Class)">Plan</A></B>(java.lang.String&nbsp;id,
     java.lang.Class&lt;? extends <A HREF="../../../../../../br/pucrio/inf/les/bdijade/goal/Goal.html" title="interface in br.pucrio.inf.les.bdijade.goal">Goal</A>&gt;&nbsp;goalClass)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Constructs a new Plan.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD><CODE><B><A HREF="../../../../../../br/pucrio/inf/les/bdijade/plan/Plan.html#Plan(java.lang.String, java.lang.Class, jade.lang.acl.MessageTemplate)">Plan</A></B>(java.lang.String&nbsp;id,
     java.lang.Class&lt;? extends <A HREF="../../../../../../br/pucrio/inf/les/bdijade/goal/Goal.html" title="interface in br.pucrio.inf.les.bdijade.goal">Goal</A>&gt;&nbsp;goalClass,
     jade.lang.acl.MessageTemplate&nbsp;messageTemplate)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Constructs a new Plan.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD><CODE><B><A HREF="../../../../../../br/pucrio/inf/les/bdijade/plan/Plan.html#Plan(java.lang.String, jade.lang.acl.MessageTemplate)">Plan</A></B>(java.lang.String&nbsp;id,
     jade.lang.acl.MessageTemplate&nbsp;messageTemplate)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Constructs a new Plan.</TD>
</TR>
</TABLE>
&nbsp;
<!-- ========== METHOD SUMMARY =========== -->

<A NAME="method_summary"><!-- --></A>
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
<B>Method Summary</B></FONT></TH>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../../br/pucrio/inf/les/bdijade/plan/Plan.html#addGoal(java.lang.Class)">addGoal</A></B>(java.lang.Class&lt;? extends <A HREF="../../../../../../br/pucrio/inf/les/bdijade/goal/Goal.html" title="interface in br.pucrio.inf.les.bdijade.goal">Goal</A>&gt;&nbsp;goalClass)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Adds a goal class that this plan may achieve.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../../br/pucrio/inf/les/bdijade/plan/Plan.html#addMessageTemplate(jade.lang.acl.MessageTemplate)">addMessageTemplate</A></B>(jade.lang.acl.MessageTemplate&nbsp;messageTemplate)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Adds a message template of messages that this plan can process.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;boolean</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../../br/pucrio/inf/les/bdijade/plan/Plan.html#canAchieve(br.pucrio.inf.les.bdijade.goal.Goal)">canAchieve</A></B>(<A HREF="../../../../../../br/pucrio/inf/les/bdijade/goal/Goal.html" title="interface in br.pucrio.inf.les.bdijade.goal">Goal</A>&nbsp;goal)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Verifies if a given goal can be achieved by this plan.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;boolean</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../../br/pucrio/inf/les/bdijade/plan/Plan.html#canProcess(jade.lang.acl.ACLMessage)">canProcess</A></B>(jade.lang.acl.ACLMessage&nbsp;message)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Verifies if the message received matches with any of the message
 templates of this plan.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>abstract &nbsp;jade.core.behaviours.Behaviour</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../../br/pucrio/inf/les/bdijade/plan/Plan.html#createPlanBody()">createPlanBody</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Instantiate the plan body of this plan.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;boolean</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../../br/pucrio/inf/les/bdijade/plan/Plan.html#equals(java.lang.Object)">equals</A></B>(java.lang.Object&nbsp;obj)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;java.lang.String</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../../br/pucrio/inf/les/bdijade/plan/Plan.html#getId()">getId</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;<A HREF="../../../../../../br/pucrio/inf/les/bdijade/core/PlanLibrary.html" title="class in br.pucrio.inf.les.bdijade.core">PlanLibrary</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../../br/pucrio/inf/les/bdijade/plan/Plan.html#getPlanLibrary()">getPlanLibrary</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;int</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../../br/pucrio/inf/les/bdijade/plan/Plan.html#hashCode()">hashCode</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>protected &nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../../br/pucrio/inf/les/bdijade/plan/Plan.html#initGoals()">initGoals</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;This method is invoked in the Plan constructor.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>protected &nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../../br/pucrio/inf/les/bdijade/plan/Plan.html#initMessageTemplates()">initMessageTemplates</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;This method is invoked in the Plan constructor.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>protected &nbsp;boolean</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../../br/pucrio/inf/les/bdijade/plan/Plan.html#matchesContext(br.pucrio.inf.les.bdijade.goal.Goal)">matchesContext</A></B>(<A HREF="../../../../../../br/pucrio/inf/les/bdijade/goal/Goal.html" title="interface in br.pucrio.inf.les.bdijade.goal">Goal</A>&nbsp;goal)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Verifies that this plan can be executed in the current context.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../../br/pucrio/inf/les/bdijade/plan/Plan.html#setPlanLibrary(br.pucrio.inf.les.bdijade.core.PlanLibrary)">setPlanLibrary</A></B>(<A HREF="../../../../../../br/pucrio/inf/les/bdijade/core/PlanLibrary.html" title="class in br.pucrio.inf.les.bdijade.core">PlanLibrary</A>&nbsp;planLibrary)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;java.lang.String</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../../br/pucrio/inf/les/bdijade/plan/Plan.html#toString()">toString</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
</TR>
</TABLE>
&nbsp;<A NAME="methods_inherited_from_class_br.pucrio.inf.les.bdijade.util.MetadataElement"><!-- --></A>
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
<TH ALIGN="left"><B>Methods inherited from class br.pucrio.inf.les.bdijade.util.<A HREF="../../../../../../br/pucrio/inf/les/bdijade/util/MetadataElement.html" title="class in br.pucrio.inf.les.bdijade.util">MetadataElement</A></B></TH>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD><CODE><A HREF="../../../../../../br/pucrio/inf/les/bdijade/util/MetadataElement.html#getMetadata()">getMetadata</A>, <A HREF="../../../../../../br/pucrio/inf/les/bdijade/util/MetadataElement.html#getMetadata(java.lang.String)">getMetadata</A>, <A HREF="../../../../../../br/pucrio/inf/les/bdijade/util/MetadataElement.html#hasMetadata(java.lang.String)">hasMetadata</A>, <A HREF="../../../../../../br/pucrio/inf/les/bdijade/util/MetadataElement.html#putMetadata(java.lang.String, java.lang.Object)">putMetadata</A>, <A HREF="../../../../../../br/pucrio/inf/les/bdijade/util/MetadataElement.html#removeMetadata(java.lang.String)">removeMetadata</A></CODE></TD>
</TR>
</TABLE>
&nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
<TH ALIGN="left"><B>Methods inherited from class java.lang.Object</B></TH>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD><CODE>clone, finalize, getClass, notify, notifyAll, wait, wait, wait</CODE></TD>
</TR>
</TABLE>
&nbsp;
<P>

<!-- ============ FIELD DETAIL =========== -->

<A NAME="field_detail"><!-- --></A>
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
<B>Field Detail</B></FONT></TH>
</TR>
</TABLE>

<A NAME="goals"><!-- --></A><H3>
goals</H3>
<PRE>
private final java.util.Set&lt;java.lang.Class&lt;? extends <A HREF="../../../../../../br/pucrio/inf/les/bdijade/goal/Goal.html" title="interface in br.pucrio.inf.les.bdijade.goal">Goal</A>&gt;&gt; <B>goals</B></PRE>
<DL>
<DL>
</DL>
</DL>
<HR>

<A NAME="id"><!-- --></A><H3>
id</H3>
<PRE>
protected final java.lang.String <B>id</B></PRE>
<DL>
<DL>
</DL>
</DL>
<HR>

<A NAME="messageTemplates"><!-- --></A><H3>
messageTemplates</H3>
<PRE>
private final java.util.Set&lt;jade.lang.acl.MessageTemplate&gt; <B>messageTemplates</B></PRE>
<DL>
<DL>
</DL>
</DL>
<HR>

<A NAME="planLibrary"><!-- --></A><H3>
planLibrary</H3>
<PRE>
private <A HREF="../../../../../../br/pucrio/inf/les/bdijade/core/PlanLibrary.html" title="class in br.pucrio.inf.les.bdijade.core">PlanLibrary</A> <B>planLibrary</B></PRE>
<DL>
<DL>
</DL>
</DL>

<!-- ========= CONSTRUCTOR DETAIL ======== -->

<A NAME="constructor_detail"><!-- --></A>
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
<B>Constructor Detail</B></FONT></TH>
</TR>
</TABLE>

<A NAME="Plan(java.lang.String)"><!-- --></A><H3>
Plan</H3>
<PRE>
public <B>Plan</B>(java.lang.String&nbsp;id)</PRE>
<DL>
<DD>Constructs a new Plan. It sets the plan library and plan body class of
 this plan, and initializes the goals that it can achieve and message
 templates of messages it can process.
<P>
<DL>
<DT><B>Parameters:</B><DD><CODE>id</CODE> - plan identifier</DL>
</DL>
<HR>

<A NAME="Plan(java.lang.String, java.lang.Class)"><!-- --></A><H3>
Plan</H3>
<PRE>
public <B>Plan</B>(java.lang.String&nbsp;id,
            java.lang.Class&lt;? extends <A HREF="../../../../../../br/pucrio/inf/les/bdijade/goal/Goal.html" title="interface in br.pucrio.inf.les.bdijade.goal">Goal</A>&gt;&nbsp;goalClass)</PRE>
<DL>
<DD>Constructs a new Plan. It sets the plan library and plan body class of
 this plan, and initializes the goals that it can achieve and messages it
 can process. The goals are initialized with the provided goal class.
<P>
<DL>
<DT><B>Parameters:</B><DD><CODE>id</CODE> - plan identifier<DD><CODE>goalClass</CODE> - the goal that this plan can achieve</DL>
</DL>
<HR>

<A NAME="Plan(java.lang.String, java.lang.Class, jade.lang.acl.MessageTemplate)"><!-- --></A><H3>
Plan</H3>
<PRE>
public <B>Plan</B>(java.lang.String&nbsp;id,
            java.lang.Class&lt;? extends <A HREF="../../../../../../br/pucrio/inf/les/bdijade/goal/Goal.html" title="interface in br.pucrio.inf.les.bdijade.goal">Goal</A>&gt;&nbsp;goalClass,
            jade.lang.acl.MessageTemplate&nbsp;messageTemplate)</PRE>
<DL>
<DD>Constructs a new Plan. It sets the plan library and plan body class of
 this plan, and initializes the goals that it can achieve and messages it
 can process. The goals are initialized with the provided goal class. The
 message templates is initialized with the provided template.
<P>
<DL>
<DT><B>Parameters:</B><DD><CODE>id</CODE> - plan identifier<DD><CODE>goalClass</CODE> - the goal that this plan can achieve<DD><CODE>messageTemplate</CODE> - the template of messages that this plan can process.</DL>
</DL>
<HR>

<A NAME="Plan(java.lang.String, jade.lang.acl.MessageTemplate)"><!-- --></A><H3>
Plan</H3>
<PRE>
public <B>Plan</B>(java.lang.String&nbsp;id,
            jade.lang.acl.MessageTemplate&nbsp;messageTemplate)</PRE>
<DL>
<DD>Constructs a new Plan. It sets the plan library and plan body class of
 this plan, and initializes the goals that it can achieve and message
 templates of messages it can process. The message templates is
 initialized with the provided template.
<P>
<DL>
<DT><B>Parameters:</B><DD><CODE>id</CODE> - the plan identifier<DD><CODE>messageTemplate</CODE> - the template of messages that this plan can process.</DL>
</DL>

<!-- ============ METHOD DETAIL ========== -->

<A NAME="method_detail"><!-- --></A>
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
<B>Method Detail</B></FONT></TH>
</TR>
</TABLE>

<A NAME="addGoal(java.lang.Class)"><!-- --></A><H3>
addGoal</H3>
<PRE>
public void <B>addGoal</B>(java.lang.Class&lt;? extends <A HREF="../../../../../../br/pucrio/inf/les/bdijade/goal/Goal.html" title="interface in br.pucrio.inf.les.bdijade.goal">Goal</A>&gt;&nbsp;goalClass)</PRE>
<DL>
<DD>Adds a goal class that this plan may achieve.
<P>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>goalClass</CODE> - the goal class that can be achieved by this plan.</DL>
</DD>
</DL>
<HR>

<A NAME="addMessageTemplate(jade.lang.acl.MessageTemplate)"><!-- --></A><H3>
addMessageTemplate</H3>
<PRE>
public void <B>addMessageTemplate</B>(jade.lang.acl.MessageTemplate&nbsp;messageTemplate)</PRE>
<DL>
<DD>Adds a message template of messages that this plan can process.
<P>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>messageTemplate</CODE> - the message template of messages that can be processed.</DL>
</DD>
</DL>
<HR>

<A NAME="canAchieve(br.pucrio.inf.les.bdijade.goal.Goal)"><!-- --></A><H3>
canAchieve</H3>
<PRE>
public boolean <B>canAchieve</B>(<A HREF="../../../../../../br/pucrio/inf/les/bdijade/goal/Goal.html" title="interface in br.pucrio.inf.les.bdijade.goal">Goal</A>&nbsp;goal)</PRE>
<DL>
<DD>Verifies if a given goal can be achieved by this plan. When the goal is a
 <A HREF="../../../../../../br/pucrio/inf/les/bdijade/message/MessageGoal.html" title="class in br.pucrio.inf.les.bdijade.message"><CODE>MessageGoal</CODE></A>, it invokes the method
 <A HREF="../../../../../../br/pucrio/inf/les/bdijade/plan/Plan.html#canProcess(jade.lang.acl.ACLMessage)"><CODE>canProcess(ACLMessage)</CODE></A>. Otherwise, it checks if the class of
 this goal is contained in the goal set of this plan.
<P>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>goal</CODE> - the goal to be verified.
<DT><B>Returns:</B><DD>true if the given goal can be achieved by this plan, false
         otherwise.</DL>
</DD>
</DL>
<HR>

<A NAME="canProcess(jade.lang.acl.ACLMessage)"><!-- --></A><H3>
canProcess</H3>
<PRE>
public boolean <B>canProcess</B>(jade.lang.acl.ACLMessage&nbsp;message)</PRE>
<DL>
<DD>Verifies if the message received matches with any of the message
 templates of this plan.
<P>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>message</CODE> - the message to be checked.
<DT><B>Returns:</B><DD>true if this plan can process the message.</DL>
</DD>
</DL>
<HR>

<A NAME="createPlanBody()"><!-- --></A><H3>
createPlanBody</H3>
<PRE>
public abstract jade.core.behaviours.Behaviour <B>createPlanBody</B>()
                                                       throws <A HREF="../../../../../../br/pucrio/inf/les/bdijade/exception/PlanInstantiationException.html" title="class in br.pucrio.inf.les.bdijade.exception">PlanInstantiationException</A></PRE>
<DL>
<DD>Instantiate the plan body of this plan. It must be an instance of
 <CODE>Behaviour</CODE> and also implements the <A HREF="../../../../../../br/pucrio/inf/les/bdijade/plan/PlanBody.html" title="interface in br.pucrio.inf.les.bdijade.plan"><CODE>PlanBody</CODE></A> interface.
<P>
<DD><DL>

<DT><B>Returns:</B><DD>the instantiated plan body.
<DT><B>Throws:</B>
<DD><CODE><A HREF="../../../../../../br/pucrio/inf/les/bdijade/exception/PlanInstantiationException.html" title="class in br.pucrio.inf.les.bdijade.exception">PlanInstantiationException</A></CODE> - if an error occurred during the instantiation process.</DL>
</DD>
</DL>
<HR>

<A NAME="equals(java.lang.Object)"><!-- --></A><H3>
equals</H3>
<PRE>
public boolean <B>equals</B>(java.lang.Object&nbsp;obj)</PRE>
<DL>
<DD><DL>
<DT><B>Overrides:</B><DD><CODE>equals</CODE> in class <CODE>java.lang.Object</CODE></DL>
</DD>
<DD><DL>
<DT><B>See Also:</B><DD><CODE>Object.equals(java.lang.Object)</CODE></DL>
</DD>
</DL>
<HR>

<A NAME="getId()"><!-- --></A><H3>
getId</H3>
<PRE>
public java.lang.String <B>getId</B>()</PRE>
<DL>
<DD><DL>

<DT><B>Returns:</B><DD>the id</DL>
</DD>
</DL>
<HR>

<A NAME="getPlanLibrary()"><!-- --></A><H3>
getPlanLibrary</H3>
<PRE>
public <A HREF="../../../../../../br/pucrio/inf/les/bdijade/core/PlanLibrary.html" title="class in br.pucrio.inf.les.bdijade.core">PlanLibrary</A> <B>getPlanLibrary</B>()</PRE>
<DL>
<DD><DL>

<DT><B>Returns:</B><DD>the planLibrary</DL>
</DD>
</DL>
<HR>

<A NAME="hashCode()"><!-- --></A><H3>
hashCode</H3>
<PRE>
public int <B>hashCode</B>()</PRE>
<DL>
<DD><DL>
<DT><B>Overrides:</B><DD><CODE>hashCode</CODE> in class <CODE>java.lang.Object</CODE></DL>
</DD>
<DD><DL>
<DT><B>See Also:</B><DD><CODE>Object.hashCode()</CODE></DL>
</DD>
</DL>
<HR>

<A NAME="initGoals()"><!-- --></A><H3>
initGoals</H3>
<PRE>
protected void <B>initGoals</B>()</PRE>
<DL>
<DD>This method is invoked in the Plan constructor. It is responsible for
 initializing the goals that this plan can achieve. The method should be
 overridden by subclasses.
<P>
<DD><DL>
</DL>
</DD>
</DL>
<HR>

<A NAME="initMessageTemplates()"><!-- --></A><H3>
initMessageTemplates</H3>
<PRE>
protected void <B>initMessageTemplates</B>()</PRE>
<DL>
<DD>This method is invoked in the Plan constructor. It is responsible for
 initializing the message templates that this plan can process. The method
 should be overridden by subclasses.
<P>
<DD><DL>
</DL>
</DD>
</DL>
<HR>

<A NAME="matchesContext(br.pucrio.inf.les.bdijade.goal.Goal)"><!-- --></A><H3>
matchesContext</H3>
<PRE>
protected boolean <B>matchesContext</B>(<A HREF="../../../../../../br/pucrio/inf/les/bdijade/goal/Goal.html" title="interface in br.pucrio.inf.les.bdijade.goal">Goal</A>&nbsp;goal)</PRE>
<DL>
<DD>Verifies that this plan can be executed in the current context. The
 method should be overridden by subclasses.
<P>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>goal</CODE> - the goal to be achieved
<DT><B>Returns:</B><DD>true if the context matches with the conditions needed for this
         plan execution.</DL>
</DD>
</DL>
<HR>

<A NAME="setPlanLibrary(br.pucrio.inf.les.bdijade.core.PlanLibrary)"><!-- --></A><H3>
setPlanLibrary</H3>
<PRE>
public void <B>setPlanLibrary</B>(<A HREF="../../../../../../br/pucrio/inf/les/bdijade/core/PlanLibrary.html" title="class in br.pucrio.inf.les.bdijade.core">PlanLibrary</A>&nbsp;planLibrary)</PRE>
<DL>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>planLibrary</CODE> - the planLibrary to set</DL>
</DD>
</DL>
<HR>

<A NAME="toString()"><!-- --></A><H3>
toString</H3>
<PRE>
public java.lang.String <B>toString</B>()</PRE>
<DL>
<DD><DL>
<DT><B>Overrides:</B><DD><CODE>toString</CODE> in class <CODE>java.lang.Object</CODE></DL>
</DD>
<DD><DL>
<DT><B>See Also:</B><DD><CODE>Object.toString()</CODE></DL>
</DD>
</DL>
<!-- ========= END OF CLASS DATA ========= -->
<HR>


<!-- ======= START OF BOTTOM NAVBAR ====== -->
<A NAME="navbar_bottom"><!-- --></A>
<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
<TR>
<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
<A NAME="navbar_bottom_firstrow"><!-- --></A>
<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
  <TR ALIGN="center" VALIGN="top">
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/Plan.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
  </TR>
</TABLE>
</TD>
<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
</EM>
</TD>
</TR>

<TR>
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
&nbsp;<A HREF="../../../../../../br/pucrio/inf/les/bdijade/plan/OutputPlanBody.html" title="interface in br.pucrio.inf.les.bdijade.plan"><B>PREV CLASS</B></A>&nbsp;
&nbsp;<A HREF="../../../../../../br/pucrio/inf/les/bdijade/plan/PlanBody.html" title="interface in br.pucrio.inf.les.bdijade.plan"><B>NEXT CLASS</B></A></FONT></TD>
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
  <A HREF="../../../../../../index.html?br/pucrio/inf/les/bdijade/plan/Plan.html" target="_top"><B>FRAMES</B></A>  &nbsp;
&nbsp;<A HREF="Plan.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
&nbsp;<SCRIPT type="text/javascript">
  <!--
  if(window==top) {
    document.writeln('<A HREF="../../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
  }
  //-->
</SCRIPT>
<NOSCRIPT>
  <A HREF="../../../../../../allclasses-noframe.html"><B>All Classes</B></A>
</NOSCRIPT>


</FONT></TD>
</TR>
<TR>
<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
DETAIL:&nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
</TR>
</TABLE>
<A NAME="skip-navbar_bottom"></A>
<!-- ======== END OF BOTTOM NAVBAR ======= -->

<HR>

</BODY>
</HTML>