package com.intellij.lang.javascript.changesignature; import com.intellij.lang.Language; import com.intellij.lang.javascript.JavascriptLanguage; import com.intellij.lang.javascript.psi.JSFunction; import com.intellij.lang.javascript.psi.JSType; import com.intellij.lang.javascript.psi.ecmal4.JSAttributeList; import com.intellij.lang.javascript.refactoring.changeSignature.JSMethodDescriptor; import com.intellij.lang.javascript.refactoring.changeSignature.JSParameterInfo; import com.intellij.refactoring.changeSignature.ChangeInfo; import org.jetbrains.annotations.NotNull; import java.util.List; public class JSChangeInfo implements ChangeInfo { private final JSFunction myMethod; private final String myNewName; private final JSAttributeList.AccessType myNewVisibility; private final String myNewReturnType; private final List<JSParameterInfo> myNewParameters; public JSChangeInfo(JSFunction method) { myMethod = method; myNewName = method.getName(); myNewVisibility = method.getAttributeList().getAccessType(); final JSType returnType = method.getReturnType(); myNewReturnType = returnType == null ? null : returnType.getResolvedTypeText(); myNewParameters = JSMethodDescriptor.getParameters(method); } @NotNull @Override public JSParameterInfo[] getNewParameters() { return myNewParameters.toArray(new JSParameterInfo[myNewParameters.size()]); } @Override public boolean isParameterSetOrOrderChanged() { return false; } @Override public JSFunction getMethod() { return myMethod; } @Override public boolean isReturnTypeChanged() { return false; } @Override public String getNewName() { return myNewName; } @Override public Language getLanguage() { return JavascriptLanguage.INSTANCE; } @Override public boolean isParameterTypesChanged() { return false; } @Override public boolean isParameterNamesChanged() { return false; } @Override public boolean isGenerateDelegate() { return false; } @Override public boolean isNameChanged() { return false; } public JSAttributeList.AccessType getNewVisibility() { return myNewVisibility; } }