Deprecated bad practice StatSet setters with returning values.

Also using simple HashMap instead of ConcurrentHashMap.
This commit is contained in:
MobiusDevelopment
2020-01-28 13:48:46 +00:00
parent 8dbfd09e0c
commit e5bd883546
83 changed files with 917 additions and 2262 deletions

View File

@@ -19,10 +19,9 @@ package org.l2jmobius.gameserver.model;
import java.time.Duration;
import java.util.ArrayList;
import java.util.Collections;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Objects;
import java.util.concurrent.ConcurrentHashMap;
import java.util.function.Supplier;
import java.util.logging.Level;
import java.util.logging.Logger;
@@ -48,7 +47,7 @@ public class StatSet implements IParserAdvUtils
public StatSet()
{
this(ConcurrentHashMap::new);
this(HashMap::new);
}
public StatSet(Supplier<Map<String, Object>> mapFactory)
@@ -97,7 +96,6 @@ public class StatSet implements IParserAdvUtils
@Override
public boolean getBoolean(String key)
{
Objects.requireNonNull(key);
final Object val = _set.get(key);
if (val == null)
{
@@ -126,7 +124,6 @@ public class StatSet implements IParserAdvUtils
@Override
public boolean getBoolean(String key, boolean defaultValue)
{
Objects.requireNonNull(key);
final Object val = _set.get(key);
if (val == null)
{
@@ -149,7 +146,6 @@ public class StatSet implements IParserAdvUtils
@Override
public byte getByte(String key)
{
Objects.requireNonNull(key);
final Object val = _set.get(key);
if (val == null)
{
@@ -172,7 +168,6 @@ public class StatSet implements IParserAdvUtils
@Override
public byte getByte(String key, byte defaultValue)
{
Objects.requireNonNull(key);
final Object val = _set.get(key);
if (val == null)
{
@@ -208,8 +203,6 @@ public class StatSet implements IParserAdvUtils
public byte[] getByteArray(String key, String splitOn)
{
Objects.requireNonNull(key);
Objects.requireNonNull(splitOn);
final Object val = _set.get(key);
if (val == null)
{
@@ -241,8 +234,6 @@ public class StatSet implements IParserAdvUtils
public List<Byte> getByteList(String key, String splitOn)
{
Objects.requireNonNull(key);
Objects.requireNonNull(splitOn);
final List<Byte> result = new ArrayList<>();
for (Byte i : getByteArray(key, splitOn))
{
@@ -254,7 +245,6 @@ public class StatSet implements IParserAdvUtils
@Override
public short getShort(String key)
{
Objects.requireNonNull(key);
final Object val = _set.get(key);
if (val == null)
{
@@ -277,7 +267,6 @@ public class StatSet implements IParserAdvUtils
@Override
public short getShort(String key, short defaultValue)
{
Objects.requireNonNull(key);
final Object val = _set.get(key);
if (val == null)
{
@@ -314,7 +303,6 @@ public class StatSet implements IParserAdvUtils
@Override
public int getInt(String key)
{
Objects.requireNonNull(key);
final Object val = _set.get(key);
if (val == null)
{
@@ -339,7 +327,6 @@ public class StatSet implements IParserAdvUtils
@Override
public int getInt(String key, int defaultValue)
{
Objects.requireNonNull(key);
final Object val = _set.get(key);
if (val == null)
{
@@ -375,8 +362,6 @@ public class StatSet implements IParserAdvUtils
public int[] getIntArray(String key, String splitOn)
{
Objects.requireNonNull(key);
Objects.requireNonNull(splitOn);
final Object val = _set.get(key);
if (val == null)
{
@@ -408,8 +393,6 @@ public class StatSet implements IParserAdvUtils
public List<Integer> getIntegerList(String key, String splitOn)
{
Objects.requireNonNull(key);
Objects.requireNonNull(splitOn);
final List<Integer> result = new ArrayList<>();
for (int i : getIntArray(key, splitOn))
{
@@ -421,7 +404,6 @@ public class StatSet implements IParserAdvUtils
@Override
public long getLong(String key)
{
Objects.requireNonNull(key);
final Object val = _set.get(key);
if (val == null)
{
@@ -444,7 +426,6 @@ public class StatSet implements IParserAdvUtils
@Override
public long getLong(String key, long defaultValue)
{
Objects.requireNonNull(key);
final Object val = _set.get(key);
if (val == null)
{
@@ -481,7 +462,6 @@ public class StatSet implements IParserAdvUtils
@Override
public float getFloat(String key)
{
Objects.requireNonNull(key);
final Object val = _set.get(key);
if (val == null)
{
@@ -504,7 +484,6 @@ public class StatSet implements IParserAdvUtils
@Override
public float getFloat(String key, float defaultValue)
{
Objects.requireNonNull(key);
final Object val = _set.get(key);
if (val == null)
{
@@ -541,7 +520,6 @@ public class StatSet implements IParserAdvUtils
@Override
public double getDouble(String key)
{
Objects.requireNonNull(key);
final Object val = _set.get(key);
if (val == null)
{
@@ -564,7 +542,6 @@ public class StatSet implements IParserAdvUtils
@Override
public double getDouble(String key, double defaultValue)
{
Objects.requireNonNull(key);
final Object val = _set.get(key);
if (val == null)
{
@@ -601,7 +578,6 @@ public class StatSet implements IParserAdvUtils
@Override
public String getString(String key)
{
Objects.requireNonNull(key);
final Object val = _set.get(key);
if (val == null)
{
@@ -613,7 +589,6 @@ public class StatSet implements IParserAdvUtils
@Override
public String getString(String key, String defaultValue)
{
Objects.requireNonNull(key);
final Object val = _set.get(key);
if (val == null)
{
@@ -625,7 +600,6 @@ public class StatSet implements IParserAdvUtils
@Override
public Duration getDuration(String key)
{
Objects.requireNonNull(key);
final Object val = _set.get(key);
if (val == null)
{
@@ -637,7 +611,6 @@ public class StatSet implements IParserAdvUtils
@Override
public Duration getDuration(String key, Duration defaultValue)
{
Objects.requireNonNull(key);
final Object val = _set.get(key);
if (val == null)
{
@@ -650,8 +623,6 @@ public class StatSet implements IParserAdvUtils
@SuppressWarnings("unchecked")
public <T extends Enum<T>> T getEnum(String key, Class<T> enumClass)
{
Objects.requireNonNull(key);
Objects.requireNonNull(enumClass);
final Object val = _set.get(key);
if (val == null)
{
@@ -675,8 +646,6 @@ public class StatSet implements IParserAdvUtils
@SuppressWarnings("unchecked")
public <T extends Enum<T>> T getEnum(String key, Class<T> enumClass, T defaultValue)
{
Objects.requireNonNull(key);
Objects.requireNonNull(enumClass);
final Object val = _set.get(key);
if (val == null)
{
@@ -699,8 +668,6 @@ public class StatSet implements IParserAdvUtils
@SuppressWarnings("unchecked")
public <A> A getObject(String name, Class<A> type)
{
Objects.requireNonNull(name);
Objects.requireNonNull(type);
final Object obj = _set.get(name);
if ((obj == null) || !type.isAssignableFrom(obj.getClass()))
{
@@ -713,8 +680,6 @@ public class StatSet implements IParserAdvUtils
@SuppressWarnings("unchecked")
public <A> A getObject(String name, Class<A> type, A defaultValue)
{
Objects.requireNonNull(name);
Objects.requireNonNull(type);
final Object obj = _set.get(name);
if ((obj == null) || !type.isAssignableFrom(obj.getClass()))
{
@@ -726,7 +691,6 @@ public class StatSet implements IParserAdvUtils
public SkillHolder getSkillHolder(String key)
{
Objects.requireNonNull(key);
final Object obj = _set.get(key);
if (!(obj instanceof SkillHolder))
{
@@ -738,7 +702,6 @@ public class StatSet implements IParserAdvUtils
public Location getLocation(String key)
{
Objects.requireNonNull(key);
final Object obj = _set.get(key);
if (!(obj instanceof Location))
{
@@ -750,8 +713,6 @@ public class StatSet implements IParserAdvUtils
@SuppressWarnings("unchecked")
public <T> List<T> getList(String key, Class<T> clazz)
{
Objects.requireNonNull(key);
Objects.requireNonNull(clazz);
final Object obj = _set.get(key);
if (!(obj instanceof List<?>))
{
@@ -857,76 +818,61 @@ public class StatSet implements IParserAdvUtils
return (Map<K, V>) obj;
}
public StatSet set(String name, Object value)
public void set(String name, Object value)
{
if (value == null)
{
return this;
return;
}
_set.put(name, value);
return this;
}
public StatSet set(String key, boolean value)
public void set(String key, byte value)
{
_set.put(key, value);
return this;
}
public StatSet set(String key, byte value)
public void set(String key, short value)
{
_set.put(key, value);
return this;
}
public StatSet set(String key, short value)
public void set(String key, int value)
{
_set.put(key, value);
return this;
}
public StatSet set(String key, int value)
public void set(String key, long value)
{
_set.put(key, value);
return this;
}
public StatSet set(String key, long value)
public void set(String key, float value)
{
_set.put(key, value);
return this;
}
public StatSet set(String key, float value)
public void set(String key, double value)
{
_set.put(key, value);
return this;
}
public StatSet set(String key, double value)
{
_set.put(key, value);
return this;
}
public StatSet set(String key, String value)
public void set(String key, String value)
{
if (value == null)
{
return this;
return;
}
_set.put(key, value);
return this;
}
public StatSet set(String key, Enum<?> value)
public void set(String key, Enum<?> value)
{
if (value == null)
{
return this;
return;
}
_set.put(key, value);
return this;
}
/**
@@ -950,13 +896,6 @@ public class StatSet implements IParserAdvUtils
set(name, value);
}
public static StatSet valueOf(String key, Object value)
{
final StatSet set = new StatSet();
set.set(key, value);
return set;
}
public void remove(String key)
{
_set.remove(key);

View File

@@ -16,7 +16,6 @@
*/
package org.l2jmobius.gameserver.model.variables;
import java.util.concurrent.ConcurrentHashMap;
import java.util.concurrent.atomic.AtomicBoolean;
import org.l2jmobius.gameserver.model.StatSet;
@@ -31,55 +30,58 @@ public abstract class AbstractVariables extends StatSet implements IRestorable,
{
private final AtomicBoolean _hasChanges = new AtomicBoolean(false);
public AbstractVariables()
{
super(new ConcurrentHashMap<>());
}
/**
* Overriding following methods to prevent from doing useless database operations if there is no changes since player's login.
*/
@Override
public StatSet set(String name, boolean value)
public void set(String name, double value)
{
_hasChanges.compareAndSet(false, true);
return super.set(name, value);
super.set(name, value);
}
@Override
public StatSet set(String name, double value)
public void set(String name, Enum<?> value)
{
_hasChanges.compareAndSet(false, true);
return super.set(name, value);
super.set(name, value);
}
@Override
public StatSet set(String name, Enum<?> value)
public void set(String name, int value)
{
_hasChanges.compareAndSet(false, true);
return super.set(name, value);
super.set(name, value);
}
@Override
public StatSet set(String name, int value)
public void set(String name, long value)
{
_hasChanges.compareAndSet(false, true);
return super.set(name, value);
super.set(name, value);
}
@Override
public StatSet set(String name, long value)
public void set(String name, String value)
{
_hasChanges.compareAndSet(false, true);
return super.set(name, value);
super.set(name, value);
}
@Override
public StatSet set(String name, String value)
/**
* Put's entry to the variables and marks as changed if required (<i>Useful when restoring to do not save them again</i>).
* @param name
* @param value
* @param markAsChanged
*/
public void set(String name, String value, boolean markAsChanged)
{
_hasChanges.compareAndSet(false, true);
return super.set(name, value);
if (markAsChanged)
{
_hasChanges.compareAndSet(false, true);
}
super.set(name, value);
}
/**