Skip to content

Commit 07d52b2

Browse files
committed
additional ctors, interfaces for specializations and bug fix
1 parent b8e5496 commit 07d52b2

20 files changed

+442
-296
lines changed

src/main/java/com/beans/observables/listeners/ListenerPredicate.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ public boolean test(Event event) {
1919
ObservableValue<?> observable = mObservable.get();
2020

2121
if (observable == null) {
22-
return true;
22+
return false;
2323
}
2424

2525
return event instanceof ChangeEvent &&

src/main/java/com/beans/observables/properties/ObservableBooleanProperty.java

Lines changed: 2 additions & 61 deletions
Original file line numberDiff line numberDiff line change
@@ -2,12 +2,6 @@
22

33
import com.beans.BooleanProperty;
44
import com.beans.observables.ObservableBooleanValue;
5-
import com.beans.observables.binding.PropertyBindingController;
6-
import com.beans.observables.listeners.ObservableEventController;
7-
import com.notifier.EventController;
8-
9-
import java.util.Objects;
10-
import java.util.Optional;
115

126
/**
137
* <p>
@@ -25,60 +19,7 @@
2519
*
2620
* @since JavaBeans 1.0
2721
*/
28-
public abstract class ObservableBooleanProperty extends ObservablePropertyBase<Boolean>
29-
implements ObservableBooleanValue, BooleanProperty {
30-
31-
protected ObservableBooleanProperty(ObservableEventController<Boolean> eventController,
32-
PropertyBindingController<Boolean> bindingController) {
33-
super(eventController, bindingController);
34-
}
35-
36-
protected ObservableBooleanProperty(EventController eventController,
37-
PropertyBindingController<Boolean> bindingController) {
38-
super(eventController, bindingController);
39-
}
40-
41-
/**
42-
* {@inheritDoc}
43-
* <p>
44-
* This call invokes any listeners which are added if it changes
45-
* the value which is stored by the property.
46-
* </p>
47-
*/
48-
@Override
49-
public void setAsBoolean(boolean value) {
50-
if (!setIfBound(value)) {
51-
setInternal(value);
52-
}
53-
}
54-
55-
@Override
56-
public boolean getAsBoolean() {
57-
Optional<Boolean> boundOptional = getIfBound();
58-
return boundOptional.orElseGet(this::getInternal);
59-
}
60-
61-
@Override
62-
public void set(Boolean value) {
63-
Objects.requireNonNull(value, "value is null");
64-
65-
if (!setIfBound(value)) {
66-
setInternal(value);
67-
}
68-
}
69-
70-
@Override
71-
public Boolean get() {
72-
Optional<Boolean> boundOptional = getIfBound();
73-
return boundOptional.orElseGet(this::getInternal);
74-
75-
}
76-
77-
protected abstract void setInternal(boolean value);
78-
protected abstract boolean getInternal();
22+
public interface ObservableBooleanProperty
23+
extends ObservableProperty<Boolean>, ObservableBooleanValue, BooleanProperty {
7924

80-
@Override
81-
public String toString() {
82-
return String.format("ObservableBooleanProperty [value=%b]", getAsBoolean());
83-
}
8425
}
Lines changed: 66 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,66 @@
1+
package com.beans.observables.properties;
2+
3+
import com.beans.observables.binding.PropertyBindingController;
4+
import com.beans.observables.listeners.ObservableEventController;
5+
import com.notifier.EventController;
6+
7+
import java.util.Objects;
8+
import java.util.Optional;
9+
10+
public abstract class ObservableBooleanPropertyBase extends ObservablePropertyBase<Boolean>
11+
implements ObservableBooleanProperty {
12+
13+
protected ObservableBooleanPropertyBase(ObservableEventController<Boolean> eventController,
14+
PropertyBindingController<Boolean> bindingController) {
15+
super(eventController, bindingController);
16+
}
17+
18+
protected ObservableBooleanPropertyBase(EventController eventController,
19+
PropertyBindingController<Boolean> bindingController) {
20+
super(eventController, bindingController);
21+
}
22+
23+
/**
24+
* {@inheritDoc}
25+
* <p>
26+
* This call invokes any listeners which are added if it changes
27+
* the value which is stored by the property.
28+
* </p>
29+
*/
30+
@Override
31+
public void setAsBoolean(boolean value) {
32+
if (!setIfBound(value)) {
33+
setInternal(value);
34+
}
35+
}
36+
37+
@Override
38+
public boolean getAsBoolean() {
39+
Optional<Boolean> boundOptional = getIfBound();
40+
return boundOptional.orElseGet(this::getInternal);
41+
}
42+
43+
@Override
44+
public void set(Boolean value) {
45+
Objects.requireNonNull(value, "value is null");
46+
47+
if (!setIfBound(value)) {
48+
setInternal(value);
49+
}
50+
}
51+
52+
@Override
53+
public Boolean get() {
54+
Optional<Boolean> boundOptional = getIfBound();
55+
return boundOptional.orElseGet(this::getInternal);
56+
57+
}
58+
59+
protected abstract void setInternal(boolean value);
60+
protected abstract boolean getInternal();
61+
62+
@Override
63+
public String toString() {
64+
return String.format("ObservableBooleanProperty [value=%b]", getAsBoolean());
65+
}
66+
}

src/main/java/com/beans/observables/properties/ObservableDoubleProperty.java

Lines changed: 2 additions & 62 deletions
Original file line numberDiff line numberDiff line change
@@ -2,12 +2,6 @@
22

33
import com.beans.DoubleProperty;
44
import com.beans.observables.ObservableDoubleValue;
5-
import com.beans.observables.binding.PropertyBindingController;
6-
import com.beans.observables.listeners.ObservableEventController;
7-
import com.notifier.EventController;
8-
9-
import java.util.Objects;
10-
import java.util.Optional;
115

126
/**
137
* <p>
@@ -25,60 +19,6 @@
2519
*
2620
* @since JavaBeans 1.0
2721
*/
28-
public abstract class ObservableDoubleProperty extends ObservablePropertyBase<Double>
29-
implements ObservableDoubleValue, DoubleProperty {
30-
31-
protected ObservableDoubleProperty(ObservableEventController<Double> eventController,
32-
PropertyBindingController<Double> bindingController) {
33-
super(eventController, bindingController);
34-
}
35-
36-
protected ObservableDoubleProperty(EventController eventController,
37-
PropertyBindingController<Double> bindingController) {
38-
super(eventController, bindingController);
39-
}
40-
41-
/**
42-
* {@inheritDoc}
43-
* <p>
44-
* This call invokes any listeners which are added if it changes
45-
* the value which is stored by the property.
46-
* </p>
47-
*/
48-
@Override
49-
public void setAsDouble(double value) {
50-
if (!setIfBound(value)) {
51-
setInternal(value);
52-
}
53-
}
54-
55-
@Override
56-
public double getAsDouble() {
57-
Optional<Double> boundOptional = getIfBound();
58-
return boundOptional.orElseGet(this::getInternal);
59-
}
60-
61-
@Override
62-
public void set(Double value) {
63-
Objects.requireNonNull(value, "value is null");
64-
65-
if (!setIfBound(value)) {
66-
setInternal(value);
67-
}
68-
}
69-
70-
@Override
71-
public Double get() {
72-
Optional<Double> boundOptional = getIfBound();
73-
return boundOptional.orElseGet(this::getInternal);
74-
75-
}
76-
77-
protected abstract void setInternal(double value);
78-
protected abstract double getInternal();
79-
80-
@Override
81-
public String toString() {
82-
return String.format("ObservableDoubleProperty [value=%f]", getAsDouble());
83-
}
22+
public interface ObservableDoubleProperty
23+
extends ObservableProperty<Double>, ObservableDoubleValue, DoubleProperty{ //
8424
}
Lines changed: 66 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,66 @@
1+
package com.beans.observables.properties;
2+
3+
import com.beans.observables.binding.PropertyBindingController;
4+
import com.beans.observables.listeners.ObservableEventController;
5+
import com.notifier.EventController;
6+
7+
import java.util.Objects;
8+
import java.util.Optional;
9+
10+
public abstract class ObservableDoublePropertyBase extends ObservablePropertyBase<Double>
11+
implements ObservableDoubleProperty {
12+
13+
protected ObservableDoublePropertyBase(ObservableEventController<Double> eventController,
14+
PropertyBindingController<Double> bindingController) {
15+
super(eventController, bindingController);
16+
}
17+
18+
protected ObservableDoublePropertyBase(EventController eventController,
19+
PropertyBindingController<Double> bindingController) {
20+
super(eventController, bindingController);
21+
}
22+
23+
/**
24+
* {@inheritDoc}
25+
* <p>
26+
* This call invokes any listeners which are added if it changes
27+
* the value which is stored by the property.
28+
* </p>
29+
*/
30+
@Override
31+
public void setAsDouble(double value) {
32+
if (!setIfBound(value)) {
33+
setInternal(value);
34+
}
35+
}
36+
37+
@Override
38+
public double getAsDouble() {
39+
Optional<Double> boundOptional = getIfBound();
40+
return boundOptional.orElseGet(this::getInternal);
41+
}
42+
43+
@Override
44+
public void set(Double value) {
45+
Objects.requireNonNull(value, "value is null");
46+
47+
if (!setIfBound(value)) {
48+
setInternal(value);
49+
}
50+
}
51+
52+
@Override
53+
public Double get() {
54+
Optional<Double> boundOptional = getIfBound();
55+
return boundOptional.orElseGet(this::getInternal);
56+
57+
}
58+
59+
protected abstract void setInternal(double value);
60+
protected abstract double getInternal();
61+
62+
@Override
63+
public String toString() {
64+
return String.format("ObservableDoubleProperty [value=%f]", getAsDouble());
65+
}
66+
}

src/main/java/com/beans/observables/properties/ObservableIntProperty.java

Lines changed: 2 additions & 61 deletions
Original file line numberDiff line numberDiff line change
@@ -2,12 +2,6 @@
22

33
import com.beans.IntProperty;
44
import com.beans.observables.ObservableIntValue;
5-
import com.beans.observables.binding.PropertyBindingController;
6-
import com.beans.observables.listeners.ObservableEventController;
7-
import com.notifier.EventController;
8-
9-
import java.util.Objects;
10-
import java.util.Optional;
115

126
/**
137
* <p>
@@ -25,59 +19,6 @@
2519
*
2620
* @since JavaBeans 1.0
2721
*/
28-
public abstract class ObservableIntProperty extends ObservablePropertyBase<Integer>
29-
implements ObservableIntValue, IntProperty {
30-
31-
protected ObservableIntProperty(ObservableEventController<Integer> eventController,
32-
PropertyBindingController<Integer> bindingController) {
33-
super(eventController, bindingController);
34-
}
35-
36-
protected ObservableIntProperty(EventController eventController,
37-
PropertyBindingController<Integer> bindingController) {
38-
super(eventController, bindingController);
39-
}
40-
/**
41-
* {@inheritDoc}
42-
* <p>
43-
* This call invokes any listeners which are added if it changes
44-
* the value which is stored by the property.
45-
* </p>
46-
*/
47-
@Override
48-
public void setAsInt(int value) {
49-
if (!setIfBound(value)) {
50-
setInternal(value);
51-
}
52-
}
53-
54-
@Override
55-
public int getAsInt() {
56-
Optional<Integer> boundOptional = getIfBound();
57-
return boundOptional.orElseGet(this::getInternal);
58-
}
59-
60-
@Override
61-
public void set(Integer value) {
62-
Objects.requireNonNull(value, "value is null");
63-
64-
if (!setIfBound(value)) {
65-
setInternal(value);
66-
}
67-
}
68-
69-
@Override
70-
public Integer get() {
71-
Optional<Integer> boundOptional = getIfBound();
72-
return boundOptional.orElseGet(this::getInternal);
73-
74-
}
75-
76-
protected abstract void setInternal(int value);
77-
protected abstract int getInternal();
78-
79-
@Override
80-
public String toString() {
81-
return String.format("ObservableIntProperty [value=%d]", getAsInt());
82-
}
22+
public interface ObservableIntProperty
23+
extends ObservableProperty<Integer>, ObservableIntValue, IntProperty {
8324
}

0 commit comments

Comments
 (0)