<divclass="block">Interface for registering <ahref="DataExtension.html"title="interface in com.djrapitops.plan.extension"><code>DataExtension</code></a>s.
Registering <ahref="DataExtension.html"title="interface in com.djrapitops.plan.extension"><code>DataExtension</code></a>:
- Register your <ahref="DataExtension.html"title="interface in com.djrapitops.plan.extension"><code>DataExtension</code></a> with <ahref="#register(com.djrapitops.plan.extension.DataExtension)"><code>register(DataExtension)</code></a>
<divclass="col-second even-row-color"><code><ahref="ExtensionService.Holder.html"class="type-name-link"title="class in com.djrapitops.plan.extension">ExtensionService.Holder</a></code></div>
<divclass="block">Obtain a new <ahref="builder/ExtensionDataBuilder.html"title="interface in com.djrapitops.plan.extension.builder"><code>ExtensionDataBuilder</code></a>, it is recommended to use <ahref="DataExtension.html#newExtensionDataBuilder()"><code>DataExtension.newExtensionDataBuilder()</code></a>.</div>
<divclass="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><ahref="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/util/Optional.html"title="class or interface in java.util"class="external-link">Optional</a><<ahref="Caller.html"title="interface in com.djrapitops.plan.extension">Caller</a>></code></div>
<divclass="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><ahref="#register(com.djrapitops.plan.extension.DataExtension)"class="member-name-link">register</a><wbr>(<ahref="DataExtension.html"title="interface in com.djrapitops.plan.extension">DataExtension</a> extension)</code></div>
<divclass="block">Register your <ahref="DataExtension.html"title="interface in com.djrapitops.plan.extension"><code>DataExtension</code></a> implementation.</div>
<divclass="block">Unregister your <ahref="DataExtension.html"title="interface in com.djrapitops.plan.extension"><code>DataExtension</code></a> implementation.</div>
<divclass="member-signature"><spanclass="modifiers">static</span> <spanclass="return-type"><ahref="ExtensionService.html"title="interface in com.djrapitops.plan.extension">ExtensionService</a></span> <spanclass="element-name">getInstance</span>()</div>
<dd><code><ahref="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/NoClassDefFoundError.html"title="class or interface in java.lang"class="external-link">NoClassDefFoundError</a></code> - If Plan is not installed and this class can not be found or if older Plan version is installed.</dd>
<dd><code><ahref="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/IllegalStateException.html"title="class or interface in java.lang"class="external-link">IllegalStateException</a></code> - If Plan is installed, but not enabled.</dd>
<divclass="member-signature"><spanclass="return-type"><ahref="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/util/Optional.html"title="class or interface in java.util"class="external-link">Optional</a><<ahref="Caller.html"title="interface in com.djrapitops.plan.extension">Caller</a>></span> <spanclass="element-name">register</span><wbr><spanclass="parameters">(<ahref="DataExtension.html"title="interface in com.djrapitops.plan.extension">DataExtension</a> extension)</span></div>
<divclass="block">Register your <ahref="DataExtension.html"title="interface in com.djrapitops.plan.extension"><code>DataExtension</code></a> implementation.
You can use <ahref="extractor/ExtensionExtractor.html#validateAnnotations()"><code>ExtensionExtractor.validateAnnotations()</code></a> in your Unit Tests to prevent IllegalArgumentExceptions here at runtime.</div>
<dd><code>extension</code> - Your DataExtension implementation, see <ahref="DataExtension.html"title="interface in com.djrapitops.plan.extension"><code>DataExtension</code></a> for requirements.</dd>
<dd>Optional <ahref="Caller.html"title="interface in com.djrapitops.plan.extension"><code>Caller</code></a> that can be used to call for data update in Plan database manually - If the Optional is not present the user has disabled the extension in Plan config.</dd>
<dd><code><ahref="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/IllegalArgumentException.html"title="class or interface in java.lang"class="external-link">IllegalArgumentException</a></code> - If an implementation violation is found.</dd>
<divclass="member-signature"><spanclass="return-type"><ahref="builder/ExtensionDataBuilder.html"title="interface in com.djrapitops.plan.extension.builder">ExtensionDataBuilder</a></span> <spanclass="element-name">newExtensionDataBuilder</span><wbr><spanclass="parameters">(<ahref="DataExtension.html"title="interface in com.djrapitops.plan.extension">DataExtension</a> extension)</span></div>
<divclass="block">Obtain a new <ahref="builder/ExtensionDataBuilder.html"title="interface in com.djrapitops.plan.extension.builder"><code>ExtensionDataBuilder</code></a>, it is recommended to use <ahref="DataExtension.html#newExtensionDataBuilder()"><code>DataExtension.newExtensionDataBuilder()</code></a>.
<divclass="member-signature"><spanclass="return-type">void</span> <spanclass="element-name">unregister</span><wbr><spanclass="parameters">(<ahref="DataExtension.html"title="interface in com.djrapitops.plan.extension">DataExtension</a> extension)</span></div>
<divclass="block">Unregister your <ahref="DataExtension.html"title="interface in com.djrapitops.plan.extension"><code>DataExtension</code></a> implementation.