<!DOCTYPE HTML> <!-- NewPage --> <html lang="en"> <head> <!-- Generated by javadoc (11.0.15) on Wed Jun 08 22:58:27 CDT 2022 --> <title>Plugins (jinput API)</title> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <meta name="dc.created" content="2022-06-08"> <link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style"> <link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style"> <script type="text/javascript" src="../../../../../script.js"></script> <script type="text/javascript" src="../../../../../jquery/jszip/dist/jszip.min.js"></script> <script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script> <!--[if IE]> <script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script> <![endif]--> <script type="text/javascript" src="../../../../../jquery/jquery-3.5.1.js"></script> <script type="text/javascript" src="../../../../../jquery/jquery-ui.js"></script> </head> <body> <script type="text/javascript"><!-- try { if (location.href.indexOf('is-external=true') == -1) { parent.document.title="Plugins (jinput API)"; } } catch(err) { } //--> var data = {"i0":10,"i1":10,"i2":10,"i3":10}; var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]}; var altColor = "altColor"; var rowColor = "rowColor"; var tableTab = "tableTab"; var activeTableTab = "activeTableTab"; var pathtoroot = "../../../../../"; var useModuleDirectories = true; loadScripts(document, 'script');</script> <noscript> <div>JavaScript is disabled on your browser.</div> </noscript> <header role="banner"> <nav role="navigation"> <div class="fixedNav"> <!-- ========= START OF TOP NAVBAR ======= --> <div class="topNav"><a id="navbar.top"> <!-- --> </a> <div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div> <a id="navbar.top.firstrow"> <!-- --> </a> <ul class="navList" title="Navigation"> <li><a href="../../../../../index.html">Overview</a></li> <li><a href="package-summary.html">Package</a></li> <li class="navBarCell1Rev">Class</li> <li><a href="class-use/Plugins.html">Use</a></li> <li><a href="package-tree.html">Tree</a></li> <li><a href="../../../../../deprecated-list.html">Deprecated</a></li> <li><a href="../../../../../index-files/index-1.html">Index</a></li> <li><a href="../../../../../help-doc.html">Help</a></li> </ul> </div> <div class="subNav"> <ul class="navList" id="allclasses_navbar_top"> <li><a href="../../../../../allclasses.html">All Classes</a></li> </ul> <ul class="navListSearch"> <li><label for="search">SEARCH:</label> <input type="text" id="search" value="search" disabled="disabled"> <input type="reset" id="reset" value="reset" disabled="disabled"> </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> <noscript> <div>JavaScript is disabled on your browser.</div> </noscript> </div> <div> <ul class="subNavList"> <li>Summary: </li> <li>Nested | </li> <li>Field | </li> <li><a href="#constructor.summary">Constr</a> | </li> <li><a href="#method.summary">Method</a></li> </ul> <ul class="subNavList"> <li>Detail: </li> <li>Field | </li> <li><a href="#constructor.detail">Constr</a> | </li> <li><a href="#method.detail">Method</a></li> </ul> </div> <a id="skip.navbar.top"> <!-- --> </a></div> <!-- ========= END OF TOP NAVBAR ========= --> </div> <div class="navPadding"> </div> <script type="text/javascript"><!-- $('.navPadding').css('padding-top', $('.fixedNav').css("height")); //--> </script> </nav> </header> <!-- ======== START OF CLASS DATA ======== --> <main role="main"> <div class="header"> <div class="subTitle"><span class="packageLabelInType">Package</span> <a href="package-summary.html">net.java.games.util.plugins</a></div> <h2 title="Class Plugins" class="title">Class Plugins</h2> </div> <div class="contentContainer"> <ul class="inheritance"> <li>java.lang.Object</li> <li> <ul class="inheritance"> <li>net.java.games.util.plugins.Plugins</li> </ul> </li> </ul> <div class="description"> <ul class="blockList"> <li class="blockList"> <hr> <pre>public class <span class="typeNameLabel">Plugins</span> extends java.lang.Object</pre> <div class="block">This is the application interface to the Plugin system. One Plugins object should be created for each plug-in directory tree root. On creation the Plugins object will scan its assigned directory tree and examine all Jar files in that tree to see if they qualify as Plug-ins. The Plugin classes may then be retrived from the Plugins object by calling the appropriate get function (see below). If a plugin requires a native code library, that library must be present in the same directory as the plugin Jar file UNLESS the property "net.java.games.util.plugins.nolocalnative" is set. In that case it will fall abck to the VM or environment's default way of finding native libraries. (This is n ecessary for Java Web Start apps.)</div> </li> </ul> </div> <div class="summary"> <ul class="blockList"> <li class="blockList"> <!-- ======== CONSTRUCTOR SUMMARY ======== --> <section role="region"> <ul class="blockList"> <li class="blockList"><a id="constructor.summary"> <!-- --> </a> <h3>Constructor Summary</h3> <table class="memberSummary"> <caption><span>Constructors</span><span class="tabEnd"> </span></caption> <tr> <th class="colFirst" scope="col">Constructor</th> <th class="colLast" scope="col">Description</th> </tr> <tr class="altColor"> <th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E(java.io.File)">Plugins</a></span>​(java.io.File pluginRoot)</code></th> <td class="colLast"> <div class="block">Creates a new instance of Plugins</div> </td> </tr> </table> </li> </ul> </section> <!-- ========== METHOD SUMMARY =========== --> <section role="region"> <ul class="blockList"> <li class="blockList"><a id="method.summary"> <!-- --> </a> <h3>Method Summary</h3> <table class="memberSummary"> <caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd"> </span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd"> </span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd"> </span></span></caption> <tr> <th class="colFirst" scope="col">Modifier and Type</th> <th class="colSecond" scope="col">Method</th> <th class="colLast" scope="col">Description</th> </tr> <tr id="i0" class="altColor"> <td class="colFirst"><code>java.lang.Class[]</code></td> <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#get()">get</a></span>()</code></th> <td class="colLast"> <div class="block">This method returns all the Plugins found in the directory passed in at object creation time or any of its sub-directories.</div> </td> </tr> <tr id="i1" class="rowColor"> <td class="colFirst"><code>java.lang.Class[]</code></td> <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getExtends(java.lang.Class)">getExtends</a></span>​(java.lang.Class superclass)</code></th> <td class="colLast"> <div class="block">This method returns a sub-list of all the found Plugin classes that extend the passed in Class (either directly or through inheritance.)</div> </td> </tr> <tr id="i2" class="altColor"> <td class="colFirst"><code>java.lang.Class[]</code></td> <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getImplementsAll(java.lang.Class%5B%5D)">getImplementsAll</a></span>​(java.lang.Class[] interfaces)</code></th> <td class="colLast"> <div class="block">This method returns a sub-list of all the found Plugin classes that implement <B>all</B> of the passed in set of Interfaces (either directly or through inheritance.)</div> </td> </tr> <tr id="i3" class="rowColor"> <td class="colFirst"><code>java.lang.Class[]</code></td> <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getImplementsAny(java.lang.Class%5B%5D)">getImplementsAny</a></span>​(java.lang.Class[] interfaces)</code></th> <td class="colLast"> <div class="block">This method returns a sub-list of all the found Plugin classes that implement <B>any</B> of the passed in set of Interfaces (either directly or through inheritance.)</div> </td> </tr> </table> <ul class="blockList"> <li class="blockList"><a id="methods.inherited.from.class.java.lang.Object"> <!-- --> </a> <h3>Methods inherited from class java.lang.Object</h3> <code>clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</code></li> </ul> </li> </ul> </section> </li> </ul> </div> <div class="details"> <ul class="blockList"> <li class="blockList"> <!-- ========= CONSTRUCTOR DETAIL ======== --> <section role="region"> <ul class="blockList"> <li class="blockList"><a id="constructor.detail"> <!-- --> </a> <h3>Constructor Detail</h3> <a id="<init>(java.io.File)"> <!-- --> </a> <ul class="blockListLast"> <li class="blockList"> <h4>Plugins</h4> <pre>public Plugins​(java.io.File pluginRoot) throws java.io.IOException</pre> <div class="block">Creates a new instance of Plugins</div> <dl> <dt><span class="paramLabel">Parameters:</span></dt> <dd><code>pluginRoot</code> - The root od the directory tree to scan for Jars</dd> <dt><span class="throwsLabel">Throws:</span></dt> <dd><code>java.io.IOException</code> - containing plugins.</dd> </dl> </li> </ul> </li> </ul> </section> <!-- ============ METHOD DETAIL ========== --> <section role="region"> <ul class="blockList"> <li class="blockList"><a id="method.detail"> <!-- --> </a> <h3>Method Detail</h3> <a id="get()"> <!-- --> </a> <ul class="blockList"> <li class="blockList"> <h4>get</h4> <pre class="methodSignature">public java.lang.Class[] get()</pre> <div class="block">This method returns all the Plugins found in the directory passed in at object creation time or any of its sub-directories.</div> <dl> <dt><span class="returnLabel">Returns:</span></dt> <dd>An array of Plugin objects</dd> </dl> </li> </ul> <a id="getImplementsAny(java.lang.Class[])"> <!-- --> </a> <ul class="blockList"> <li class="blockList"> <h4>getImplementsAny</h4> <pre class="methodSignature">public java.lang.Class[] getImplementsAny​(java.lang.Class[] interfaces)</pre> <div class="block">This method returns a sub-list of all the found Plugin classes that implement <B>any</B> of the passed in set of Interfaces (either directly or through inheritance.)</div> <dl> <dt><span class="paramLabel">Parameters:</span></dt> <dd><code>interfaces</code> - A set of interfaces to match against the interfaces implemented by the plugin classes.</dd> <dt><span class="returnLabel">Returns:</span></dt> <dd>The list of plugin classes that implement at least one member of the passed in set of interfaces.</dd> </dl> </li> </ul> <a id="getImplementsAll(java.lang.Class[])"> <!-- --> </a> <ul class="blockList"> <li class="blockList"> <h4>getImplementsAll</h4> <pre class="methodSignature">public java.lang.Class[] getImplementsAll​(java.lang.Class[] interfaces)</pre> <div class="block">This method returns a sub-list of all the found Plugin classes that implement <B>all</B> of the passed in set of Interfaces (either directly or through inheritance.)</div> <dl> <dt><span class="paramLabel">Parameters:</span></dt> <dd><code>interfaces</code> - A set of interfaces to match against the interfaces implemented by the plugin classes.</dd> <dt><span class="returnLabel">Returns:</span></dt> <dd>The list of plugin classes that implement at least one member of the passed in set of interfaces.</dd> </dl> </li> </ul> <a id="getExtends(java.lang.Class)"> <!-- --> </a> <ul class="blockListLast"> <li class="blockList"> <h4>getExtends</h4> <pre class="methodSignature">public java.lang.Class[] getExtends​(java.lang.Class superclass)</pre> <div class="block">This method returns a sub-list of all the found Plugin classes that extend the passed in Class (either directly or through inheritance.)</div> <dl> <dt><span class="paramLabel">Parameters:</span></dt> <dd><code>superclass</code> - The class to match.</dd> <dt><span class="returnLabel">Returns:</span></dt> <dd>The list of plugin classes that extend the passed in class.</dd> </dl> </li> </ul> </li> </ul> </section> </li> </ul> </div> </div> </main> <!-- ========= END OF CLASS DATA ========= --> <footer role="contentinfo"> <nav role="navigation"> <!-- ======= START OF BOTTOM NAVBAR ====== --> <div class="bottomNav"><a id="navbar.bottom"> <!-- --> </a> <div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div> <a id="navbar.bottom.firstrow"> <!-- --> </a> <ul class="navList" title="Navigation"> <li><a href="../../../../../index.html">Overview</a></li> <li><a href="package-summary.html">Package</a></li> <li class="navBarCell1Rev">Class</li> <li><a href="class-use/Plugins.html">Use</a></li> <li><a href="package-tree.html">Tree</a></li> <li><a href="../../../../../deprecated-list.html">Deprecated</a></li> <li><a href="../../../../../index-files/index-1.html">Index</a></li> <li><a href="../../../../../help-doc.html">Help</a></li> </ul> </div> <div class="subNav"> <ul class="navList" id="allclasses_navbar_bottom"> <li><a href="../../../../../allclasses.html">All 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> <noscript> <div>JavaScript is disabled on your browser.</div> </noscript> </div> <div> <ul class="subNavList"> <li>Summary: </li> <li>Nested | </li> <li>Field | </li> <li><a href="#constructor.summary">Constr</a> | </li> <li><a href="#method.summary">Method</a></li> </ul> <ul class="subNavList"> <li>Detail: </li> <li>Field | </li> <li><a href="#constructor.detail">Constr</a> | </li> <li><a href="#method.detail">Method</a></li> </ul> </div> <a id="skip.navbar.bottom"> <!-- --> </a></div> <!-- ======== END OF BOTTOM NAVBAR ======= --> </nav> </footer> </body> </html>