X-Git-Url: https://git.pterodactylus.net/?p=Sone.git;a=blobdiff_plain;f=src%2Fmain%2Fjava%2Fnet%2Fpterodactylus%2Fsone%2Fdata%2Fimpl%2FAbstractSoneBuilder.java;fp=src%2Fmain%2Fjava%2Fnet%2Fpterodactylus%2Fsone%2Fdata%2Fimpl%2FAbstractSoneBuilder.java;h=a214677f3acbf7041090f9cb5a79832498caba64;hp=0000000000000000000000000000000000000000;hb=210684b4bc499e298a0d0abeddd4008cdeb406bc;hpb=2b47186b72e30460a6710f95a76e4a99c305909a diff --git a/src/main/java/net/pterodactylus/sone/data/impl/AbstractSoneBuilder.java b/src/main/java/net/pterodactylus/sone/data/impl/AbstractSoneBuilder.java new file mode 100644 index 0000000..a214677 --- /dev/null +++ b/src/main/java/net/pterodactylus/sone/data/impl/AbstractSoneBuilder.java @@ -0,0 +1,37 @@ +package net.pterodactylus.sone.data.impl; + +import static com.google.common.base.Preconditions.checkState; + +import net.pterodactylus.sone.database.SoneBuilder; +import net.pterodactylus.sone.freenet.wot.Identity; +import net.pterodactylus.sone.freenet.wot.OwnIdentity; + +/** + * Abstract {@link SoneBuilder} implementation. + * + * @author David ‘Bombe’ Roden + */ +public abstract class AbstractSoneBuilder implements SoneBuilder { + + protected Identity identity; + protected boolean local; + + @Override + public SoneBuilder from(Identity identity) { + this.identity = identity; + return this; + } + + @Override + public SoneBuilder local() { + this.local = true; + return this; + } + + protected void validate() throws IllegalStateException { + checkState(identity != null, "identity must not be null"); + checkState(!local || (identity instanceof OwnIdentity), + "can not create local Sone from remote identity"); + } + +}