<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<!-- NewPage -->
<html lang="en">
<head>
<!-- Generated by javadoc (1.8.0_172) on Fri Nov 02 16:44:10 UTC 2018 -->
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Class Hierarchy (Apache NetBeans Maven Utilities - NBM Maven Plugin 4.2-SNAPSHOT API)</title>
<meta name="date" content="2018-11-02">
<link rel="stylesheet" type="text/css" href="stylesheet.css" title="Style">
<script type="text/javascript" src="script.js"></script>
</head>
<body>
<script type="text/javascript"><!--
    try {
        if (location.href.indexOf('is-external=true') == -1) {
            parent.document.title="Class Hierarchy (Apache NetBeans Maven Utilities - NBM Maven Plugin 4.2-SNAPSHOT API)";
        }
    }
    catch(err) {
    }
//-->
</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
<!-- ========= START OF TOP NAVBAR ======= -->
<div class="topNav"><a name="navbar.top">
<!--   -->
</a>
<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
<a name="navbar.top.firstrow">
<!--   -->
</a>
<ul class="navList" title="Navigation">
<li><a href="overview-summary.html">Overview</a></li>
<li>Package</li>
<li>Class</li>
<li>Use</li>
<li class="navBarCell1Rev">Tree</li>
<li><a href="deprecated-list.html">Deprecated</a></li>
<li><a href="index-all.html">Index</a></li>
<li><a href="help-doc.html">Help</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList">
<li>Prev</li>
<li>Next</li>
</ul>
<ul class="navList">
<li><a href="index.html?overview-tree.html" target="_top">Frames</a></li>
<li><a href="overview-tree.html" target="_top">No&nbsp;Frames</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_top">
<li><a href="allclasses-noframe.html">All&nbsp;Classes</a></li>
</ul>
<div>
<script type="text/javascript"><!--
  allClassesLink = document.getElementById("allclasses_navbar_top");
  if(window==top) {
    allClassesLink.style.display = "block";
  }
  else {
    allClassesLink.style.display = "none";
  }
  //-->
</script>
</div>
<a name="skip.navbar.top">
<!--   -->
</a></div>
<!-- ========= END OF TOP NAVBAR ========= -->
<div class="header">
<h1 class="title">Hierarchy For All Packages</h1>
<span class="packageHierarchyLabel">Package Hierarchies:</span>
<ul class="horizontal">
<li><a href="org/netbeans/nbm/package-tree.html">org.netbeans.nbm</a>, </li>
<li><a href="org/netbeans/nbm/model/package-tree.html">org.netbeans.nbm.model</a>, </li>
<li><a href="org/netbeans/nbm/model/io/xpp3/package-tree.html">org.netbeans.nbm.model.io.xpp3</a></li>
</ul>
</div>
<div class="contentContainer">
<h2 title="Class Hierarchy">Class Hierarchy</h2>
<ul>
<li type="circle">java.lang.<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang"><span class="typeNameLink">Object</span></a>
<ul>
<li type="circle">org.apache.maven.plugin.AbstractMojo (implements org.apache.maven.plugin.ContextEnabled, org.apache.maven.plugin.Mojo)
<ul>
<li type="circle">org.netbeans.nbm.utils.AbstractNetbeansMojo
<ul>
<li type="circle">org.netbeans.nbm.<a href="org/netbeans/nbm/AbstractNbmMojo.html" title="class in org.netbeans.nbm"><span class="typeNameLink">AbstractNbmMojo</span></a>
<ul>
<li type="circle">org.netbeans.nbm.<a href="org/netbeans/nbm/BrandingMojo.html" title="class in org.netbeans.nbm"><span class="typeNameLink">BrandingMojo</span></a></li>
<li type="circle">org.netbeans.nbm.<a href="org/netbeans/nbm/BuildInstallersMojo.html" title="class in org.netbeans.nbm"><span class="typeNameLink">BuildInstallersMojo</span></a></li>
<li type="circle">org.netbeans.nbm.<a href="org/netbeans/nbm/CreateClusterAppMojo.html" title="class in org.netbeans.nbm"><span class="typeNameLink">CreateClusterAppMojo</span></a></li>
<li type="circle">org.netbeans.nbm.<a href="org/netbeans/nbm/CreateClusterMojo.html" title="class in org.netbeans.nbm"><span class="typeNameLink">CreateClusterMojo</span></a></li>
<li type="circle">org.netbeans.nbm.<a href="org/netbeans/nbm/CreateNetBeansFileStructure.html" title="class in org.netbeans.nbm"><span class="typeNameLink">CreateNetBeansFileStructure</span></a>
<ul>
<li type="circle">org.netbeans.nbm.<a href="org/netbeans/nbm/CreateNbmMojo.html" title="class in org.netbeans.nbm"><span class="typeNameLink">CreateNbmMojo</span></a> (implements org.codehaus.plexus.personality.plexus.lifecycle.phase.Contextualizable)</li>
</ul>
</li>
<li type="circle">org.netbeans.nbm.<a href="org/netbeans/nbm/CreateUpdateSiteMojo.html" title="class in org.netbeans.nbm"><span class="typeNameLink">CreateUpdateSiteMojo</span></a> (implements org.codehaus.plexus.personality.plexus.lifecycle.phase.Contextualizable)</li>
<li type="circle">org.netbeans.nbm.<a href="org/netbeans/nbm/CreateWebstartAppMojo.html" title="class in org.netbeans.nbm"><span class="typeNameLink">CreateWebstartAppMojo</span></a></li>
<li type="circle">org.netbeans.nbm.<a href="org/netbeans/nbm/NetBeansManifestUpdateMojo.html" title="class in org.netbeans.nbm"><span class="typeNameLink">NetBeansManifestUpdateMojo</span></a></li>
</ul>
</li>
</ul>
</li>
<li type="circle">org.netbeans.nbm.<a href="org/netbeans/nbm/CreateStandaloneMojo.html" title="class in org.netbeans.nbm"><span class="typeNameLink">CreateStandaloneMojo</span></a></li>
<li type="circle">org.netbeans.nbm.<a href="org/netbeans/nbm/HelpMojo.html" title="class in org.netbeans.nbm"><span class="typeNameLink">HelpMojo</span></a></li>
<li type="circle">org.netbeans.nbm.<a href="org/netbeans/nbm/RunNetBeansMojo.html" title="class in org.netbeans.nbm"><span class="typeNameLink">RunNetBeansMojo</span></a></li>
<li type="circle">org.netbeans.nbm.<a href="org/netbeans/nbm/RunPlatformAppMojo.html" title="class in org.netbeans.nbm"><span class="typeNameLink">RunPlatformAppMojo</span></a></li>
</ul>
</li>
<li type="circle">org.netbeans.nbm.<a href="org/netbeans/nbm/AbstractNbmMojo.ArtifactResult.html" title="class in org.netbeans.nbm"><span class="typeNameLink">AbstractNbmMojo.ArtifactResult</span></a></li>
<li type="circle">org.netbeans.nbm.<a href="org/netbeans/nbm/AdaptNbVersion.html" title="class in org.netbeans.nbm"><span class="typeNameLink">AdaptNbVersion</span></a></li>
<li type="circle">org.netbeans.nbm.<a href="org/netbeans/nbm/CollectLibrariesNodeVisitor.html" title="class in org.netbeans.nbm"><span class="typeNameLink">CollectLibrariesNodeVisitor</span></a> (implements org.apache.maven.shared.dependency.graph.traversal.DependencyNodeVisitor)</li>
<li type="circle">org.netbeans.nbm.<a href="org/netbeans/nbm/CollectModuleLibrariesNodeVisitor.html" title="class in org.netbeans.nbm"><span class="typeNameLink">CollectModuleLibrariesNodeVisitor</span></a> (implements org.apache.maven.shared.dependency.graph.traversal.DependencyNodeVisitor)</li>
<li type="circle">org.netbeans.nbm.model.<a href="org/netbeans/nbm/model/Dependency.html" title="class in org.netbeans.nbm.model"><span class="typeNameLink">Dependency</span></a> (implements java.io.<a href="https://docs.oracle.com/javase/7/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>)</li>
<li type="circle">org.netbeans.nbm.model.<a href="org/netbeans/nbm/model/NbmResource.html" title="class in org.netbeans.nbm.model"><span class="typeNameLink">NbmResource</span></a> (implements java.io.<a href="https://docs.oracle.com/javase/7/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>)</li>
<li type="circle">org.netbeans.nbm.model.<a href="org/netbeans/nbm/model/NetBeansModule.html" title="class in org.netbeans.nbm.model"><span class="typeNameLink">NetBeansModule</span></a> (implements java.io.<a href="https://docs.oracle.com/javase/7/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>)</li>
<li type="circle">org.netbeans.nbm.model.io.xpp3.<a href="org/netbeans/nbm/model/io/xpp3/NetBeansModuleXpp3Reader.html" title="class in org.netbeans.nbm.model.io.xpp3"><span class="typeNameLink">NetBeansModuleXpp3Reader</span></a></li>
</ul>
</li>
</ul>
<h2 title="Interface Hierarchy">Interface Hierarchy</h2>
<ul>
<li type="circle">org.netbeans.nbm.model.io.xpp3.<a href="org/netbeans/nbm/model/io/xpp3/NetBeansModuleXpp3Reader.ContentTransformer.html" title="interface in org.netbeans.nbm.model.io.xpp3"><span class="typeNameLink">NetBeansModuleXpp3Reader.ContentTransformer</span></a></li>
</ul>
</div>
<!-- ======= START OF BOTTOM NAVBAR ====== -->
<div class="bottomNav"><a name="navbar.bottom">
<!--   -->
</a>
<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
<a name="navbar.bottom.firstrow">
<!--   -->
</a>
<ul class="navList" title="Navigation">
<li><a href="overview-summary.html">Overview</a></li>
<li>Package</li>
<li>Class</li>
<li>Use</li>
<li class="navBarCell1Rev">Tree</li>
<li><a href="deprecated-list.html">Deprecated</a></li>
<li><a href="index-all.html">Index</a></li>
<li><a href="help-doc.html">Help</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList">
<li>Prev</li>
<li>Next</li>
</ul>
<ul class="navList">
<li><a href="index.html?overview-tree.html" target="_top">Frames</a></li>
<li><a href="overview-tree.html" target="_top">No&nbsp;Frames</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_bottom">
<li><a href="allclasses-noframe.html">All&nbsp;Classes</a></li>
</ul>
<div>
<script type="text/javascript"><!--
  allClassesLink = document.getElementById("allclasses_navbar_bottom");
  if(window==top) {
    allClassesLink.style.display = "block";
  }
  else {
    allClassesLink.style.display = "none";
  }
  //-->
</script>
</div>
<a name="skip.navbar.bottom">
<!--   -->
</a></div>
<!-- ======== END OF BOTTOM NAVBAR ======= -->
<p class="legalCopy"><small>Copyright &#169; 2005&#x2013;2018 <a href="https://www.apache.org/">The Apache Software Foundation</a>. All rights reserved.</small></p>
</body>
</html>
