2021-03-10 09:12:21 +01:00
<!DOCTYPE HTML>
<!-- NewPage -->
< html lang = "en" >
< head >
<!-- Generated by javadoc -->
< title > DataService (Plan 5.2-SNAPSHOT API)< / title >
< meta http-equiv = "Content-Type" content = "text/html; charset=utf-8" >
< 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="DataService (Plan 5.2-SNAPSHOT API)";
}
}
catch(err) {
}
//-->
var data = {"i0":6,"i1":6,"i2":18,"i3":18,"i4":6,"i5":6,"i6":6,"i7":6,"i8":6,"i9":6,"i10":6};
var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"],16:["t5","Default 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 = "package-tree.html" > Tree< / a > < / 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" 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 >
2021-03-13 07:16:50 +01:00
< li > < a href = "#nested.class.summary" > Nested< / a > | < / li >
2021-03-10 09:12:21 +01:00
< li > Field | < / li >
< li > Constr | < / li >
< li > < a href = "#method.summary" > Method< / a > < / li >
< / ul >
< ul class = "subNavList" >
< li > Detail: < / li >
< li > Field | < / li >
< li > Constr | < / 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" > com.djrapitops.plan< / a > < / div >
< h2 title = "Interface DataService" class = "title" > Interface DataService< / h2 >
< / div >
< div class = "contentContainer" >
< div class = "description" >
< ul class = "blockList" >
< li class = "blockList" >
< dl >
< dt > All Known Implementing Classes:< / dt >
< dd > < code > < a href = "DataSvc.html" title = "class in com.djrapitops.plan" > DataSvc< / a > < / code > < / dd >
< / dl >
< hr >
< pre > public interface < span class = "typeNameLabel" > DataService< / span > < / pre >
< div class = "block" > Service for sourcing, mapping and consuming data.
< p >
The service is in charge of two data flows:
- push, given to consumers
- pull, obtained from sources
< p >
The mappers facilitate a one way type transformation if needed.
< p >
The interface is very abstract about how data is obtained,
but here are my general ideas of where the abstraction is coming from.
- push cause one or multiple consumers to modify stored data
- pull cause one or multiple suppliers to fetch stored data
- mappers are stateless type transformers in memory
< p >
Example use-case:
- PlayerJoinEvent is mapped to a generic event
- that generic event is then consumed and mapped until the data is in a database.
< p >
- Some kind of data is wanted to place on a web page
- It is requested and the suppliers and mappers give the wanted type of data.
< p >
Further research needed:
- Can this limited type system represent types of data that need parameters
(such as differentiate between two servers data)< / div >
< / li >
< / ul >
< / div >
< div class = "summary" >
< ul class = "blockList" >
< li class = "blockList" >
2021-03-13 07:16:50 +01:00
<!-- ======== NESTED CLASS SUMMARY ======== -->
< section role = "region" >
< ul class = "blockList" >
< li class = "blockList" > < a id = "nested.class.summary" >
<!-- -->
< / a >
< h3 > Nested Class Summary< / h3 >
< table class = "memberSummary" >
< caption > < span > Nested Classes< / span > < span class = "tabEnd" > < / span > < / caption >
< tr >
< th class = "colFirst" scope = "col" > Modifier and Type< / th >
< th class = "colSecond" scope = "col" > Interface< / th >
< th class = "colLast" scope = "col" > Description< / th >
< / tr >
< tr class = "altColor" >
< td class = "colFirst" > < code > static interface < / code > < / td >
< th class = "colSecond" scope = "row" > < code > < span class = "memberNameLink" > < a href = "DataService.Mapping.html" title = "interface in com.djrapitops.plan" > DataService.Mapping< / a > < / span > < / code > < / th >
< td class = "colLast" > < / td >
< / tr >
< / table >
< / li >
< / ul >
< / section >
2021-03-10 09:12:21 +01:00
<!-- ========== 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 = "t3" class = "tableTab" > < span > < a href = "javascript:show(4);" > Abstract Methods< / a > < / span > < span class = "tabEnd" > < / span > < / span > < span id = "t5" class = "tableTab" > < span > < a href = "javascript:show(16);" > Default 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 > < A,​ B> < br > B< / code > < / td >
< th class = "colSecond" scope = "row" > < code > < span class = "memberNameLink" > < a href = "#mapTo(java.lang.Class,A)" > mapTo< / a > < / span > ​ (java.lang.Class< B> toType,
A from)< / code > < / th >
< td class = "colLast" > < / td >
< / tr >
< tr id = "i1" class = "rowColor" >
< td class = "colFirst" > < code > < S> java.util.Optional< S> < / code > < / td >
< th class = "colSecond" scope = "row" > < code > < span class = "memberNameLink" > < a href = "#pull(java.lang.Class)" > pull< / a > < / span > ​ (java.lang.Class< S> type)< / code > < / th >
< td class = "colLast" > < / td >
< / tr >
< tr id = "i2" class = "altColor" >
< td class = "colFirst" > < code > default < S,​ P> < br > java.util.Optional< S> < / code > < / td >
< th class = "colSecond" scope = "row" > < code > < span class = "memberNameLink" > < a href = "#pull(java.lang.Class,java.lang.Class)" > pull< / a > < / span > ​ (java.lang.Class< S> type,
java.lang.Class< P> parameterType)< / code > < / th >
< td class = "colLast" > < / td >
< / tr >
< tr id = "i3" class = "rowColor" >
< td class = "colFirst" > < code > default < S,​ P> < br > java.util.Optional< S> < / code > < / td >
< th class = "colSecond" scope = "row" > < code > < span class = "memberNameLink" > < a href = "#pull(java.lang.Class,java.util.function.Supplier)" > pull< / a > < / span > ​ (java.lang.Class< S> type,
java.util.function.Supplier< P> parameter)< / code > < / th >
< td class = "colLast" > < / td >
< / tr >
< tr id = "i4" class = "altColor" >
< td class = "colFirst" > < code > < S,​ P> < br > java.util.Optional< S> < / code > < / td >
< th class = "colSecond" scope = "row" > < code > < span class = "memberNameLink" > < a href = "#pull(java.lang.Class,P)" > pull< / a > < / span > ​ (java.lang.Class< S> type,
P parameter)< / code > < / th >
< td class = "colLast" > < / td >
< / tr >
< tr id = "i5" class = "rowColor" >
< td class = "colFirst" > < code > < M> < a href = "DataService.html" title = "interface in com.djrapitops.plan" > DataService< / a > < / code > < / td >
< th class = "colSecond" scope = "row" > < code > < span class = "memberNameLink" > < a href = "#push(java.lang.Class,M)" > push< / a > < / span > ​ (java.lang.Class< M> type,
M data)< / code > < / th >
< td class = "colLast" > < / td >
< / tr >
< tr id = "i6" class = "altColor" >
< td class = "colFirst" > < code > < M> < a href = "DataService.html" title = "interface in com.djrapitops.plan" > DataService< / a > < / code > < / td >
< th class = "colSecond" scope = "row" > < code > < span class = "memberNameLink" > < a href = "#registerConsumer(java.lang.Class,java.util.function.Consumer)" > registerConsumer< / a > < / span > ​ (java.lang.Class< M> type,
java.util.function.Consumer< M> consumer)< / code > < / th >
< td class = "colLast" > < / td >
< / tr >
< tr id = "i7" class = "rowColor" >
< td class = "colFirst" > < code > < P,​ S> < br > < a href = "DataService.html" title = "interface in com.djrapitops.plan" > DataService< / a > < / code > < / td >
< th class = "colSecond" scope = "row" > < code > < span class = "memberNameLink" > < a href = "#registerDBSupplier(java.lang.Class,java.lang.Class,java.util.function.Function)" > registerDBSupplier< / a > < / span > ​ (java.lang.Class< S> type,
java.lang.Class< P> parameterType,
java.util.function.Function< P,​ < a href = "storage/database/queries/Query.html" title = "interface in com.djrapitops.plan.storage.database.queries" > Query< / a > < S> > supplierWithParameter)< / code > < / th >
< td class = "colLast" > < / td >
< / tr >
< tr id = "i8" class = "altColor" >
< td class = "colFirst" > < code > < A,​ B> < br > < a href = "DataService.html" title = "interface in com.djrapitops.plan" > DataService< / a > < / code > < / td >
< th class = "colSecond" scope = "row" > < code > < span class = "memberNameLink" > < a href = "#registerMapper(java.lang.Class,java.lang.Class,java.util.function.Function)" > registerMapper< / a > < / span > ​ (java.lang.Class< A> typeA,
java.lang.Class< B> typeB,
java.util.function.Function< A,​ B> mapper)< / code > < / th >
< td class = "colLast" > < / td >
< / tr >
< tr id = "i9" class = "rowColor" >
< td class = "colFirst" > < code > < P,​ S> < br > < a href = "DataService.html" title = "interface in com.djrapitops.plan" > DataService< / a > < / code > < / td >
< th class = "colSecond" scope = "row" > < code > < span class = "memberNameLink" > < a href = "#registerSupplier(java.lang.Class,java.lang.Class,java.util.function.Function)" > registerSupplier< / a > < / span > ​ (java.lang.Class< S> type,
java.lang.Class< P> parameterType,
java.util.function.Function< P,​ S> supplierWithParameter)< / code > < / th >
< td class = "colLast" > < / td >
< / tr >
< tr id = "i10" class = "altColor" >
< td class = "colFirst" > < code > < S> < a href = "DataService.html" title = "interface in com.djrapitops.plan" > DataService< / a > < / code > < / td >
< th class = "colSecond" scope = "row" > < code > < span class = "memberNameLink" > < a href = "#registerSupplier(java.lang.Class,java.util.function.Supplier)" > registerSupplier< / a > < / span > ​ (java.lang.Class< S> type,
java.util.function.Supplier< S> supplier)< / code > < / th >
< td class = "colLast" > < / td >
< / tr >
< / table >
< / li >
< / ul >
< / section >
< / li >
< / ul >
< / div >
< div class = "details" >
< ul class = "blockList" >
< li class = "blockList" >
<!-- ============ METHOD DETAIL ========== -->
< section role = "region" >
< ul class = "blockList" >
< li class = "blockList" > < a id = "method.detail" >
<!-- -->
< / a >
< h3 > Method Detail< / h3 >
< a id = "push(java.lang.Class,java.lang.Object)" >
<!-- -->
< / a > < a id = "push(java.lang.Class,M)" >
<!-- -->
< / a >
< ul class = "blockList" >
< li class = "blockList" >
< h4 > push< / h4 >
< pre class = "methodSignature" > < M> < a href = "DataService.html" title = "interface in com.djrapitops.plan" > DataService< / a > push​ (java.lang.Class< M> type,
M data)< / pre >
< / li >
< / ul >
< a id = "pull(java.lang.Class)" >
<!-- -->
< / a >
< ul class = "blockList" >
< li class = "blockList" >
< h4 > pull< / h4 >
< pre class = "methodSignature" > < S> java.util.Optional< S> pull​ (java.lang.Class< S> type)< / pre >
< / li >
< / ul >
< a id = "pull(java.lang.Class,java.lang.Object)" >
<!-- -->
< / a > < a id = "pull(java.lang.Class,P)" >
<!-- -->
< / a >
< ul class = "blockList" >
< li class = "blockList" >
< h4 > pull< / h4 >
< pre class = "methodSignature" > < S,​ P> java.util.Optional< S> pull​ (java.lang.Class< S> type,
P parameter)< / pre >
< / li >
< / ul >
< a id = "mapTo(java.lang.Class,java.lang.Object)" >
<!-- -->
< / a > < a id = "mapTo(java.lang.Class,A)" >
<!-- -->
< / a >
< ul class = "blockList" >
< li class = "blockList" >
< h4 > mapTo< / h4 >
< pre class = "methodSignature" > < A,​ B> B mapTo​ (java.lang.Class< B> toType,
A from)< / pre >
< / li >
< / ul >
< a id = "pull(java.lang.Class,java.lang.Class)" >
<!-- -->
< / a >
< ul class = "blockList" >
< li class = "blockList" >
< h4 > pull< / h4 >
< pre class = "methodSignature" > default < S,​ P> java.util.Optional< S> pull​ (java.lang.Class< S> type,
java.lang.Class< P> parameterType)< / pre >
< / li >
< / ul >
< a id = "pull(java.lang.Class,java.util.function.Supplier)" >
<!-- -->
< / a >
< ul class = "blockList" >
< li class = "blockList" >
< h4 > pull< / h4 >
< pre class = "methodSignature" > default < S,​ P> java.util.Optional< S> pull​ (java.lang.Class< S> type,
java.util.function.Supplier< P> parameter)< / pre >
< / li >
< / ul >
< a id = "registerMapper(java.lang.Class,java.lang.Class,java.util.function.Function)" >
<!-- -->
< / a >
< ul class = "blockList" >
< li class = "blockList" >
< h4 > registerMapper< / h4 >
< pre class = "methodSignature" > < A,​ B> < a href = "DataService.html" title = "interface in com.djrapitops.plan" > DataService< / a > registerMapper​ (java.lang.Class< A> typeA,
java.lang.Class< B> typeB,
java.util.function.Function< A,​ B> mapper)< / pre >
< / li >
< / ul >
< a id = "registerConsumer(java.lang.Class,java.util.function.Consumer)" >
<!-- -->
< / a >
< ul class = "blockList" >
< li class = "blockList" >
< h4 > registerConsumer< / h4 >
< pre class = "methodSignature" > < M> < a href = "DataService.html" title = "interface in com.djrapitops.plan" > DataService< / a > registerConsumer​ (java.lang.Class< M> type,
java.util.function.Consumer< M> consumer)< / pre >
< / li >
< / ul >
< a id = "registerSupplier(java.lang.Class,java.util.function.Supplier)" >
<!-- -->
< / a >
< ul class = "blockList" >
< li class = "blockList" >
< h4 > registerSupplier< / h4 >
< pre class = "methodSignature" > < S> < a href = "DataService.html" title = "interface in com.djrapitops.plan" > DataService< / a > registerSupplier​ (java.lang.Class< S> type,
java.util.function.Supplier< S> supplier)< / pre >
< / li >
< / ul >
< a id = "registerSupplier(java.lang.Class,java.lang.Class,java.util.function.Function)" >
<!-- -->
< / a >
< ul class = "blockList" >
< li class = "blockList" >
< h4 > registerSupplier< / h4 >
< pre class = "methodSignature" > < P,​ S> < a href = "DataService.html" title = "interface in com.djrapitops.plan" > DataService< / a > registerSupplier​ (java.lang.Class< S> type,
java.lang.Class< P> parameterType,
java.util.function.Function< P,​ S> supplierWithParameter)< / pre >
< / li >
< / ul >
< a id = "registerDBSupplier(java.lang.Class,java.lang.Class,java.util.function.Function)" >
<!-- -->
< / a >
< ul class = "blockListLast" >
< li class = "blockList" >
< h4 > registerDBSupplier< / h4 >
< pre class = "methodSignature" > < P,​ S> < a href = "DataService.html" title = "interface in com.djrapitops.plan" > DataService< / a > registerDBSupplier​ (java.lang.Class< S> type,
java.lang.Class< P> parameterType,
java.util.function.Function< P,​ < a href = "storage/database/queries/Query.html" title = "interface in com.djrapitops.plan.storage.database.queries" > Query< / a > < S> > supplierWithParameter)< / pre >
< / 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 = "package-tree.html" > Tree< / a > < / 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" 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 >
2021-03-13 07:16:50 +01:00
< li > < a href = "#nested.class.summary" > Nested< / a > | < / li >
2021-03-10 09:12:21 +01:00
< li > Field | < / li >
< li > Constr | < / li >
< li > < a href = "#method.summary" > Method< / a > < / li >
< / ul >
< ul class = "subNavList" >
< li > Detail: < / li >
< li > Field | < / li >
< li > Constr | < / 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 >