Search in sources :

Example 1 with AdvancedSettingsDto

use of org.motechproject.mds.dto.AdvancedSettingsDto in project motech by motech.

the class EntityControllerTest method shouldGetAdvancedSettingsForEntity.

@Test
public void shouldGetAdvancedSettingsForEntity() throws Exception {
    AdvancedSettingsDto expected = new AdvancedSettingsDto();
    RestOptionsDto restOptions = new RestOptionsDto();
    List<String> fields = new LinkedList<>();
    fields.add("field1");
    fields.add("field2");
    restOptions.setCreate(true);
    restOptions.setFieldNames(fields);
    expected.setId(1L);
    expected.setEntityId(7L);
    expected.setRestOptions(restOptions);
    controller.perform(get("/entities/7/advanced")).andExpect(status().isOk()).andExpect(content().string(new ObjectMapper().writeValueAsString(expected)));
}
Also used : AdvancedSettingsDto(org.motechproject.mds.dto.AdvancedSettingsDto) Matchers.anyString(org.mockito.Matchers.anyString) RestOptionsDto(org.motechproject.mds.dto.RestOptionsDto) LinkedList(java.util.LinkedList) ObjectMapper(org.codehaus.jackson.map.ObjectMapper) Test(org.junit.Test)

Example 2 with AdvancedSettingsDto

use of org.motechproject.mds.dto.AdvancedSettingsDto in project motech by motech.

the class EntityProcessor method process.

@Override
protected void process(AnnotatedElement element) {
    BundleHeaders bundleHeaders = new BundleHeaders(getBundle());
    EntityProcessorOutput entityProcessorOutput = new EntityProcessorOutput();
    Class clazz = (Class) element;
    Class<Entity> ann = ReflectionsUtil.getAnnotationClass(clazz, Entity.class);
    Annotation annotation = AnnotationUtils.findAnnotation(clazz, ann);
    if (null != annotation) {
        String className = clazz.getName();
        String name = ReflectionsUtil.getAnnotationValue(annotation, NAME, ClassName.getSimpleName(className));
        String module = ReflectionsUtil.getAnnotationValue(annotation, MODULE, bundleHeaders.getName(), bundleHeaders.getSymbolicName());
        String bundleSymbolicName = getBundle().getSymbolicName();
        String namespace = ReflectionsUtil.getAnnotationValue(annotation, NAMESPACE);
        String tableName = ReflectionsUtil.getAnnotationValue(annotation, TABLE_NAME);
        boolean recordHistory = Boolean.parseBoolean(ReflectionsUtil.getAnnotationValue(annotation, HISTORY));
        boolean nonEditable = Boolean.parseBoolean(ReflectionsUtil.getAnnotationValue(annotation, NON_EDITABLE));
        EntityDto entity = getSchemaHolder().getEntityByClassName(className);
        RestOptionsDto restOptions = new RestOptionsDto();
        TrackingDto tracking = new TrackingDto();
        Collection<FieldDto> fields;
        if (entity == null) {
            LOGGER.debug("Creating DDE for {}", className);
            entity = new EntityDto(null, className, name, module, namespace, tableName, recordHistory, SecurityMode.EVERYONE, null, null, null, clazz.getSuperclass().getName(), Modifier.isAbstract(clazz.getModifiers()), false, bundleSymbolicName);
        } else {
            LOGGER.debug("DDE for {} already exists, updating if necessary", className);
            AdvancedSettingsDto advancedSettings = getSchemaHolder().getAdvancedSettings(className);
            restOptions = advancedSettings.getRestOptions();
            tracking = advancedSettings.getTracking();
            entity.setBundleSymbolicName(bundleSymbolicName);
            entity.setModule(module);
        }
        if (!tracking.isModifiedByUser()) {
            tracking.setRecordHistory(recordHistory);
            tracking.setNonEditable(nonEditable);
        }
        setSecurityOptions(element, entity);
        // per entity maxFetchDepth that will be passed to the Persistence Manager
        setMaxFetchDepth(entity, annotation);
        entityProcessorOutput.setEntityProcessingResult(entity);
        fields = findFields(clazz, entity);
        String versionField = getVersionFieldName(clazz);
        addVersionMetadata(fields, versionField);
        addDefaultFields(entity, fields);
        restOptions = processRestOperations(clazz, restOptions);
        restOptions = findRestFields(clazz, restOptions, fields);
        updateUiChangedFields(fields, className);
        updateResults(entityProcessorOutput, clazz, fields, restOptions, tracking, versionField);
        add(entity);
        processingResult.add(entityProcessorOutput);
        MotechClassPool.registerDDE(entity.getClassName());
    } else {
        LOGGER.debug("Did not find Entity annotation in class: {}", clazz.getName());
    }
}
Also used : MdsEntity(org.motechproject.mds.domain.MdsEntity) MdsVersionedEntity(org.motechproject.mds.domain.MdsVersionedEntity) Entity(org.motechproject.mds.annotations.Entity) BundleHeaders(org.motechproject.osgi.web.util.BundleHeaders) Annotation(java.lang.annotation.Annotation) TrackingDto(org.motechproject.mds.dto.TrackingDto) EntityDto(org.motechproject.mds.dto.EntityDto) AdvancedSettingsDto(org.motechproject.mds.dto.AdvancedSettingsDto) RestOptionsDto(org.motechproject.mds.dto.RestOptionsDto) FieldDto(org.motechproject.mds.dto.FieldDto)

