/* * Copyright 2017 Nokia Solutions and Networks * Licensed under the Apache License, Version 2.0, * see license.txt file for details. */ package org.robotframework.ide.eclipse.main.plugin.debug.model; import static java.util.stream.Collectors.toList; import java.util.List; import java.util.stream.Stream; import com.google.common.base.Joiner; public class RobotDebugValueOfDictionary extends RobotDebugValue { private final List<RobotDebugVariable> nestedVariables; public RobotDebugValueOfDictionary(final RobotDebugTarget target, final List<RobotDebugVariable> nestedVariables) { this(target, "Dictionary[" + nestedVariables.size() + "]", nestedVariables); } public RobotDebugValueOfDictionary(final RobotDebugTarget target, final String value, final List<RobotDebugVariable> nestedVariables) { super(target, value); this.nestedVariables = nestedVariables; } @Override public String getDetailedValue() { final List<String> innerValues = Stream.of(getVariables()) .map(var -> var.getName() + "=" + var.getValue().getDetailedValue()) .collect(toList()); return "{" + Joiner.on(", ").join(innerValues) + "}"; } @Override public boolean hasVariables() { return !nestedVariables.isEmpty(); } @Override public RobotDebugVariable[] getVariables() { return nestedVariables.toArray(new RobotDebugVariable[0]); } }