projects
/
Sone.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Make Sone and element ID optional
[Sone.git]
/
src
/
main
/
java
/
net
/
pterodactylus
/
sone
/
data
/
Id.java
diff --git
a/src/main/java/net/pterodactylus/sone/data/Id.java
b/src/main/java/net/pterodactylus/sone/data/Id.java
index
75f9bc6
..
2283447
100644
(file)
--- a/
src/main/java/net/pterodactylus/sone/data/Id.java
+++ b/
src/main/java/net/pterodactylus/sone/data/Id.java
@@
-1,7
+1,10
@@
package net.pterodactylus.sone.data;
package net.pterodactylus.sone.data;
+import static com.google.common.base.Preconditions.checkNotNull;
+
import com.google.common.base.Charsets;
import com.google.common.base.Objects;
import com.google.common.base.Charsets;
import com.google.common.base.Objects;
+import com.google.common.base.Optional;
import com.google.common.hash.HashFunction;
import com.google.common.hash.Hashing;
import com.google.common.hash.HashFunction;
import com.google.common.hash.Hashing;
@@
-16,27
+19,45
@@
public class Id {
private final String soneId;
private final String elementId;
private final String soneId;
private final String elementId;
+ private final String externalId;
+
+ private Id(String externalId) {
+ this(null, null, checkNotNull(externalId));
+ }
private Id(String soneId, String elementId) {
private Id(String soneId, String elementId) {
+ this(checkNotNull(soneId), checkNotNull(elementId), calculateExternalId(soneId, elementId));
+ }
+
+ private Id(String soneId, String elementId, String externalId) {
this.soneId = soneId;
this.elementId = elementId;
this.soneId = soneId;
this.elementId = elementId;
+ this.externalId = externalId;
}
}
- public
String
getSoneId() {
- return
soneId
;
+ public
Optional<String>
getSoneId() {
+ return
Optional.fromNullable(soneId)
;
}
}
- public
String
getElementId() {
- return
elementId
;
+ public
Optional<String>
getElementId() {
+ return
Optional.fromNullable(elementId)
;
}
public String getExternal() {
}
public String getExternal() {
+ return externalId;
+ }
+
+ private static String calculateExternalId(String soneId, String elementId) {
return sha256.newHasher()
.putBytes(soneId.getBytes(Charsets.UTF_8))
.putBytes(elementId.getBytes(Charsets.UTF_8))
.hash().toString();
}
return sha256.newHasher()
.putBytes(soneId.getBytes(Charsets.UTF_8))
.putBytes(elementId.getBytes(Charsets.UTF_8))
.hash().toString();
}
+ public static Id from(String externalId) {
+ return new Id(externalId);
+ }
+
public static Id from(String soneId, String elementId) {
return new Id(soneId, elementId);
}
public static Id from(String soneId, String elementId) {
return new Id(soneId, elementId);
}
@@
-47,13
+68,12
@@
public class Id {
return false;
}
Id id = (Id) o;
return false;
}
Id id = (Id) o;
- return Objects.equal(soneId, id.soneId)
- && Objects.equal(elementId, id.elementId);
+ return Objects.equal(externalId, id.externalId);
}
@Override
public int hashCode() {
}
@Override
public int hashCode() {
- return Objects.hashCode(
soneId, element
Id);
+ return Objects.hashCode(
external
Id);
}
@Override
}
@Override