Liferay Dynamic Data Mapping API provides comprehensive APIs for creating, managing, and processing dynamic forms and data structures within Liferay Portal.
—
Info framework integration, WebDAV support, utilities, comparators, and extensibility APIs.
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);
}interface DDMWebDAVStorage extends WebDAVStorage {
Resource getResource(WebDAVRequest webDAVRequest) throws WebDAVException;
boolean isSupportsClassTwo();
}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);
}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);
}@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