Skip to content

Commit 0773f86

Browse files
committed
Add more custom commands and properties
1 parent a8d81eb commit 0773f86

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

43 files changed

+602
-29
lines changed

src/main/java/com/github/sh0nk/matplotlib4j/Plot.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,8 @@ static Plot create(PythonConfig pythonConfig) {
1515
return new PlotImpl(pythonConfig, false);
1616
}
1717

18+
CustomBuilder cmd(String key);
19+
1820
GridBuilder grid();
1921

2022
LegendBuilder legend();

src/main/java/com/github/sh0nk/matplotlib4j/PlotImpl.java

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,11 @@ public class PlotImpl implements Plot {
2626
this(PythonConfig.systemDefaultPythonConfig(), dryRun);
2727
}
2828

29+
@Override
30+
public CustomBuilder cmd(String key) {
31+
return new CustomBuilderImpl(key);
32+
}
33+
2934
@Override
3035
public LegendBuilder legend() {
3136
LegendBuilder builder = new LegendBuilderImpl();

src/main/java/com/github/sh0nk/matplotlib4j/builder/AxLineBuilder.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,13 @@
11
package com.github.sh0nk.matplotlib4j.builder;
22

3+
import com.github.sh0nk.matplotlib4j.kwargs.KwArgsBuilder;
34
import com.github.sh0nk.matplotlib4j.kwargs.Line2DBuilder;
4-
import java.util.List;
55

66

77
/**
88
* matplotlib.pyplot.plot(*args, **kwargs)
99
*/
10-
public interface AxLineBuilder extends Builder, Line2DBuilder<AxLineBuilder> {
10+
public interface AxLineBuilder extends Builder, Line2DBuilder<AxLineBuilder>, KwArgsBuilder<AxLineBuilder> {
1111

1212
AxLineBuilder at(Number value);
1313

src/main/java/com/github/sh0nk/matplotlib4j/builder/AxLineBuilderImpl.java

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -66,6 +66,31 @@ public AxLineBuilder color(String arg) {
6666
return line2DBuilder.color(arg);
6767
}
6868

69+
@Override
70+
public AxLineBuilder addToKwargs(String k, String v) {
71+
return innerBuilder.addToKwargs(k, v);
72+
}
73+
74+
@Override
75+
public AxLineBuilder addToKwargsWithoutQuoting(String k, String v) {
76+
return innerBuilder.addToKwargsWithoutQuoting(k, v);
77+
}
78+
79+
@Override
80+
public AxLineBuilder addToKwargs(String k, Number n) {
81+
return innerBuilder.addToKwargs(k, n);
82+
}
83+
84+
@Override
85+
public AxLineBuilder addToKwargs(String k, List<? extends Number> v) {
86+
return innerBuilder.addToKwargs(k, v);
87+
}
88+
89+
@Override
90+
public AxLineBuilder addToKwargs(String k, boolean v) {
91+
return innerBuilder.addToKwargs(k, v);
92+
}
93+
6994
@Override
7095
public String build() {
7196
return innerBuilder.build();

src/main/java/com/github/sh0nk/matplotlib4j/builder/BarBuilder.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,14 @@
11
package com.github.sh0nk.matplotlib4j.builder;
22

3+
import com.github.sh0nk.matplotlib4j.kwargs.KwArgsBuilder;
34
import com.github.sh0nk.matplotlib4j.kwargs.Line2DBuilder;
45
import java.util.List;
56

67

78
/**
89
* matplotlib.pyplot.bar(*args, **kwargs)
910
*/
10-
public interface BarBuilder extends Builder, Line2DBuilder<BarBuilder> {
11+
public interface BarBuilder extends Builder, Line2DBuilder<BarBuilder>, KwArgsBuilder<BarBuilder> {
1112

1213
BarBuilder add(List<? extends Number> nums);
1314

src/main/java/com/github/sh0nk/matplotlib4j/builder/BarBuilderImpl.java

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -49,6 +49,31 @@ public BarBuilder color(String arg) {
4949
return line2DBuilder.color(arg);
5050
}
5151

52+
@Override
53+
public BarBuilder addToKwargs(String k, String v) {
54+
return innerBuilder.addToKwargs(k, v);
55+
}
56+
57+
@Override
58+
public BarBuilder addToKwargsWithoutQuoting(String k, String v) {
59+
return innerBuilder.addToKwargsWithoutQuoting(k, v);
60+
}
61+
62+
@Override
63+
public BarBuilder addToKwargs(String k, Number n) {
64+
return innerBuilder.addToKwargs(k, n);
65+
}
66+
67+
@Override
68+
public BarBuilder addToKwargs(String k, List<? extends Number> v) {
69+
return innerBuilder.addToKwargs(k, v);
70+
}
71+
72+
@Override
73+
public BarBuilder addToKwargs(String k, boolean v) {
74+
return innerBuilder.addToKwargs(k, v);
75+
}
76+
5277
@Override
5378
public String build() {
5479
return innerBuilder.build();

src/main/java/com/github/sh0nk/matplotlib4j/builder/Builder.java

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,5 +3,13 @@
33
public interface Builder {
44
String build();
55

6+
default boolean returns() {
7+
return true;
8+
}
9+
10+
default String getMethodPrefix() {
11+
return "plt.";
12+
}
13+
614
String getMethodName();
715
}

src/main/java/com/github/sh0nk/matplotlib4j/builder/CLabelBuilder.java

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
11
package com.github.sh0nk.matplotlib4j.builder;
22

3-
public interface CLabelBuilder extends Builder {
3+
import com.github.sh0nk.matplotlib4j.kwargs.KwArgsBuilder;
4+
5+
public interface CLabelBuilder extends Builder, KwArgsBuilder<CLabelBuilder> {
46

57
CLabelBuilder fontsize(String arg);
68

src/main/java/com/github/sh0nk/matplotlib4j/builder/CLabelBuilderImpl.java

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
package com.github.sh0nk.matplotlib4j.builder;
22

3+
import java.util.List;
4+
35
public class CLabelBuilderImpl implements CLabelBuilder {
46

57
private final CompositeBuilder<CLabelBuilder> innerBuilder = new CompositeBuilder<>(this);
@@ -48,6 +50,31 @@ public CLabelBuilder useClabeltext(boolean arg) {
4850
return innerBuilder.addToKwargs("use_clabeltext", arg);
4951
}
5052

53+
@Override
54+
public CLabelBuilder addToKwargs(String k, String v) {
55+
return innerBuilder.addToKwargs(k, v);
56+
}
57+
58+
@Override
59+
public CLabelBuilder addToKwargsWithoutQuoting(String k, String v) {
60+
return innerBuilder.addToKwargsWithoutQuoting(k, v);
61+
}
62+
63+
@Override
64+
public CLabelBuilder addToKwargs(String k, Number n) {
65+
return innerBuilder.addToKwargs(k, n);
66+
}
67+
68+
@Override
69+
public CLabelBuilder addToKwargs(String k, List<? extends Number> v) {
70+
return innerBuilder.addToKwargs(k, v);
71+
}
72+
73+
@Override
74+
public CLabelBuilder addToKwargs(String k, boolean v) {
75+
return innerBuilder.addToKwargs(k, v);
76+
}
77+
5178
@Override
5279
public String build() {
5380
return innerBuilder.build();

src/main/java/com/github/sh0nk/matplotlib4j/builder/CompositeBuilder.java

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
package com.github.sh0nk.matplotlib4j.builder;
22

33
import com.github.sh0nk.matplotlib4j.TypeConversion;
4+
import com.github.sh0nk.matplotlib4j.kwargs.KwArgsBuilder;
45
import com.google.common.base.Joiner;
56
import org.slf4j.Logger;
67
import org.slf4j.LoggerFactory;
@@ -14,7 +15,7 @@
1415
*
1516
* @param <T> Owner builder class
1617
*/
17-
public class CompositeBuilder<T extends Builder> implements Builder {
18+
public class CompositeBuilder<T extends Builder> implements Builder, KwArgsBuilder<T> {
1819

1920
private final static Logger LOGGER = LoggerFactory.getLogger(CompositeBuilder.class);
2021

@@ -107,9 +108,10 @@ public String build() {
107108
}
108109

109110
// retName
110-
sb.append(retName).append(" = ");
111+
if (ownerBuilder.returns())
112+
sb.append(retName).append(" = ");
111113

112-
sb.append("plt.");
114+
sb.append(ownerBuilder.getMethodPrefix());
113115
sb.append(ownerBuilder.getMethodName());
114116
sb.append("(");
115117

0 commit comments

Comments
 (0)