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

com.automationrockstars.gir.data.impl.MapTestDataRecord Maven / Gradle / Ivy

The newest version!
/*
 * 
 */

package com.automationrockstars.gir.data.impl;

import com.automationrockstars.gir.data.TestDataRecord;
import com.google.common.base.Joiner;

import java.util.Collections;
import java.util.HashMap;
import java.util.Map;

public class MapTestDataRecord implements TestDataRecord {


    private final Map data;

    public MapTestDataRecord(Map data) {
        this.data = data;
    }

    public static MapTestDataRecord empty() {
        return new MapTestDataRecord(new HashMap());
    }

    @SuppressWarnings("unchecked")
    @Override
    public  T get(String name) {
        return (T) data.get(name);
    }

    @Override
    public Map toMap() {
        return Collections.unmodifiableMap(data);
    }

    public boolean equals(Object o) {
        if (o instanceof TestDataRecord) {
            return this.toMap().equals(((TestDataRecord) o).toMap());
        }
        return false;
    }

    public String toString() {
        return Joiner.on("\n").withKeyValueSeparator(": ").join(data);
    }

    @SuppressWarnings("unchecked")
    @Override
    public  C modify(String name, Object value) {
        data.put(name, value);
        return (C) this;
    }

    @SuppressWarnings("unchecked")
    @Override
    public  C modify(C original) {
        for (String key : original.toMap().keySet()) {
            data.put(key, original.get(key));
        }
        return (C) this;
    }

}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy