<!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_292) on Tue Jun 15 06:02:23 GMT 2021 -->
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>org.apache.hadoop.tools.proto Class Hierarchy (Apache Hadoop Common 3.3.1 API)</title>
<meta name="date" content="2021-06-15">
<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="org.apache.hadoop.tools.proto Class Hierarchy (Apache Hadoop Common 3.3.1 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><a href="package-summary.html">Package</a></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><a href="../../../../../org/apache/hadoop/tools/package-tree.html">Prev</a></li>
<li><a href="../../../../../org/apache/hadoop/tools/protocolPB/package-tree.html">Next</a></li>
</ul>
<ul class="navList">
<li><a href="../../../../../index.html?org/apache/hadoop/tools/proto/package-tree.html" target="_top">Frames</a></li>
<li><a href="package-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 Package org.apache.hadoop.tools.proto</h1>
<span class="packageHierarchyLabel">Package Hierarchies:</span>
<ul class="horizontal">
<li><a href="../../../../../overview-tree.html">All Packages</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/8/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.hadoop.thirdparty.protobuf.AbstractMessageLite&lt;MessageType,BuilderType&gt; (implements org.apache.hadoop.thirdparty.protobuf.MessageLite)
<ul>
<li type="circle">org.apache.hadoop.thirdparty.protobuf.AbstractMessage (implements org.apache.hadoop.thirdparty.protobuf.Message)
<ul>
<li type="circle">org.apache.hadoop.thirdparty.protobuf.GeneratedMessageV3 (implements java.io.<a href="https://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>)
<ul>
<li type="circle">org.apache.hadoop.tools.proto.<a href="../../../../../org/apache/hadoop/tools/proto/GetUserMappingsProtocolProtos.GetGroupsForUserRequestProto.html" title="class in org.apache.hadoop.tools.proto"><span class="typeNameLink">GetUserMappingsProtocolProtos.GetGroupsForUserRequestProto</span></a> (implements org.apache.hadoop.tools.proto.<a href="../../../../../org/apache/hadoop/tools/proto/GetUserMappingsProtocolProtos.GetGroupsForUserRequestProtoOrBuilder.html" title="interface in org.apache.hadoop.tools.proto">GetUserMappingsProtocolProtos.GetGroupsForUserRequestProtoOrBuilder</a>)</li>
<li type="circle">org.apache.hadoop.tools.proto.<a href="../../../../../org/apache/hadoop/tools/proto/GetUserMappingsProtocolProtos.GetGroupsForUserResponseProto.html" title="class in org.apache.hadoop.tools.proto"><span class="typeNameLink">GetUserMappingsProtocolProtos.GetGroupsForUserResponseProto</span></a> (implements org.apache.hadoop.tools.proto.<a href="../../../../../org/apache/hadoop/tools/proto/GetUserMappingsProtocolProtos.GetGroupsForUserResponseProtoOrBuilder.html" title="interface in org.apache.hadoop.tools.proto">GetUserMappingsProtocolProtos.GetGroupsForUserResponseProtoOrBuilder</a>)</li>
</ul>
</li>
</ul>
</li>
</ul>
</li>
<li type="circle">org.apache.hadoop.thirdparty.protobuf.AbstractMessageLite.Builder&lt;MessageType,BuilderType&gt; (implements org.apache.hadoop.thirdparty.protobuf.MessageLite.Builder)
<ul>
<li type="circle">org.apache.hadoop.thirdparty.protobuf.AbstractMessage.Builder&lt;BuilderType&gt; (implements org.apache.hadoop.thirdparty.protobuf.Message.Builder)
<ul>
<li type="circle">org.apache.hadoop.thirdparty.protobuf.GeneratedMessageV3.Builder&lt;BuilderType&gt;
<ul>
<li type="circle">org.apache.hadoop.tools.proto.<a href="../../../../../org/apache/hadoop/tools/proto/GetUserMappingsProtocolProtos.GetGroupsForUserRequestProto.Builder.html" title="class in org.apache.hadoop.tools.proto"><span class="typeNameLink">GetUserMappingsProtocolProtos.GetGroupsForUserRequestProto.Builder</span></a> (implements org.apache.hadoop.tools.proto.<a href="../../../../../org/apache/hadoop/tools/proto/GetUserMappingsProtocolProtos.GetGroupsForUserRequestProtoOrBuilder.html" title="interface in org.apache.hadoop.tools.proto">GetUserMappingsProtocolProtos.GetGroupsForUserRequestProtoOrBuilder</a>)</li>
<li type="circle">org.apache.hadoop.tools.proto.<a href="../../../../../org/apache/hadoop/tools/proto/GetUserMappingsProtocolProtos.GetGroupsForUserResponseProto.Builder.html" title="class in org.apache.hadoop.tools.proto"><span class="typeNameLink">GetUserMappingsProtocolProtos.GetGroupsForUserResponseProto.Builder</span></a> (implements org.apache.hadoop.tools.proto.<a href="../../../../../org/apache/hadoop/tools/proto/GetUserMappingsProtocolProtos.GetGroupsForUserResponseProtoOrBuilder.html" title="interface in org.apache.hadoop.tools.proto">GetUserMappingsProtocolProtos.GetGroupsForUserResponseProtoOrBuilder</a>)</li>
</ul>
</li>
</ul>
</li>
</ul>
</li>
<li type="circle">org.apache.hadoop.tools.proto.<a href="../../../../../org/apache/hadoop/tools/proto/GetUserMappingsProtocolProtos.html" title="class in org.apache.hadoop.tools.proto"><span class="typeNameLink">GetUserMappingsProtocolProtos</span></a></li>
<li type="circle">org.apache.hadoop.tools.proto.<a href="../../../../../org/apache/hadoop/tools/proto/GetUserMappingsProtocolProtos.GetUserMappingsProtocolService.html" title="class in org.apache.hadoop.tools.proto"><span class="typeNameLink">GetUserMappingsProtocolProtos.GetUserMappingsProtocolService</span></a> (implements org.apache.hadoop.thirdparty.protobuf.Service)
<ul>
<li type="circle">org.apache.hadoop.tools.proto.<a href="../../../../../org/apache/hadoop/tools/proto/GetUserMappingsProtocolProtos.GetUserMappingsProtocolService.Stub.html" title="class in org.apache.hadoop.tools.proto"><span class="typeNameLink">GetUserMappingsProtocolProtos.GetUserMappingsProtocolService.Stub</span></a> (implements org.apache.hadoop.tools.proto.<a href="../../../../../org/apache/hadoop/tools/proto/GetUserMappingsProtocolProtos.GetUserMappingsProtocolService.Interface.html" title="interface in org.apache.hadoop.tools.proto">GetUserMappingsProtocolProtos.GetUserMappingsProtocolService.Interface</a>)</li>
</ul>
</li>
</ul>
</li>
</ul>
<h2 title="Interface Hierarchy">Interface Hierarchy</h2>
<ul>
<li type="circle">org.apache.hadoop.tools.proto.<a href="../../../../../org/apache/hadoop/tools/proto/GetUserMappingsProtocolProtos.GetUserMappingsProtocolService.BlockingInterface.html" title="interface in org.apache.hadoop.tools.proto"><span class="typeNameLink">GetUserMappingsProtocolProtos.GetUserMappingsProtocolService.BlockingInterface</span></a></li>
<li type="circle">org.apache.hadoop.tools.proto.<a href="../../../../../org/apache/hadoop/tools/proto/GetUserMappingsProtocolProtos.GetUserMappingsProtocolService.Interface.html" title="interface in org.apache.hadoop.tools.proto"><span class="typeNameLink">GetUserMappingsProtocolProtos.GetUserMappingsProtocolService.Interface</span></a></li>
<li type="circle">org.apache.hadoop.thirdparty.protobuf.MessageLiteOrBuilder
<ul>
<li type="circle">org.apache.hadoop.thirdparty.protobuf.MessageOrBuilder
<ul>
<li type="circle">org.apache.hadoop.tools.proto.<a href="../../../../../org/apache/hadoop/tools/proto/GetUserMappingsProtocolProtos.GetGroupsForUserRequestProtoOrBuilder.html" title="interface in org.apache.hadoop.tools.proto"><span class="typeNameLink">GetUserMappingsProtocolProtos.GetGroupsForUserRequestProtoOrBuilder</span></a></li>
<li type="circle">org.apache.hadoop.tools.proto.<a href="../../../../../org/apache/hadoop/tools/proto/GetUserMappingsProtocolProtos.GetGroupsForUserResponseProtoOrBuilder.html" title="interface in org.apache.hadoop.tools.proto"><span class="typeNameLink">GetUserMappingsProtocolProtos.GetGroupsForUserResponseProtoOrBuilder</span></a></li>
</ul>
</li>
</ul>
</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><a href="package-summary.html">Package</a></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><a href="../../../../../org/apache/hadoop/tools/package-tree.html">Prev</a></li>
<li><a href="../../../../../org/apache/hadoop/tools/protocolPB/package-tree.html">Next</a></li>
</ul>
<ul class="navList">
<li><a href="../../../../../index.html?org/apache/hadoop/tools/proto/package-tree.html" target="_top">Frames</a></li>
<li><a href="package-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; 2008&#x2013;2021 <a href="https://www.apache.org">Apache Software Foundation</a>. All rights reserved.</small></p>
</body>
</html>
