/******************************************************************************* * Copyright (c) 2012-2015 INRIA. * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 * which accompanies this distribution, and is available at * http://www.eclipse.org/legal/epl-v10.html * * Contributors: * Generoso Pagano - initial API and implementation ******************************************************************************/ package fr.inria.soctrace.framesoc.ui.model; import java.util.HashMap; import java.util.Iterator; import java.util.Map; import java.util.Map.Entry; import fr.inria.soctrace.lib.model.utils.SoCTraceException; /** * Row of a table, storing a map Column - Value. * * @author "Generoso Pagano <generoso.pagano@inria.fr>" */ public abstract class TableRow implements ITableRow { /** * Map: column - value */ protected Map<ITableColumn, String> fields = new HashMap<ITableColumn, String>(); @Override public void add(ITableColumn col, String value) { fields.put(col, value); } @Override public String get(ITableColumn col) throws SoCTraceException { if (!fields.containsKey(col)) throw new SoCTraceException("Column " + col.toString() + " not found in table row " + this.toString()); return fields.get(col); } @Override public void set(ITableColumn col, String value) { fields.put(col, value); } @Override public String toString() { StringBuilder sb = new StringBuilder("[Fields] "); Iterator<Entry<ITableColumn, String>> it = fields.entrySet().iterator(); boolean first = true; while (it.hasNext()) { if (!first) { sb.append(", "); } first = false; Entry<ITableColumn, String> e = it.next(); sb.append(e.getKey().getHeader()); sb.append(": "); sb.append(e.getValue()); } return sb.toString(); } }