Files
openide/platform/platform-impl/src/com/intellij/remote/RemoteSdkPropertiesHolder.java
T
Roman Shevchenko 7cf59a5a12 [platform] inlines a simple utility method
(Boolean.parseBoolean() never throws an exception)
2018-08-14 16:15:46 +02:00

228 lines
6.7 KiB
Java

// Copyright 2000-2018 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license that can be found in the LICENSE file.
package com.intellij.remote;
import com.google.common.collect.Lists;
import com.google.common.collect.Sets;
import com.intellij.openapi.util.JDOMExternalizer;
import com.intellij.openapi.util.text.StringUtil;
import com.intellij.util.PathMappingSettings;
import org.jdom.Element;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
import java.util.List;
import java.util.Set;
/**
* @author traff
*/
public class RemoteSdkPropertiesHolder implements RemoteSdkProperties {
private static final String INTERPRETER_PATH = "INTERPRETER_PATH";
private static final String HELPERS_PATH = "HELPERS_PATH";
private static final String REMOTE_ROOTS = "REMOTE_ROOTS";
private static final String REMOTE_PATH = "REMOTE_PATH";
private static final String INITIALIZED = "INITIALIZED";
private static final String VALID = "VALID";
private static final String PATH_MAPPINGS = "PATH_MAPPINGS";
private String mySdkId;
private String myInterpreterPath;
private String myHelpersPath;
private final String myHelpersDefaultDirName;
private boolean myHelpersVersionChecked = false;
private Set<String> myRemoteRoots = Sets.newTreeSet();
private boolean myInitialized = false;
private boolean myValid = true;
@NotNull
private PathMappingSettings myPathMappings = new PathMappingSettings();
public RemoteSdkPropertiesHolder(String name) {
myHelpersDefaultDirName = name;
}
@Override
public String getInterpreterPath() {
return myInterpreterPath;
}
@Override
public void setInterpreterPath(String interpreterPath) {
myInterpreterPath = interpreterPath;
}
@Override
public String getHelpersPath() {
return myHelpersPath;
}
@Override
public void setHelpersPath(String helpersPath) {
myHelpersPath = helpersPath;
}
@Override
public String getDefaultHelpersName() {
return myHelpersDefaultDirName;
}
@Override
public void addRemoteRoot(String remoteRoot) {
myRemoteRoots.add(remoteRoot);
}
@Override
public void clearRemoteRoots() {
myRemoteRoots.clear();
}
@Override
public List<String> getRemoteRoots() {
return Lists.newArrayList(myRemoteRoots);
}
@Override
public void setRemoteRoots(List<String> remoteRoots) {
myRemoteRoots = Sets.newTreeSet(remoteRoots);
}
@NotNull
@Override
public PathMappingSettings getPathMappings() {
return myPathMappings;
}
@Override
public void setPathMappings(@Nullable PathMappingSettings pathMappings) {
myPathMappings = new PathMappingSettings();
if (pathMappings != null) {
myPathMappings.addAll(pathMappings);
}
}
@Override
public boolean isHelpersVersionChecked() {
return myHelpersVersionChecked;
}
@Override
public void setHelpersVersionChecked(boolean helpersVersionChecked) {
myHelpersVersionChecked = helpersVersionChecked;
}
@Override
public void setSdkId(String sdkId) {
mySdkId = sdkId;
}
@Override
public String getSdkId() {
return mySdkId;
}
@Override
public boolean isInitialized() {
return myInitialized;
}
@Override
public void setInitialized(boolean initialized) {
myInitialized = initialized;
}
@Override
public boolean isValid() {
return myValid;
}
@Override
public void setValid(boolean valid) {
myValid = valid;
}
public void copyTo(RemoteSdkProperties copy) {
copy.setInterpreterPath(getInterpreterPath());
copy.setHelpersPath(getHelpersPath());
copy.setHelpersVersionChecked(isHelpersVersionChecked());
copy.setRemoteRoots(getRemoteRoots());
copy.setInitialized(isInitialized());
copy.setValid(isValid());
}
public void save(Element rootElement) {
rootElement.setAttribute(INTERPRETER_PATH, StringUtil.notNullize(getInterpreterPath()));
rootElement.setAttribute(HELPERS_PATH, StringUtil.notNullize(getHelpersPath()));
rootElement.setAttribute(INITIALIZED, Boolean.toString(isInitialized()));
rootElement.setAttribute(VALID, Boolean.toString(isValid()));
PathMappingSettings.writeExternal(rootElement, myPathMappings);
for (String remoteRoot : getRemoteRoots()) {
final Element child = new Element(REMOTE_ROOTS);
child.setAttribute(REMOTE_PATH, remoteRoot);
rootElement.addContent(child);
}
}
public void load(Element element) {
setInterpreterPath(StringUtil.nullize(element.getAttributeValue(INTERPRETER_PATH)));
setHelpersPath(StringUtil.nullize(element.getAttributeValue(HELPERS_PATH)));
setRemoteRoots(JDOMExternalizer.loadStringsList(element, REMOTE_ROOTS, REMOTE_PATH));
setInitialized(Boolean.parseBoolean(element.getAttributeValue(INITIALIZED)));
setValid(Boolean.parseBoolean(element.getAttributeValue(VALID)));
setPathMappings(PathMappingSettings.readExternal(element));
}
@Override
public boolean equals(Object o) {
if (this == o) return true;
if (o == null || getClass() != o.getClass()) return false;
RemoteSdkPropertiesHolder holder = (RemoteSdkPropertiesHolder)o;
if (myHelpersVersionChecked != holder.myHelpersVersionChecked) return false;
if (myInitialized != holder.myInitialized) return false;
if (myValid != holder.myValid) return false;
if (myHelpersDefaultDirName != null
? !myHelpersDefaultDirName.equals(holder.myHelpersDefaultDirName)
: holder.myHelpersDefaultDirName != null) {
return false;
}
if (myHelpersPath != null ? !myHelpersPath.equals(holder.myHelpersPath) : holder.myHelpersPath != null) return false;
if (myInterpreterPath != null ? !myInterpreterPath.equals(holder.myInterpreterPath) : holder.myInterpreterPath != null) return false;
if (!myPathMappings.equals(holder.myPathMappings)) return false;
if (myRemoteRoots != null ? !myRemoteRoots.equals(holder.myRemoteRoots) : holder.myRemoteRoots != null) return false;
if (mySdkId != null ? !mySdkId.equals(holder.mySdkId) : holder.mySdkId != null) return false;
return true;
}
@Override
public int hashCode() {
int result = mySdkId != null ? mySdkId.hashCode() : 0;
result = 31 * result + (myInterpreterPath != null ? myInterpreterPath.hashCode() : 0);
result = 31 * result + (myHelpersPath != null ? myHelpersPath.hashCode() : 0);
result = 31 * result + (myHelpersDefaultDirName != null ? myHelpersDefaultDirName.hashCode() : 0);
result = 31 * result + (myHelpersVersionChecked ? 1 : 0);
result = 31 * result + (myRemoteRoots != null ? myRemoteRoots.hashCode() : 0);
result = 31 * result + (myInitialized ? 1 : 0);
result = 31 * result + (myValid ? 1 : 0);
result = 31 * result + myPathMappings.hashCode();
return result;
}
}