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

org.eclipse.dawnsci.analysis.tree.impl.NodeImpl Maven / Gradle / Ivy

/*-
 *******************************************************************************
 * Copyright (c) 2011, 2014 Diamond Light Source Ltd.
 * 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:
 *    Peter Chang - initial API and implementation and/or initial documentation
 *******************************************************************************/

package org.eclipse.dawnsci.analysis.tree.impl;

import java.io.Serializable;
import java.util.Iterator;
import java.util.LinkedHashMap;

import org.eclipse.dawnsci.analysis.api.tree.Attribute;
import org.eclipse.dawnsci.analysis.api.tree.Node;

public abstract class NodeImpl implements Node, Serializable {
	
	protected static final long serialVersionUID = -662872819341035983L;

	protected LinkedHashMap attributes;
	protected static final String INDENT = "    ";
	protected final long id;

	/**
	 * Construct a node with given object ID
	 * @param oid object ID
	 */
	public NodeImpl(final long oid) {
		attributes = new LinkedHashMap();
		id = oid;
	}

	@Override
	public long getID() {
		return id;
	}

	@Override
	public int getNumberOfAttributes() {
		return attributes.size();
	}

	@Override
	public boolean containsAttribute(final String name) {
		return attributes.containsKey(name);
	}

	@Override
	public Attribute getAttribute(final String name) {
		return attributes.get(name);
	}

	@Override
	public void addAttribute(final Attribute a) {
		attributes.put(a.getName(), a);
	}

	@Override
	public Iterator getAttributeNameIterator() {
		return attributes.keySet().iterator();
	}

	@Override
	public Iterator getAttributeIterator() {
		return attributes.values().iterator();
	}

	@Override
	public String toString() {
		StringBuilder out = new StringBuilder();
	
		for (String a : attributes.keySet()) {
			out.append(INDENT);
			out.append(ATTRIBUTE);
			out.append(a);
			out.append(" = ");
			out.append(attributes.get(a));
			out.append('\n');
		}
	
		return out.toString();
	}

	@Override
	public boolean isGroupNode() {
		return false;
	}

	@Override
	public boolean isDataNode() {
		return false;
	}

	@Override
	public boolean isSymbolicNode() {
		return false;
	}
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy