projects
/
Sone.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Fix duplicate-field detection.
[Sone.git]
/
src
/
main
/
java
/
net
/
pterodactylus
/
sone
/
data
/
Profile.java
diff --git
a/src/main/java/net/pterodactylus/sone/data/Profile.java
b/src/main/java/net/pterodactylus/sone/data/Profile.java
index
0b30f83
..
03e9a91
100644
(file)
--- a/
src/main/java/net/pterodactylus/sone/data/Profile.java
+++ b/
src/main/java/net/pterodactylus/sone/data/Profile.java
@@
-17,7
+17,9
@@
package net.pterodactylus.sone.data;
package net.pterodactylus.sone.data;
+import static com.google.common.base.Optional.absent;
import static com.google.common.base.Optional.fromNullable;
import static com.google.common.base.Optional.fromNullable;
+import static com.google.common.base.Optional.of;
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 com.google.common.base.Preconditions.checkArgument;
import static com.google.common.base.Preconditions.checkNotNull;
import static com.google.common.base.Preconditions.checkState;
@@
-184,39
+186,23
@@
public class Profile implements Fingerprintable {
return fields.contains(field);
}
return fields.contains(field);
}
- /**
- * Returns the field with the given ID.
- *
- * @param fieldId
- * The ID of the field to get
- * @return The field, or {@code null} if this profile does not contain a
- * field with the given ID
- */
- public Field getFieldById(String fieldId) {
+ public Optional<Field> getFieldById(String fieldId) {
checkNotNull(fieldId, "fieldId must not be null");
for (Field field : fields) {
if (field.getId().equals(fieldId)) {
checkNotNull(fieldId, "fieldId must not be null");
for (Field field : fields) {
if (field.getId().equals(fieldId)) {
- return
field
;
+ return
of(field)
;
}
}
}
}
- return
null
;
+ return
absent()
;
}
}
- /**
- * Returns the field with the given name.
- *
- * @param fieldName
- * The name of the field to get
- * @return The field, or {@code null} if this profile does not contain a
- * field with the given name
- */
- public Field getFieldByName(String fieldName) {
+ public Optional<Field> getFieldByName(String fieldName) {
for (Field field : fields) {
if (field.getName().equals(fieldName)) {
for (Field field : fields) {
if (field.getName().equals(fieldName)) {
- return
field
;
+ return
of(field)
;
}
}
}
}
- return
null
;
+ return
absent()
;
}
/**
}
/**
@@
-231,7
+217,7
@@
public class Profile implements Fingerprintable {
public Field addField(String fieldName) throws IllegalArgumentException {
checkNotNull(fieldName, "fieldName must not be null");
checkArgument(fieldName.length() > 0, "fieldName must not be empty");
public Field addField(String fieldName) throws IllegalArgumentException {
checkNotNull(fieldName, "fieldName must not be null");
checkArgument(fieldName.length() > 0, "fieldName must not be empty");
- checkState(
getFieldByName(fieldName) == null
, "fieldName must be unique");
+ checkState(
!getFieldByName(fieldName).isPresent()
, "fieldName must be unique");
@SuppressWarnings("synthetic-access")
Field field = new Field(fieldName);
fields.add(field);
@SuppressWarnings("synthetic-access")
Field field = new Field(fieldName);
fields.add(field);
@@
-239,13
+225,21
@@
public class Profile implements Fingerprintable {
}
public void renameField(Field field, String newName) {
}
public void renameField(Field field, String newName) {
- int indexOfField =
fields.indexOf
(field);
+ int indexOfField =
getFieldIndex
(field);
if (indexOfField == -1) {
return;
}
fields.set(indexOfField, new Field(field.getId(), newName, field.getValue()));
}
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.set(indexOfField, new Field(field.getId(), field.getName(), 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
/**
* 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
@@
-407,14
+401,9
@@
public class Profile implements Fingerprintable {
*/
public static class Field {
*/
public static class Field {
- /** The ID of the field. */
private final String id;
private final String id;
-
- /** The name of the field. */
- private String name;
-
- /** The value of the field. */
- private String value;
+ private final String name;
+ private final String value;
public Field(String name) {
this(name, null);
public Field(String name) {
this(name, null);
@@
-430,54
+419,18
@@
public class Profile implements Fingerprintable {
this.value = value;
}
this.value = value;
}
- /**
- * Returns the ID of this field.
- *
- * @return The ID of this field
- */
public String getId() {
return id;
}
public String getId() {
return id;
}
- /**
- * Returns the name of this field.
- *
- * @return The name of this field
- */
public String getName() {
return name;
}
public String getName() {
return name;
}
- /**
- * Returns the value of this field.
- *
- * @return The value of this field
- */
public String getValue() {
return value;
}
public String getValue() {
return value;
}
- /**
- * Sets the value of this field. While {@code null} is allowed, no
- * guarantees are made that {@code null} values are correctly persisted
- * across restarts of the plugin!
- *
- * @param value
- * The new value of this field
- * @return This field
- */
- public Field setValue(String value) {
- this.value = value;
- return this;
- }
-
- //
- // OBJECT METHODS
- //
-
- /**
- * {@inheritDoc}
- */
@Override
public boolean equals(Object object) {
if (!(object instanceof Field)) {
@Override
public boolean equals(Object object) {
if (!(object instanceof Field)) {
@@
-487,9
+440,6
@@
public class Profile implements Fingerprintable {
return id.equals(field.id);
}
return id.equals(field.id);
}
- /**
- * {@inheritDoc}
- */
@Override
public int hashCode() {
return id.hashCode();
@Override
public int hashCode() {
return id.hashCode();