Hi guys,
I'm trying to create a base class which is inherited from classes
implementing FlatMap method on specific POJO types.

It seems inheritance doesn't work, I can access this.PropertyName or
super.PropertyName from flatMap method but values are always null.

Here the derived class, using RainfallPOJO:

public class CullTimeRainfall extends CullTimeBase implements
FlatMapFunction<RainfallPOJO, RainfallPOJO> {

public CullTimeRainfall(int num, int den, String time_data_name, String
start_time, String end_time, int interval, String time_unit){
super(num, den, time_data_name, start_time, end_time, interval, time_unit);
}

public void flatMap(RainfallPOJO obj, Collector<RainfallPOJO> coll) throws
Exception {
DateFormat formatter = new SimpleDateFormat("yyyy-MM-dd'T'hh:mm:ss.SSS");
try {
   Date time = formatter.parse( obj.getTime().replaceAll(
"([0-9\\-T]+:[0-9]{2}:[0-9.+]+):([0-9]{2})", "$1$2" ) );
       if(time.after(this.startTime) && time.before(this.endTime)){
coll.collect(obj);
}
} catch(Exception e){
e.printStackTrace();
}
}
}

My Base class is:

public class CullTimeBase {

  protected int numerator;
    protected int denominator;
    protected String timeDataName;
    protected Date startTime;
    protected Date endTime;
    protected int interval;
    protected String timeUnit;
public CullTimeBase(int num, int den, String time_data_name, String
start_time, String end_time, int interv, String time_unit){
numerator = num;
denominator = den;
timeDataName = time_data_name;
interval = interv;
timeUnit = time_unit;
DateFormat formatter = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSS");
try {
startTime = formatter.parse(start_time);
endTime = formatter.parse(end_time);
} catch (ParseException e) {
e.printStackTrace();
}
}

It works only if I declare all variables and methods in only one class, but
so I should repeat the same properties in more classes. I would only
specialize each derived class with a custom flatMap method. which uses a
custom POJO type.

Thanks a lot,
Giacomo

Reply via email to