diff --git a/src/main/java/fr/univlille/iut/r304/tp3/q3/ConnectableProperty.java b/src/main/java/fr/univlille/iut/r304/tp3/q3/ConnectableProperty.java index ce7269d5ecfe5adf17694c31683a359b9322d7ca..9bf29e5b28f5787d33ad5ecaa14ad2ee2ee06330 100644 --- a/src/main/java/fr/univlille/iut/r304/tp3/q3/ConnectableProperty.java +++ b/src/main/java/fr/univlille/iut/r304/tp3/q3/ConnectableProperty.java @@ -1,14 +1,35 @@ package fr.univlille.iut.r304.tp3.q3; -public class ConnectableProperty extends ObservableProperty { +import fr.univlille.iut.r304.tp3.q1.Observable; +import fr.univlille.iut.r304.tp3.q1.Observer; - public void connectTo(ConnectableProperty other) { - } +public class ConnectableProperty extends ObservableProperty implements Observer { - public void biconnectTo(ConnectableProperty other) { - } + public void connectTo(ConnectableProperty other) { + other.attach(this); + other.notifyObservers(other.getValue()); + } - public void unconnectFrom(ConnectableProperty other) { - } + public void biconnectTo(ConnectableProperty other) { + this.connectTo(other); + other.connectTo(this); + } + + public void unconnectFrom(ConnectableProperty other) { + other.detach(this); + } + + @Override + public void update(Observable o) { + changed = true; + } + + @Override + public void update(Observable o, Object arg) { + if (!value.equals(arg)) { + changed = true; + this.setValue(arg); + } + } } diff --git a/src/main/java/fr/univlille/iut/r304/tp3/q3/ObservableProperty.java b/src/main/java/fr/univlille/iut/r304/tp3/q3/ObservableProperty.java index 4fe250c1b28a1036c86d634bbc124f6a0e51fd4c..363060e5a233f5842766adeb514a650ffea0da2a 100644 --- a/src/main/java/fr/univlille/iut/r304/tp3/q3/ObservableProperty.java +++ b/src/main/java/fr/univlille/iut/r304/tp3/q3/ObservableProperty.java @@ -1,24 +1,20 @@ package fr.univlille.iut.r304.tp3.q3; +import fr.univlille.iut.r304.tp3.q1.Observable; import fr.univlille.iut.r304.tp3.q1.Observer; -public class ObservableProperty { +public class ObservableProperty extends Observable { + + protected Object value=0; + protected boolean changed=false; public void setValue(Object i) { + value = i; + notifyObservers(value); } public Object getValue() { - return null; - } - - public void attach(Observer observer) { - // methode cree pour que les tests compilent sans erreur - // n'est pas censée rester une fois que vous avez fini Q2.1 - } - - public void detach(Observer observer) { - // methode cree pour que les tests compilent sans erreur - // n'est pas censée rester une fois que vous avez fini Q2.1 + return value; } } diff --git a/src/main/java/fr/univlille/iut/r304/tp3/q4/Devise.java b/src/main/java/fr/univlille/iut/r304/tp3/q4/Devise.java new file mode 100644 index 0000000000000000000000000000000000000000..d079421c45bff425d10aaae201d5355af5b2a1e1 --- /dev/null +++ b/src/main/java/fr/univlille/iut/r304/tp3/q4/Devise.java @@ -0,0 +1,34 @@ +package fr.univlille.iut.r304.tp3.q4; + +import fr.univlille.iut.r304.tp3.q3.ConnectableProperty; +import fr.univlille.iut.r304.tp3.q1.Observable; + +import javax.security.auth.Subject; + +public class Devise extends ConnectableProperty { + private double conversionRate; + private String symbol; + + public Devise(double conversionRate, char symbol) { + super(); + this.conversionRate = conversionRate; + this.symbol = symbol; + } + + public double getConversionRate() { + return this.conversionRate; + } + + public String getSymbol() { + return this.symbol; + } + + + public void update(Subject o, Object data) { + String dataString = (String) data; + int index = dataString.indexOf(symbol); + if (dataString.contains(symbol)){ + this.notifyObservers(); + } + } +} \ No newline at end of file diff --git a/src/main/java/fr/univlille/iut/r304/tp3/q4/Main.java b/src/main/java/fr/univlille/iut/r304/tp3/q4/Main.java new file mode 100644 index 0000000000000000000000000000000000000000..3ddbbacb49ab4da64532b82eb76bd555733b053e --- /dev/null +++ b/src/main/java/fr/univlille/iut/r304/tp3/q4/Main.java @@ -0,0 +1,6 @@ +package fr.univlille.iut.r304.tp3.q4; + +public class Main { + public static void main(String[] args) { + } +} \ No newline at end of file