X-Git-Url: https://git.pterodactylus.net/?a=blobdiff_plain;f=src%2Fmain%2Fjava%2Fnet%2Fpterodactylus%2Fsone%2Fcore%2FPreferencesLoader.java;fp=src%2Fmain%2Fjava%2Fnet%2Fpterodactylus%2Fsone%2Fcore%2FPreferencesLoader.java;h=6cc2e5e674ec4a2689b018c0819574cf0318ade6;hb=c5fff3247c8a680f816db28df64d6439779f5c82;hp=0000000000000000000000000000000000000000;hpb=38066c6dacd27be5d88cf54e99dfdb5d7b49e712;p=Sone.git diff --git a/src/main/java/net/pterodactylus/sone/core/PreferencesLoader.java b/src/main/java/net/pterodactylus/sone/core/PreferencesLoader.java new file mode 100644 index 0000000..6cc2e5e --- /dev/null +++ b/src/main/java/net/pterodactylus/sone/core/PreferencesLoader.java @@ -0,0 +1,101 @@ +package net.pterodactylus.sone.core; + +import net.pterodactylus.sone.fcp.FcpInterface.FullAccessRequired; +import net.pterodactylus.util.config.Configuration; +import net.pterodactylus.util.config.ConfigurationException; + +/** + * Loads preferences stored in a {@link Configuration} into a {@link + * Preferences} object. + * + * @author David ‘Bombe’ Roden + */ +public class PreferencesLoader { + + private final Preferences preferences; + + public PreferencesLoader(Preferences preferences) { + this.preferences = preferences; + } + + public void loadFrom(Configuration configuration) { + loadInsertionDelay(configuration); + loadPostsPerPage(configuration); + loadImagesPerPage(configuration); + loadCharactersPerPost(configuration); + loadPostCutOffLength(configuration); + loadRequireFullAccess(configuration); + loadPositiveTrust(configuration); + loadNegativeTrust(configuration); + loadTrustComment(configuration); + loadFcpInterfaceActive(configuration); + loadFcpFullAccessRequired(configuration); + } + + private void loadInsertionDelay(Configuration configuration) { + preferences.setInsertionDelay(configuration.getIntValue( + "Option/InsertionDelay").getValue(null)); + } + + private void loadPostsPerPage(Configuration configuration) { + preferences.setPostsPerPage( + configuration.getIntValue("Option/PostsPerPage") + .getValue(null)); + } + + private void loadImagesPerPage(Configuration configuration) { + preferences.setImagesPerPage( + configuration.getIntValue("Option/ImagesPerPage") + .getValue(null)); + } + + private void loadCharactersPerPost(Configuration configuration) { + preferences.setCharactersPerPost( + configuration.getIntValue("Option/CharactersPerPost") + .getValue(null)); + } + + private void loadPostCutOffLength(Configuration configuration) { + preferences.setPostCutOffLength( + configuration.getIntValue("Option/PostCutOffLength") + .getValue(null)); + } + + private void loadRequireFullAccess(Configuration configuration) { + preferences.setRequireFullAccess( + configuration.getBooleanValue("Option/RequireFullAccess") + .getValue(null)); + } + + private void loadPositiveTrust(Configuration configuration) { + preferences.setPositiveTrust( + configuration.getIntValue("Option/PositiveTrust") + .getValue(null)); + } + + private void loadNegativeTrust(Configuration configuration) { + preferences.setNegativeTrust( + configuration.getIntValue("Option/NegativeTrust") + .getValue(null)); + } + + private void loadTrustComment(Configuration configuration) { + preferences.setTrustComment( + configuration.getStringValue("Option/TrustComment") + .getValue(null)); + } + + private void loadFcpInterfaceActive(Configuration configuration) { + preferences.setFcpInterfaceActive(configuration.getBooleanValue( + "Option/ActivateFcpInterface").getValue(null)); + } + + private void loadFcpFullAccessRequired(Configuration configuration) { + Integer fullAccessRequiredInteger = configuration + .getIntValue("Option/FcpFullAccessRequired").getValue(null); + preferences.setFcpFullAccessRequired( + (fullAccessRequiredInteger == null) ? null : + FullAccessRequired.values()[fullAccessRequiredInteger]); + } + +}