X-Git-Url: https://git.pterodactylus.net/?a=blobdiff_plain;f=src%2Fmain%2Fjava%2Fnet%2Fpterodactylus%2Fsone%2Fdata%2FProfile.java;h=898deb658b19b8c27cacca758241d8d3602ef13e;hb=745511cbc455604bb9ecbad3f6a2ea84e789de05;hp=2792f46b5fef04fef39f97869d0e4736277c938d;hpb=01a3dd65fb1bf371a6b0febcaf203d40e430f7a9;p=Sone.git diff --git a/src/main/java/net/pterodactylus/sone/data/Profile.java b/src/main/java/net/pterodactylus/sone/data/Profile.java index 2792f46..898deb6 100644 --- a/src/main/java/net/pterodactylus/sone/data/Profile.java +++ b/src/main/java/net/pterodactylus/sone/data/Profile.java @@ -21,11 +21,11 @@ import static com.google.common.base.Optional.fromNullable; import static com.google.common.base.Preconditions.checkArgument; import static com.google.common.base.Preconditions.checkNotNull; import static com.google.common.base.Preconditions.checkState; +import static java.util.UUID.randomUUID; import java.util.ArrayList; import java.util.Collections; import java.util.List; -import java.util.UUID; import com.google.common.base.Optional; import com.google.common.hash.Hasher; @@ -233,11 +233,27 @@ public class Profile implements Fingerprintable { checkArgument(fieldName.length() > 0, "fieldName must not be empty"); checkState(getFieldByName(fieldName) == null, "fieldName must be unique"); @SuppressWarnings("synthetic-access") - Field field = new Field().setName(fieldName); + Field field = new Field(fieldName); fields.add(field); return field; } + public void renameField(Field field, String newName) { + int indexOfField = fields.indexOf(field); + if (indexOfField == -1) { + return; + } + fields.set(indexOfField, new Field(field.getId(), newName, field.getValue())); + } + + public void setField(Field field, String newValue) { + int indexOfField = getFieldIndex(field); + if (indexOfField == -1) { + return; + } + fields.get(indexOfField).setValue(newValue); + } + /** * Moves the given field up one position in the field list. The index of the * field to move must be greater than {@code 0} (because you obviously can @@ -397,7 +413,7 @@ public class Profile implements Fingerprintable { * * @author David ‘Bombe’ Roden */ - public class Field { + public static class Field { /** The ID of the field. */ private final String id; @@ -408,21 +424,12 @@ public class Profile implements Fingerprintable { /** The value of the field. */ private String value; - /** - * Creates a new field with a random ID. - */ - private Field() { - this(UUID.randomUUID().toString()); + public Field(String name) { + this(name, null); } - /** - * Creates a new field with the given ID. - * - * @param id - * The ID of the field - */ - private Field(String id) { - this.id = checkNotNull(id, "id must not be null"); + public Field(String name, String value) { + this(randomUUID().toString(), name, value); } public Field(String id, String name, String value) { @@ -450,22 +457,6 @@ public class Profile implements Fingerprintable { } /** - * Sets the name of this field. The name must not be {@code null} and - * must not match any other fields in this profile but my match the name - * of this field. - * - * @param name - * The new name of this field - * @return This field - */ - public Field setName(String name) { - checkNotNull(name, "name must not be null"); - checkArgument(getFieldByName(name) == null, "name must be unique"); - this.name = name; - return this; - } - - /** * Returns the value of this field. * * @return The value of this field