DocumentUtil.java

package com.tradecloud.domain.base.utils;

import com.tradecloud.domain.dms.*;

public class DocumentUtil {

    public static void addDocumentsToGroup(DocumentGroup documentGroup) {

        for (DocumentType documentType : documentGroup.getDocumentGroupType().getDocumentTypes()) {

            boolean exists = false;
            for (Document document : documentGroup.getDocumentList()) {
                if (document.getDocumentType().equals(documentType)) {
                    exists = true;
                }
            }

            if (!exists) {
                Document document = new Document();
                document.setDocumentType(documentType);
                document.setDocumentGroup(documentGroup);

                for (PropertyConfig config : documentType.getPropertiesList()) {
                    Property property = new Property();
                    property.setPropertyConfig(config);
                    document.addProperty(property);
                }

                documentGroup.addDocument(document);
            }

        }
    }

    public static void addPropertiesToDocument(Document document) {

        for (PropertyConfig propertyConfig : document.getDocumentType().getPropertiesList()) {

            boolean exists = false;
            for (Property property : document.getPropertiesList()) {
                if (property.getPropertyConfig().equals(propertyConfig)) {
                    exists = true;
                }
            }

            if (!exists) {
                Property prop = new Property();
                prop.setPropertyConfig(propertyConfig);
                document.addProperty(prop);
            }

        }

    }
}