Skip to content

Commit b0a5d5a

Browse files
author
Nicolai Parlog
committed
Implemented fluent API for nested property builders.
1 parent e106834 commit b0a5d5a

8 files changed

+227
-14
lines changed

src/org/codefx/libfx/nesting/property/AbstractNestedPropertyBuilder.java

Lines changed: 27 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -85,11 +85,24 @@ protected final Object getBean() {
8585
* @param bean
8686
* the property's future bean
8787
*/
88-
public final void setBean(Object bean) {
88+
protected final void setTheBean(Object bean) {
8989
Objects.requireNonNull(bean, "The argument 'bean' must not be null.");
9090
this.bean = bean;
9191
}
9292

93+
/**
94+
* Sets the property's future {@link Property#getBean() bean}.
95+
*
96+
* @param bean
97+
* the property's future bean
98+
* @return this builder
99+
*/
100+
public AbstractNestedPropertyBuilder<N, P> setBean(Object bean) {
101+
Objects.requireNonNull(bean, "The argument 'bean' must not be null.");
102+
this.bean = bean;
103+
return this;
104+
}
105+
93106
/**
94107
* @return the property's future {@link Property#getBean() bean}.
95108
*/
@@ -103,11 +116,23 @@ protected final String getName() {
103116
* @param name
104117
* the property's future name
105118
*/
106-
public final void setName(String name) {
119+
protected final void setTheName(String name) {
107120
Objects.requireNonNull(name, "The argument 'name' must not be null.");
108121
this.name = name;
109122
}
110123

124+
/**
125+
* Sets the property's future {@link Property#getName() name}.
126+
*
127+
* @param name
128+
* the property's future name
129+
* @return this builder
130+
*/
131+
public AbstractNestedPropertyBuilder<N, P> setName(String name) {
132+
setTheName(name);
133+
return this;
134+
}
135+
111136
//#end PROPERTY ACCESS
112137

113138
}

src/org/codefx/libfx/nesting/property/NestedBooleanPropertyBuilder.java

Lines changed: 29 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,13 @@
11
package org.codefx.libfx.nesting.property;
22

33
import javafx.beans.property.BooleanProperty;
4+
import javafx.beans.property.Property;
45

56
import org.codefx.libfx.nesting.Nesting;
67

78
/**
8-
* A builder for a {@link NestedBooleanProperty} which is bound to the {@link Nesting#innerObservableProperty() innerObservable}
9-
* of a {@link Nesting}.
9+
* A builder for a {@link NestedBooleanProperty} which is bound to the {@link Nesting#innerObservableProperty()
10+
* innerObservable} of a {@link Nesting}.
1011
*/
1112
public class NestedBooleanPropertyBuilder extends AbstractNestedPropertyBuilder<BooleanProperty, NestedBooleanProperty> {
1213

@@ -42,6 +43,32 @@ public NestedBooleanProperty build() {
4243
return new NestedBooleanProperty(getNesting(), getBean(), getName());
4344
}
4445

46+
/**
47+
* Sets the property's future {@link Property#getBean() bean}.
48+
*
49+
* @param bean
50+
* the property's future bean
51+
* @return this builder
52+
*/
53+
@Override
54+
public NestedBooleanPropertyBuilder setBean(Object bean) {
55+
setTheBean(bean);
56+
return this;
57+
}
58+
59+
/**
60+
* Sets the property's future {@link Property#getName() name}.
61+
*
62+
* @param name
63+
* the property's future name
64+
* @return this builder
65+
*/
66+
@Override
67+
public NestedBooleanPropertyBuilder setName(String name) {
68+
setTheName(name);
69+
return this;
70+
}
71+
4572
//#end METHODS
4673

4774
}

src/org/codefx/libfx/nesting/property/NestedDoublePropertyBuilder.java

Lines changed: 29 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,13 @@
11
package org.codefx.libfx.nesting.property;
22

33
import javafx.beans.property.DoubleProperty;
4+
import javafx.beans.property.Property;
45

56
import org.codefx.libfx.nesting.Nesting;
67

78
/**
8-
* A builder for a {@link NestedDoubleProperty} which is bound to the {@link Nesting#innerObservableProperty() innerObservable}
9-
* of a {@link Nesting}.
9+
* A builder for a {@link NestedDoubleProperty} which is bound to the {@link Nesting#innerObservableProperty()
10+
* innerObservable} of a {@link Nesting}.
1011
*/
1112
public class NestedDoublePropertyBuilder extends AbstractNestedPropertyBuilder<DoubleProperty, NestedDoubleProperty> {
1213

@@ -42,6 +43,32 @@ public NestedDoubleProperty build() {
4243
return new NestedDoubleProperty(getNesting(), getBean(), getName());
4344
}
4445

46+
/**
47+
* Sets the property's future {@link Property#getBean() bean}.
48+
*
49+
* @param bean
50+
* the property's future bean
51+
* @return this builder
52+
*/
53+
@Override
54+
public NestedDoublePropertyBuilder setBean(Object bean) {
55+
setTheBean(bean);
56+
return this;
57+
}
58+
59+
/**
60+
* Sets the property's future {@link Property#getName() name}.
61+
*
62+
* @param name
63+
* the property's future name
64+
* @return this builder
65+
*/
66+
@Override
67+
public NestedDoublePropertyBuilder setName(String name) {
68+
setTheName(name);
69+
return this;
70+
}
71+
4572
//#end METHODS
4673

4774
}

src/org/codefx/libfx/nesting/property/NestedFloatPropertyBuilder.java

Lines changed: 29 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,13 @@
11
package org.codefx.libfx.nesting.property;
22

33
import javafx.beans.property.FloatProperty;
4+
import javafx.beans.property.Property;
45

56
import org.codefx.libfx.nesting.Nesting;
67

78
/**
8-
* A builder for a {@link NestedFloatProperty} which is bound to the {@link Nesting#innerObservableProperty() innerObservable}
9-
* of a {@link Nesting}.
9+
* A builder for a {@link NestedFloatProperty} which is bound to the {@link Nesting#innerObservableProperty()
10+
* innerObservable} of a {@link Nesting}.
1011
*/
1112
public class NestedFloatPropertyBuilder extends AbstractNestedPropertyBuilder<FloatProperty, NestedFloatProperty> {
1213

@@ -42,6 +43,32 @@ public NestedFloatProperty build() {
4243
return new NestedFloatProperty(getNesting(), getBean(), getName());
4344
}
4445

46+
/**
47+
* Sets the property's future {@link Property#getBean() bean}.
48+
*
49+
* @param bean
50+
* the property's future bean
51+
* @return this builder
52+
*/
53+
@Override
54+
public NestedFloatPropertyBuilder setBean(Object bean) {
55+
setTheBean(bean);
56+
return this;
57+
}
58+
59+
/**
60+
* Sets the property's future {@link Property#getName() name}.
61+
*
62+
* @param name
63+
* the property's future name
64+
* @return this builder
65+
*/
66+
@Override
67+
public NestedFloatPropertyBuilder setName(String name) {
68+
setTheName(name);
69+
return this;
70+
}
71+
4572
//#end METHODS
4673

4774
}

src/org/codefx/libfx/nesting/property/NestedIntegerPropertyBuilder.java

Lines changed: 29 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,13 @@
11
package org.codefx.libfx.nesting.property;
22

33
import javafx.beans.property.IntegerProperty;
4+
import javafx.beans.property.Property;
45

56
import org.codefx.libfx.nesting.Nesting;
67

78
/**
8-
* A builder for a {@link NestedIntegerProperty} which is bound to the {@link Nesting#innerObservableProperty() innerObservable}
9-
* of a {@link Nesting}.
9+
* A builder for a {@link NestedIntegerProperty} which is bound to the {@link Nesting#innerObservableProperty()
10+
* innerObservable} of a {@link Nesting}.
1011
*/
1112
public class NestedIntegerPropertyBuilder extends AbstractNestedPropertyBuilder<IntegerProperty, NestedIntegerProperty> {
1213

@@ -42,6 +43,32 @@ public NestedIntegerProperty build() {
4243
return new NestedIntegerProperty(getNesting(), getBean(), getName());
4344
}
4445

46+
/**
47+
* Sets the property's future {@link Property#getBean() bean}.
48+
*
49+
* @param bean
50+
* the property's future bean
51+
* @return this builder
52+
*/
53+
@Override
54+
public NestedIntegerPropertyBuilder setBean(Object bean) {
55+
setTheBean(bean);
56+
return this;
57+
}
58+
59+
/**
60+
* Sets the property's future {@link Property#getName() name}.
61+
*
62+
* @param name
63+
* the property's future name
64+
* @return this builder
65+
*/
66+
@Override
67+
public NestedIntegerPropertyBuilder setName(String name) {
68+
setTheName(name);
69+
return this;
70+
}
71+
4572
//#end METHODS
4673

4774
}

src/org/codefx/libfx/nesting/property/NestedLongPropertyBuilder.java

Lines changed: 29 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,13 @@
11
package org.codefx.libfx.nesting.property;
22

33
import javafx.beans.property.LongProperty;
4+
import javafx.beans.property.Property;
45

56
import org.codefx.libfx.nesting.Nesting;
67

78
/**
8-
* A builder for a {@link NestedLongProperty} which is bound to the {@link Nesting#innerObservableProperty() innerObservable} of
9-
* a {@link Nesting}.
9+
* A builder for a {@link NestedLongProperty} which is bound to the {@link Nesting#innerObservableProperty()
10+
* innerObservable} of a {@link Nesting}.
1011
*/
1112
public class NestedLongPropertyBuilder extends AbstractNestedPropertyBuilder<LongProperty, NestedLongProperty> {
1213

@@ -42,6 +43,32 @@ public NestedLongProperty build() {
4243
return new NestedLongProperty(getNesting(), getBean(), getName());
4344
}
4445

46+
/**
47+
* Sets the property's future {@link Property#getBean() bean}.
48+
*
49+
* @param bean
50+
* the property's future bean
51+
* @return this builder
52+
*/
53+
@Override
54+
public NestedLongPropertyBuilder setBean(Object bean) {
55+
setTheBean(bean);
56+
return this;
57+
}
58+
59+
/**
60+
* Sets the property's future {@link Property#getName() name}.
61+
*
62+
* @param name
63+
* the property's future name
64+
* @return this builder
65+
*/
66+
@Override
67+
public NestedLongPropertyBuilder setName(String name) {
68+
setTheName(name);
69+
return this;
70+
}
71+
4572
//#end METHODS
4673

4774
}

src/org/codefx/libfx/nesting/property/NestedObjectPropertyBuilder.java

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -48,6 +48,32 @@ public NestedObjectProperty<T> build() {
4848
return new NestedObjectProperty<>(getNesting(), getBean(), getName());
4949
}
5050

51+
/**
52+
* Sets the property's future {@link Property#getBean() bean}.
53+
*
54+
* @param bean
55+
* the property's future bean
56+
* @return this builder
57+
*/
58+
@Override
59+
public NestedObjectPropertyBuilder<T> setBean(Object bean) {
60+
setTheBean(bean);
61+
return this;
62+
}
63+
64+
/**
65+
* Sets the property's future {@link Property#getName() name}.
66+
*
67+
* @param name
68+
* the property's future name
69+
* @return this builder
70+
*/
71+
@Override
72+
public NestedObjectPropertyBuilder<T> setName(String name) {
73+
setTheName(name);
74+
return this;
75+
}
76+
5177
//#end METHODS
5278

5379
}

src/org/codefx/libfx/nesting/property/NestedStringPropertyBuilder.java

Lines changed: 29 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,13 @@
11
package org.codefx.libfx.nesting.property;
22

3+
import javafx.beans.property.Property;
34
import javafx.beans.property.StringProperty;
45

56
import org.codefx.libfx.nesting.Nesting;
67

78
/**
8-
* A builder for a {@link NestedStringProperty} which is bound to the {@link Nesting#innerObservableProperty() innerObservable}
9-
* of a {@link Nesting}.
9+
* A builder for a {@link NestedStringProperty} which is bound to the {@link Nesting#innerObservableProperty()
10+
* innerObservable} of a {@link Nesting}.
1011
*/
1112
public class NestedStringPropertyBuilder extends AbstractNestedPropertyBuilder<StringProperty, NestedStringProperty> {
1213

@@ -42,6 +43,32 @@ public NestedStringProperty build() {
4243
return new NestedStringProperty(getNesting(), getBean(), getName());
4344
}
4445

46+
/**
47+
* Sets the property's future {@link Property#getBean() bean}.
48+
*
49+
* @param bean
50+
* the property's future bean
51+
* @return this builder
52+
*/
53+
@Override
54+
public NestedStringPropertyBuilder setBean(Object bean) {
55+
setTheBean(bean);
56+
return this;
57+
}
58+
59+
/**
60+
* Sets the property's future {@link Property#getName() name}.
61+
*
62+
* @param name
63+
* the property's future name
64+
* @return this builder
65+
*/
66+
@Override
67+
public NestedStringPropertyBuilder setName(String name) {
68+
setTheName(name);
69+
return this;
70+
}
71+
4572
//#end METHODS
4673

4774
}

0 commit comments

Comments
 (0)