PyUtil.strValue() moved to PyPsiUtils

This commit is contained in:
Dmitry Jemerov
2012-08-14 17:30:30 +02:00
parent e7799fe9e1
commit 4fff579c85
12 changed files with 30 additions and 26 deletions
@@ -368,6 +368,11 @@ public class PyPsiUtils {
return expr;
}
@Nullable
public static String strValue(@Nullable PyExpression expression) {
return expression instanceof PyStringLiteralExpression ? ((PyStringLiteralExpression)expression).getStringValue() : null;
}
private static abstract class TopLevelVisitor extends PyRecursiveElementVisitor {
public void visitPyElement(final PyElement node) {
super.visitPyElement(node);
@@ -112,7 +112,7 @@ public class PyNamedTupleType extends PyClassTypeImpl implements PyCallableType
@Nullable
public static PyType fromCall(PyCallExpression call) {
final String name = PyUtil.strValue(call.getArgument(0, PyExpression.class));
final String name = PyPsiUtils.strValue(call.getArgument(0, PyExpression.class));
final PyExpression fieldNamesExpression = PyPsiUtils.flattenParens(call.getArgument(1, PyExpression.class));
if (name == null || fieldNamesExpression == null) {
return null;
@@ -122,7 +122,7 @@ public class PyNamedTupleType extends PyClassTypeImpl implements PyCallableType
fieldNames = PyUtil.strListValue(fieldNamesExpression);
}
else {
final String fieldNamesString = PyUtil.strValue(fieldNamesExpression);
final String fieldNamesString = PyPsiUtils.strValue(fieldNamesExpression);
if (fieldNamesString != null) {
fieldNames = parseFieldNamesString(fieldNamesString);
}
@@ -20,6 +20,7 @@ import com.jetbrains.python.console.PyConsoleUtil;
import com.jetbrains.python.psi.*;
import com.jetbrains.python.psi.impl.PyBuiltinCache;
import com.jetbrains.python.psi.impl.PyCallExpressionHelper;
import com.jetbrains.python.psi.impl.PyPsiUtils;
import com.jetbrains.python.psi.resolve.PyResolveContext;
import com.jetbrains.python.psi.resolve.QualifiedResolveResult;
import com.jetbrains.python.psi.resolve.RootVisitor;
@@ -356,7 +357,7 @@ class DocumentationBuilder {
private void addParameterDoc(PyNamedParameter followed) {
PyFunction function = PsiTreeUtil.getParentOfType(followed, PyFunction.class);
if (function != null) {
final String docString = PyUtil.strValue(function.getDocStringExpression());
final String docString = PyPsiUtils.strValue(function.getDocStringExpression());
StructuredDocString structuredDocString = StructuredDocString.parse(docString);
if (structuredDocString != null) {
final String name = followed.getName();
@@ -388,7 +389,7 @@ class DocumentationBuilder {
.addItem(" of class ").addWith(PythonDocumentationProvider.LinkMyClass, $().addWith(TagCode, $(cls.getName()))).addItem(BR)
;
final String docString = PyUtil.strValue(PyUtil.getAttributeDocString((PyTargetExpression)myElement));
final String docString = PyPsiUtils.strValue(PyUtil.getAttributeDocString((PyTargetExpression)myElement));
if (docString != null) {
addFormattedDocString(myElement, docString, myBody, myEpilog);
}
@@ -9,7 +9,7 @@ import com.intellij.util.xmlb.annotations.Transient;
import com.jetbrains.python.PyNames;
import com.jetbrains.python.psi.PyFile;
import com.jetbrains.python.psi.PyTargetExpression;
import com.jetbrains.python.psi.PyUtil;
import com.jetbrains.python.psi.impl.PyPsiUtils;
import java.util.List;
@@ -41,7 +41,7 @@ public class PyDocumentationSettings implements PersistentStateComponent<PyDocum
if (file instanceof PyFile) {
PyTargetExpression expr = ((PyFile) file).findTopLevelAttribute(PyNames.DOCFORMAT);
if (expr != null) {
String docformat = PyUtil.strValue(expr.findAssignedValue());
String docformat = PyPsiUtils.strValue(expr.findAssignedValue());
if (docformat != null) {
final List<String> words = StringUtil.split(docformat, " ");
return words.size() > 0 && format.equalsIgnoreCase(words.get(0));
@@ -24,6 +24,7 @@ import com.jetbrains.python.console.PydevConsoleRunner;
import com.jetbrains.python.console.PydevDocumentationProvider;
import com.jetbrains.python.psi.*;
import com.jetbrains.python.psi.impl.PyBuiltinCache;
import com.jetbrains.python.psi.impl.PyPsiUtils;
import com.jetbrains.python.psi.impl.PyQualifiedName;
import com.jetbrains.python.psi.resolve.QualifiedNameFinder;
import com.jetbrains.python.psi.types.*;
@@ -284,7 +285,7 @@ public class PythonDocumentationProvider extends AbstractDocumentationProvider i
}
private static boolean specifiesReturnType(PyStringLiteralExpression docStringExpression) {
String value = PyUtil.strValue(docStringExpression);
String value = PyPsiUtils.strValue(docStringExpression);
if (value == null) {
return false;
}
@@ -103,7 +103,7 @@ public class SetupTaskIntrospector {
if (taskClass != null) {
final PyTargetExpression description = taskClass.findClassAttribute("description", true);
if (description != null) {
final String descriptionText = PyUtil.strValue(PyPsiUtils.flattenParens(description.findAssignedValue()));
final String descriptionText = PyPsiUtils.strValue(PyPsiUtils.flattenParens(description.findAssignedValue()));
if (descriptionText != null) {
task.setDescription(descriptionText);
}
@@ -112,7 +112,7 @@ public class SetupTaskIntrospector {
final List<PyExpression> booleanOptions = resolveSequenceValue(taskClass, "boolean_options");
final List<String> booleanOptionsList = new ArrayList<String>();
for (PyExpression option : booleanOptions) {
final String s = PyUtil.strValue(option);
final String s = PyPsiUtils.strValue(option);
if (s != null) {
booleanOptionsList.add(s);
}
@@ -167,8 +167,8 @@ public class SetupTaskIntrospector {
if (dict instanceof PyDictLiteralExpression) {
final PyKeyValueExpression[] elements = ((PyDictLiteralExpression)dict).getElements();
for (PyKeyValueExpression element : elements) {
String key = PyUtil.strValue(PyPsiUtils.flattenParens(element.getKey()));
String value = PyUtil.strValue(PyPsiUtils.flattenParens(element.getValue()));
String key = PyPsiUtils.strValue(PyPsiUtils.flattenParens(element.getKey()));
String value = PyPsiUtils.strValue(PyPsiUtils.flattenParens(element.getValue()));
if (key != null && value != null) {
result.put(key, value);
}
@@ -183,8 +183,8 @@ public class SetupTaskIntrospector {
if (tuple instanceof PyTupleExpression) {
final PyExpression[] elements = ((PyTupleExpression)tuple).getElements();
if (elements.length == 3) {
String name = PyUtil.strValue(elements[0]);
final String description = PyUtil.strValue(elements[2]);
String name = PyPsiUtils.strValue(elements[0]);
final String description = PyPsiUtils.strValue(elements[2]);
if (name != null && description != null) {
if (negativeOptMap.containsKey(name)) {
return null;
@@ -39,6 +39,7 @@ import com.jetbrains.python.codeInsight.dataflow.scope.ScopeUtil;
import com.jetbrains.python.codeInsight.stdlib.PyNamedTupleType;
import com.jetbrains.python.documentation.EpydocUtil;
import com.jetbrains.python.psi.impl.PyBuiltinCache;
import com.jetbrains.python.psi.impl.PyPsiUtils;
import com.jetbrains.python.psi.resolve.PyResolveContext;
import com.jetbrains.python.psi.resolve.QualifiedResolveResult;
import com.jetbrains.python.psi.types.*;
@@ -832,11 +833,6 @@ public class PyUtil {
return null;
}
@Nullable
public static String strValue(@Nullable PyExpression expression) {
return expression instanceof PyStringLiteralExpression ? ((PyStringLiteralExpression)expression).getStringValue() : null;
}
@NotNull
public static Map<String, PyExpression> dictValue(@NotNull PyDictLiteralExpression dict) {
Map<String, PyExpression> result = Maps.newLinkedHashMap();
@@ -881,7 +877,7 @@ public class PyUtil {
@Nullable
public static String getKeywordArgumentString(PyCallExpression expr, String keyword) {
return strValue(expr.getKeywordArgument(keyword));
return PyPsiUtils.strValue(expr.getKeywordArgument(keyword));
}
public static boolean isExceptionClass(PyClass pyClass) {
@@ -1015,7 +1015,7 @@ public class PyClassImpl extends PyPresentableElementImpl<PyClassStub> implement
if (stub != null) {
return stub.getDocString();
}
return PyUtil.strValue(getDocStringExpression());
return PyPsiUtils.strValue(getDocStringExpression());
}
public String toString() {
@@ -344,7 +344,7 @@ public class PyFunctionImpl extends PyPresentableElementImpl<PyFunctionStub> imp
PyReferenceExpression warningClass = callExpression.getArgument(1, PyReferenceExpression.class);
if (warningClass != null && (PyNames.DEPRECATION_WARNING.equals(warningClass.getReferencedName()) ||
PyNames.PENDING_DEPRECATION_WARNING.equals(warningClass.getReferencedName()))) {
return PyUtil.strValue(callExpression.getArguments()[0]);
return PyPsiUtils.strValue(callExpression.getArguments()[0]);
}
}
}
@@ -360,7 +360,7 @@ public class PyFunctionImpl extends PyPresentableElementImpl<PyFunctionStub> imp
return stub.getDocString();
}
final PyStringLiteralExpression docStringExpression = getDocStringExpression();
return PyUtil.strValue(docStringExpression);
return PyPsiUtils.strValue(docStringExpression);
}
private boolean isGeneratedStub() {
@@ -210,7 +210,7 @@ public class PyTargetExpressionImpl extends PyPresentableElementImpl<PyTargetExp
@Nullable
public static PyType getTypeFromDocString(PyTargetExpressionImpl targetExpression) {
final String docString = PyUtil.strValue(PyUtil.getAttributeDocString(targetExpression));
final String docString = PyPsiUtils.strValue(PyUtil.getAttributeDocString(targetExpression));
if (docString != null) {
StructuredDocString structuredDocString = StructuredDocString.parse(docString);
if (structuredDocString != null) {
@@ -7,6 +7,7 @@ import com.intellij.util.io.StringRef;
import com.jetbrains.python.PyElementTypes;
import com.jetbrains.python.psi.*;
import com.jetbrains.python.psi.impl.PyClassImpl;
import com.jetbrains.python.psi.impl.PyPsiUtils;
import com.jetbrains.python.psi.impl.PyQualifiedName;
import com.jetbrains.python.psi.stubs.PyClassNameIndex;
import com.jetbrains.python.psi.stubs.PyClassNameIndexInsensitive;
@@ -48,7 +49,7 @@ public class PyClassElementType extends PyStubElementType<PyClassStub, PyClass>
return new PyClassStubImpl(psi.getName(), parentStub,
superClasses.toArray(new PyQualifiedName[superClasses.size()]),
((PyClassImpl) psi).getOwnSlots(),
PyUtil.strValue(docStringExpression),
PyPsiUtils.strValue(docStringExpression),
getStubElementType());
}
@@ -8,8 +8,8 @@ import com.jetbrains.python.PyElementTypes;
import com.jetbrains.python.psi.PyFunction;
import com.jetbrains.python.psi.PyStringLiteralExpression;
import com.jetbrains.python.psi.PyStubElementType;
import com.jetbrains.python.psi.PyUtil;
import com.jetbrains.python.psi.impl.PyFunctionImpl;
import com.jetbrains.python.psi.impl.PyPsiUtils;
import com.jetbrains.python.psi.stubs.PyFunctionNameIndex;
import com.jetbrains.python.psi.stubs.PyFunctionStub;
import org.jetbrains.annotations.NotNull;
@@ -40,7 +40,7 @@ public class PyFunctionElementType extends PyStubElementType<PyFunctionStub, PyF
PyFunctionImpl function = (PyFunctionImpl)psi;
String message = function.extractDeprecationMessage();
final PyStringLiteralExpression docStringExpression = function.getDocStringExpression();
return new PyFunctionStubImpl(psi.getName(), PyUtil.strValue(docStringExpression),
return new PyFunctionStubImpl(psi.getName(), PyPsiUtils.strValue(docStringExpression),
message == null ? null : StringRef.fromString(message), parentStub, getStubElementType());
}