/*******************************************************************************
* Copyright (c) 2016 Rogue Wave Software, Inc.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/epl-v10.html
*
* Contributors:
* Rogue Wave Software, Inc. - initial API and implementation
*******************************************************************************/
package org.eclipse.che.plugin.zdb.server.expressions;
import static org.eclipse.che.plugin.zdb.server.expressions.IDbgDataType.DataType.PHP_NULL;
import java.util.Collections;
import java.util.List;
import org.eclipse.che.plugin.zdb.server.expressions.IDbgDataType.DataType;
/**
* Container for storing expression evaluation result.
*
* @author Bartlomiej Laczkowski
*/
class ZendDbgExpressionResult {
static final ZendDbgExpressionResult NULL = new ZendDbgExpressionResult(PHP_NULL.getText(), DataType.PHP_NULL);
private final String value;
private final DataType dataType;
private final int childrenCount;
private final List<IDbgExpression> children;
ZendDbgExpressionResult(String value, DataType dataType) {
this(value, dataType, 0);
}
ZendDbgExpressionResult(String value, DataType dataType, int childrenCount) {
this(value, dataType, childrenCount, null);
}
ZendDbgExpressionResult(String value, DataType dataType, int childrenCount, List<IDbgExpression> children) {
super();
this.value = value;
this.dataType = dataType;
this.childrenCount = childrenCount;
this.children = children != null ? children : Collections.emptyList();
}
/**
* Returns textual value for expression result.
*
* @return textual value for expression result
*/
public String getValue() {
return value;
}
/**
* Returns PHP data type for expression result.
*
* @return PHP data type for expression result
*/
public DataType getDataType() {
return dataType;
}
/**
* Returns number of child elements for expression result.
*
* @return number of child elements for expression result
*/
public int getChildrenCount() {
return childrenCount;
}
/**
* Returns child elements for expression result.
*
* @return child elements for expression result
*/
public List<IDbgExpression> getChildren() {
return children;
}
}