Search in sources :

Example 1 with FetchMode

use of org.kie.workbench.common.screens.datamodeller.model.jpadomain.FetchMode in project kie-wb-common by kiegroup.

the class RelationshipEditionDialog method show.

@Override
@SuppressWarnings("unchecked")
public void show() {
    DataModelerPropertyEditorFieldInfo fieldInfo = (DataModelerPropertyEditorFieldInfo) property;
    RelationType relationTypeValue = (RelationType) fieldInfo.getCurrentValue(RELATION_TYPE);
    if (relationTypeValue != null) {
        view.setRelationType(relationTypeValue.name());
    } else {
        view.setRelationType(UIUtil.NOT_SELECTED);
    }
    enableRelationDependentFields(relationTypeValue);
    cascadeAllWasClicked = false;
    setCascadeTypes((List<CascadeType>) fieldInfo.getCurrentValue(CASCADE));
    enableCascadeTypes(true, true);
    FetchMode fetchModeValue = (FetchMode) fieldInfo.getCurrentValue(FETCH);
    if (fetchModeValue != null) {
        view.setFetchMode(fetchModeValue.name());
    } else {
        view.setFetchMode(UIUtil.NOT_SELECTED);
    }
    Boolean optionalValue = (Boolean) fieldInfo.getCurrentValue(OPTIONAL);
    if (optionalValue != null) {
        view.setOptional(optionalValue);
    }
    String mappedBy = (String) fieldInfo.getCurrentValue(MAPPED_BY);
    view.setMappedBy(mappedBy);
    Boolean orphanRemovalValue = (Boolean) fieldInfo.getCurrentValue(ORPHAN_REMOVAL);
    if (orphanRemovalValue != null) {
        view.setOrphanRemoval(orphanRemovalValue);
    }
    view.setEnabled(!fieldInfo.isDisabled());
    view.show();
}
Also used : FetchMode(org.kie.workbench.common.screens.datamodeller.model.jpadomain.FetchMode) RelationType(org.kie.workbench.common.screens.datamodeller.model.jpadomain.RelationType) CascadeType(org.kie.workbench.common.screens.datamodeller.model.jpadomain.CascadeType) DataModelerPropertyEditorFieldInfo(org.kie.workbench.common.screens.datamodeller.client.model.DataModelerPropertyEditorFieldInfo)

Example 2 with FetchMode

use of org.kie.workbench.common.screens.datamodeller.model.jpadomain.FetchMode in project kie-wb-common by kiegroup.

the class JPADataObjectFieldEditor method onRelationTypeFieldChange.

@Override
public void onRelationTypeFieldChange(DataModelerPropertyEditorFieldInfo fieldInfo, String newValue) {
    if (getObjectField() != null) {
        Annotation oldRelation = getCurrentRelationshipAnnotation(getObjectField());
        RelationshipAnnotationValueHandler oldRelationHandler = oldRelation != null ? new RelationshipAnnotationValueHandler(oldRelation) : null;
        Annotation newRelation;
        RelationType newRelationType = (RelationType) fieldInfo.getCurrentValue(RelationshipAnnotationValueHandler.RELATION_TYPE);
        List<CascadeType> newCascadeTypes = (List<CascadeType>) fieldInfo.getCurrentValue(RelationshipAnnotationValueHandler.CASCADE);
        FetchMode newFetchMode = (FetchMode) fieldInfo.getCurrentValue(RelationshipAnnotationValueHandler.FETCH);
        Boolean newOptional = (Boolean) fieldInfo.getCurrentValue(RelationshipAnnotationValueHandler.OPTIONAL);
        String newMappedBy = DataModelerUtils.nullTrim((String) fieldInfo.getCurrentValue(RelationshipAnnotationValueHandler.MAPPED_BY));
        Boolean newOrphanRemoval = (Boolean) fieldInfo.getCurrentValue(RelationshipAnnotationValueHandler.ORPHAN_REMOVAL);
        // and add the new one. This may alter the annotations order for the given field, but it's not a problem.
        if (oldRelationHandler != null) {
            commandBuilder.buildFieldAnnotationRemoveCommand(getContext(), getName(), getDataObject(), getObjectField(), oldRelationHandler.getClassName()).execute();
        }
        newRelation = RelationshipAnnotationValueHandler.createAnnotation(newRelationType, newCascadeTypes, newFetchMode, newOptional, newMappedBy, newOrphanRemoval, getContext().getAnnotationDefinitions());
        if (newRelation != null) {
            getObjectField().addAnnotation(newRelation);
            commandBuilder.buildFieldAnnotationAddCommand(getContext(), getName(), getDataObject(), getObjectField(), newRelation).execute();
        }
    }
}
Also used : FetchMode(org.kie.workbench.common.screens.datamodeller.model.jpadomain.FetchMode) RelationType(org.kie.workbench.common.screens.datamodeller.model.jpadomain.RelationType) CascadeType(org.kie.workbench.common.screens.datamodeller.model.jpadomain.CascadeType) RelationshipAnnotationValueHandler(org.kie.workbench.common.screens.datamodeller.client.handlers.jpadomain.util.RelationshipAnnotationValueHandler) ArrayList(java.util.ArrayList) List(java.util.List) Annotation(org.kie.workbench.common.services.datamodeller.core.Annotation)

