001// License: GPL. For details, see LICENSE file. 002package org.openstreetmap.josm.data.preferences; 003 004/** 005 * Setting containing a {@link String} value. 006 * @since 9759 007 */ 008public class StringSetting extends AbstractSetting<String> { 009 /** 010 * Constructs a new {@code StringSetting} with the given value 011 * @param value The setting value 012 */ 013 public StringSetting(String value) { 014 super(value); 015 } 016 017 @Override 018 public boolean equalVal(String otherVal) { 019 if (value == null) 020 return otherVal == null; 021 return value.equals(otherVal); 022 } 023 024 @Override 025 public StringSetting copy() { 026 return new StringSetting(value); 027 } 028 029 @Override 030 public void visit(SettingVisitor visitor) { 031 visitor.visit(this); 032 } 033 034 @Override 035 public StringSetting getNullInstance() { 036 return new StringSetting(null); 037 } 038 039 @Override 040 public boolean equals(Object other) { 041 if (!(other instanceof StringSetting)) 042 return false; 043 return equalVal(((StringSetting) other).getValue()); 044 } 045}