Example 3 with AdvancedSettingsDto

use of org.motechproject.mds.dto.AdvancedSettingsDto in project motech by motech.

the class ExampleData method getPurgeAdvanced.

public AdvancedSettingsDto getPurgeAdvanced(Long entityId) {
    AdvancedSettingsDto found = null;
    for (AdvancedSettingsDto item : advancedSettings) {
        if (item.getEntityId().equals(entityId)) {
            found = item;
            break;
        }
    }
    if (null == found) {
        found = new AdvancedSettingsDto();
        found.setId(advancedSettings.size() + 1L);
        found.setEntityId(entityId);
        advancedSettings.add(found);
    }
    return found;
}
Also used : AdvancedSettingsDto(org.motechproject.mds.dto.AdvancedSettingsDto)

Example 4 with AdvancedSettingsDto

use of org.motechproject.mds.dto.AdvancedSettingsDto in project motech by motech.

the class Entity method advancedSettingsDto.

@NotPersistent
public AdvancedSettingsDto advancedSettingsDto() {
    AdvancedSettingsDto advancedSettingsDto = new AdvancedSettingsDto();
    RestOptionsDto restDto;
    if (null == restOptions) {
        restDto = new RestOptions(this).toDto();
    } else {
        restDto = restOptions.toDto();
    }
    List<LookupDto> indexes = new ArrayList<>();
    for (Lookup lookup : getLookups()) {
        indexes.add(lookup.toDto());
    }
    Tracking trackingMapping = getTracking();
    TrackingDto trackingDto = (trackingMapping == null) ? new TrackingDto() : trackingMapping.toDto();
    advancedSettingsDto.setIndexes(indexes);
    advancedSettingsDto.setEntityId(getId());
    advancedSettingsDto.setBrowsing(getBrowsingSettings().toDto());
    advancedSettingsDto.setRestOptions(restDto);
    advancedSettingsDto.setTracking(trackingDto);
    return advancedSettingsDto;
}
Also used : LookupDto(org.motechproject.mds.dto.LookupDto) ArrayList(java.util.ArrayList) AdvancedSettingsDto(org.motechproject.mds.dto.AdvancedSettingsDto) RestOptionsDto(org.motechproject.mds.dto.RestOptionsDto) TrackingDto(org.motechproject.mds.dto.TrackingDto) NotPersistent(javax.jdo.annotations.NotPersistent)

Example 5 with AdvancedSettingsDto

use of org.motechproject.mds.dto.AdvancedSettingsDto in project motech by motech.

the class EntityServiceImpl method editAdvancedForDraft.

private void editAdvancedForDraft(EntityDraft draft, DraftData draftData) {
    AdvancedSettingsDto advancedDto = draft.advancedSettingsDto();
    String path = draftData.getPath();
    List value = (List) draftData.getValue(DraftData.VALUE);
    entityValidator.validateAdvancedSettingsEdit(draft, path);
    FieldHelper.setField(advancedDto, path, value);
    setLookupMethodNames(advancedDto);
    draft.updateAdvancedSetting(advancedDto);
    allEntityDrafts.update(draft);
}
Also used : ArrayList(java.util.ArrayList) List(java.util.List) AdvancedSettingsDto(org.motechproject.mds.dto.AdvancedSettingsDto)

Aggregations

AdvancedSettingsDto (org.motechproject.mds.dto.AdvancedSettingsDto)17 Test (org.junit.Test)7 EntityDto (org.motechproject.mds.dto.EntityDto)7 FieldDto (org.motechproject.mds.dto.FieldDto)7 ArrayList (java.util.ArrayList)5 LookupDto (org.motechproject.mds.dto.LookupDto)5 RestOptionsDto (org.motechproject.mds.dto.RestOptionsDto)5 LookupFieldDto (org.motechproject.mds.dto.LookupFieldDto)4 TrackingDto (org.motechproject.mds.dto.TrackingDto)3 LinkedList (java.util.LinkedList)2 List (java.util.List)2 AnotherSample (org.motechproject.mds.annotations.internal.samples.AnotherSample)2 ReadAccessSample (org.motechproject.mds.annotations.internal.samples.ReadAccessSample)2 MdsEntity (org.motechproject.mds.domain.MdsEntity)2 MdsVersionedEntity (org.motechproject.mds.domain.MdsVersionedEntity)2 SchemaHolder (org.motechproject.mds.dto.SchemaHolder)2 EntityInfo (org.motechproject.mds.entityinfo.EntityInfo)2 FileOutputStream (java.io.FileOutputStream)1 Annotation (java.lang.annotation.Annotation)1 Method (java.lang.reflect.Method)1