All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.mwg.csv.impl.Mapper Maven / Gradle / Ivy

There is a newer version: 11
Show newest version
package org.mwg.csv.impl;

import org.mwg.csv.KField;
import org.mwg.csv.KMapper;
import org.mwg.csv.KNodeResolver;

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.HashMap;
import java.util.Map;

public class Mapper implements KMapper {

    private Map fields = new HashMap();
    private String timeFields;
    private SimpleDateFormat dateFormat;
    public String globallyIgnoredValue = null;
    public KNodeResolver nodeResolver = null;

    @Override
    public KField field(String name) {
        if (!fields.containsKey(name)) {
            Field f = new Field();
            f.name = name;
            fields.put(name, f);
            return f;
        } else {
            return fields.get(name);
        }
    }

    public KField getField(String name) {
        return fields.get(name);
    }

    @Override
    public void extractTime(String fields, String patterns) {
        this.timeFields = fields;
        this.dateFormat = new SimpleDateFormat(patterns);
    }


    @Override
    public KMapper globallyIgnoreIfValueEquals(String value) {
        globallyIgnoredValue = value;
        return this;
    }

    @Override
    public void nodeResolver(KNodeResolver resolver) {
        nodeResolver = resolver;
    }

    public long extractTime(Map headers, String[] lineElements) {
        String query = timeFields;
        for (String name : headers.keySet()) {
            int headerIndex = headers.get(name);
            if (headerIndex < lineElements.length) {
                query = query.replace("{" + name + "}", lineElements[headers.get(name)]);
            }
        }
        try {
            return dateFormat.parse(query).getTime();
        } catch (ParseException e) {
            e.printStackTrace();
            return 0;
        }
    }

}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy