// This software is released into the Public Domain. See copying.txt for details. package org.openstreetmap.osmosis.core.container.v0_6; import org.openstreetmap.osmosis.core.domain.v0_6.Node; import org.openstreetmap.osmosis.core.store.StoreClassRegister; import org.openstreetmap.osmosis.core.store.StoreReader; import org.openstreetmap.osmosis.core.store.StoreWriter; /** * Entity container implementation for nodes. * * @author Brett Henderson */ public class NodeContainer extends EntityContainer { private Node node; /** * Creates a new instance. * * @param node * The node to wrap. */ public NodeContainer(Node node) { this.node = node; } /** * Creates a new instance. * * @param sr * The store to read state from. * @param scr * Maintains the mapping between classes and their identifiers * within the store. */ public NodeContainer(StoreReader sr, StoreClassRegister scr) { node = new Node(sr, scr); } /** * {@inheritDoc} */ public void store(StoreWriter sw, StoreClassRegister scr) { node.store(sw, scr); } /** * {@inheritDoc} */ @Override public void process(EntityProcessor processor) { processor.process(this); } /** * {@inheritDoc} */ @Override public Node getEntity() { return node; } /** * {@inheritDoc} */ @Override public NodeContainer getWriteableInstance() { if (node.isReadOnly()) { return new NodeContainer(node.getWriteableInstance()); } else { return this; } } }