convert CustomPropertiesValuePresentation to kotlin

This commit is contained in:
Vladimir Krivosheev
2017-03-20 17:14:34 +01:00
parent b7b0164b6e
commit 02df76af35
@@ -13,79 +13,54 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.jetbrains.debugger;
package org.jetbrains.debugger
import com.intellij.xdebugger.XDebuggerBundle;
import com.intellij.xdebugger.frame.XValueNode;
import com.intellij.xdebugger.frame.presentation.XValuePresentation;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.debugger.values.ObjectValue;
import org.jetbrains.debugger.values.StringValue;
import org.jetbrains.debugger.values.Value;
import com.intellij.openapi.editor.DefaultLanguageHighlighterColors
import com.intellij.xdebugger.XDebuggerBundle
import com.intellij.xdebugger.frame.XValueNode
import com.intellij.xdebugger.frame.presentation.XValuePresentation
import org.jetbrains.debugger.values.ObjectValue
import org.jetbrains.debugger.values.StringValue
import org.jetbrains.debugger.values.ValueType
import java.util.List;
public class CustomPropertiesValuePresentation extends XValuePresentation {
private final ObjectValue value;
private final List<Variable> properties;
public CustomPropertiesValuePresentation(@NotNull ObjectValue value, @NotNull List<Variable> properties) {
this.value = value;
this.properties = properties;
}
@Override
public void renderValue(@NotNull XValueTextRenderer renderer) {
renderer.renderComment(VariableViewKt.getObjectValueDescription(value));
renderer.renderSpecialSymbol(" {");
boolean isFirst = true;
for (Variable property : properties) {
class CustomPropertiesValuePresentation(private val value: ObjectValue, private val properties: List<Variable>) : XValuePresentation() {
override fun renderValue(renderer: XValuePresentation.XValueTextRenderer) {
renderer.renderComment(getObjectValueDescription(value))
renderer.renderSpecialSymbol(" {")
var isFirst = true
for (property in properties) {
if (isFirst) {
isFirst = false;
isFirst = false
}
else {
renderer.renderSpecialSymbol(", ");
renderer.renderSpecialSymbol(", ")
}
renderer.renderValue(property.getName());
renderer.renderSpecialSymbol(": ");
renderer.renderValue(property.name, DefaultLanguageHighlighterColors.INSTANCE_FIELD)
renderer.renderSpecialSymbol(": ")
Value value = property.getValue();
assert value != null;
val value = property.value!!
when (value.type) {
ValueType.BOOLEAN, ValueType.NULL, ValueType.UNDEFINED, ValueType.SYMBOL -> renderer.renderKeywordValue(value.valueString!!)
switch (value.getType()) {
case BOOLEAN:
case NULL:
case UNDEFINED:
case SYMBOL:
renderer.renderKeywordValue(value.getValueString());
break;
ValueType.NUMBER -> renderer.renderNumericValue(value.valueString!!)
case NUMBER:
renderer.renderNumericValue(value.getValueString());
break;
case STRING:
String string = value.getValueString();
renderer.renderStringValue(string, "\"\\", XValueNode.MAX_VALUE_LENGTH);
int actualStringLength = value instanceof StringValue ? ((StringValue)value).getLength() : string.length();
ValueType.STRING -> {
val string = value.valueString
renderer.renderStringValue(string!!, "\"\\", XValueNode.MAX_VALUE_LENGTH)
val actualStringLength = (value as? StringValue)?.length ?: string.length
if (actualStringLength > XValueNode.MAX_VALUE_LENGTH) {
renderer.renderComment(XDebuggerBundle.message("node.text.ellipsis.truncated", actualStringLength));
renderer.renderComment(XDebuggerBundle.message("node.text.ellipsis.truncated", actualStringLength))
}
break;
}
case FUNCTION:
renderer.renderComment(VariableViewKt.trimFunctionDescription(value));
break;
ValueType.FUNCTION -> renderer.renderComment(trimFunctionDescription(value))
case OBJECT:
renderer.renderComment(VariableViewKt.getObjectValueDescription((ObjectValue)value));
break;
ValueType.OBJECT -> renderer.renderComment(getObjectValueDescription(value as ObjectValue))
default:
renderer.renderValue(value.getValueString());
else -> renderer.renderValue(value.valueString!!)
}
}
renderer.renderSpecialSymbol("}");
renderer.renderSpecialSymbol("}")
}
}