Search in sources :

Example 41 with ModelField

use of org.kie.soup.project.datamodel.oracle.ModelField in project drools by kiegroup.

the class RuleModelDRLPersistenceUnmarshallingI18NTest method addModelField.

private void addModelField(final String factName, final String fieldName, final String clazz, final String type) {
    ModelField[] modelFields = new ModelField[1];
    modelFields[0] = new ModelField(fieldName, clazz, ModelField.FIELD_CLASS_TYPE.TYPE_DECLARATION_CLASS, ModelField.FIELD_ORIGIN.DECLARED, FieldAccessorsAndMutators.BOTH, type);
    if (packageModelFields.containsKey(factName)) {
        final List<ModelField> existingModelFields = new ArrayList<ModelField>(Arrays.asList(packageModelFields.get(factName)));
        existingModelFields.add(modelFields[0]);
        modelFields = existingModelFields.toArray(modelFields);
    }
    packageModelFields.put(factName, modelFields);
}
Also used : ModelField(org.kie.soup.project.datamodel.oracle.ModelField) ArrayList(java.util.ArrayList)

Example 42 with ModelField

use of org.kie.soup.project.datamodel.oracle.ModelField in project drools-wb by kiegroup.

the class ActionWorkItemExecuteColumnSynchronizerTest method getOracle.

@Override
protected AsyncPackageDataModelOracle getOracle() {
    final AsyncPackageDataModelOracle oracle = super.getOracle();
    oracle.addModelFields(Collections.singletonMap("Applicant", new ModelField[] { modelField("this", "Applicant"), modelField("age", DataType.TYPE_NUMERIC_INTEGER) }));
    return oracle;
}
Also used : AsyncPackageDataModelOracle(org.kie.workbench.common.widgets.client.datamodel.AsyncPackageDataModelOracle) ModelField(org.kie.soup.project.datamodel.oracle.ModelField)

Example 43 with ModelField

use of org.kie.soup.project.datamodel.oracle.ModelField in project drools-wb by kiegroup.

the class ActionInsertFactColumnSynchronizerTest method getOracle.

@Override
protected AsyncPackageDataModelOracle getOracle() {
    final AsyncPackageDataModelOracle oracle = super.getOracle();
    oracle.addModelFields(Collections.singletonMap("Applicant", new ModelField[] { modelField("this", "Applicant"), modelField("age", DataType.TYPE_NUMERIC_INTEGER), modelField("name", DataType.TYPE_STRING), modelField("approved", DataType.TYPE_BOOLEAN) }));
    return oracle;
}
Also used : AsyncPackageDataModelOracle(org.kie.workbench.common.widgets.client.datamodel.AsyncPackageDataModelOracle) ModelField(org.kie.soup.project.datamodel.oracle.ModelField)

Example 44 with ModelField

use of org.kie.soup.project.datamodel.oracle.ModelField in project drools-wb by kiegroup.

the class RowExpanderTests method testExpansionWithLimitedEntry.

