Project

General

Profile

1
package eu.dnetlib.data.transform;
2

    
3
import java.util.Collection;
4
import java.util.Iterator;
5
import java.util.List;
6
import java.util.Map;
7

    
8
import com.google.common.collect.Maps;
9

    
10
public class Row implements Iterable<Column<String, byte[]>> {
11

    
12
	private String columnFamily;
13

    
14
	private String key;
15

    
16
	private Map<String, Column<String, byte[]>> columns;
17

    
18
	public Row(final Row row) {
19
		this.columnFamily = row.getColumnFamily();
20
		this.key = row.getKey();
21
		this.columns = row.columns;
22
	}
23

    
24
	public Row(final String columnFamily, final String key) {
25
		this.columnFamily = columnFamily;
26
		this.key = key;
27
		this.columns = Maps.newHashMap();
28
	}
29

    
30
	public Row(final String columnFamily, final String key, final List<Column<String, byte[]>> columns) {
31
		this(columnFamily, key);
32
		this.setColumns(columns);
33
	}
34

    
35
	public void addColumn(final Column<String, byte[]> column) {
36
		getColumns().add(column);
37
	}
38

    
39
	public String getKey() {
40
		return key;
41
	}
42

    
43
	public Collection<Column<String, byte[]>> getColumns() {
44
		return columns.values();
45
	}
46

    
47
	public Column<String, byte[]> getColumn(final String name) {
48
		return columns.get(name);
49
	}
50

    
51
	public void setColumn(final String name, final Column<String, byte[]> newColumn) {
52
		columns.put(name, newColumn);
53
	}
54

    
55
	public void setColumns(final List<Column<String, byte[]>> columns) {
56
		this.columns.clear();
57
		for (final Column<String, byte[]> col : columns) {
58
			this.columns.put(col.getName(), col);
59
		}
60
	}
61

    
62
	public String getColumnFamily() {
63
		return columnFamily;
64
	}
65

    
66
	@Override
67
	public Iterator<Column<String, byte[]>> iterator() {
68
		return getColumns().iterator();
69
	}
70

    
71
	@Override
72
	public String toString() {
73
		return "\nRow [ KEY: " + key + ",\n\tCF: " + columnFamily + "\n\tCOLS: {" + columns + "}]";
74
	}
75

    
76
}
(9-9/13)