X-Git-Url: http://git.phpeclipse.com diff --git a/net.sourceforge.phpeclipse.phphelp/src/net/sourceforge/phpdt/httpquery/config/Configuration.java b/net.sourceforge.phpeclipse.phphelp/src/net/sourceforge/phpdt/httpquery/config/Configuration.java new file mode 100644 index 0000000..98eb4d6 --- /dev/null +++ b/net.sourceforge.phpeclipse.phphelp/src/net/sourceforge/phpdt/httpquery/config/Configuration.java @@ -0,0 +1,484 @@ +/********************************************************************** + * Copyright (c) 2003 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Common Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/cpl-v10.html + �* + * Contributors: + * IBM - Initial API and implementation + **********************************************************************/ +package net.sourceforge.phpdt.httpquery.config; + +import net.sourceforge.phpdt.phphelp.PHPHelpPlugin; + +/** + * + */ +public class Configuration implements IConfiguration, Comparable { + private static final String MEMENTO_ID = "id"; + + private static final String MEMENTO_NAME = "name"; + + private static final String MEMENTO_USER = "user"; + + private static final String MEMENTO_URL = "url"; + + private static final String MEMENTO_PASSWORD = "password"; + + private static final String MEMENTO_TYPE_ID = "type-id"; + + protected String fId = ""; + + protected String fName = ""; + + protected String fUrl = ""; + + protected String fPassword = ""; + + protected String fUser = ""; + + protected String fType = ""; + + private static final char[] SCRAMBLING_TABLE = new char[] { + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 23, + 24, + 25, + 26, + 27, + 28, + 29, + 30, + 31, + 114, + 120, + 53, + 79, + 96, + 109, + 72, + 108, + 70, + 64, + 76, + 67, + 116, + 74, + 68, + 87, + 111, + 52, + 75, + 119, + 49, + 34, + 82, + 81, + 95, + 65, + 112, + 86, + 118, + 110, + 122, + 105, + 41, + 57, + 83, + 43, + 46, + 102, + 40, + 89, + 38, + 103, + 45, + 50, + 42, + 123, + 91, + 35, + 125, + 55, + 54, + 66, + 124, + 126, + 59, + 47, + 92, + 71, + 115, + 78, + 88, + 107, + 106, + 56, + 36, + 121, + 117, + 104, + 101, + 100, + 69, + 73, + 99, + 63, + 94, + 93, + 39, + 37, + 61, + 48, + 58, + 113, + 32, + 90, + 44, + 98, + 60, + 51, + 33, + 97, + 62, + 77, + 84, + 80, + 85, + 223, + 225, + 216, + 187, + 166, + 229, + 189, + 222, + 188, + 141, + 249, + 148, + 200, + 184, + 136, + 248, + 190, + 199, + 170, + 181, + 204, + 138, + 232, + 218, + 183, + 255, + 234, + 220, + 247, + 213, + 203, + 226, + 193, + 174, + 172, + 228, + 252, + 217, + 201, + 131, + 230, + 197, + 211, + 145, + 238, + 161, + 179, + 160, + 212, + 207, + 221, + 254, + 173, + 202, + 146, + 224, + 151, + 140, + 196, + 205, + 130, + 135, + 133, + 143, + 246, + 192, + 159, + 244, + 239, + 185, + 168, + 215, + 144, + 139, + 165, + 180, + 157, + 147, + 186, + 214, + 176, + 227, + 231, + 219, + 169, + 175, + 156, + 206, + 198, + 129, + 164, + 150, + 210, + 154, + 177, + 134, + 127, + 182, + 128, + 158, + 208, + 162, + 132, + 167, + 209, + 149, + 241, + 153, + 251, + 237, + 236, + 171, + 195, + 243, + 233, + 253, + 240, + 194, + 250, + 191, + 155, + 142, + 137, + 245, + 235, + 163, + 242, + 178, + 152 }; + + /** + * Construct a Configuration with the defult type: + * net.sourceforge.phpeclipse.wiki.editor.WikiEditorPlugin.HTTP_QUERY + * + */ + public Configuration() { + this(PHPHelpPlugin.HTTP_QUERY); // default type + } + + /** + * Construct a Configuration with a type + * @param type Example: net.sourceforge.phpeclipse.wiki.editor.WikiEditorPlugin.HTTP_QUERY + * + * @see net.sourceforge.phpeclipse.wiki.editor.WikiEditorPlugin + */ + public Configuration(String type) { + this.fType = type; + } + + public String getId() { + return fId; + } + + public String getName() { + return fName; + } + + public String getURL() { + return fUrl; + } + + public String getPassword() { + return fPassword; + } + + /* + * (non-Javadoc) + * + * @see org.eclipse.monitor.internal.IConfiguration#getLocalPort() + */ + public String getUser() { + return fUser; + } + + /** + */ + public String getType() { + return fType; + } + + /* + * (non-Javadoc) + * + * @see org.eclipse.monitor.internal.IConfiguration#isRunning() + */ + public boolean isActive() { + return ConfigurationManager.getInstance().isActive(this); + } + + public void delete() { + ConfigurationManager.getInstance().removeConfiguration(this); + } + + public boolean isWorkingCopy() { + return false; + } + + public IConfigurationWorkingCopy getWorkingCopy() { + return new ConfigurationWorkingCopy(this); + } + + protected void setInternal(IConfiguration monitor) { + fId = monitor.getId(); + fName = monitor.getName(); + fUrl = monitor.getURL(); + fPassword = monitor.getPassword(); + fUser = monitor.getUser(); + fType = monitor.getType(); + } + + protected void save(IMemento memento) { + memento.putString(MEMENTO_ID, fId); + memento.putString(MEMENTO_NAME, fName); + memento.putString(MEMENTO_TYPE_ID, fType); + memento.putString(MEMENTO_USER, fUser); + memento.putString(MEMENTO_URL, fUrl); + String result = 'A' + scramblePassword(fPassword); + memento.putString(MEMENTO_PASSWORD, result); + } + + protected void load(IMemento memento) { + fId = memento.getString(MEMENTO_ID); + if (fId == null) { + fId = ""; + } + fName = memento.getString(MEMENTO_NAME); + if (fName == null) { + fName = ""; + } + fType = memento.getString(MEMENTO_TYPE_ID); + if (fType == null) { + fType = ""; + } + fUser = memento.getString(MEMENTO_USER); + if (fUser == null) { + fUser = ""; + } + fUrl = memento.getString(MEMENTO_URL); + if (fUrl == null) { + fUrl = ""; + } + String result = memento.getString(MEMENTO_PASSWORD); + + if (result == null) { + fPassword = ""; + } else { + fPassword = scramblePassword(result.substring(1)); + } + } + + /* + * (non-Javadoc) + * + * @see java.lang.Object#toString() + */ + public String toString() { + StringBuffer buffer = new StringBuffer(); + buffer.append(fName); + buffer.append(" - "); + buffer.append(fUser); + buffer.append(" - "); + buffer.append(fUrl); + buffer.append(" - "); + buffer.append(fType); + return buffer.toString(); + } + + /* + * (non-Javadoc) + * + * @see java.lang.Comparable#compareTo(java.lang.Object) + */ + public int compareTo(Object o) { + if (o instanceof IConfiguration) { + return fName.compareTo(((IConfiguration) o).getName()); + } + return 1; + } + + private static String scramblePassword(String password) { + int length = password.length(); + char[] out = new char[length]; + for (int i = 0; i < length; i++) { + char value = password.charAt(i); + out[i] = SCRAMBLING_TABLE[value]; + } + return new String(out); + } + + public boolean isUserComplete() { + if (fUser == null || fUser.equals("")) { + return false; + } + if (fPassword == null || fPassword.equals("")) { + return false; + } + return true; + } + + /* + * (non-Javadoc) + * + * @see java.lang.Object#equals(java.lang.Object) + */ + public boolean equals(Object obj) { + if (obj instanceof Configuration) { + if (fName == null || ((Configuration) obj).fName == null) { + return false; + } + return fName.equals(((Configuration) obj).fName); + } + return false; + } +} \ No newline at end of file