@Ram, Ok. The reason why I would prefer to have property as List or Map is
because individual items may contain characters which might overlap with
the element separator.
@Thomas, Can you please point me to or type in an example? I'll try that.
Also, is it suggested to use JSON instead of xml in such cases?
On another note, I was looking into code and ended up with common's
BeanUtils, in which I found a way to set map and list by properties.xml as
well.
Just some special setter method needs to be there.
So in operator, code as be as follows:
private List<String> varList = new ArrayList<>();
private Map<String, String> varMap = new HashMap<>();
public void setVarList(List<String> list) { this.varList = list; }
public void setVarList(int index, String value)
{
for (int i=this.list.size(); i<=index; i++) {
this.varList.add(null);
}
this.varList.set(index, value);
}
public void setVarMap(Map<String, String> map) { this.varMap = map; }
public void setVarMap(String key, String value) { this.varMap.put(key,
value); }
And XML file can contain property as follows:
<property>
<name>dt.operator.randomGenerator.varMap(abc)</name>
<value>123</value>
</property>
<property>
<name>dt.operator.randomGenerator.varMap(pqr)</name>
<value>567</value>
</property>
<property>
<name>dt.operator.randomGenerator.varList[1]</name>
<value>test2</value>
</property>
<property>
<name>dt.operator.randomGenerator.varList[0]</name>
<value>test1</value>
</property>
Can you please suggest if this a fine way for exposing complex operator
properties like map and list?
Thanks,
Chinmay.
On Thu, Mar 17, 2016 at 10:04 PM, Thomas Weise <[email protected]>
wrote:
> AFAIK there is a way to do it via JSON.
>
> --
> sent from mobile
> On Mar 17, 2016 9:32 AM, "Munagala Ramanath" <[email protected]> wrote:
>
> > There may be a way to do this with StringCodecs but not sure of the
> > details.
> >
> > You could use arrays of strings as an intermediate type since these can
> be
> > populated by comma-separated values in the property files. Then convert
> > to List/Map as needed.
> >
> > Ram
> >
> > On Thu, Mar 17, 2016 at 2:11 AM, Chinmay Kolhatkar <[email protected]>
> > wrote:
> >
> > > Hi,
> > >
> > > I have an operator which has setter method for properties which are of
> > type
> > > List<String> and Map<String, String>.
> > >
> > > Is there any way to set these properties via properties.xml?
> > >
> > > Thanks,
> > > Chinmay.
> > >
> >
>