Create singleton and connect with datapoint
TODO some test
This commit is contained in:
parent
e0d0894040
commit
fe52981ba6
2
.gitignore
vendored
2
.gitignore
vendored
@ -3,5 +3,5 @@
|
|||||||
/.idea/jarRepositories.xml
|
/.idea/jarRepositories.xml
|
||||||
/.idea/codeStyles
|
/.idea/codeStyles
|
||||||
/.idea/*.xml
|
/.idea/*.xml
|
||||||
|
/target/
|
||||||
# TODO: add your build folder here
|
# TODO: add your build folder here
|
@ -1,4 +1,8 @@
|
|||||||
package ch.hevs.isi.core;
|
package ch.hevs.isi.core;
|
||||||
|
import ch.hevs.isi.core.DataPointListener;
|
||||||
|
import ch.hevs.isi.db.DatabaseConnector;
|
||||||
|
import ch.hevs.isi.field.FieldConnector;
|
||||||
|
import ch.hevs.isi.web.WebConnector;
|
||||||
|
|
||||||
public class BooleanDataPoint extends DataPoint{
|
public class BooleanDataPoint extends DataPoint{
|
||||||
private boolean value;
|
private boolean value;
|
||||||
@ -8,14 +12,19 @@ public class BooleanDataPoint extends DataPoint{
|
|||||||
}
|
}
|
||||||
public void setValue(boolean value){
|
public void setValue(boolean value){
|
||||||
this.value = value;
|
this.value = value;
|
||||||
|
if (getDataPointFromLabel(this.getLabel()) == null){
|
||||||
|
this.update(true);
|
||||||
|
} else {
|
||||||
|
this.update(false);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
public boolean getValue(){
|
public boolean getValue(){
|
||||||
return this.value;
|
return this.value;
|
||||||
}
|
}
|
||||||
|
|
||||||
public String toString(){
|
public String toString(){
|
||||||
String s = null;
|
String s;
|
||||||
s += this.getLabel();
|
s = this.getLabel();
|
||||||
s += ": ";
|
s += ": ";
|
||||||
s += this.getValue();
|
s += this.getValue();
|
||||||
return s;
|
return s;
|
||||||
|
@ -1,20 +1,41 @@
|
|||||||
package ch.hevs.isi.core;
|
package ch.hevs.isi.core;
|
||||||
|
|
||||||
|
import ch.hevs.isi.db.DatabaseConnector;
|
||||||
|
import ch.hevs.isi.field.FieldConnector;
|
||||||
|
import ch.hevs.isi.web.WebConnector;
|
||||||
|
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
|
||||||
public class DataPoint {
|
public abstract class DataPoint{
|
||||||
private Map<String, DataPoint> dataPointMap;
|
private static Map<String, DataPoint> dataPointMap;
|
||||||
private String label;
|
private String label;
|
||||||
private boolean isOutput;
|
private boolean isOutput;
|
||||||
protected DataPoint(String label, boolean isOutput){
|
protected DataPoint(String label, boolean isOutput){
|
||||||
|
if(dataPointMap.containsKey(label)){
|
||||||
|
|
||||||
|
}
|
||||||
this.label = label;
|
this.label = label;
|
||||||
this.isOutput = isOutput;
|
this.isOutput = isOutput;
|
||||||
}
|
}
|
||||||
protected void update(boolean isNewValue){
|
protected void update(boolean isNewValue){
|
||||||
|
|
||||||
|
if(isNewValue){
|
||||||
|
dataPointMap.put(this.label, this);
|
||||||
|
} else {
|
||||||
|
dataPointMap.replace(this.label, this);
|
||||||
|
}
|
||||||
|
DatabaseConnector.getMySelf().onNewValue(this);
|
||||||
|
WebConnector.getMySelf().onNewValue(this);
|
||||||
|
FieldConnector.getMySelf().onNewValue(this);
|
||||||
}
|
}
|
||||||
public DataPoint getDataPointFromLabel(String label){
|
public static DataPoint getDataPointFromLabel(String label){
|
||||||
return null;
|
if( !dataPointMap.containsKey(label) ){
|
||||||
|
return null;
|
||||||
|
} else {
|
||||||
|
DataPoint dp = dataPointMap.get(label);
|
||||||
|
return dp;
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
6
src/main/java/ch/hevs/isi/core/DataPointListener.java
Normal file
6
src/main/java/ch/hevs/isi/core/DataPointListener.java
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
package ch.hevs.isi.core;
|
||||||
|
|
||||||
|
public interface DataPointListener {
|
||||||
|
|
||||||
|
void onNewValue(DataPoint dp);
|
||||||
|
}
|
@ -1,5 +1,9 @@
|
|||||||
package ch.hevs.isi.core;
|
package ch.hevs.isi.core;
|
||||||
|
|
||||||
|
import ch.hevs.isi.db.DatabaseConnector;
|
||||||
|
import ch.hevs.isi.field.FieldConnector;
|
||||||
|
import ch.hevs.isi.web.WebConnector;
|
||||||
|
|
||||||
public class FloatDataPoint extends DataPoint{
|
public class FloatDataPoint extends DataPoint{
|
||||||
private float value;
|
private float value;
|
||||||
public FloatDataPoint(String label, boolean isOutput) {
|
public FloatDataPoint(String label, boolean isOutput) {
|
||||||
@ -7,6 +11,11 @@ public class FloatDataPoint extends DataPoint{
|
|||||||
}
|
}
|
||||||
public void setValue(float value){
|
public void setValue(float value){
|
||||||
this.value = value;
|
this.value = value;
|
||||||
|
if (getDataPointFromLabel(this.getLabel()) == null){
|
||||||
|
this.update(true);
|
||||||
|
} else {
|
||||||
|
this.update(false);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public float getValue(){
|
public float getValue(){
|
||||||
@ -14,8 +23,8 @@ public class FloatDataPoint extends DataPoint{
|
|||||||
}
|
}
|
||||||
|
|
||||||
public String toString(){
|
public String toString(){
|
||||||
String s = null;
|
String s;
|
||||||
s += this.getLabel();
|
s = this.getLabel();
|
||||||
s += ": ";
|
s += ": ";
|
||||||
s += this.getValue();
|
s += this.getValue();
|
||||||
return s;
|
return s;
|
||||||
|
32
src/main/java/ch/hevs/isi/db/DatabaseConnector.java
Normal file
32
src/main/java/ch/hevs/isi/db/DatabaseConnector.java
Normal file
@ -0,0 +1,32 @@
|
|||||||
|
package ch.hevs.isi.db;
|
||||||
|
|
||||||
|
|
||||||
|
import ch.hevs.isi.core.DataPoint;
|
||||||
|
import ch.hevs.isi.core.DataPointListener;
|
||||||
|
|
||||||
|
public class DatabaseConnector implements DataPointListener {
|
||||||
|
private static DatabaseConnector mySelf = null;
|
||||||
|
|
||||||
|
private DatabaseConnector (){
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
public static DatabaseConnector getMySelf(){
|
||||||
|
if (mySelf == null){
|
||||||
|
mySelf = new DatabaseConnector();
|
||||||
|
}
|
||||||
|
return mySelf;
|
||||||
|
}
|
||||||
|
public void initialize(String url){
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
private void pushToDatabase(DataPoint dp){
|
||||||
|
System.out.println("To Database: " + dp.toString());
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onNewValue(DataPoint dp) {
|
||||||
|
pushToDatabase(dp);
|
||||||
|
}
|
||||||
|
}
|
39
src/main/java/ch/hevs/isi/field/FieldConnector.java
Normal file
39
src/main/java/ch/hevs/isi/field/FieldConnector.java
Normal file
@ -0,0 +1,39 @@
|
|||||||
|
package ch.hevs.isi.field;
|
||||||
|
|
||||||
|
import ch.hevs.isi.core.DataPoint;
|
||||||
|
import ch.hevs.isi.core.DataPointListener;
|
||||||
|
import ch.hevs.isi.core.FloatDataPoint;
|
||||||
|
|
||||||
|
public class FieldConnector implements DataPointListener {
|
||||||
|
|
||||||
|
private static FieldConnector mySelf = null;
|
||||||
|
|
||||||
|
private FieldConnector(){
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
public static FieldConnector getMySelf(){
|
||||||
|
if (mySelf == null){
|
||||||
|
mySelf = new FieldConnector();
|
||||||
|
}
|
||||||
|
return mySelf;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void initialize(String host, int port){
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
public void uselessTest(){
|
||||||
|
FloatDataPoint dp = new FloatDataPoint("Voltage", false);
|
||||||
|
dp.setValue(5);
|
||||||
|
}
|
||||||
|
|
||||||
|
private void pushToField(DataPoint dp){
|
||||||
|
System.out.println("To Field: " + dp.toString());
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onNewValue(DataPoint dp) {
|
||||||
|
pushToField(dp);
|
||||||
|
}
|
||||||
|
}
|
31
src/main/java/ch/hevs/isi/web/WebConnector.java
Normal file
31
src/main/java/ch/hevs/isi/web/WebConnector.java
Normal file
@ -0,0 +1,31 @@
|
|||||||
|
package ch.hevs.isi.web;
|
||||||
|
|
||||||
|
import ch.hevs.isi.core.DataPoint;
|
||||||
|
import ch.hevs.isi.core.DataPointListener;
|
||||||
|
|
||||||
|
public class WebConnector implements DataPointListener {
|
||||||
|
private static WebConnector mySelf = null;
|
||||||
|
|
||||||
|
private WebConnector (){
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
public static WebConnector getMySelf(){
|
||||||
|
if (mySelf == null){
|
||||||
|
mySelf = new WebConnector();
|
||||||
|
}
|
||||||
|
return mySelf;
|
||||||
|
}
|
||||||
|
public void initialize(String host, int port){
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
private void pushToWeb(DataPoint dp){
|
||||||
|
System.out.println("To Web: " + dp.toString());
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onNewValue(DataPoint dp) {
|
||||||
|
pushToWeb(dp);
|
||||||
|
}
|
||||||
|
}
|
22
src/test/java/Core.java
Normal file
22
src/test/java/Core.java
Normal file
@ -0,0 +1,22 @@
|
|||||||
|
import ch.hevs.isi.core.BooleanDataPoint;
|
||||||
|
import ch.hevs.isi.core.FloatDataPoint;
|
||||||
|
import ch.hevs.isi.field.FieldConnector;
|
||||||
|
|
||||||
|
public class Core {
|
||||||
|
public static void main(String[] args) {
|
||||||
|
/*
|
||||||
|
BooleanDataPoint bDp = new BooleanDataPoint("foo", true);
|
||||||
|
FloatDataPoint floatDp = new FloatDataPoint("bar", true);
|
||||||
|
System.out.println(bDp.toString());
|
||||||
|
System.out.println(floatDp.toString());
|
||||||
|
bDp.setValue(true);;
|
||||||
|
floatDp.setValue(42);
|
||||||
|
System.out.println(bDp.toString());
|
||||||
|
System.out.println(floatDp.toString());
|
||||||
|
*/
|
||||||
|
|
||||||
|
FieldConnector fc;
|
||||||
|
// TODO some test
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
Reference in New Issue
Block a user