package com.revolsys.swing.map.symbol; import java.util.Map; import javax.swing.Icon; import com.revolsys.swing.map.layer.record.style.MarkerStyle; import com.revolsys.swing.map.layer.record.style.marker.Marker; public abstract class AbstractSymbol extends AbstractSymbolElement implements Symbol { private Icon icon; public AbstractSymbol() { super(); } public AbstractSymbol(final Map<String, ? extends Object> properties) { super(properties); } public AbstractSymbol(final String name) { super(name); } public AbstractSymbol(final String name, final String title) { super(name, title); } @Override public Icon getIcon() { if (this.icon == null) { final Marker marker = newMarker(); this.icon = marker.newIcon(new MarkerStyle()); } return this.icon; } }