mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-10-06 06:21:16 +07:00
228 lines
6.7 KiB
Java
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;
|
|
}
|
|
}
|