@Test
@SuppressWarnings("serial")
public void testExpansionWithLimitedEntry() {
    GuidedDecisionTable52 model = new GuidedDecisionTable52();
    model.setTableFormat(GuidedDecisionTable52.TableFormat.LIMITED_ENTRY);
    final ModuleDataModelOracle projectLoader = ModuleDataModelOracleBuilder.newModuleOracleBuilder(new RawMVELEvaluator()).addFact("Driver").addField(new ModelField("age", Integer.class.getName(), ModelField.FIELD_CLASS_TYPE.REGULAR_CLASS, ModelField.FIELD_ORIGIN.DECLARED, FieldAccessorsAndMutators.BOTH, DataType.TYPE_NUMERIC_INTEGER)).addField(new ModelField("name", String.class.getName(), ModelField.FIELD_CLASS_TYPE.REGULAR_CLASS, ModelField.FIELD_ORIGIN.DECLARED, FieldAccessorsAndMutators.BOTH, DataType.TYPE_STRING)).addField(new ModelField("dateOfBirth", Boolean.class.getName(), ModelField.FIELD_CLASS_TYPE.REGULAR_CLASS, ModelField.FIELD_ORIGIN.DECLARED, FieldAccessorsAndMutators.BOTH, DataType.TYPE_DATE)).addField(new ModelField("approved", Boolean.class.getName(), ModelField.FIELD_CLASS_TYPE.REGULAR_CLASS, ModelField.FIELD_ORIGIN.DECLARED, FieldAccessorsAndMutators.BOTH, DataType.TYPE_BOOLEAN)).end().build();
    // Emulate server-to-client conversions
    final AsyncPackageDataModelOracle oracle = getOracle();
    final PackageDataModelOracleBaselinePayload dataModel = new PackageDataModelOracleBaselinePayload();
    dataModel.setModelFields(projectLoader.getModuleModelFields());
    populateDataModelOracle(mock(Path.class), model, oracle, dataModel);
    Pattern52 p1 = new Pattern52();
    p1.setBoundName("c1");
    p1.setFactType("Driver");
    LimitedEntryConditionCol52 c1 = new LimitedEntryConditionCol52();
    c1.setFactField("name");
    c1.setOperator("==");
    c1.setConstraintValueType(BaseSingleFieldConstraint.TYPE_LITERAL);
    c1.setValue(new DTCellValue52("Mike"));
    p1.getChildColumns().add(c1);
    model.getConditions().add(p1);
    Pattern52 p2 = new Pattern52();
    p2.setBoundName("c2");
    p2.setFactType("Driver");
    LimitedEntryConditionCol52 c2 = new LimitedEntryConditionCol52();
    c2.setFactField("age");
    c2.setOperator("==");
    c2.setConstraintValueType(BaseSingleFieldConstraint.TYPE_LITERAL);
    c1.setValue(new DTCellValue52(25));
    p2.getChildColumns().add(c2);
    model.getConditions().add(p2);
    LimitedEntryActionSetFieldCol52 a1 = new LimitedEntryActionSetFieldCol52();
    a1.setBoundName("c1");
    a1.setFactField("name");
    a1.setValue(new DTCellValue52("a1name"));
    model.getActionCols().add(a1);
    LimitedEntryActionInsertFactCol52 a2 = new LimitedEntryActionInsertFactCol52();
    a2.setBoundName("a2");
    a2.setFactType("Driver");
    a2.setFactField("name");
    a2.setValue(new DTCellValue52("a2name"));
    model.getActionCols().add(a2);
    RowExpander re = new RowExpander(model, oracle);
    List<RowExpander.ColumnValues> columns = re.getColumns();
    assertEquals(6, columns.size());
    assertEquals(1, columns.get(0).values.size());
    assertEquals(1, columns.get(1).values.size());
    assertEquals(2, columns.get(2).values.size());
    assertEquals(2, columns.get(3).values.size());
    assertEquals(1, columns.get(4).values.size());
    assertEquals(1, columns.get(5).values.size());
    assertEquals(Boolean.TRUE, columns.get(2).values.get(0).getBooleanValue());
    assertEquals(Boolean.FALSE, columns.get(2).values.get(1).getBooleanValue());
    assertEquals(Boolean.TRUE, columns.get(3).values.get(0).getBooleanValue());
    assertEquals(Boolean.FALSE, columns.get(3).values.get(1).getBooleanValue());
    assertEquals(Boolean.FALSE, columns.get(4).values.get(0).getBooleanValue());
    assertEquals(Boolean.FALSE, columns.get(5).values.get(0).getBooleanValue());
    RowExpander.RowIterator i = re.iterator();
    List<List<DTCellValue52>> rows = new ArrayList<List<DTCellValue52>>();
    while (i.hasNext()) {
        List<DTCellValue52> row = i.next();
        rows.add(row);
    }
    assertEquals(4, rows.size());
    assertEquals("", rows.get(0).get(0).getStringValue());
    assertEquals("", rows.get(0).get(1).getStringValue());
    assertEquals(Boolean.TRUE, rows.get(0).get(2).getBooleanValue());
    assertEquals(Boolean.TRUE, rows.get(0).get(3).getBooleanValue());
    assertEquals(Boolean.FALSE, rows.get(0).get(4).getBooleanValue());
    assertEquals(Boolean.FALSE, rows.get(0).get(5).getBooleanValue());
    assertEquals("", rows.get(1).get(0).getStringValue());
    assertEquals("", rows.get(1).get(1).getStringValue());
    assertEquals(Boolean.TRUE, rows.get(1).get(2).getBooleanValue());
    assertEquals(Boolean.FALSE, rows.get(1).get(3).getBooleanValue());
    assertEquals(Boolean.FALSE, rows.get(1).get(4).getBooleanValue());
    assertEquals(Boolean.FALSE, rows.get(1).get(5).getBooleanValue());
    assertEquals("", rows.get(2).get(0).getStringValue());
    assertEquals("", rows.get(2).get(1).getStringValue());
    assertEquals(Boolean.FALSE, rows.get(2).get(2).getBooleanValue());
    assertEquals(Boolean.TRUE, rows.get(2).get(3).getBooleanValue());
    assertEquals(Boolean.FALSE, rows.get(2).get(4).getBooleanValue());
    assertEquals(Boolean.FALSE, rows.get(2).get(5).getBooleanValue());
    assertEquals("", rows.get(3).get(0).getStringValue());
    assertEquals("", rows.get(3).get(1).getStringValue());
    assertEquals(Boolean.FALSE, rows.get(3).get(2).getBooleanValue());
    assertEquals(Boolean.FALSE, rows.get(3).get(3).getBooleanValue());
    assertEquals(Boolean.FALSE, rows.get(3).get(4).getBooleanValue());
    assertEquals(Boolean.FALSE, rows.get(3).get(5).getBooleanValue());
}
Also used : AsyncPackageDataModelOracle(org.kie.workbench.common.widgets.client.datamodel.AsyncPackageDataModelOracle) Path(org.uberfire.backend.vfs.Path) GuidedDecisionTable52(org.drools.workbench.models.guided.dtable.shared.model.GuidedDecisionTable52) ModuleDataModelOracle(org.kie.soup.project.datamodel.oracle.ModuleDataModelOracle) ArrayList(java.util.ArrayList) DTCellValue52(org.drools.workbench.models.guided.dtable.shared.model.DTCellValue52) LimitedEntryActionSetFieldCol52(org.drools.workbench.models.guided.dtable.shared.model.LimitedEntryActionSetFieldCol52) Pattern52(org.drools.workbench.models.guided.dtable.shared.model.Pattern52) ModelField(org.kie.soup.project.datamodel.oracle.ModelField) PackageDataModelOracleBaselinePayload(org.kie.workbench.common.services.datamodel.model.PackageDataModelOracleBaselinePayload) RawMVELEvaluator(org.kie.soup.project.datamodel.commons.util.RawMVELEvaluator) LimitedEntryConditionCol52(org.drools.workbench.models.guided.dtable.shared.model.LimitedEntryConditionCol52) ArrayList(java.util.ArrayList) List(java.util.List) LimitedEntryActionInsertFactCol52(org.drools.workbench.models.guided.dtable.shared.model.LimitedEntryActionInsertFactCol52) Test(org.junit.Test)

