public String getType(DTColumnConfig col, SuggestionCompletionEngine sce) { String type = null; if (col instanceof AttributeCol) { AttributeCol at = (AttributeCol) col; type = at.getAttribute(); } else if (col instanceof ConditionCol) { ConditionCol c = (ConditionCol) col; type = sce.getFieldType(c.getFactType(), c.getFactField()); } else if (col instanceof ActionSetFieldCol) { ActionSetFieldCol c = (ActionSetFieldCol) col; type = sce.getFieldType(getBoundFactType(c.getBoundName()), c.getFactField()); } else if (col instanceof ActionInsertFactCol) { ActionInsertFactCol c = (ActionInsertFactCol) col; type = sce.getFieldType(c.getFactType(), c.getFactField()); } return type; }
private boolean isDataType(DTColumnConfig col, SuggestionCompletionEngine sce, String dataType) { if (col instanceof RowNumberCol) { throw new IllegalArgumentException( "Only ConditionCol and Actions permitted. Consider using one of the public is<DataType> methods."); } if (col instanceof DescriptionCol) { throw new IllegalArgumentException( "Only ConditionCol and Actions permitted. Consider using one of the public is<DataType> methods."); } if (col instanceof MetadataCol) { throw new IllegalArgumentException( "Only ConditionCol and Actions permitted. Consider using one of the public is<DataType> methods."); } if (col instanceof AttributeCol) { throw new IllegalArgumentException( "Only ConditionCol and Actions permitted. Consider using one of the public is<DataType> methods."); } if (col instanceof ConditionCol) { ConditionCol c = (ConditionCol) col; if (c.getConstraintValueType() == BaseSingleFieldConstraint.TYPE_LITERAL) { if (c.getOperator() == null || "".equals(c.getOperator())) { return false; } String ft = sce.getFieldType(c.getFactType(), c.getFactField()); if (ft != null && ft.equals(dataType)) { return true; } } } else if (col instanceof ActionSetFieldCol) { ActionSetFieldCol c = (ActionSetFieldCol) col; String ft = sce.getFieldType(getBoundFactType(c.getBoundName()), c.getFactField()); if (ft != null && ft.equals(dataType)) { return true; } } else if (col instanceof ActionInsertFactCol) { ActionInsertFactCol c = (ActionInsertFactCol) col; String ft = sce.getFieldType(c.getFactType(), c.getFactField()); if (ft != null && ft.equals(dataType)) { return true; } } return false; }
/** * This will return a list of valid values. if there is no such "enumeration" of values, then it * will return an empty array. */ public String[] getValueList(DTColumnConfig col, SuggestionCompletionEngine sce) { if (col instanceof AttributeCol) { AttributeCol at = (AttributeCol) col; if ("no-loop".equals(at.getAttribute()) || "enabled".equals(at.getAttribute())) { return new String[] {"true", "false"}; } } else if (col instanceof ConditionCol) { // conditions: if its a formula etc, just return String[0], // otherwise check with the sce ConditionCol c = (ConditionCol) col; if (c.getConstraintValueType() == BaseSingleFieldConstraint.TYPE_RET_VALUE || c.getConstraintValueType() == BaseSingleFieldConstraint.TYPE_PREDICATE) { return new String[0]; } else { if (c.getValueList() != null && !"".equals(c.getValueList())) { return c.getValueList().split(","); } else { String[] r = sce.getEnumValues(c.getFactType(), c.getFactField()); return (r != null) ? r : new String[0]; } } } else if (col instanceof ActionSetFieldCol) { ActionSetFieldCol c = (ActionSetFieldCol) col; if (c.getValueList() != null && !"".equals(c.getValueList())) { return c.getValueList().split(","); } else { String[] r = sce.getEnumValues(getBoundFactType(c.getBoundName()), c.getFactField()); return (r != null) ? r : new String[0]; } } else if (col instanceof ActionInsertFactCol) { ActionInsertFactCol c = (ActionInsertFactCol) col; if (c.getValueList() != null && !"".equals(c.getValueList())) { return c.getValueList().split(","); } else { String[] r = sce.getEnumValues(c.getFactType(), c.getFactField()); return (r != null) ? r : new String[0]; } } return new String[0]; }