blob: e9ed703b91128a03671848beac7e4f45c8fca6ef [file] [log] [blame]
<!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.4.2) on Mon May 16 11:42:17 EDT 2005 -->
<TITLE>
IDataModel
</TITLE>
<META NAME="keywords" CONTENT="org.eclipse.wst.common.frameworks.datamodel.IDataModel interface">
<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../../apistyles.css" TITLE="Style">
<SCRIPT type="text/javascript">
function windowTitle()
{
parent.document.title="IDataModel";
}
</SCRIPT>
</HEAD>
<BODY BGCOLOR="white" onload="windowTitle();">
<!-- ========= 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=3 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;<A HREF="#main"><FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT></A>&nbsp;</TD>
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="class-use/IDataModel.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="../../../../../../serialized-form.html"><FONT CLASS="NavBarFont1"><B>Serialized</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;PREV CLASS&nbsp;
&nbsp;<A HREF="../../../../../../org/eclipse/wst/common/frameworks/datamodel/IDataModelListener.html" title="interface in org.eclipse.wst.common.frameworks.datamodel"><B>NEXT CLASS</B></A></FONT></TD>
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
<A HREF="../../../../../../index.html" target="_top"><B>FRAMES</B></A> &nbsp;
&nbsp;<A HREF="IDataModel.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;CONSTR&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;CONSTR&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
</TR>
</TABLE>
<A NAME="skip-navbar_top"></A>
<!-- ========= END OF TOP NAVBAR ========= -->
<HR>
<A NAME="main"></A>
<!-- ======== START OF CLASS DATA ======== -->
<H2>
<FONT SIZE="-1">
org.eclipse.wst.common.frameworks.datamodel</FONT>
<BR>
Interface IDataModel</H2>
<HR>
<DL>
<DT>public interface <B>IDataModel</B></DL>
<P>
<p>
IDataModels are the core piece of a framework used to simplify data collection, operation
execution, and Wizard generation.
</p>
<p>
IDataModels are primaryly an intelligent mechanism for managing data. Each IDataModel tracks
specific Objects known as "properties". Each property may be set or get using its property name.
A Collection of property names for an IDataModel instance may be retreived using
<code>getAllProperties()</code>. In addition to getting/setting properties, IDataModels may
also provide default values for unset properties, human readable descriptors for properties,
enumerations of valid property values, validation for properties, and enablement for properties.
</p>
<p>
IDataModels may also be nested (and unnested) recursively within another. When one IDataModel is
nested within another, then client code may access all properties on the former through the
latter. This is especially useful when the same IDataModel (tracking the same properties) may be
used within the context of several different broader scenarios. Nesting may apply to any
IDataModel, and may be abitraryly deep (even cylical if you dare). Nesting offers flexibility,
especially for extension by 3rd party clients.
</p>
<p>
Each IDataModel may also supply an IDataModelOperation (a subclass of
org.eclipse.core.commands.operations.IUndoableOperation) for execution. When executed within the
IDataModel framework all these operations are inherently and abitrarily extendable.
</p>
<p>
Each IDataModel may also indirectly supply a DataModelWizard. This indirection is necessary to
spilt UI dependencies from the core IDataModel framework. DataModelWizards are also inherently
extendable.
</p>
<p>
IDataModels are not meant to be instantiated directly, rather they are built from an
IDataModelProvider. Clients wishing to define their own IDataModel must do so by implementing an
IDataModelProvider. Clients wishing to utilize an IDataModel must create it using the
DataModelFactory with the associated IDataModelProvider.
</p>
<p>
This interface is not intended to be implemented by clients.
</p>
<P>
<P>
<DL>
<DT><B>Since:</B></DT>
<DD>1.0</DD>
<DT><B>See Also:</B><DD><A HREF="../../../../../../org/eclipse/wst/common/frameworks/datamodel/IDataModelProvider.html" title="interface in org.eclipse.wst.common.frameworks.datamodel"><CODE>IDataModelProvider</CODE></A>,
<A HREF="../../../../../../org/eclipse/wst/common/frameworks/datamodel/DataModelFactory.html" title="class in org.eclipse.wst.common.frameworks.datamodel"><CODE>DataModelFactory</CODE></A></DL>
<HR>
<P>
<!-- ======== NESTED CLASS SUMMARY ======== -->
<!-- =========== 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>static&nbsp;int</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../../org/eclipse/wst/common/frameworks/datamodel/IDataModel.html#DEFAULT_CHG">DEFAULT_CHG</A></B></CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
A constant used for notification.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>static&nbsp;int</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../../org/eclipse/wst/common/frameworks/datamodel/IDataModel.html#ENABLE_CHG">ENABLE_CHG</A></B></CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
A constant used for notification.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>static&nbsp;int</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../../org/eclipse/wst/common/frameworks/datamodel/IDataModel.html#VALID_VALUES_CHG">VALID_VALUES_CHG</A></B></CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
A constant used for notification.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>static&nbsp;int</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../../org/eclipse/wst/common/frameworks/datamodel/IDataModel.html#VALUE_CHG">VALUE_CHG</A></B></CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
A constant used for notification.</TD>
</TR>
</TABLE>
&nbsp;
<!-- ======== CONSTRUCTOR SUMMARY ======== -->
<!-- ========== 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="../../../../../../org/eclipse/wst/common/frameworks/datamodel/IDataModel.html#addListener(org.eclipse.wst.common.frameworks.datamodel.IDataModelListener)">addListener</A></B>(<A HREF="../../../../../../org/eclipse/wst/common/frameworks/datamodel/IDataModelListener.html" title="interface in org.eclipse.wst.common.frameworks.datamodel">IDataModelListener</A>&nbsp;dataModelListener)</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
Adds the specified IDataModelListener to listen for DataModelEvents.</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="../../../../../../org/eclipse/wst/common/frameworks/datamodel/IDataModel.html#addNestedModel(java.lang.String, org.eclipse.wst.common.frameworks.datamodel.IDataModel)">addNestedModel</A></B>(java.lang.String&nbsp;nestedModelName,
<A HREF="../../../../../../org/eclipse/wst/common/frameworks/datamodel/IDataModel.html" title="interface in org.eclipse.wst.common.frameworks.datamodel">IDataModel</A>&nbsp;dataModel)</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
This method is used to nest the specified IDataModel within this IDataModel.</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="../../../../../../org/eclipse/wst/common/frameworks/datamodel/IDataModel.html#dispose()">dispose</A></B>()</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
A typical dispose method used to clean up any resources not handled by general garbage
collection.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;java.util.Collection</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../../org/eclipse/wst/common/frameworks/datamodel/IDataModel.html#getAllProperties()">getAllProperties</A></B>()</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns a Collection of all properties (the union of getBaseProperties() and
getNestedProperties()), or an empty Collection if none exist.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;java.util.Collection</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../../org/eclipse/wst/common/frameworks/datamodel/IDataModel.html#getBaseProperties()">getBaseProperties</A></B>()</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns a Collection of all base properties (not including nested properties), or an empty
Collection if none exist.</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="../../../../../../org/eclipse/wst/common/frameworks/datamodel/IDataModel.html#getBooleanProperty(java.lang.String)">getBooleanProperty</A></B>(java.lang.String&nbsp;propertyName)</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
A convenience method for getting booleans.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;<A HREF="../../../../../../org/eclipse/wst/common/frameworks/datamodel/IDataModelOperation.html" title="interface in org.eclipse.wst.common.frameworks.datamodel">IDataModelOperation</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../../org/eclipse/wst/common/frameworks/datamodel/IDataModel.html#getDefaultOperation()">getDefaultOperation</A></B>()</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
Returns the default operation to execute against this IDataModel.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;java.lang.Object</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../../org/eclipse/wst/common/frameworks/datamodel/IDataModel.html#getDefaultProperty(java.lang.String)">getDefaultProperty</A></B>(java.lang.String&nbsp;propertyName)</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
Returns the default property value for the specified propertyName.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;java.util.List</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../../org/eclipse/wst/common/frameworks/datamodel/IDataModel.html#getExtendedContext()">getExtendedContext</A></B>()</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
This method only pertains to IDataModels for extedended operations.</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="../../../../../../org/eclipse/wst/common/frameworks/datamodel/IDataModel.html#getID()">getID</A></B>()</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
Returns the unique ID which identifies this IDataModel instance.</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="../../../../../../org/eclipse/wst/common/frameworks/datamodel/IDataModel.html#getIntProperty(java.lang.String)">getIntProperty</A></B>(java.lang.String&nbsp;propertyName)</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
A convenience method for getting ints.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;<A HREF="../../../../../../org/eclipse/wst/common/frameworks/datamodel/IDataModel.html" title="interface in org.eclipse.wst.common.frameworks.datamodel">IDataModel</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../../org/eclipse/wst/common/frameworks/datamodel/IDataModel.html#getNestedModel(java.lang.String)">getNestedModel</A></B>(java.lang.String&nbsp;nestedModelName)</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the nested IDataModel identified the by the specified name.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;java.util.Collection</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../../org/eclipse/wst/common/frameworks/datamodel/IDataModel.html#getNestedModelNames()">getNestedModelNames</A></B>()</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns a Collection of all nested IDataModels names, or an empty Collection if none exist.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;java.util.Collection</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../../org/eclipse/wst/common/frameworks/datamodel/IDataModel.html#getNestedModels()">getNestedModels</A></B>()</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns a Collection of all nested IDataModels, or an empty Collection if none exist.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;java.util.Collection</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../../org/eclipse/wst/common/frameworks/datamodel/IDataModel.html#getNestedProperties()">getNestedProperties</A></B>()</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns a Collection of all properties of recursively nested IDataModels, or an empty
Collection if none exist.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;java.util.Collection</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../../org/eclipse/wst/common/frameworks/datamodel/IDataModel.html#getNestingModels()">getNestingModels</A></B>()</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns a Collection of all nesting (the inverse of nested) IDataModels, or an empty
Collection if none exist.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;java.lang.Object</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../../org/eclipse/wst/common/frameworks/datamodel/IDataModel.html#getProperty(java.lang.String)">getProperty</A></B>(java.lang.String&nbsp;propertyName)</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
Returns the property value for the specified propertyName.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;<A HREF="../../../../../../org/eclipse/wst/common/frameworks/datamodel/DataModelPropertyDescriptor.html" title="class in org.eclipse.wst.common.frameworks.datamodel">DataModelPropertyDescriptor</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../../org/eclipse/wst/common/frameworks/datamodel/IDataModel.html#getPropertyDescriptor(java.lang.String)">getPropertyDescriptor</A></B>(java.lang.String&nbsp;propertyName)</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
Returns a DataModelPropertyDescriptor for the specified property.</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="../../../../../../org/eclipse/wst/common/frameworks/datamodel/IDataModel.html#getStringProperty(java.lang.String)">getStringProperty</A></B>(java.lang.String&nbsp;propertyName)</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
A convenience method for getting Strings.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;<A HREF="../../../../../../org/eclipse/wst/common/frameworks/datamodel/DataModelPropertyDescriptor.html" title="class in org.eclipse.wst.common.frameworks.datamodel">DataModelPropertyDescriptor</A>[]</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../../org/eclipse/wst/common/frameworks/datamodel/IDataModel.html#getValidPropertyDescriptors(java.lang.String)">getValidPropertyDescriptors</A></B>(java.lang.String&nbsp;propertyName)</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
Returns a DataModelPropertyDescriptor array consisting of all valid
DataModelPropertyDescriptors for the specified property.</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="../../../../../../org/eclipse/wst/common/frameworks/datamodel/IDataModel.html#isBaseProperty(java.lang.String)">isBaseProperty</A></B>(java.lang.String&nbsp;propertyName)</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns <code>true</code> if the specified propertyName is a valid propertyName for this
root IDataModel only.</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="../../../../../../org/eclipse/wst/common/frameworks/datamodel/IDataModel.html#isNestedModel(java.lang.String)">isNestedModel</A></B>(java.lang.String&nbsp;nestedModelName)</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns <code>true</code> if a nested model exists (at the top level only) with the
specified name and <code>false</code> otherwise.</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="../../../../../../org/eclipse/wst/common/frameworks/datamodel/IDataModel.html#isNestedProperty(java.lang.String)">isNestedProperty</A></B>(java.lang.String&nbsp;propertyName)</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns <code>true</code> if the specified propertyName is a valid propertyName for any of
its (recursively) nested IDataModels.</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="../../../../../../org/eclipse/wst/common/frameworks/datamodel/IDataModel.html#isProperty(java.lang.String)">isProperty</A></B>(java.lang.String&nbsp;propertyName)</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns <code>true</code> if the specified propertyName is a valid propertyName for this
DataModel or any of its (recursively) nested IDataModels.</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="../../../../../../org/eclipse/wst/common/frameworks/datamodel/IDataModel.html#isPropertyEnabled(java.lang.String)">isPropertyEnabled</A></B>(java.lang.String&nbsp;propertyName)</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
Returns <code>true</code> if the specified property is enabled and <code>false</code>
otherwise.</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="../../../../../../org/eclipse/wst/common/frameworks/datamodel/IDataModel.html#isPropertySet(java.lang.String)">isPropertySet</A></B>(java.lang.String&nbsp;propertyName)</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns <code>true</code> if the specified property has been set on the IDataModel.</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="../../../../../../org/eclipse/wst/common/frameworks/datamodel/IDataModel.html#isPropertyValid(java.lang.String)">isPropertyValid</A></B>(java.lang.String&nbsp;propertyName)</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
Returns <code>false</code> if the the IStatus returned by validateProperty(String) is ERROR
and <code>true</code> otherwise.</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="../../../../../../org/eclipse/wst/common/frameworks/datamodel/IDataModel.html#isValid()">isValid</A></B>()</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
Returns <code>false</code> if the IStatus returned by validate(true) is ERROR and
<code>true</code> otherwise.</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="../../../../../../org/eclipse/wst/common/frameworks/datamodel/IDataModel.html#notifyPropertyChange(java.lang.String, int)">notifyPropertyChange</A></B>(java.lang.String&nbsp;propertyName,
int&nbsp;eventType)</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
Notify all listeners of a property change.</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="../../../../../../org/eclipse/wst/common/frameworks/datamodel/IDataModel.html#removeListener(org.eclipse.wst.common.frameworks.datamodel.IDataModelListener)">removeListener</A></B>(<A HREF="../../../../../../org/eclipse/wst/common/frameworks/datamodel/IDataModelListener.html" title="interface in org.eclipse.wst.common.frameworks.datamodel">IDataModelListener</A>&nbsp;dataModelListener)</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
Remove the specified IDataModelListener.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;<A HREF="../../../../../../org/eclipse/wst/common/frameworks/datamodel/IDataModel.html" title="interface in org.eclipse.wst.common.frameworks.datamodel">IDataModel</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../../org/eclipse/wst/common/frameworks/datamodel/IDataModel.html#removeNestedModel(java.lang.String)">removeNestedModel</A></B>(java.lang.String&nbsp;nestedModelName)</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
Remove the specified nestedModel.</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="../../../../../../org/eclipse/wst/common/frameworks/datamodel/IDataModel.html#setBooleanProperty(java.lang.String, boolean)">setBooleanProperty</A></B>(java.lang.String&nbsp;propertyName,
boolean&nbsp;propertyValue)</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
A convenience method for setting booleans.</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="../../../../../../org/eclipse/wst/common/frameworks/datamodel/IDataModel.html#setIntProperty(java.lang.String, int)">setIntProperty</A></B>(java.lang.String&nbsp;propertyName,
int&nbsp;propertyValue)</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
A convenience method for setting ints.</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="../../../../../../org/eclipse/wst/common/frameworks/datamodel/IDataModel.html#setProperty(java.lang.String, java.lang.Object)">setProperty</A></B>(java.lang.String&nbsp;propertyName,
java.lang.Object&nbsp;propertyValue)</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
Sets the specified propertyName to the specified propertyValue.</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="../../../../../../org/eclipse/wst/common/frameworks/datamodel/IDataModel.html#setStringProperty(java.lang.String, java.lang.String)">setStringProperty</A></B>(java.lang.String&nbsp;propertyName,
java.lang.String&nbsp;propertyValue)</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
A convenience method for setting Strings.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;IStatus</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../../org/eclipse/wst/common/frameworks/datamodel/IDataModel.html#validate()">validate</A></B>()</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
Equavalent to calling <code>validate(true)</code>.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;IStatus</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../../org/eclipse/wst/common/frameworks/datamodel/IDataModel.html#validate(boolean)">validate</A></B>(boolean&nbsp;stopAtFirstFailure)</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
Iterates over all base properties and nested models IDs and calls validate(String).</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;IStatus</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../../org/eclipse/wst/common/frameworks/datamodel/IDataModel.html#validateProperty(java.lang.String)">validateProperty</A></B>(java.lang.String&nbsp;propertyName)</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
Returns an IStatus for the specified property.</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">
<TD COLSPAN=1><FONT SIZE="+2">
<B>Field Detail</B></FONT></TD>
</TR>
</TABLE>
<A NAME="VALUE_CHG"><!-- --></A><H3>
VALUE_CHG</H3>
<PRE>
public static final int <B>VALUE_CHG</B></PRE>
<DL>
<DD><p>
A constant used for notification.
</p>
<P>
<DL>
<DT><B>See Also:</B><DD><A HREF="../../../../../../org/eclipse/wst/common/frameworks/datamodel/DataModelEvent.html#VALUE_CHG"><CODE>DataModelEvent.VALUE_CHG</CODE></A>,
<A HREF="../../../../../../org/eclipse/wst/common/frameworks/datamodel/IDataModel.html#notifyPropertyChange(java.lang.String, int)"><CODE>notifyPropertyChange(String, int)</CODE></A>,
<A HREF="../../../../../../constant-values.html#org.eclipse.wst.common.frameworks.datamodel.IDataModel.VALUE_CHG">Constant Field Values</A></DL>
</DL>
<HR>
<A NAME="DEFAULT_CHG"><!-- --></A><H3>
DEFAULT_CHG</H3>
<PRE>
public static final int <B>DEFAULT_CHG</B></PRE>
<DL>
<DD><p>
A constant used for notification. This contant is different from the others because it does
not map to an event type on DataModelEvent. When notifying with this type, a check is first
done to see whether the property is set. If the property is <empf>NOT</emph> set, then a
<code>VALUE_CHG</code> is fired, otherwise nothing happens.
</p>
<P>
<DL>
<DT><B>See Also:</B><DD><A HREF="../../../../../../org/eclipse/wst/common/frameworks/datamodel/IDataModel.html#notifyPropertyChange(java.lang.String, int)"><CODE>notifyPropertyChange(String, int)</CODE></A>,
<A HREF="../../../../../../constant-values.html#org.eclipse.wst.common.frameworks.datamodel.IDataModel.DEFAULT_CHG">Constant Field Values</A></DL>
</DL>
<HR>
<A NAME="ENABLE_CHG"><!-- --></A><H3>
ENABLE_CHG</H3>
<PRE>
public static final int <B>ENABLE_CHG</B></PRE>
<DL>
<DD><p>
A constant used for notification.
</p>
<P>
<DL>
<DT><B>See Also:</B><DD><A HREF="../../../../../../org/eclipse/wst/common/frameworks/datamodel/DataModelEvent.html#ENABLE_CHG"><CODE>DataModelEvent.ENABLE_CHG</CODE></A>,
<A HREF="../../../../../../org/eclipse/wst/common/frameworks/datamodel/IDataModel.html#notifyPropertyChange(java.lang.String, int)"><CODE>notifyPropertyChange(String, int)</CODE></A>,
<A HREF="../../../../../../constant-values.html#org.eclipse.wst.common.frameworks.datamodel.IDataModel.ENABLE_CHG">Constant Field Values</A></DL>
</DL>
<HR>
<A NAME="VALID_VALUES_CHG"><!-- --></A><H3>
VALID_VALUES_CHG</H3>
<PRE>
public static final int <B>VALID_VALUES_CHG</B></PRE>
<DL>
<DD><p>
A constant used for notification.
</p>
<P>
<DL>
<DT><B>See Also:</B><DD><A HREF="../../../../../../org/eclipse/wst/common/frameworks/datamodel/DataModelEvent.html#VALID_VALUES_CHG"><CODE>DataModelEvent.VALID_VALUES_CHG</CODE></A>,
<A HREF="../../../../../../org/eclipse/wst/common/frameworks/datamodel/IDataModel.html#notifyPropertyChange(java.lang.String, int)"><CODE>notifyPropertyChange(String, int)</CODE></A>,
<A HREF="../../../../../../constant-values.html#org.eclipse.wst.common.frameworks.datamodel.IDataModel.VALID_VALUES_CHG">Constant Field Values</A></DL>
</DL>
<!-- ========= CONSTRUCTOR DETAIL ======== -->
<!-- ============ METHOD DETAIL ========== -->
<A NAME="method_detail"><!-- --></A>
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
<TD COLSPAN=1><FONT SIZE="+2">
<B>Method Detail</B></FONT></TD>
</TR>
</TABLE>
<A NAME="getID()"><!-- --></A><H3>
getID</H3>
<PRE>
public java.lang.String <B>getID</B>()</PRE>
<DL>
<DD><p>
Returns the unique ID which identifies this IDataModel instance. The same ID should be used
by the default operation (if any) for clients to extend or instantiate directly, the
DataModelWizard (if any) for clients to extend or instantiate directly.
</p>
<p>
Note, this is not the same as a hashcode. Multiple IDataModel instances created with the same
IDataModelProvider type will all have the same ID.
</p>
<p>
An IDataModel implementor defines this in IDataModelProvider.
</p>
<P>
<DD><DL>
<DT><B>Returns:</B><DD>the unique ID for this IDataModel<DT><B>See Also:</B><DD><A HREF="../../../../../../org/eclipse/wst/common/frameworks/datamodel/IDataModelProvider.html#getID()"><CODE>IDataModelProvider.getID()</CODE></A></DL>
</DD>
</DL>
<HR>
<A NAME="getDefaultOperation()"><!-- --></A><H3>
getDefaultOperation</H3>
<PRE>
public <A HREF="../../../../../../org/eclipse/wst/common/frameworks/datamodel/IDataModelOperation.html" title="interface in org.eclipse.wst.common.frameworks.datamodel">IDataModelOperation</A> <B>getDefaultOperation</B>()</PRE>
<DL>
<DD><p>
Returns the default operation to execute against this IDataModel.
</p>
<p>
An IDataModel implementor defines this in IDataModelProvider.
</p>
<P>
<DD><DL>
<DT><B>Returns:</B><DD>the default operation<DT><B>See Also:</B><DD><A HREF="../../../../../../org/eclipse/wst/common/frameworks/datamodel/IDataModelProvider.html#getDefaultOperation()"><CODE>IDataModelProvider.getDefaultOperation()</CODE></A></DL>
</DD>
</DL>
<HR>
<A NAME="getExtendedContext()"><!-- --></A><H3>
getExtendedContext</H3>
<PRE>
public java.util.List <B>getExtendedContext</B>()</PRE>
<DL>
<DD><p>
This method only pertains to IDataModels for extedended operations. The returned extended
context is used by the IDataModelOperation framework to determine whether a particular
extended operation should execute. The returned list is should contain Objects adaptable to
IProject. This IDataModel's function groups are looked up through the extension mechanism. If
a function group is defined, it is first checked for enablement. Then each adapted IProject
is inspected to verify it handles the function group. If all these conditions are met, then
the extended operation associated with this IDataModel is executed; otherwise it is skipped.
If no function group is defined, or no extended context is defined (i.e. this method returns
an empty list, or the objects in the returned list are not adaptable to IProject) then the
extended operation will execute (it will never be skipped).
</p>
<p>
An IDataModel implementor defines this in IDataModelProvider.
</p>
<p>
This method should not be called by clients.
</p>
<P>
<DD><DL>
<DT><B>Returns:</B><DD>a List of Objects adaptable to IProject<DT><B>See Also:</B><DD><A HREF="../../../../../../org/eclipse/wst/common/frameworks/datamodel/IDataModelProvider.html#getExtendedContext()"><CODE>IDataModelProvider.getExtendedContext()</CODE></A></DL>
</DD>
</DL>
<HR>
<A NAME="getProperty(java.lang.String)"><!-- --></A><H3>
getProperty</H3>
<PRE>
public java.lang.Object <B>getProperty</B>(java.lang.String&nbsp;propertyName)</PRE>
<DL>
<DD><p>
Returns the property value for the specified propertyName.
</p>
<p>
If the specified propertyName is not a property then a RuntimeException will be thrown.
</p>
<p>
Before the property is returned, first the owning IDataModel must be located. If the
specified propertyName is a base property <A HREF="../../../../../../org/eclipse/wst/common/frameworks/datamodel/IDataModel.html#isBaseProperty(java.lang.String)"><CODE>isBaseProperty(String)</CODE></A>, then this
IDataModel is the owner. Otherwise, a recursive search through the nested IDataModels is
conducted to locate the owning IDataModel. If more than one nested IDataModel defines the
property, then the first one located is considered the owning IDataModel.
</p>
<p>
Once the owning IDataModel is found the property is checked to see if it is set
<A HREF="../../../../../../org/eclipse/wst/common/frameworks/datamodel/IDataModel.html#isPropertySet(java.lang.String)"><CODE>isPropertySet(String)</CODE></A>. If the property is set, the set value is returned. If the
property is not set, its default is returned <A HREF="../../../../../../org/eclipse/wst/common/frameworks/datamodel/IDataModel.html#getDefaultProperty(java.lang.String)"><CODE>getDefaultProperty(String)</CODE></A>.
</p>
<p>
There are convenience methods for getting primitive <code>int</code> and
<code>boolean</code> types as well as Strings.
<ul>
<li><A HREF="../../../../../../org/eclipse/wst/common/frameworks/datamodel/IDataModel.html#getIntProperty(java.lang.String)"><CODE>getIntProperty(String)</CODE></A></li>
<li><A HREF="../../../../../../org/eclipse/wst/common/frameworks/datamodel/IDataModel.html#getBooleanProperty(java.lang.String)"><CODE>getBooleanProperty(String)</CODE></A></li>
<li><A HREF="../../../../../../org/eclipse/wst/common/frameworks/datamodel/IDataModel.html#getStringProperty(java.lang.String)"><CODE>getStringProperty(String)</CODE></A></li>
</ul>
</p>
<P>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>propertyName</CODE> - the property name
<DT><B>Returns:</B><DD>the property<DT><B>See Also:</B><DD><A HREF="../../../../../../org/eclipse/wst/common/frameworks/datamodel/IDataModel.html#setProperty(java.lang.String, java.lang.Object)"><CODE>setProperty(String, Object)</CODE></A>,
<A HREF="../../../../../../org/eclipse/wst/common/frameworks/datamodel/IDataModel.html#getBooleanProperty(java.lang.String)"><CODE>getBooleanProperty(String)</CODE></A>,
<A HREF="../../../../../../org/eclipse/wst/common/frameworks/datamodel/IDataModel.html#getIntProperty(java.lang.String)"><CODE>getIntProperty(String)</CODE></A>,
<A HREF="../../../../../../org/eclipse/wst/common/frameworks/datamodel/IDataModel.html#getStringProperty(java.lang.String)"><CODE>getStringProperty(String)</CODE></A></DL>
</DD>
</DL>
<HR>
<A NAME="getDefaultProperty(java.lang.String)"><!-- --></A><H3>
getDefaultProperty</H3>
<PRE>
public java.lang.Object <B>getDefaultProperty</B>(java.lang.String&nbsp;propertyName)</PRE>
<DL>
<DD><p>
Returns the default property value for the specified propertyName.
</p>
<p>
An IDataModel implementor defines this in IDataModelProvider.
</p>
<P>
<DD><DL>
<DT><B>See Also:</B><DD><A HREF="../../../../../../org/eclipse/wst/common/frameworks/datamodel/IDataModelProvider.html#getDefaultProperty(java.lang.String)"><CODE>IDataModelProvider.getDefaultProperty(String)</CODE></A></DL>
</DD>
</DL>
<HR>
<A NAME="getIntProperty(java.lang.String)"><!-- --></A><H3>
getIntProperty</H3>
<PRE>
public int <B>getIntProperty</B>(java.lang.String&nbsp;propertyName)</PRE>
<DL>
<DD><p>
A convenience method for getting ints. If the property is set then this method is equavalent
to:
</p>
<p>
<code>((Integer)getProperty(propertyName)).intValue();</code>
</p>
<p>
<code>-1</code> is returned if a call to getProperty(propertyName) returns
<code>null</code>.
</p>
<P>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>propertyName</CODE> - the property name
<DT><B>Returns:</B><DD>the int value of the property<DT><B>See Also:</B><DD><A HREF="../../../../../../org/eclipse/wst/common/frameworks/datamodel/IDataModel.html#setProperty(java.lang.String, java.lang.Object)"><CODE>setProperty(String, Object)</CODE></A>,
<A HREF="../../../../../../org/eclipse/wst/common/frameworks/datamodel/IDataModel.html#setIntProperty(java.lang.String, int)"><CODE>setIntProperty(String, int)</CODE></A></DL>
</DD>
</DL>
<HR>
<A NAME="getBooleanProperty(java.lang.String)"><!-- --></A><H3>
getBooleanProperty</H3>
<PRE>
public boolean <B>getBooleanProperty</B>(java.lang.String&nbsp;propertyName)</PRE>
<DL>
<DD><p>
A convenience method for getting booleans. If the property is set then this method is
equavalent to:
</p>
<p>
<code>((Boolean)getProperty(propertyName)).booleanValue();</code>
</p>
<p>
<code>false</code> is returned if a call to getProperty(propertyName) returns
<code>null</code>.
</p>
<P>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>propertyName</CODE> - the property name
<DT><B>Returns:</B><DD>the boolean value of the property<DT><B>See Also:</B><DD><A HREF="../../../../../../org/eclipse/wst/common/frameworks/datamodel/IDataModel.html#setProperty(java.lang.String, java.lang.Object)"><CODE>setProperty(String, Object)</CODE></A>,
<A HREF="../../../../../../org/eclipse/wst/common/frameworks/datamodel/IDataModel.html#setBooleanProperty(java.lang.String, boolean)"><CODE>setBooleanProperty(String, boolean)</CODE></A></DL>
</DD>
</DL>
<HR>
<A NAME="getStringProperty(java.lang.String)"><!-- --></A><H3>
getStringProperty</H3>
<PRE>
public java.lang.String <B>getStringProperty</B>(java.lang.String&nbsp;propertyName)</PRE>
<DL>
<DD><p>
A convenience method for getting Strings. If the property is set then this method is
equavalent to:
</p>
<p>
<code>(String)getProperty(propertyName)</code>
</p>
<p>
<code>""</code> is returned if a call to getProperty(propertyName) returns
<code>null</code>.
</p>
<P>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>propertyName</CODE> - <DT><B>See Also:</B><DD><A HREF="../../../../../../org/eclipse/wst/common/frameworks/datamodel/IDataModel.html#setProperty(java.lang.String, java.lang.Object)"><CODE>setProperty(String, Object)</CODE></A></DL>
</DD>
</DL>
<HR>
<A NAME="setProperty(java.lang.String, java.lang.Object)"><!-- --></A><H3>
setProperty</H3>
<PRE>
public void <B>setProperty</B>(java.lang.String&nbsp;propertyName,
java.lang.Object&nbsp;propertyValue)</PRE>
<DL>
<DD><p>
Sets the specified propertyName to the specified propertyValue. Subsequent calls to
<A HREF="../../../../../../org/eclipse/wst/common/frameworks/datamodel/IDataModel.html#getProperty(java.lang.String)"><CODE>getProperty(String)</CODE></A> will return the same propertyValue.
</p>
<p>
When a propertyValue other than <code>null</code> is set, then the property is considered
"set" (see <A HREF="../../../../../../org/eclipse/wst/common/frameworks/datamodel/IDataModel.html#isPropertySet(java.lang.String)"><CODE>isPropertySet(String)</CODE></A>), conversly, a propertyValue of <code>null</code>
is considered "unset".
</p>
<p>
If the specified propertyName is not a property (see <A HREF="../../../../../../org/eclipse/wst/common/frameworks/datamodel/IDataModel.html#isProperty(java.lang.String)"><CODE>isProperty(String)</CODE></A>) then a
RuntimeException will be thrown.
</p>
<p>
There are convenience methods for setting primitive <code>int</code> and
<code>boolean</code> types as well as Strings.
<ul>
<li><A HREF="../../../../../../org/eclipse/wst/common/frameworks/datamodel/IDataModel.html#setIntProperty(java.lang.String, int)"><CODE>setIntProperty(String, int)</CODE></A></li>
<li><A HREF="../../../../../../org/eclipse/wst/common/frameworks/datamodel/IDataModel.html#setBooleanProperty(java.lang.String, boolean)"><CODE>setBooleanProperty(String, boolean)</CODE></A></li>
<li><A HREF="../../../../../../org/eclipse/wst/common/frameworks/datamodel/IDataModel.html#setStringProperty(java.lang.String, java.lang.String)"><CODE>setStringProperty(String, String)</CODE></A></li>
</ul>
</p>
<p>
An IDataModel implementor may define additional post set logic in
<A HREF="../../../../../../org/eclipse/wst/common/frameworks/datamodel/IDataModelProvider.html#propertySet(java.lang.String, java.lang.Object)"><CODE>IDataModelProvider.propertySet(String, Object)</CODE></A>.
</p>
<P>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>propertyName</CODE> - the name of the property to set<DD><CODE>propertyValue</CODE> - the value to set the property<DT><B>See Also:</B><DD><A HREF="../../../../../../org/eclipse/wst/common/frameworks/datamodel/IDataModel.html#getProperty(java.lang.String)"><CODE>getProperty(String)</CODE></A>,
<A HREF="../../../../../../org/eclipse/wst/common/frameworks/datamodel/IDataModel.html#isPropertySet(java.lang.String)"><CODE>isPropertySet(String)</CODE></A>,
<A HREF="../../../../../../org/eclipse/wst/common/frameworks/datamodel/IDataModel.html#isProperty(java.lang.String)"><CODE>isProperty(String)</CODE></A>,
<A HREF="../../../../../../org/eclipse/wst/common/frameworks/datamodel/IDataModelProvider.html#propertySet(java.lang.String, java.lang.Object)"><CODE>IDataModelProvider.propertySet(String, Object)</CODE></A></DL>
</DD>
</DL>
<HR>
<A NAME="setIntProperty(java.lang.String, int)"><!-- --></A><H3>
setIntProperty</H3>
<PRE>
public void <B>setIntProperty</B>(java.lang.String&nbsp;propertyName,
int&nbsp;propertyValue)</PRE>
<DL>
<DD><p>
A convenience method for setting ints. This method is equavalent to:
<p>
<code>setProperty(propertyName, new Integer(propertyValue));</code>
</p>
<P>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>propertyName</CODE> - the name of the property<DD><CODE>propertyValue</CODE> - the <code>int</code> value of the property<DT><B>See Also:</B><DD><A HREF="../../../../../../org/eclipse/wst/common/frameworks/datamodel/IDataModel.html#setProperty(java.lang.String, java.lang.Object)"><CODE>setProperty(String, Object)</CODE></A>,
<A HREF="../../../../../../org/eclipse/wst/common/frameworks/datamodel/IDataModel.html#getIntProperty(java.lang.String)"><CODE>getIntProperty(String)</CODE></A></DL>
</DD>
</DL>
<HR>
<A NAME="setBooleanProperty(java.lang.String, boolean)"><!-- --></A><H3>
setBooleanProperty</H3>
<PRE>
public void <B>setBooleanProperty</B>(java.lang.String&nbsp;propertyName,
boolean&nbsp;propertyValue)</PRE>
<DL>
<DD><p>
A convenience method for setting booleans. This method is equavalent to:
<p>
<code>setProperty(propertyName, (value) ? Boolean.TRUE : Boolean.FALSE);</code>
</p>
<P>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>propertyName</CODE> - the name of the property<DD><CODE>propertyValue</CODE> - the <code>boolean</code> value of the property<DT><B>See Also:</B><DD><A HREF="../../../../../../org/eclipse/wst/common/frameworks/datamodel/IDataModel.html#setProperty(java.lang.String, java.lang.Object)"><CODE>setProperty(String, Object)</CODE></A>,
<A HREF="../../../../../../org/eclipse/wst/common/frameworks/datamodel/IDataModel.html#getBooleanProperty(java.lang.String)"><CODE>getBooleanProperty(String)</CODE></A></DL>
</DD>
</DL>
<HR>
<A NAME="setStringProperty(java.lang.String, java.lang.String)"><!-- --></A><H3>
setStringProperty</H3>
<PRE>
public void <B>setStringProperty</B>(java.lang.String&nbsp;propertyName,
java.lang.String&nbsp;propertyValue)</PRE>
<DL>
<DD><p>
A convenience method for setting Strings. This method is equavalent to:
<p>
<code>setProperty(propertyName, propertyValue);</code>
</p>
<P>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>propertyName</CODE> - the name of the property<DD><CODE>propertyValue</CODE> - the value of the property<DT><B>See Also:</B><DD><A HREF="../../../../../../org/eclipse/wst/common/frameworks/datamodel/IDataModel.html#setProperty(java.lang.String, java.lang.Object)"><CODE>setProperty(String, Object)</CODE></A>,
<A HREF="../../../../../../org/eclipse/wst/common/frameworks/datamodel/IDataModel.html#getStringProperty(java.lang.String)"><CODE>getStringProperty(String)</CODE></A></DL>
</DD>
</DL>
<HR>
<A NAME="addNestedModel(java.lang.String, org.eclipse.wst.common.frameworks.datamodel.IDataModel)"><!-- --></A><H3>
addNestedModel</H3>
<PRE>
public boolean <B>addNestedModel</B>(java.lang.String&nbsp;nestedModelName,
<A HREF="../../../../../../org/eclipse/wst/common/frameworks/datamodel/IDataModel.html" title="interface in org.eclipse.wst.common.frameworks.datamodel">IDataModel</A>&nbsp;dataModel)</PRE>
<DL>
<DD><p>
This method is used to nest the specified IDataModel within this IDataModel. The
<code>nestedModelName</code> argument should be a unique String to identify this particular
nested IDataModel. The same String is required when accessing the nested IDataModel using
either <A HREF="../../../../../../org/eclipse/wst/common/frameworks/datamodel/IDataModel.html#getNestedModel(java.lang.String)"><CODE>getNestedModel(String)</CODE></A> or <A HREF="../../../../../../org/eclipse/wst/common/frameworks/datamodel/IDataModel.html#removeNestedModel(java.lang.String)"><CODE>removeNestedModel(String)</CODE></A>. If the
specified nested IDataModel has already been nested under this IDataModel or it is the same
instance as this IDataModel, then calling this method will have no effect.
</p>
<P>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>nestedModelName</CODE> - the name of the IDataModel to be nested<DD><CODE>dataModel</CODE> - the IDataModel to be nested
<DT><B>Returns:</B><DD><code>true</code> if the nesting was successful, <code>false</code> otherwise.<DT><B>See Also:</B><DD><A HREF="../../../../../../org/eclipse/wst/common/frameworks/datamodel/IDataModel.html#getNestedModel(java.lang.String)"><CODE>getNestedModel(String)</CODE></A>,
<A HREF="../../../../../../org/eclipse/wst/common/frameworks/datamodel/IDataModel.html#removeNestedModel(java.lang.String)"><CODE>removeNestedModel(String)</CODE></A></DL>
</DD>
</DL>
<HR>
<A NAME="removeNestedModel(java.lang.String)"><!-- --></A><H3>
removeNestedModel</H3>
<PRE>
public <A HREF="../../../../../../org/eclipse/wst/common/frameworks/datamodel/IDataModel.html" title="interface in org.eclipse.wst.common.frameworks.datamodel">IDataModel</A> <B>removeNestedModel</B>(java.lang.String&nbsp;nestedModelName)</PRE>
<DL>
<DD><p>
Remove the specified nestedModel.
</p>
<P>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>nestedModelName</CODE> - the name of the nested IDataModel to remove.
<DT><B>Returns:</B><DD>the IDataModel removed, or <code>null</code> if the nested model does not exist or
if the specified name is null.</DL>
</DD>
</DL>
<HR>
<A NAME="isNestedModel(java.lang.String)"><!-- --></A><H3>
isNestedModel</H3>
<PRE>
public boolean <B>isNestedModel</B>(java.lang.String&nbsp;nestedModelName)</PRE>
<DL>
<DD>Returns <code>true</code> if a nested model exists (at the top level only) with the
specified name and <code>false</code> otherwise.
<P>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>nestedModelName</CODE> - the name of the nested IDataModel to check.
<DT><B>Returns:</B><DD>Returns <code>true</code> if a nested model exists (at the top level only) with the
specified name and <code>false</code> otherwise.</DL>
</DD>
</DL>
<HR>
<A NAME="getNestedModel(java.lang.String)"><!-- --></A><H3>
getNestedModel</H3>
<PRE>
public <A HREF="../../../../../../org/eclipse/wst/common/frameworks/datamodel/IDataModel.html" title="interface in org.eclipse.wst.common.frameworks.datamodel">IDataModel</A> <B>getNestedModel</B>(java.lang.String&nbsp;nestedModelName)</PRE>
<DL>
<DD>Returns the nested IDataModel identified the by the specified name. A RuntimeException is
thrown if there is no such nested IDataModel (i.e. isNestedModel() would return
<code>false</code>).
<P>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>nestedModelName</CODE> - the name of the nested IDataModel to get.
<DT><B>Returns:</B><DD>the nested IDataModel</DL>
</DD>
</DL>
<HR>
<A NAME="getNestedModels()"><!-- --></A><H3>
getNestedModels</H3>
<PRE>
public java.util.Collection <B>getNestedModels</B>()</PRE>
<DL>
<DD>Returns a Collection of all nested IDataModels, or an empty Collection if none exist.
<P>
<DD><DL>
<DT><B>Returns:</B><DD>a Collection of all nested IDataModels, or an empty Collection if none exist.</DL>
</DD>
</DL>
<HR>
<A NAME="getNestedModelNames()"><!-- --></A><H3>
getNestedModelNames</H3>
<PRE>
public java.util.Collection <B>getNestedModelNames</B>()</PRE>
<DL>
<DD>Returns a Collection of all nested IDataModels names, or an empty Collection if none exist.
<P>
<DD><DL>
<DT><B>Returns:</B><DD>a Collection of all nested IDataModels names, or an empty Collection if none exist.</DL>
</DD>
</DL>
<HR>
<A NAME="getNestingModels()"><!-- --></A><H3>
getNestingModels</H3>
<PRE>
public java.util.Collection <B>getNestingModels</B>()</PRE>
<DL>
<DD>Returns a Collection of all nesting (the inverse of nested) IDataModels, or an empty
Collection if none exist.
<P>
<DD><DL>
<DT><B>Returns:</B><DD>a Collection of all nesting (the inverse of nested) IDataModels, or an empty
Collection if none exist.</DL>
</DD>
</DL>
<HR>
<A NAME="getBaseProperties()"><!-- --></A><H3>
getBaseProperties</H3>
<PRE>
public java.util.Collection <B>getBaseProperties</B>()</PRE>
<DL>
<DD>Returns a Collection of all base properties (not including nested properties), or an empty
Collection if none exist.
<P>
<DD><DL>
<DT><B>Returns:</B><DD>a Collection of all base properties (not including nested properties), or an empty
Collection if none exist.</DL>
</DD>
</DL>
<HR>
<A NAME="getNestedProperties()"><!-- --></A><H3>
getNestedProperties</H3>
<PRE>
public java.util.Collection <B>getNestedProperties</B>()</PRE>
<DL>
<DD>Returns a Collection of all properties of recursively nested IDataModels, or an empty
Collection if none exist.
<P>
<DD><DL>
<DT><B>Returns:</B><DD>a Collection of all properties of recursively nested IDataModels, or an empty
Collection if none exist.</DL>
</DD>
</DL>
<HR>
<A NAME="getAllProperties()"><!-- --></A><H3>
getAllProperties</H3>
<PRE>
public java.util.Collection <B>getAllProperties</B>()</PRE>
<DL>
<DD>Returns a Collection of all properties (the union of getBaseProperties() and
getNestedProperties()), or an empty Collection if none exist.
<P>
<DD><DL>
<DT><B>Returns:</B><DD>a Collection of all properties (the union of getBaseProperties() and
getNestedProperties()), or an empty Collection if none exist.</DL>
</DD>
</DL>
<HR>
<A NAME="isBaseProperty(java.lang.String)"><!-- --></A><H3>
isBaseProperty</H3>
<PRE>
public boolean <B>isBaseProperty</B>(java.lang.String&nbsp;propertyName)</PRE>
<DL>
<DD>Returns <code>true</code> if the specified propertyName is a valid propertyName for this
root IDataModel only. Nested IDataModels are not checked, though it is possible for a nested
IDataModel to contain the same property.
<P>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>propertyName</CODE> - the property name to check
<DT><B>Returns:</B><DD><code>true</code> if this property is a base property, <code>false</code>
otherwise.<DT><B>See Also:</B><DD><A HREF="../../../../../../org/eclipse/wst/common/frameworks/datamodel/IDataModel.html#isProperty(java.lang.String)"><CODE>isProperty(String)</CODE></A>,
<A HREF="../../../../../../org/eclipse/wst/common/frameworks/datamodel/IDataModel.html#isNestedProperty(java.lang.String)"><CODE>isNestedProperty(String)</CODE></A></DL>
</DD>
</DL>
<HR>
<A NAME="isProperty(java.lang.String)"><!-- --></A><H3>
isProperty</H3>
<PRE>
public boolean <B>isProperty</B>(java.lang.String&nbsp;propertyName)</PRE>
<DL>
<DD>Returns <code>true</code> if the specified propertyName is a valid propertyName for this
DataModel or any of its (recursively) nested IDataModels.
<P>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>propertyName</CODE> - the property name to check
<DT><B>Returns:</B><DD><code>true</code> if this is a property, <code>false</code> otherwise.<DT><B>See Also:</B><DD><A HREF="../../../../../../org/eclipse/wst/common/frameworks/datamodel/IDataModel.html#isBaseProperty(java.lang.String)"><CODE>isBaseProperty(String)</CODE></A></DL>
</DD>
</DL>
<HR>
<A NAME="isNestedProperty(java.lang.String)"><!-- --></A><H3>
isNestedProperty</H3>
<PRE>
public boolean <B>isNestedProperty</B>(java.lang.String&nbsp;propertyName)</PRE>
<DL>
<DD>Returns <code>true</code> if the specified propertyName is a valid propertyName for any of
its (recursively) nested IDataModels. The root IDataModel is not checked, though it is
possible for the root IDataModel to contain the same property.
<P>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>propertyName</CODE> - the property name to check
<DT><B>Returns:</B><DD><code>true</code> if the property is nested, <code>false</code> otherwise.<DT><B>See Also:</B><DD><A HREF="../../../../../../org/eclipse/wst/common/frameworks/datamodel/IDataModel.html#isBaseProperty(java.lang.String)"><CODE>isBaseProperty(String)</CODE></A></DL>
</DD>
</DL>
<HR>
<A NAME="isPropertySet(java.lang.String)"><!-- --></A><H3>
isPropertySet</H3>
<PRE>
public boolean <B>isPropertySet</B>(java.lang.String&nbsp;propertyName)</PRE>
<DL>
<DD>Returns <code>true</code> if the specified property has been set on the IDataModel. If it
has not been set, then a call to get the same property will return the default value.
<P>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>propertyName</CODE> - the property name to check
<DT><B>Returns:</B><DD><code>true</code> if the property is set, <code>false</code> otherwise.</DL>
</DD>
</DL>
<HR>
<A NAME="isPropertyEnabled(java.lang.String)"><!-- --></A><H3>
isPropertyEnabled</H3>
<PRE>
public boolean <B>isPropertyEnabled</B>(java.lang.String&nbsp;propertyName)</PRE>
<DL>
<DD><p>
Returns <code>true</code> if the specified property is enabled and <code>false</code>
otherwise.
</p>
<p>
An IDataModel implementor defines this in IDataModelProvider.
</p>
<P>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>propertyName</CODE> - the property name to check
<DT><B>Returns:</B><DD><code>true</code> if the specified property is enabled and <code>false</code>
otherwise.<DT><B>See Also:</B><DD><A HREF="../../../../../../org/eclipse/wst/common/frameworks/datamodel/IDataModelProvider.html#isPropertyEnabled(java.lang.String)"><CODE>IDataModelProvider.isPropertyEnabled(String)</CODE></A></DL>
</DD>
</DL>
<HR>
<A NAME="isPropertyValid(java.lang.String)"><!-- --></A><H3>
isPropertyValid</H3>
<PRE>
public boolean <B>isPropertyValid</B>(java.lang.String&nbsp;propertyName)</PRE>
<DL>
<DD><p>
Returns <code>false</code> if the the IStatus returned by validateProperty(String) is ERROR
and <code>true</code> otherwise.
</p>
<P>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>propertyName</CODE> - the property name to check
<DT><B>Returns:</B><DD><code>false</code> if the the IStatus returned by validateProperty(String) is ERROR
and <code>true</code> otherwise.</DL>
</DD>
</DL>
<HR>
<A NAME="validateProperty(java.lang.String)"><!-- --></A><H3>
validateProperty</H3>
<PRE>
public IStatus <B>validateProperty</B>(java.lang.String&nbsp;propertyName)</PRE>
<DL>
<DD><p>
Returns an IStatus for the specified property. Retuns an IStatus.OK if the returned value is
valid with respect itself, other properites, and broader context of the IDataModel.
IStatus.ERROR is returned if the returned value is invalid. IStatus.WARNING may also be
returned if the value is not optimal.
</p>
<p>
An IDataModel implementor defines this in IDataModelProvider.
</p>
<P>
<DD><DL>
<DT><B>See Also:</B><DD><A HREF="../../../../../../org/eclipse/wst/common/frameworks/datamodel/IDataModelProvider.html#validate(java.lang.String)"><CODE>IDataModelProvider.validate(String)</CODE></A></DL>
</DD>
</DL>
<HR>
<A NAME="isValid()"><!-- --></A><H3>
isValid</H3>
<PRE>
public boolean <B>isValid</B>()</PRE>
<DL>
<DD><p>
Returns <code>false</code> if the IStatus returned by validate(true) is ERROR and
<code>true</code> otherwise.
</p>
<P>
<DD><DL>
<DT><B>Returns:</B><DD><code>false</code> if the IStatus returned by validate(true) is ERROR and
<code>true</code> otherwise.</DL>
</DD>
</DL>
<HR>
<A NAME="validate()"><!-- --></A><H3>
validate</H3>
<PRE>
public IStatus <B>validate</B>()</PRE>
<DL>
<DD><p>
Equavalent to calling <code>validate(true)</code>.
</p>
<P>
<DD><DL>
<DT><B>Returns:</B><DD>an IStatus</DL>
</DD>
</DL>
<HR>
<A NAME="validate(boolean)"><!-- --></A><H3>
validate</H3>
<PRE>
public IStatus <B>validate</B>(boolean&nbsp;stopAtFirstFailure)</PRE>
<DL>
<DD><p>
Iterates over all base properties and nested models IDs and calls validate(String). This
method returns when any call to validate(String) returns an IStatus error and
stopAtFirstFailure is set to true.
<p>
<P>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>stopAtFirstFailure</CODE> - whether validation should stop at the first failure
<DT><B>Returns:</B><DD>an IStatus</DL>
</DD>
</DL>
<HR>
<A NAME="getPropertyDescriptor(java.lang.String)"><!-- --></A><H3>
getPropertyDescriptor</H3>
<PRE>
public <A HREF="../../../../../../org/eclipse/wst/common/frameworks/datamodel/DataModelPropertyDescriptor.html" title="class in org.eclipse.wst.common.frameworks.datamodel">DataModelPropertyDescriptor</A> <B>getPropertyDescriptor</B>(java.lang.String&nbsp;propertyName)</PRE>
<DL>
<DD><p>
Returns a DataModelPropertyDescriptor for the specified property. The
<code>getPropertyValue()</code> method on the returned DataModelPropertyDescriptor will be
the same value as returned by <code>getPropertyValue(propertyName)</code>.
</p>
<p>
Following the example introduced in <A HREF="../../../../../../org/eclipse/wst/common/frameworks/datamodel/IDataModel.html#getValidPropertyDescriptors(java.lang.String)"><CODE>getValidPropertyDescriptors(String)</CODE></A>, suppose
the <code>SHIRT_SIZE</code> property is currently set to 1. A call to this method would
return a DataModelPropertyDescriptor whose <code>getPropertyValue()</code> returns
<code>1</code> and whose <code>getPropertyDescription()</code> returns <code>small</code>.
</p>
<p>
Also, note that even if a particular property is not confined to a finite set of values as
defined by <A HREF="../../../../../../org/eclipse/wst/common/frameworks/datamodel/IDataModel.html#getValidPropertyDescriptors(java.lang.String)"><CODE>getValidPropertyDescriptors(String)</CODE></A>this method will always return a
valid DataModelPropertyDescriptor.
</p>
<p>
An IDataModel implementor defines this in IDataModelProvider.
</p>
<P>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>propertyName</CODE> -
<DT><B>Returns:</B><DD>the DataModelPropertyDescriptor for the specified property<DT><B>See Also:</B><DD><A HREF="../../../../../../org/eclipse/wst/common/frameworks/datamodel/IDataModel.html#getValidPropertyDescriptors(java.lang.String)"><CODE>getValidPropertyDescriptors(String)</CODE></A></DL>
</DD>
</DL>
<HR>
<A NAME="getValidPropertyDescriptors(java.lang.String)"><!-- --></A><H3>
getValidPropertyDescriptors</H3>
<PRE>
public <A HREF="../../../../../../org/eclipse/wst/common/frameworks/datamodel/DataModelPropertyDescriptor.html" title="class in org.eclipse.wst.common.frameworks.datamodel">DataModelPropertyDescriptor</A>[] <B>getValidPropertyDescriptors</B>(java.lang.String&nbsp;propertyName)</PRE>
<DL>
<DD><p>
Returns a DataModelPropertyDescriptor array consisting of all valid
DataModelPropertyDescriptors for the specified property. Each
<A HREF="../../../../../../org/eclipse/wst/common/frameworks/datamodel/DataModelPropertyDescriptor.html" title="class in org.eclipse.wst.common.frameworks.datamodel"><CODE>DataModelPropertyDescriptor</CODE></A> contains a value and a human readible description for the
value. The set of all values in the returned array are those values which are valid for the
IDataModel. This value set only makes sense when valid property values conform to a well
defined finite set. If no such value set exists for the property, then a 0 length array is
returned. <code>null</code> is never returned.
</p>
<p>
As an example, suppose there is a property called <code>SHIRT_SIZE</code> which is an
<code>Integer</code> type. Also suppse that valid shirt sizes are only small, medium, or
large. However, the actual values representing small, medium, and large are 1, 2, and 3
respectively. A call to <code>getValidPropertyDescriptors(SHIRT_SIZE)</code> would return a
DataModelPropertyDescriptor array where the value, description pairs would be {(1, small),
(2, medium), (3, large)}.
</p>
<p>
An IDataModel implementor defines this in IDataModelProvider.
</p>
<P>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>propertyName</CODE> - then name of the property to check
<DT><B>Returns:</B><DD>the array of valid DataModelPropertyDescriptors<DT><B>See Also:</B><DD><A HREF="../../../../../../org/eclipse/wst/common/frameworks/datamodel/IDataModel.html#getPropertyDescriptor(java.lang.String)"><CODE>getPropertyDescriptor(String)</CODE></A></DL>
</DD>
</DL>
<HR>
<A NAME="addListener(org.eclipse.wst.common.frameworks.datamodel.IDataModelListener)"><!-- --></A><H3>
addListener</H3>
<PRE>
public void <B>addListener</B>(<A HREF="../../../../../../org/eclipse/wst/common/frameworks/datamodel/IDataModelListener.html" title="interface in org.eclipse.wst.common.frameworks.datamodel">IDataModelListener</A>&nbsp;dataModelListener)</PRE>
<DL>
<DD><p>
Adds the specified IDataModelListener to listen for DataModelEvents. If the specified
listener has already been added, calling this method will have no effect.
</p>
<P>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>dataModelListener</CODE> - the new listener to add.<DT><B>See Also:</B><DD><A HREF="../../../../../../org/eclipse/wst/common/frameworks/datamodel/IDataModel.html#removeListener(org.eclipse.wst.common.frameworks.datamodel.IDataModelListener)"><CODE>removeListener(IDataModelListener)</CODE></A></DL>
</DD>
</DL>
<HR>
<A NAME="removeListener(org.eclipse.wst.common.frameworks.datamodel.IDataModelListener)"><!-- --></A><H3>
removeListener</H3>
<PRE>
public void <B>removeListener</B>(<A HREF="../../../../../../org/eclipse/wst/common/frameworks/datamodel/IDataModelListener.html" title="interface in org.eclipse.wst.common.frameworks.datamodel">IDataModelListener</A>&nbsp;dataModelListener)</PRE>
<DL>
<DD><p>
Remove the specified IDataModelListener. If the specified listener is not a registered
listenr on this IDataModel, then calling this method will have no effect.
</p>
<P>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>dataModelListener</CODE> - the listener to remove.<DT><B>See Also:</B><DD><A HREF="../../../../../../org/eclipse/wst/common/frameworks/datamodel/IDataModel.html#addListener(org.eclipse.wst.common.frameworks.datamodel.IDataModelListener)"><CODE>addListener(IDataModelListener)</CODE></A></DL>
</DD>
</DL>
<HR>
<A NAME="notifyPropertyChange(java.lang.String, int)"><!-- --></A><H3>
notifyPropertyChange</H3>
<PRE>
public void <B>notifyPropertyChange</B>(java.lang.String&nbsp;propertyName,
int&nbsp;eventType)</PRE>
<DL>
<DD><p>
Notify all listeners of a property change. <code>eventType</code> specifies the type of
change. Acceptible values for eventType are <code>VALUE_CHG</code>,
<code>DEFAULT_CHG</code>, <code>ENABLE_CHG</code>, <code>VALID_VALUES_CHG</code>. If
the eventType is <code>DEFAULT_CHG</code> and the specified property is set, then this
method will do nothing.
</p>
<p>
Typically this method should only be invoked by an IDataModelProvider from its propertySet
implementation.
</p>
<P>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>propertyName</CODE> - the name of the property changing<DD><CODE>eventType</CODE> - the type of event to fire<DT><B>See Also:</B><DD><A HREF="../../../../../../org/eclipse/wst/common/frameworks/datamodel/IDataModel.html#VALUE_CHG"><CODE>VALUE_CHG</CODE></A>,
<A HREF="../../../../../../org/eclipse/wst/common/frameworks/datamodel/IDataModel.html#DEFAULT_CHG"><CODE>DEFAULT_CHG</CODE></A>,
<A HREF="../../../../../../org/eclipse/wst/common/frameworks/datamodel/IDataModel.html#ENABLE_CHG"><CODE>ENABLE_CHG</CODE></A>,
<A HREF="../../../../../../org/eclipse/wst/common/frameworks/datamodel/IDataModel.html#VALID_VALUES_CHG"><CODE>VALID_VALUES_CHG</CODE></A>,
<A HREF="../../../../../../org/eclipse/wst/common/frameworks/datamodel/DataModelEvent.html" title="class in org.eclipse.wst.common.frameworks.datamodel"><CODE>DataModelEvent</CODE></A></DL>
</DD>
</DL>
<HR>
<A NAME="dispose()"><!-- --></A><H3>
dispose</H3>
<PRE>
public void <B>dispose</B>()</PRE>
<DL>
<DD><p>
A typical dispose method used to clean up any resources not handled by general garbage
collection.
</p>
<P>
<DD><DL>
</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=3 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;<A HREF="#main"><FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT></A>&nbsp;</TD>
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="class-use/IDataModel.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="../../../../../../serialized-form.html"><FONT CLASS="NavBarFont1"><B>Serialized</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;PREV CLASS&nbsp;
&nbsp;<A HREF="../../../../../../org/eclipse/wst/common/frameworks/datamodel/IDataModelListener.html" title="interface in org.eclipse.wst.common.frameworks.datamodel"><B>NEXT CLASS</B></A></FONT></TD>
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
<A HREF="../../../../../../index.html" target="_top"><B>FRAMES</B></A> &nbsp;
&nbsp;<A HREF="IDataModel.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;CONSTR&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;CONSTR&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>