Skip to content

Commit 6f7a0b8

Browse files
committed
Allow object usage internally inside Dataset
1 parent 064576e commit 6f7a0b8

File tree

1 file changed

+46
-14
lines changed
  • chartjs-java-model/src/main/java/software/xdev/chartjs/model/dataset

1 file changed

+46
-14
lines changed

chartjs-java-model/src/main/java/software/xdev/chartjs/model/dataset/Dataset.java

Lines changed: 46 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -20,26 +20,36 @@
2020
import java.util.Collection;
2121
import java.util.Collections;
2222
import java.util.List;
23+
import java.util.stream.Collectors;
2324

2425

2526
public abstract class Dataset<T extends Dataset<T, O>, O>
2627
{
27-
protected final List<O> data = new ArrayList<>();
28+
protected final List<Object> data = new ArrayList<>();
2829

2930
/**
3031
* @return an unmodifiable view of the data held in this {@code Dataset}, never {@code null}
3132
*/
32-
public List<O> getData()
33+
public List<Object> getData()
3334
{
3435
return Collections.unmodifiableList(this.data);
3536
}
3637

3738
/**
38-
* Sets the backing data list to the argument, replacing any data already added or set
39-
*
40-
* @param data The data to plot in a line
39+
* @return an unmodifiable view of the data held in this {@code Dataset}, never {@code null}
4140
*/
42-
public T setData(final Collection<O> data)
41+
public <X> List<X> getData(final Class<X> filterClazz)
42+
{
43+
return this.data.stream()
44+
.filter(filterClazz::isInstance)
45+
.map(filterClazz::cast)
46+
.collect(Collectors.toUnmodifiableList());
47+
}
48+
49+
/**
50+
* @see #setData(Collection)
51+
*/
52+
public T setDataUnchecked(final Collection<?> data)
4353
{
4454
this.clearData();
4555
if(data != null)
@@ -54,14 +64,28 @@ public T setData(final Collection<O> data)
5464
*
5565
* @param data The data to plot in a line
5666
*/
67+
public T setData(final Collection<O> data)
68+
{
69+
return this.setDataUnchecked(data);
70+
}
71+
72+
/**
73+
* @see #setData(Object[])
74+
*/
75+
public T setDataUnchecked(final Object... data)
76+
{
77+
return this.setDataUnchecked(Arrays.asList(data));
78+
}
79+
80+
/**
81+
* Sets the backing data list to the argument, replacing any data already added or set
82+
*
83+
* @param data The data to plot in a line
84+
*/
85+
@SuppressWarnings("unchecked") // Works fine
5786
public T setData(final O... data)
5887
{
59-
this.clearData();
60-
if(data != null)
61-
{
62-
this.data.addAll(Arrays.asList(data));
63-
}
64-
return this.self();
88+
return this.setData(Arrays.asList(data));
6589
}
6690

6791
/**
@@ -73,6 +97,15 @@ public T clearData()
7397
return this.self();
7498
}
7599

100+
/**
101+
* @see #addData(Object)
102+
*/
103+
public T addDataUnchecked(final Object data)
104+
{
105+
this.data.add(data);
106+
return this.self();
107+
}
108+
76109
/**
77110
* Add the data point to this {@code Dataset}
78111
*
@@ -81,8 +114,7 @@ public T clearData()
81114
*/
82115
public T addData(final O data)
83116
{
84-
this.data.add(data);
85-
return this.self();
117+
return this.addDataUnchecked(data);
86118
}
87119

88120
@SuppressWarnings("unchecked")

0 commit comments

Comments
 (0)