diff --git a/.idea/inspectionProfiles/Project_Default.xml b/.idea/inspectionProfiles/Project_Default.xml new file mode 100644 index 0000000..146ab09 --- /dev/null +++ b/.idea/inspectionProfiles/Project_Default.xml @@ -0,0 +1,10 @@ + + + + \ No newline at end of file diff --git a/.idea/libraries/projectlombok_lombok.xml b/.idea/libraries/projectlombok_lombok.xml new file mode 100644 index 0000000..924b96b --- /dev/null +++ b/.idea/libraries/projectlombok_lombok.xml @@ -0,0 +1,10 @@ + + + + + + + + + + \ No newline at end of file diff --git a/ProtegeToAASMini.iml b/ProtegeToAASMini.iml index 199b122..deb8228 100644 --- a/ProtegeToAASMini.iml +++ b/ProtegeToAASMini.iml @@ -19,5 +19,6 @@ + \ No newline at end of file diff --git a/src/Main.java b/src/Main.java index 48f7571..f542808 100644 --- a/src/Main.java +++ b/src/Main.java @@ -1,6 +1,7 @@ import AASMini.AASMini; import ProtegeGX.ProtegeGX; import Web.WebServer; +import org.pmw.tinylog.Logger; public class Main { private static AASMini aas; @@ -21,12 +22,26 @@ public class Main { System.out.println("Protege to AAS Mini Connector"); protegeGX = new ProtegeGX(); + protegeGX.setOnCardRead(data -> { + Logger.info(data); + if (aas!=null && aas.IsConnected()){ + // send something to AAS + } + }); aas = new AASMini(aasIP, aasPort); aas.Connect(); web = new WebServer(); web.Start(webPort); + web.setAasAPI(data -> { + Logger.info(data); + // Do something with AAS + }); + web.setProtegeGXAPI(data -> { + Logger.info(data); + // Do something with ProtegeGX + }); } private static void GetArguments(String[] args){ diff --git a/src/ProtegeGX/ProtegeData.java b/src/ProtegeGX/ProtegeData.java new file mode 100644 index 0000000..e8e2025 --- /dev/null +++ b/src/ProtegeGX/ProtegeData.java @@ -0,0 +1,12 @@ +package ProtegeGX; + +public class ProtegeData { + public String ReaderID; + public String CardID; + public String Description; + + @Override + public String toString(){ + return "ReaderID = " + ReaderID + ", CardID = " + CardID + ", Description = " + Description; + } +} diff --git a/src/ProtegeGX/ProtegeGX.java b/src/ProtegeGX/ProtegeGX.java index ca3f437..5bc80fb 100644 --- a/src/ProtegeGX/ProtegeGX.java +++ b/src/ProtegeGX/ProtegeGX.java @@ -1,6 +1,17 @@ package ProtegeGX; +import lombok.Setter; + +import java.util.function.Consumer; + +@SuppressWarnings("unused") public class ProtegeGX { + @Setter private Consumer onCardRead; + + private void updateCardRead(ProtegeData data){ + if (onCardRead!=null) onCardRead.accept(data); + } + public ProtegeGX(){ System.out.println("ProtegeGX Constructor"); //TODO belum ada codingan, tunggu apache cxf jar nya diff --git a/src/Web/WebServer.java b/src/Web/WebServer.java index 5f65b23..9a47437 100644 --- a/src/Web/WebServer.java +++ b/src/Web/WebServer.java @@ -1,10 +1,25 @@ package Web; import io.javalin.Javalin; +import lombok.Setter; +import java.util.function.Consumer; + +import static io.javalin.apibuilder.ApiBuilder.get; import static io.javalin.apibuilder.ApiBuilder.path; +@SuppressWarnings("unused") public class WebServer { + @Setter private Consumer aasAPI; + @Setter private Consumer protegeGXAPI; + + private void updateAASAPI(String data){ + if (aasAPI!=null) aasAPI.accept(data); + } + + private void updateProtegeGXAPI(String data){ + if (protegeGXAPI!=null) protegeGXAPI.accept(data); + } Javalin app; public WebServer(){ @@ -15,10 +30,12 @@ public class WebServer { // API for AAS Mini path("aasmini", ()->{ //TODO implement API for AAS Mini + get(ctx -> ctx.result("AAS Mini API")); }); // API for ProtegeGX path("protegegx", ()->{ //TODO implement API for ProtegeGX + get(ctx -> ctx.result("ProtegeGX API")); }); }); });