<html><body><p><font size="+1"><strong>Package org.eclipse.wst.xsl.ui.internal.style</strong></font></p><hr><h2><font size="-1"><strong>org.eclipse.wst.xsl.ui.internal.style</strong></font><br>
               Class XSLRegionMap</h2><br><hr><pre>public class <strong>XSLRegionMap</strong>
extends java.lang.Object</pre>XSLRegionMap handles the mapping of XML Regions to XSL Style Constants.<p></p><p></p><hr><table width="100%" border="1"><tr cols="2" bgcolor="#CCCCFF"><td colspan="2" width="100%"><h2>Method Summary</h2></td></tr><tr valign="top"><td width="20%" align="right"><code>public static org.eclipse.wst.xsl.ui.internal.style.XSLRegionMap</code></td><td width="" align="left"><code><a href="#method_getInstance">getInstance</a>()</code><br>
               &nbsp;&nbsp;&nbsp;&nbsp;
               Returns an instance of XSLRegionMap.</td></tr><tr valign="top"><td width="20%" align="right"><code>public java.util.Map</code></td><td width="" align="left"><code><a href="#method_getRegionMap">getRegionMap</a>()</code><br>
               &nbsp;&nbsp;&nbsp;&nbsp;
               Returns a MAP of XSL Regions and Style Constants.</td></tr></table><hr><table cols="2" width="100%" border="1"><tr colspan="2" width="100%" bgcolor="#CCCCFF" align="left"><td><h2>
                  Methods Detail
               </h2></td></tr></table><h2><a name="method_getInstance">getInstance</a></h2><p><code>public org.eclipse.wst.xsl.ui.internal.style.XSLRegionMap <strong>getInstance</strong>()</code></p><p>Returns an instance of XSLRegionMap.</p><h3>Returns</h3><p><code>org.eclipse.wst.xsl.ui.internal.style.XSLRegionMap</code></p><hr><h2><a name="method_getRegionMap">getRegionMap</a></h2><p><code>public java.util.Map <strong>getRegionMap</strong>()</code></p><p>Returns a MAP of XSL Regions and Style Constants.</p><h3>Returns</h3><p><code>java.util.Map</code></p><hr></body></html>