Skip to content

Commit

Permalink
Finalize factory generated Keys to use lazy loading tostring values.
Browse files Browse the repository at this point in the history
Signed-off-by: Gabriel Harris-Rouquette <gabizou@me.com>
  • Loading branch information
gabizou committed Sep 16, 2016
1 parent 5f31153 commit b8c1838
Show file tree
Hide file tree
Showing 4 changed files with 27 additions and 18 deletions.
28 changes: 23 additions & 5 deletions src/main/java/org/spongepowered/api/data/key/KeyFactory.java
Expand Up @@ -133,6 +133,7 @@ public String toString() {
public static <E> Key<ListValue<E>> makeListKey(final TypeToken<? extends List<E>> elementToken, final TypeToken<ListValue<E>> valueToken,
final DataQuery query, final String id, final String name) {
return new Key<ListValue<E>>() {
@Nullable private String string;

@Override
public String getId() {
Expand Down Expand Up @@ -169,7 +170,10 @@ public int hashCode() {

@Override
public String toString() {
return "Key{Value:" + "ListValue<" + elementToken.getSimpleName() + ">, Query: " + query.toString() + "}";
if (this.string == null) {
this.string = "Key{Value:ListValue<" + elementToken.toString() + ">, Query: " + query.toString() + "}";
}
return this.string;
}
};
}
Expand All @@ -187,6 +191,8 @@ public static <E> Key<SetValue<E>> makeSetKey(final TypeToken<? extends Set<E>>
final DataQuery query, final String id, final String name) {
return new Key<SetValue<E>>() {

@Nullable private String string;

@Override
public String getId() {
return id;
Expand Down Expand Up @@ -222,7 +228,10 @@ public int hashCode() {

@Override
public String toString() {
return "Key{Value:" + "SetValue<" + elementToken.getSimpleName() + ">, Query: " + query.toString() + "}";
if (this.string == null) {
this.string = "Key{Value:" + "SetValue<" + elementToken.toString() + ">, Query: " + query.toString() + "}";
}
return this.string;
}
};
}
Expand All @@ -242,6 +251,8 @@ public String toString() {
public static <K, V> Key<MapValue<K, V>> makeMapKey(final TypeToken<Map<K, V>> elementToken, final TypeToken<MapValue<K, V>> valueToken, final DataQuery query, final String id, final String name) {
return new Key<MapValue<K, V>>() {

@Nullable private String string;

@Override
public String getId() {
return id;
Expand Down Expand Up @@ -278,8 +289,11 @@ public int hashCode() {

@Override
public String toString() {
return "Key{Value:" + "MapValue<" + keyToken.getSimpleName() + "," + valueToken.getSimpleName() + ">, Query: " + query.toString()
+ "}";
if (this.string == null) {
this.string = "Key{Value:" + "MapValue<" + elementToken.toString() + ","
+ valueToken.toString() + ">, Query: " + query.toString() + "}";
}
return this.string;
}
};
}
Expand All @@ -299,6 +313,7 @@ public static <E> Key<OptionalValue<E>> makeOptionalKey(final TypeToken<Optional
final DataQuery query, final String id,
final String name) {
return new Key<OptionalValue<E>>() {
@Nullable private String string;

@Override
public String getId() {
Expand Down Expand Up @@ -334,7 +349,10 @@ public int hashCode() {

@Override
public String toString() {
return "Key{Value:" + "OptionalValue<" + elementToken.getSimpleName() + ">, Query: " + query.toString() + "}";
if (this.string == null) {
this.string = "Key{Value:" + "OptionalValue<" + elementToken.toString() + ">, Query: " + query.toString() + "}";
}
return this.string;
}
};
}
Expand Down
Expand Up @@ -57,11 +57,4 @@ protected final ImmutableValue<Boolean> getValueGetter() {
return this.immutableValue;
}

@Override
public int compareTo(I o) {
return ComparisonChain.start()
.compare(o.get(this.usedKey).get(), this.getValue())
.result();
}

}
Expand Up @@ -60,11 +60,6 @@ protected AbstractImmutableSingleCatalogData(E value, E defaultValue, Key<? exte

}

@Override
public int compareTo(I o) {
return o.get(this.usedKey).get().getId().compareToIgnoreCase(this.getValue().getId());
}

@Override
protected ImmutableValue<E> getValueGetter() {
return this.immutableValue;
Expand Down
Expand Up @@ -141,7 +141,10 @@ static ItemStack of(ItemType itemType, int quantity) {
ItemStack copy();

interface Builder extends DataBuilder<ItemStack> {


@Override
Builder from(ItemStack value);

/**
* Sets the {@link ItemType} of the item stack.
*
Expand Down

0 comments on commit b8c1838

Please sign in to comment.