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

storage-io.mddocs/

Storage & I/O Framework

Pluggable storage abstraction for form data with support for JSON storage, import/export operations, and custom storage adapters.

Capabilities

Storage Adapter Interface

interface DDMStorageAdapter {
    long create(DDMStorageAdapterSaveRequest ddmStorageAdapterSaveRequest) throws StorageException;
    void deleteByClass(long ddmStructureId) throws StorageException;
    void deleteByClassPK(long ddmStructureId, String ddmStructureKey, long classPK) throws StorageException;
    DDMStorageAdapterGetResponse get(DDMStorageAdapterGetRequest ddmStorageAdapterGetRequest) throws StorageException;
    void update(DDMStorageAdapterSaveRequest ddmStorageAdapterSaveRequest) throws StorageException;
}

class DDMStorageAdapterSaveRequest {
    long getClassPK();
    DDMFormValues getDDMFormValues();
    long getDDMStructureId();
    ServiceContext getServiceContext();
}

class DDMStorageAdapterGetResponse {
    DDMFormValues getDDMFormValues();
}

I/O Operations

interface DDMFormInstanceRecordExporter {
    byte[] export(long formInstanceId, int status) throws PortalException;
}

interface DDMFormValuesDeserializer {
    DDMFormValues deserialize(String content);
}

interface DDMFormValuesSerializer {
    String serialize(DDMFormValues ddmFormValues);
}

Usage Examples

Custom Storage Implementation

@Component
public class CustomStorageExample implements DDMStorageAdapter {
    
    @Override
    public long create(DDMStorageAdapterSaveRequest request) throws StorageException {
        DDMFormValues formValues = request.getDDMFormValues();
        // Implement custom storage logic
        return storeFormData(formValues);
    }
    
    @Override
    public DDMStorageAdapterGetResponse get(DDMStorageAdapterGetRequest request) throws StorageException {
        long classPK = request.getClassPK();
        DDMFormValues formValues = retrieveFormData(classPK);
        
        DDMStorageAdapterGetResponse response = new DDMStorageAdapterGetResponse();
        response.setDDMFormValues(formValues);
        return response;
    }
    
    private long storeFormData(DDMFormValues formValues) {
        // Custom storage implementation
        return System.currentTimeMillis(); // Return generated ID
    }
    
    private DDMFormValues retrieveFormData(long classPK) {
        // Custom retrieval implementation
        return new DDMFormValues();
    }
}

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