/* * jets3t : Java Extra-Tasty S3 Toolkit (for Amazon S3 online storage service) * This is a java.net project, see https://jets3t.dev.java.net/ * * Copyright 2006 James Murty * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.eurocarbdb.application.glycoworkbench.plugin.s3; import java.io.Serializable; import java.util.Properties; import org.jets3t.service.Constants; import org.jets3t.service.Jets3tProperties; /** * <p> * Stores Cockpit's preferences as set by the user via the * {@link org.jets3t.apps.cockpit.gui.PreferencesDialog}. * </p> * * @author James Murty */ public class CockpitPreferences implements Serializable { private static final long serialVersionUID = 6072192057121567975L; /** * Represents ACL permissions to make objects private. */ public static final String UPLOAD_ACL_PERMISSION_PRIVATE = "PRIVATE"; /** * Represents ACL permissions to make objects readable by anyone. */ public static final String UPLOAD_ACL_PERMISSION_PUBLIC_READ = "PUBLIC_READ"; /** * Represents ACL permissions to make objects readable and writable by anyone. */ public static final String UPLOAD_ACL_PERMISSION_PUBLIC_READ_WRITE = "PUBLIC_READ_WRITE"; private boolean rememberPreferences = true; private String uploadACLPermission = UPLOAD_ACL_PERMISSION_PRIVATE; private boolean uploadCompressionActive = false; private boolean uploadEncryptionActive = false; private String encryptionPassword = null; private String encryptionAlgorithm = Jets3tProperties.getInstance(Constants.JETS3T_PROPERTIES_FILENAME) .getStringProperty("crypto.algorithm", "PBEWithMD5AndDES"); public String getEncryptionPassword() { return encryptionPassword; } public void setEncryptionPassword(String encryptionPasswrod) { this.encryptionPassword = encryptionPasswrod; } public String getEncryptionAlgorithm() { return encryptionAlgorithm; } public void setEncryptionAlgorithm(String encryptionAlgorithm) { this.encryptionAlgorithm = encryptionAlgorithm; } public boolean isEncryptionPasswordSet() { return this.encryptionPassword != null && this.encryptionPassword.length() > 0; } /** * @return * the ACL permission setting, which will match one of the <tt>UPLOAD_ACL_PERMISSION_xyz</tt> * constants contained in this class. */ public String getUploadACLPermission() { return uploadACLPermission; } /** * Set the ACL permissions string setting. * * @param uploadACLPermission * the ACL permission setting, which must match one of the <tt>UPLOAD_ACL_PERMISSION_xyz</tt> * constants contained in this class. */ public void setUploadACLPermission(String uploadACLPermission) { if (!UPLOAD_ACL_PERMISSION_PRIVATE.equals(uploadACLPermission) && !UPLOAD_ACL_PERMISSION_PUBLIC_READ.equals(uploadACLPermission) && !UPLOAD_ACL_PERMISSION_PUBLIC_READ_WRITE.equals(uploadACLPermission)) { throw new IllegalArgumentException("ACL Permission string is not a legal value: " + uploadACLPermission); } this.uploadACLPermission = uploadACLPermission; } public boolean isUploadCompressionActive() { return uploadCompressionActive; } public void setUploadCompressionActive(boolean uploadCompressionActive) { this.uploadCompressionActive = uploadCompressionActive; } public boolean isUploadEncryptionActive() { return uploadEncryptionActive; } public void setUploadEncryptionActive(boolean uploadEncryptionActive) { this.uploadEncryptionActive = uploadEncryptionActive; } public void setRememberPreferences(boolean rememberPreferences) { this.rememberPreferences = rememberPreferences; } public boolean isRememberPreferences() { return rememberPreferences; } public Properties toProperties() { Properties properties = new Properties(); properties.setProperty("upload-acl-permission", getUploadACLPermission()); properties.setProperty("upload-compression-active", isUploadCompressionActive() ? "true" : "false"); properties.setProperty("upload-encryption-active", isUploadEncryptionActive() ? "true" : "false"); properties.setProperty("upload-encryption-algorithm", getEncryptionAlgorithm()); return properties; } public void fromProperties(Properties properties) { setRememberPreferences(true); setUploadACLPermission( properties.getProperty("upload-acl-permission", getUploadACLPermission())); setUploadCompressionActive( "true".equalsIgnoreCase(properties.getProperty("upload-compression-active"))); setUploadEncryptionActive( "true".equalsIgnoreCase(properties.getProperty("upload-encryption-active"))); setEncryptionAlgorithm( properties.getProperty("upload-encryption-algorithm", getEncryptionAlgorithm())); } }