ExceptionSet equals and hash code. MetadataSimple improvements.

This commit is contained in:
Olof Larsson 2016-05-19 17:49:51 +02:00
parent 0c625a1ff4
commit b44750a64c
No known key found for this signature in database
GPG Key ID: BBEF14F97DA52474
2 changed files with 45 additions and 4 deletions

View File

@ -47,22 +47,36 @@ public class MetadataSimple extends MetadataValueAdapter
public static void set(Plugin plugin, Metadatable metadatable, String key, Object value)
{
metadatable.setMetadata(key, new MetadataSimple(plugin, value));
if (value != null)
{
metadatable.setMetadata(key, new MetadataSimple(plugin, value));
}
else
{
metadatable.removeMetadata(key, plugin);
}
}
public static MetadataValue getMeta(Metadatable metadatable, String key)
{
if (metadatable == null) return null;
List<MetadataValue> metaValues = metadatable.getMetadata(key);
if (metaValues == null) return null;
if (metaValues.size() < 1) return null;
if (metaValues.isEmpty()) return null;
return metaValues.get(0);
}
public static Object get(Metadatable metadatable, String key)
@SuppressWarnings("unchecked")
public static <T> T get(Metadatable metadatable, String key)
{
MetadataValue metaValue = getMeta(metadatable, key);
if (metaValue == null) return null;
return metaValue.value();
return (T) metaValue.value();
}
public static boolean has(Metadatable metadatable, String key)
{
return get(metadatable, key) != null;
}
}

View File

@ -2,10 +2,12 @@ package com.massivecraft.massivecore.collections;
import java.util.Arrays;
import java.util.Collection;
import java.util.Objects;
import com.massivecraft.massivecore.command.editor.annotation.EditorType;
import com.massivecraft.massivecore.command.type.container.TypeMassiveTreeSetInsensitive;
import com.massivecraft.massivecore.comparator.ComparatorCaseInsensitive;
import com.massivecraft.massivecore.util.MUtil;
public class ExceptionSet
{
@ -104,4 +106,29 @@ public class ExceptionSet
return ret;
}
// -------------------------------------------- //
// EQUALS & HASH CODE
// -------------------------------------------- //
@Override
public boolean equals(Object object)
{
if ( ! (object instanceof ExceptionSet)) return false;
ExceptionSet that = (ExceptionSet)object;
return MUtil.equals(
this.standard, that.standard,
this.exceptions, that.exceptions
);
}
@Override
public int hashCode()
{
return Objects.hash(
this.standard,
this.exceptions
);
}
}