001// License: GPL. For details, see LICENSE file. 002package org.openstreetmap.josm.gui.layer; 003 004import org.openstreetmap.josm.data.osm.OsmData; 005 006/** 007 * Abstraction of {@link OsmDataLayer}. 008 * @since 13926 009 */ 010public abstract class AbstractOsmDataLayer extends AbstractModifiableLayer { 011 012 protected AbstractOsmDataLayer(String name) { 013 super(name); 014 } 015 016 /** 017 * Returns the {@link OsmData} behind this layer. 018 * @return the {@link OsmData} behind this layer. 019 */ 020 public abstract OsmData<?, ?, ?, ?> getDataSet(); 021 022 @Override 023 public void lock() { 024 getDataSet().lock(); 025 } 026 027 @Override 028 public void unlock() { 029 getDataSet().unlock(); 030 } 031 032 @Override 033 public boolean isLocked() { 034 return getDataSet().isLocked(); 035 } 036 037 /** 038 * Clears the data backing this layer, unless if locked. 039 * @since 15565 040 */ 041 public void clear() { 042 OsmData<?, ?, ?, ?> data = getDataSet(); 043 if (data != null && !data.isLocked()) { 044 data.clear(); 045 } 046 } 047}