CtrlK
BlogDocsLog inGet started
Tessl Logo

tessl/maven-com-liferay--com-liferay-dynamic-data-mapping-api

Liferay Dynamic Data Mapping API provides comprehensive APIs for creating, managing, and processing dynamic forms and data structures within Liferay Portal.

Pending
Overview
Eval results
Files

integration-extensions.mddocs/

Integration & Extensions

Info framework integration, WebDAV support, utilities, comparators, and extensibility APIs.

Capabilities

Info Framework Integration

interface DDMFormValuesInfoFieldValuesProvider<T> {
    InfoFieldValue<Object> getInfoFieldValue(T model, String fieldName, Locale locale);
    List<InfoFieldValue<Object>> getInfoFieldValues(T model, Locale locale);
}

interface DDMStructureInfoItemFieldSetProvider {
    InfoFieldSet getInfoFieldSet(String itemClassName, long itemClassPK, long structureId);
}

interface DDMFormFieldInfoFieldConverter {
    InfoField convert(DDMFormField ddmFormField, Locale locale);
}

WebDAV Support

interface DDMWebDAVStorage extends WebDAVStorage {
    Resource getResource(WebDAVRequest webDAVRequest) throws WebDAVException;
    boolean isSupportsClassTwo();
}

Utility Classes

class DDMFormFactory {
    static DDMForm create(Class<?> clazz);
    static DDMForm create(Class<?> clazz, Locale locale);
}

class DDMFormInstanceFactory {
    DDMFormInstance create(DDMStructure structure, DDMFormInstanceSettings settings);
}

class DDMBeanTranslator {
    Object translate(Object bean, Class<?> targetClass);
}

Comparators

class DDMStructureNameComparator extends OrderByComparator<DDMStructure> {
    DDMStructureNameComparator(boolean ascending);
    int compare(DDMStructure structure1, DDMStructure structure2);
}

class DDMTemplateNameComparator extends OrderByComparator<DDMTemplate> {
    DDMTemplateNameComparator(boolean ascending);
    int compare(DDMTemplate template1, DDMTemplate template2);
}

class DDMFormInstanceNameComparator extends OrderByComparator<DDMFormInstance> {
    DDMFormInstanceNameComparator(boolean ascending);
    int compare(DDMFormInstance formInstance1, DDMFormInstance formInstance2);
}

Usage Examples

Using Utilities and Comparators

@Component
public class UtilityExample {
    
    @Reference
    private DDMStructureLocalService structureLocalService;
    
    public List<DDMStructure> getSortedStructures(long groupId) {
        List<DDMStructure> structures = structureLocalService.getStructures(groupId);
        
        // Sort structures by name
        structures.sort(new DDMStructureNameComparator(true));
        
        return structures;
    }
    
    public DDMForm createFormFromAnnotation(Class<?> annotatedClass) {
        // Create DDM form from annotation
        return DDMFormFactory.create(annotatedClass, Locale.US);
    }
}

Install with Tessl CLI

npx tessl i tessl/maven-com-liferay--com-liferay-dynamic-data-mapping-api

docs

data-providers.md

expressions.md

form-management.md

index.md

integration-extensions.md

models-services.md

security-validation.md

storage-io.md

templates.md

tile.json