Example 45 with ModelField

use of org.kie.soup.project.datamodel.oracle.ModelField in project drools-wb by kiegroup.

the class RowExpanderTests method testRowExpansionWithValuesListAndDefaultValues.

@Test
@SuppressWarnings("serial")
public void testRowExpansionWithValuesListAndDefaultValues() {
    GuidedDecisionTable52 model = new GuidedDecisionTable52();
    final ModuleDataModelOracle projectLoader = ModuleDataModelOracleBuilder.newModuleOracleBuilder(new RawMVELEvaluator()).addFact("Driver").addField(new ModelField("age", Integer.class.getName(), ModelField.FIELD_CLASS_TYPE.REGULAR_CLASS, ModelField.FIELD_ORIGIN.DECLARED, FieldAccessorsAndMutators.BOTH, DataType.TYPE_NUMERIC_INTEGER)).addField(new ModelField("name", String.class.getName(), ModelField.FIELD_CLASS_TYPE.REGULAR_CLASS, ModelField.FIELD_ORIGIN.DECLARED, FieldAccessorsAndMutators.BOTH, DataType.TYPE_STRING)).addField(new ModelField("dateOfBirth", Boolean.class.getName(), ModelField.FIELD_CLASS_TYPE.REGULAR_CLASS, ModelField.FIELD_ORIGIN.DECLARED, FieldAccessorsAndMutators.BOTH, DataType.TYPE_DATE)).end().build();
    // Emulate server-to-client conversions
    final AsyncPackageDataModelOracle oracle = getOracle();
    final PackageDataModelOracleBaselinePayload dataModel = new PackageDataModelOracleBaselinePayload();
    dataModel.setModelFields(projectLoader.getModuleModelFields());
    populateDataModelOracle(mock(Path.class), model, oracle, dataModel);
    Pattern52 p1 = new Pattern52();
    p1.setBoundName("c1");
    p1.setFactType("Driver");
    ConditionCol52 c1 = new ConditionCol52();
    c1.setFactField("name");
    c1.setOperator("==");
    c1.setConstraintValueType(BaseSingleFieldConstraint.TYPE_LITERAL);
    c1.setValueList("c1a,c1b");
    c1.setDefaultValue(new DTCellValue52("c1default"));
    p1.getChildColumns().add(c1);
    model.getConditions().add(p1);
    Pattern52 p2 = new Pattern52();
    p2.setBoundName("c2");
    p2.setFactType("Driver");
    ConditionCol52 c2 = new ConditionCol52();
    c2.setFactField("age");
    c2.setOperator("==");
    c2.setConstraintValueType(BaseSingleFieldConstraint.TYPE_LITERAL);
    c2.setValueList("c2a,c2b");
    c2.setDefaultValue(new DTCellValue52("c2default"));
    p2.getChildColumns().add(c2);
    model.getConditions().add(p2);
    Pattern52 p3 = new Pattern52();
    p3.setBoundName("c3");
    p3.setFactType("Driver");
    ConditionCol52 c3 = new ConditionCol52();
    c3.setFactField("dateOfBirth");
    c3.setOperator("==");
    c3.setConstraintValueType(BaseSingleFieldConstraint.TYPE_LITERAL);
    c3.setDefaultValue(new DTCellValue52("c3default"));
    p3.getChildColumns().add(c3);
    model.getConditions().add(p3);
    RowExpander re = new RowExpander(model, oracle);
    assertEquals(5, re.getColumns().size());
    RowExpander.RowIterator i = re.iterator();
    List<List<DTCellValue52>> rows = new ArrayList<List<DTCellValue52>>();
    while (i.hasNext()) {
        List<DTCellValue52> row = i.next();
        rows.add(row);
    }
    assertEquals(4, rows.size());
    assertEquals("", rows.get(0).get(0).getStringValue());
    assertEquals("", rows.get(0).get(1).getStringValue());
    assertEquals("c1a", rows.get(0).get(2).getStringValue());
    assertEquals("c2a", rows.get(0).get(3).getStringValue());
    assertEquals("c3default", rows.get(0).get(4).getStringValue());
    assertEquals("", rows.get(1).get(0).getStringValue());
    assertEquals("", rows.get(1).get(1).getStringValue());
    assertEquals("c1a", rows.get(1).get(2).getStringValue());
    assertEquals("c2b", rows.get(1).get(3).getStringValue());
    assertEquals("c3default", rows.get(1).get(4).getStringValue());
    assertEquals("", rows.get(2).get(0).getStringValue());
    assertEquals("", rows.get(2).get(1).getStringValue());
    assertEquals("c1b", rows.get(2).get(2).getStringValue());
    assertEquals("c2a", rows.get(2).get(3).getStringValue());
    assertEquals("c3default", rows.get(2).get(4).getStringValue());
    assertEquals("", rows.get(3).get(0).getStringValue());
    assertEquals("", rows.get(3).get(1).getStringValue());
    assertEquals("c1b", rows.get(3).get(2).getStringValue());
    assertEquals("c2b", rows.get(3).get(3).getStringValue());
    assertEquals("c3default", rows.get(3).get(4).getStringValue());
}
Also used : AsyncPackageDataModelOracle(org.kie.workbench.common.widgets.client.datamodel.AsyncPackageDataModelOracle) Path(org.uberfire.backend.vfs.Path) GuidedDecisionTable52(org.drools.workbench.models.guided.dtable.shared.model.GuidedDecisionTable52) ModuleDataModelOracle(org.kie.soup.project.datamodel.oracle.ModuleDataModelOracle) ArrayList(java.util.ArrayList) DTCellValue52(org.drools.workbench.models.guided.dtable.shared.model.DTCellValue52) ConditionCol52(org.drools.workbench.models.guided.dtable.shared.model.ConditionCol52) LimitedEntryConditionCol52(org.drools.workbench.models.guided.dtable.shared.model.LimitedEntryConditionCol52) Pattern52(org.drools.workbench.models.guided.dtable.shared.model.Pattern52) ModelField(org.kie.soup.project.datamodel.oracle.ModelField) PackageDataModelOracleBaselinePayload(org.kie.workbench.common.services.datamodel.model.PackageDataModelOracleBaselinePayload) RawMVELEvaluator(org.kie.soup.project.datamodel.commons.util.RawMVELEvaluator) ArrayList(java.util.ArrayList) List(java.util.List) Test(org.junit.Test)

