<!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> </TD>
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
<TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="class-use/Plan.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A> </TD>
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../../index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
</TR>
</TABLE>
</TD>
<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
</EM>
</TD>
</TR>
<TR>
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
<A HREF="../../../../../../br/pucrio/inf/les/bdijade/plan/OutputPlanBody.html" title="interface in br.pucrio.inf.les.bdijade.plan"><B>PREV CLASS</B></A>
<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>
<A HREF="Plan.html" target="_top"><B>NO FRAMES</B></A>
<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: NESTED | <A HREF="#field_summary">FIELD</A> | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
DETAIL: <A HREF="#field_detail">FIELD</A> | <A HREF="#constructor_detail">CONSTR</A> | <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 java.util.Set<java.lang.Class<? extends <A HREF="../../../../../../br/pucrio/inf/les/bdijade/goal/Goal.html" title="interface in br.pucrio.inf.les.bdijade.goal">Goal</A>>></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../../br/pucrio/inf/les/bdijade/plan/Plan.html#goals">goals</A></B></CODE>
<BR>
</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>protected 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>
</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>private java.util.Set<jade.lang.acl.MessageTemplate></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../../br/pucrio/inf/les/bdijade/plan/Plan.html#messageTemplates">messageTemplates</A></B></CODE>
<BR>
</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>private <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>
</TD>
</TR>
</TABLE>
<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>
<!-- ======== 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 id)</CODE>
<BR>
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 id,
java.lang.Class<? extends <A HREF="../../../../../../br/pucrio/inf/les/bdijade/goal/Goal.html" title="interface in br.pucrio.inf.les.bdijade.goal">Goal</A>> goalClass)</CODE>
<BR>
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 id,
java.lang.Class<? extends <A HREF="../../../../../../br/pucrio/inf/les/bdijade/goal/Goal.html" title="interface in br.pucrio.inf.les.bdijade.goal">Goal</A>> goalClass,
jade.lang.acl.MessageTemplate messageTemplate)</CODE>
<BR>
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 id,
jade.lang.acl.MessageTemplate messageTemplate)</CODE>
<BR>
Constructs a new Plan.</TD>
</TR>
</TABLE>
<!-- ========== 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> 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<? extends <A HREF="../../../../../../br/pucrio/inf/les/bdijade/goal/Goal.html" title="interface in br.pucrio.inf.les.bdijade.goal">Goal</A>> goalClass)</CODE>
<BR>
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> 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 messageTemplate)</CODE>
<BR>
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> 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> goal)</CODE>
<BR>
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> 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 message)</CODE>
<BR>
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 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>
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> 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 obj)</CODE>
<BR>
</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE> 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>
</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE> <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>
</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE> int</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../../br/pucrio/inf/les/bdijade/plan/Plan.html#hashCode()">hashCode</A></B>()</CODE>
<BR>
</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>protected void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../../br/pucrio/inf/les/bdijade/plan/Plan.html#initGoals()">initGoals</A></B>()</CODE>
<BR>
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 void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../../br/pucrio/inf/les/bdijade/plan/Plan.html#initMessageTemplates()">initMessageTemplates</A></B>()</CODE>
<BR>
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 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> goal)</CODE>
<BR>
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> 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> planLibrary)</CODE>
<BR>
</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE> 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>
</TD>
</TR>
</TABLE>
<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>
<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>
<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<java.lang.Class<? extends <A HREF="../../../../../../br/pucrio/inf/les/bdijade/goal/Goal.html" title="interface in br.pucrio.inf.les.bdijade.goal">Goal</A>>> <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<jade.lang.acl.MessageTemplate> <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 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 id,
java.lang.Class<? extends <A HREF="../../../../../../br/pucrio/inf/les/bdijade/goal/Goal.html" title="interface in br.pucrio.inf.les.bdijade.goal">Goal</A>> 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 id,
java.lang.Class<? extends <A HREF="../../../../../../br/pucrio/inf/les/bdijade/goal/Goal.html" title="interface in br.pucrio.inf.les.bdijade.goal">Goal</A>> goalClass,
jade.lang.acl.MessageTemplate 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 id,
jade.lang.acl.MessageTemplate 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<? extends <A HREF="../../../../../../br/pucrio/inf/les/bdijade/goal/Goal.html" title="interface in br.pucrio.inf.les.bdijade.goal">Goal</A>> 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 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> 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 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 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> 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> 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> </TD>
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
<TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="class-use/Plan.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A> </TD>
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../../index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
</TR>
</TABLE>
</TD>
<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
</EM>
</TD>
</TR>
<TR>
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
<A HREF="../../../../../../br/pucrio/inf/les/bdijade/plan/OutputPlanBody.html" title="interface in br.pucrio.inf.les.bdijade.plan"><B>PREV CLASS</B></A>
<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>
<A HREF="Plan.html" target="_top"><B>NO FRAMES</B></A>
<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: NESTED | <A HREF="#field_summary">FIELD</A> | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
DETAIL: <A HREF="#field_detail">FIELD</A> | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
</TR>
</TABLE>
<A NAME="skip-navbar_bottom"></A>
<!-- ======== END OF BOTTOM NAVBAR ======= -->
<HR>
</BODY>
</HTML>