Example 3 with FetchMode

use of org.kie.workbench.common.screens.datamodeller.model.jpadomain.FetchMode in project kie-wb-common by kiegroup.

the class RelationshipEditionDialogTest method testShow.

@Test
public void testShow() {
    RelationType relationTypeValue = RelationType.ONE_TO_MANY;
    List<CascadeType> cascadeTypeValue = Arrays.asList(CascadeType.DETACH, CascadeType.MERGE);
    FetchMode fetchModeValue = FetchMode.EAGER;
    Boolean optionalValue = Boolean.TRUE;
    String mappedByValue = "mappedByValue";
    Boolean orphanRemovalValue = Boolean.FALSE;
    when(fieldInfo.getCurrentValue(RelationshipAnnotationValueHandler.RELATION_TYPE)).thenReturn(relationTypeValue);
    when(fieldInfo.getCurrentValue(RelationshipAnnotationValueHandler.CASCADE)).thenReturn(cascadeTypeValue);
    when(fieldInfo.getCurrentValue(RelationshipAnnotationValueHandler.FETCH)).thenReturn(fetchModeValue);
    when(fieldInfo.getCurrentValue(RelationshipAnnotationValueHandler.OPTIONAL)).thenReturn(optionalValue);
    when(fieldInfo.getCurrentValue(RelationshipAnnotationValueHandler.MAPPED_BY)).thenReturn(mappedByValue);
    when(fieldInfo.getCurrentValue(RelationshipAnnotationValueHandler.ORPHAN_REMOVAL)).thenReturn(orphanRemovalValue);
    when(fieldInfo.isDisabled()).thenReturn(false);
    dialog.setProperty(fieldInfo);
    dialog.show();
    verify(view).setRelationType(relationTypeValue.name());
    verifyRelationDependentFields(relationTypeValue);
    verifyCascadeTypesWhereSet(cascadeTypeValue);
    verify(view).setFetchMode(fetchModeValue.name());
    verify(view).setOptional(optionalValue);
    verify(view).setMappedBy(mappedByValue);
    verify(view).setOrphanRemoval(orphanRemovalValue);
    verify(view).setEnabled(!fieldInfo.isDisabled());
    verify(view).show();
}
Also used : FetchMode(org.kie.workbench.common.screens.datamodeller.model.jpadomain.FetchMode) RelationType(org.kie.workbench.common.screens.datamodeller.model.jpadomain.RelationType) CascadeType(org.kie.workbench.common.screens.datamodeller.model.jpadomain.CascadeType) ArgumentMatchers.anyString(org.mockito.ArgumentMatchers.anyString) ArgumentMatchers.anyBoolean(org.mockito.ArgumentMatchers.anyBoolean) Test(org.junit.Test)

Aggregations

CascadeType (org.kie.workbench.common.screens.datamodeller.model.jpadomain.CascadeType)3 FetchMode (org.kie.workbench.common.screens.datamodeller.model.jpadomain.FetchMode)3 RelationType (org.kie.workbench.common.screens.datamodeller.model.jpadomain.RelationType)3 ArrayList (java.util.ArrayList)1 List (java.util.List)1 Test (org.junit.Test)1 RelationshipAnnotationValueHandler (org.kie.workbench.common.screens.datamodeller.client.handlers.jpadomain.util.RelationshipAnnotationValueHandler)1 DataModelerPropertyEditorFieldInfo (org.kie.workbench.common.screens.datamodeller.client.model.DataModelerPropertyEditorFieldInfo)1 Annotation (org.kie.workbench.common.services.datamodeller.core.Annotation)1 ArgumentMatchers.anyBoolean (org.mockito.ArgumentMatchers.anyBoolean)1 ArgumentMatchers.anyString (org.mockito.ArgumentMatchers.anyString)1