Aggregations

ModelField (org.kie.soup.project.datamodel.oracle.ModelField)70 AsyncPackageDataModelOracle (org.kie.workbench.common.widgets.client.datamodel.AsyncPackageDataModelOracle)36 Test (org.junit.Test)34 ModuleDataModelOracle (org.kie.soup.project.datamodel.oracle.ModuleDataModelOracle)34 PackageDataModelOracleBaselinePayload (org.kie.workbench.common.services.datamodel.model.PackageDataModelOracleBaselinePayload)25 GuidedDecisionTable52 (org.drools.workbench.models.guided.dtable.shared.model.GuidedDecisionTable52)24 Pattern52 (org.drools.workbench.models.guided.dtable.shared.model.Pattern52)24 RawMVELEvaluator (org.kie.soup.project.datamodel.commons.util.RawMVELEvaluator)24 Path (org.uberfire.backend.vfs.Path)24 ConditionCol52 (org.drools.workbench.models.guided.dtable.shared.model.ConditionCol52)23 ArrayList (java.util.ArrayList)20 LimitedEntryConditionCol52 (org.drools.workbench.models.guided.dtable.shared.model.LimitedEntryConditionCol52)19 DTCellValue52 (org.drools.workbench.models.guided.dtable.shared.model.DTCellValue52)14 List (java.util.List)13 ActionInsertFactCol52 (org.drools.workbench.models.guided.dtable.shared.model.ActionInsertFactCol52)11 ActionSetFieldCol52 (org.drools.workbench.models.guided.dtable.shared.model.ActionSetFieldCol52)11 ModuleDataModelOracleImpl (org.kie.soup.project.datamodel.commons.oracle.ModuleDataModelOracleImpl)10 LimitedEntryActionInsertFactCol52 (org.drools.workbench.models.guided.dtable.shared.model.LimitedEntryActionInsertFactCol52)9 LimitedEntryActionSetFieldCol52 (org.drools.workbench.models.guided.dtable.shared.model.LimitedEntryActionSetFieldCol52)9 PackageDataModelOracle (org.kie.soup.project.datamodel.oracle.PackageDataModelOracle)9