package jetbrains.mps.ide.httpsupport.runtime.base;
/*Generated by MPS */
import org.apache.log4j.Logger;
import org.apache.log4j.LogManager;
import org.jetbrains.annotations.Nullable;
import jetbrains.mps.project.Project;
import org.jetbrains.annotations.NotNull;
import java.util.List;
import jetbrains.mps.project.ProjectManager;
import jetbrains.mps.internal.collections.runtime.ListSequence;
import jetbrains.mps.internal.collections.runtime.IWhereFilter;
import org.apache.log4j.Level;
import org.jetbrains.mps.openapi.model.SNode;
import org.jetbrains.mps.openapi.model.SNodeReference;
import io.netty.handler.codec.http.QueryStringEncoder;
import jetbrains.mps.ide.httpsupport.manager.plugin.MPSInternalPortManager;
import org.jetbrains.mps.openapi.persistence.PersistenceFacade;
public class HttpSupportUtil {
private static final Logger LOG = LogManager.getLogger(HttpSupportUtil.class);
@Nullable
public static Project getProjectByName(@NotNull final String name) {
List<Project> openedProjects = ProjectManager.getInstance().getOpenedProjects();
if (ListSequence.fromList(openedProjects).isEmpty()) {
return null;
}
Project project = ListSequence.fromList(openedProjects).findFirst(new IWhereFilter<Project>() {
public boolean accept(Project it) {
return it.getName().equals(name);
}
});
if (project == null) {
project = ListSequence.fromList(openedProjects).first();
if (LOG.isEnabledFor(Level.WARN)) {
LOG.warn("Can't find project '" + name + "'. Using '" + project.getName() + "' instead.");
}
}
return project;
}
public static Integer parseInt(String str) {
try {
return Integer.valueOf(str);
} catch (NumberFormatException e) {
return null;
}
}
public static Long parseLong(String str) {
try {
return Long.valueOf(str);
} catch (NumberFormatException e) {
return null;
}
}
public static Float parseFloat(String str) {
try {
return Float.valueOf(str);
} catch (NumberFormatException e) {
return null;
}
}
public static Double parseDouble(String str) {
try {
return Double.valueOf(str);
} catch (NumberFormatException e) {
return null;
}
}
public static String getURL(SNode node) {
return getURL(node.getReference());
}
public static String getURL(SNodeReference nodeRef) {
QueryStringEncoder encoder = new QueryStringEncoder("http://127.0.0.1:" + MPSInternalPortManager.PORT + "/node");
encoder.addParam("ref", PersistenceFacade.getInstance().asString(nodeRef));
return encoder.toString();
}
}