
org.openl.rules.ui.tree.TableInstanceTreeNodeBuilder Maven / Gradle / Ivy
The newest version!
package org.openl.rules.ui.tree;
import org.openl.rules.lang.xls.XlsNodeTypes;
import org.openl.rules.lang.xls.syntax.TableSyntaxNode;
import org.openl.rules.lang.xls.syntax.TableSyntaxNodeKey;
import org.openl.rules.ui.IProjectTypes;
import org.openl.rules.ui.TableSyntaxNodeUtils;
import org.openl.types.IOpenMethod;
/**
* Builds tree node for table instance.
*
*/
public class TableInstanceTreeNodeBuilder extends OpenMethodsGroupTreeNodeBuilder {
private static final String TABLE_INSTANCE_NAME = "Table Instance";
/**
* {@inheritDoc}
*/
@Override
public String[] getDisplayValue(Object sorterObject, int i) {
TableSyntaxNode tsn = (TableSyntaxNode) sorterObject;
return TableSyntaxNodeUtils.getTableDisplayValue(tsn, i, getOpenMethodGroupsDictionary());
}
/**
* {@inheritDoc}
*/
@Override
public String getName() {
return TABLE_INSTANCE_NAME;
}
/**
* {@inheritDoc}
*/
@Override
public Object getProblems(Object nodeObject) {
TableSyntaxNode tsn = (TableSyntaxNode) nodeObject;
return tsn.getErrors() != null ? tsn.getErrors() : tsn.getValidationResult();
}
/**
* {@inheritDoc}
*/
@Override
public String getType(Object sorterObject) {
TableSyntaxNode tsn = (TableSyntaxNode) sorterObject;
return IProjectTypes.PT_TABLE + "." + tsn.getType();
}
/**
* {@inheritDoc}
*/
@Override
public String getUrl(Object sorterObject) {
TableSyntaxNode tsn = (TableSyntaxNode) sorterObject;
return tsn.getUri();
}
/**
* {@inheritDoc}
*/
@Override
public int getWeight(Object sorterObject) {
return 0;
}
/**
* {@inheritDoc}
*/
@Override
public boolean isUnique(TableSyntaxNode tsn) {
if (XlsNodeTypes.XLS_PROPERTIES.toString().equals(tsn.getType())
|| XlsNodeTypes.XLS_DATATYPE.toString().equals(tsn.getType())
|| XlsNodeTypes.XLS_ENVIRONMENT.toString().equals(tsn.getType())) {
return true;
}
return false;
}
/**
* {@inheritDoc}
*/
@Override
public Object makeObject(TableSyntaxNode tsn) {
return tsn;
}
@Override
public Comparable> makeKey(TableSyntaxNode tableSyntaxNode) {
if (tableSyntaxNode.getMember() instanceof IOpenMethod) {
TableSyntaxNodeKey key = new TableSyntaxNodeKey(tableSyntaxNode);
String keyString = key.toString();
Object nodeObject = makeObject(tableSyntaxNode);
String[] displayNames = getDisplayValue(tableSyntaxNode, 0);
for(int i = 0; i < displayNames.length; i++){
displayNames[i] += keyString;
}
return new NodeKey(getWeight(nodeObject), displayNames);
} else {
return super.makeKey(tableSyntaxNode);
}
}
@Override
public ITreeNode
© 2015 - 2025 Weber Informatics LLC | Privacy Policy