Search in sources :

Example 36 with AttributeInterface

use of com.agiletec.aps.system.common.entity.model.attribute.AttributeInterface in project entando-core by entando.

the class TestValidateResourceAttribute method testValidate_CompositeElement.

protected void testValidate_CompositeElement(String elementName, String testResourceId) throws Throwable {
    try {
        String contentOnSessionMarker = this.executeCreateNewContent();
        Content content = this.getContentOnEdit(contentOnSessionMarker);
        AttributeTracer tracerIT = this.getTracer();
        CompositeAttribute compositeAttribute = (CompositeAttribute) content.getAttribute("Composite");
        AttributeInterface attribute = compositeAttribute.getAttribute(elementName);
        String formFieldPrefix = "Composite:" + attribute.getType() + ":";
        tracerIT.setCompositeElement(true);
        tracerIT.setParentAttribute(compositeAttribute);
        String formITFieldName = tracerIT.getFormFieldName(attribute);
        assertEquals(formFieldPrefix + "it_Composite_" + elementName, formITFieldName);
        this.initSaveContentAction(contentOnSessionMarker);
        this.executeAction(Action.INPUT);
        this.checkFieldErrors(0, formITFieldName);
        this.initSaveContentAction(contentOnSessionMarker);
        this.addParameter(formITFieldName, "itValue");
        this.executeAction(Action.INPUT);
        this.checkFieldErrors(1, formFieldPrefix + "Composite_" + elementName);
        content = this.getContentOnEdit(contentOnSessionMarker);
        compositeAttribute = (CompositeAttribute) content.getAttribute("Composite");
        AbstractResourceAttribute resourceAttribute = (AbstractResourceAttribute) compositeAttribute.getAttribute(elementName);
        ResourceInterface resource = this._resourceManager.loadResource(testResourceId);
        resourceAttribute.setResource(resource, this.getLangManager().getDefaultLang().getCode());
        this.initSaveContentAction(contentOnSessionMarker);
        this.executeAction(Action.INPUT);
        this.checkFieldErrors(0, formFieldPrefix + "Composite_" + elementName);
    } catch (Throwable t) {
        this.deleteTestContent();
        throw t;
    }
}
Also used : AbstractResourceAttribute(com.agiletec.plugins.jacms.aps.system.services.content.model.extraAttribute.AbstractResourceAttribute) AttributeTracer(com.agiletec.aps.system.common.entity.model.AttributeTracer) CompositeAttribute(com.agiletec.aps.system.common.entity.model.attribute.CompositeAttribute) Content(com.agiletec.plugins.jacms.aps.system.services.content.model.Content) ResourceInterface(com.agiletec.plugins.jacms.aps.system.services.resource.model.ResourceInterface) AttributeInterface(com.agiletec.aps.system.common.entity.model.attribute.AttributeInterface)

Example 37 with AttributeInterface

use of com.agiletec.aps.system.common.entity.model.attribute.AttributeInterface in project entando-core by entando.

the class TestValidateResourceAttribute method testValidate_MonoListElement.

protected void testValidate_MonoListElement(String mlAttributeName) throws Throwable {
    try {
        String contentOnSessionMarker = this.executeCreateNewContent();
        Content content = this.getContentOnEdit(contentOnSessionMarker);
        AttributeTracer tracer = this.getTracer();
        MonoListAttribute monolistAttribute = (MonoListAttribute) content.getAttribute(mlAttributeName);
        AttributeInterface newResourceAttribute = monolistAttribute.addAttribute();
        String monolistElementFieldPrefix = "Monolist:" + newResourceAttribute.getType() + ":";
        tracer.setListIndex(monolistAttribute.getAttributes().size() - 1);
        tracer.setListLang(this.getLangManager().getDefaultLang());
        tracer.setMonoListElement(true);
        tracer.setParentAttribute(monolistAttribute);
        String monolistElementName = tracer.getMonolistElementFieldName(newResourceAttribute);
        assertEquals(monolistElementFieldPrefix + mlAttributeName + "_0", monolistElementName);
        String formFieldName = tracer.getFormFieldName(newResourceAttribute);
        assertEquals(monolistElementFieldPrefix + "it_" + mlAttributeName + "_0", formFieldName);
        this.initSaveContentAction(contentOnSessionMarker);
        this.executeAction(Action.INPUT);
        this.checkFieldErrors(1, monolistElementName);
        this.initSaveContentAction(contentOnSessionMarker);
        this.addParameter(formFieldName, "resourceDescrMonolElement0Value");
        this.executeAction(Action.INPUT);
        this.checkFieldErrors(1, monolistElementName);
        content = this.getContentOnEdit(contentOnSessionMarker);
        monolistAttribute = (MonoListAttribute) content.getAttribute(mlAttributeName);
        AbstractResourceAttribute resourceAttribute = (AbstractResourceAttribute) monolistAttribute.getAttribute(0);
        ResourceInterface resource = this._resourceManager.loadResource("7");
        resourceAttribute.setResource(resource, this.getLangManager().getDefaultLang().getCode());
        this.initSaveContentAction(contentOnSessionMarker);
        this.executeAction(Action.INPUT);
        this.checkFieldErrors(0, monolistElementName);
        AttributeInterface attribute2 = monolistAttribute.addAttribute();
        tracer.setListIndex(monolistAttribute.getAttributes().size() - 1);
        String formFieldName2 = tracer.getFormFieldName(attribute2);
        assertEquals(monolistElementFieldPrefix + "it_" + mlAttributeName + "_1", formFieldName2);
        String monolistElementName2 = tracer.getMonolistElementFieldName(attribute2);
        assertEquals(monolistElementFieldPrefix + mlAttributeName + "_1", monolistElementName2);
        this.initSaveContentAction(contentOnSessionMarker);
        this.executeAction(Action.INPUT);
        this.checkFieldErrors(1, monolistElementName2);
    } catch (Throwable t) {
        this.deleteTestContent();
        throw t;
    }
}
Also used : AbstractResourceAttribute(com.agiletec.plugins.jacms.aps.system.services.content.model.extraAttribute.AbstractResourceAttribute) MonoListAttribute(com.agiletec.aps.system.common.entity.model.attribute.MonoListAttribute) AttributeTracer(com.agiletec.aps.system.common.entity.model.AttributeTracer) Content(com.agiletec.plugins.jacms.aps.system.services.content.model.Content) ResourceInterface(com.agiletec.plugins.jacms.aps.system.services.resource.model.ResourceInterface) AttributeInterface(com.agiletec.aps.system.common.entity.model.attribute.AttributeInterface)

Example 38 with AttributeInterface

use of com.agiletec.aps.system.common.entity.model.attribute.AttributeInterface in project entando-core by entando.

the class TestValidateTextAttribute method testValidate_MonoListElement_2.

public void testValidate_MonoListElement_2() throws Throwable {
    try {
        String contentOnSessionMarker = this.executeCreateNewContent();
        Content content = this.getContentOnEdit(contentOnSessionMarker);
        AttributeTracer tracerIT = this.getTracer();
        MonoListAttribute monolistAttribute = (MonoListAttribute) content.getAttribute("MonoLText");
        AttributeInterface textAttribute = monolistAttribute.addAttribute();
        String formFieldPrefix = "Monolist:" + textAttribute.getType() + ":";
        tracerIT.setListIndex(monolistAttribute.getAttributes().size() - 1);
        tracerIT.setListLang(this.getLangManager().getDefaultLang());
        tracerIT.setMonoListElement(true);
        tracerIT.setParentAttribute(monolistAttribute);
        AttributeTracer tracerEN = tracerIT.clone();
        tracerEN.setLang(this.getLangManager().getLang("en"));
        String monolistElementName = tracerIT.getMonolistElementFieldName(textAttribute);
        assertEquals(formFieldPrefix + "MonoLText_0", monolistElementName);
        String formITFieldName = tracerIT.getFormFieldName(textAttribute);
        assertEquals(formFieldPrefix + "it_MonoLText_0", formITFieldName);
        String formENFieldName = tracerEN.getFormFieldName(textAttribute);
        assertEquals(formFieldPrefix + "en_MonoLText_0", formENFieldName);
        this.initSaveContentAction(contentOnSessionMarker);
        this.executeAction(Action.INPUT);
        this.checkFieldErrors(1, monolistElementName);
        this.initSaveContentAction(contentOnSessionMarker);
        this.addParameter(formENFieldName, "MonoLMonotElement0ValueEN");
        this.executeAction(Action.INPUT);
        this.checkFieldErrors(1, monolistElementName);
        this.initSaveContentAction(contentOnSessionMarker);
        this.addParameter(formENFieldName, "MonoLMonotElement0ValueEN");
        this.addParameter(formITFieldName, "MonoLMonotElement0ValueIT");
        this.executeAction(Action.INPUT);
        this.checkFieldErrors(0, monolistElementName);
        AttributeInterface attribute2 = monolistAttribute.addAttribute();
        tracerIT.setListIndex(monolistAttribute.getAttributes().size() - 1);
        tracerEN.setListIndex(monolistAttribute.getAttributes().size() - 1);
        String formITFieldName2 = tracerIT.getFormFieldName(attribute2);
        assertEquals(formFieldPrefix + "it_MonoLText_1", formITFieldName2);
        String formENFieldName2 = tracerEN.getFormFieldName(attribute2);
        assertEquals(formFieldPrefix + "en_MonoLText_1", formENFieldName2);
        String monolistElementName2 = tracerIT.getMonolistElementFieldName(attribute2);
        assertEquals(formFieldPrefix + "MonoLText_1", monolistElementName2);
        this.initSaveContentAction(contentOnSessionMarker);
        this.addParameter(formENFieldName2, "MonoLMonotElement1ValueEN");
        this.executeAction(Action.INPUT);
        this.checkFieldErrors(1, monolistElementName2);
        this.initSaveContentAction(contentOnSessionMarker);
        this.addParameter(formENFieldName2, "MonoLMonotElement1ValueEN");
        this.addParameter(formITFieldName2, "MonoLMonotElement1ValueIT");
        this.executeAction(Action.INPUT);
        this.checkFieldErrors(0, monolistElementName2);
    } catch (Throwable t) {
        this.deleteTestContent();
        throw t;
    }
}
Also used : MonoListAttribute(com.agiletec.aps.system.common.entity.model.attribute.MonoListAttribute) AttributeTracer(com.agiletec.aps.system.common.entity.model.AttributeTracer) Content(com.agiletec.plugins.jacms.aps.system.services.content.model.Content) AttributeInterface(com.agiletec.aps.system.common.entity.model.attribute.AttributeInterface)

Example 39 with AttributeInterface

use of com.agiletec.aps.system.common.entity.model.attribute.AttributeInterface in project entando-core by entando.

the class AbstractEntityDAO method addEntitySearchRecord.

protected void addEntitySearchRecord(String id, IApsEntity entity, PreparedStatement stat) throws Throwable {
    EntityAttributeIterator attributeIter = new EntityAttributeIterator(entity);
    while (attributeIter.hasNext()) {
        AttributeInterface currAttribute = (AttributeInterface) attributeIter.next();
        List<AttributeSearchInfo> infos = currAttribute.getSearchInfos(this.getLangManager().getLangs());
        if (currAttribute.isSearchable() && null != infos) {
            for (int i = 0; i < infos.size(); i++) {
                AttributeSearchInfo searchInfo = infos.get(i);
                stat.setString(1, id);
                stat.setString(2, currAttribute.getName());
                stat.setString(3, searchInfo.getString());
                if (searchInfo.getDate() != null) {
                    stat.setTimestamp(4, new java.sql.Timestamp(searchInfo.getDate().getTime()));
                } else {
                    stat.setDate(4, null);
                }
                stat.setBigDecimal(5, searchInfo.getBigDecimal());
                stat.setString(6, searchInfo.getLangCode());
                stat.addBatch();
                stat.clearParameters();
            }
        }
    }
    stat.executeBatch();
}
Also used : AttributeSearchInfo(com.agiletec.aps.system.common.entity.model.AttributeSearchInfo) AttributeInterface(com.agiletec.aps.system.common.entity.model.attribute.AttributeInterface) EntityAttributeIterator(com.agiletec.aps.system.common.util.EntityAttributeIterator)

Example 40 with AttributeInterface

use of com.agiletec.aps.system.common.entity.model.attribute.AttributeInterface in project entando-core by entando.

the class ApsEntityManager method verifyReloadingNeeded.

protected void verifyReloadingNeeded(IApsEntity oldEntityType, IApsEntity newEntityType) {
    if (this.getStatus(newEntityType.getTypeCode()) == STATUS_NEED_TO_RELOAD_REFERENCES) {
        return;
    }
    List<AttributeInterface> attributes = oldEntityType.getAttributeList();
    for (int i = 0; i < attributes.size(); i++) {
        AttributeInterface oldAttribute = attributes.get(i);
        AttributeInterface newAttribute = (AttributeInterface) newEntityType.getAttribute(oldAttribute.getName());
        if ((oldAttribute.isSearchable() && null == newAttribute) || (null != newAttribute && oldAttribute.isSearchable() != newAttribute.isSearchable())) {
            this.setStatus(IEntityManager.STATUS_NEED_TO_RELOAD_REFERENCES, oldEntityType.getTypeCode());
            return;
        }
        String[] oldRoles = (null != oldAttribute.getRoles()) ? oldAttribute.getRoles() : new String[0];
        String[] newRoles = (null != newAttribute && null != newAttribute.getRoles()) ? newAttribute.getRoles() : new String[0];
        if (newRoles.length == 0 && oldRoles.length == 0) {
            continue;
        } else if (newRoles.length != oldRoles.length) {
            this.setStatus(IEntityManager.STATUS_NEED_TO_RELOAD_REFERENCES, oldEntityType.getTypeCode());
            return;
        } else {
            List<String> oldRolesList = Arrays.asList(oldRoles);
            List<String> newRolesList = Arrays.asList(newRoles);
            for (int j = 0; j < newRolesList.size(); j++) {
                String roleName = newRolesList.get(j);
                if (!oldRolesList.contains(roleName)) {
                    this.setStatus(IEntityManager.STATUS_NEED_TO_RELOAD_REFERENCES, oldEntityType.getTypeCode());
                    return;
                }
            }
        }
    }
}
Also used : ArrayList(java.util.ArrayList) List(java.util.List) AttributeInterface(com.agiletec.aps.system.common.entity.model.attribute.AttributeInterface)

Aggregations

AttributeInterface (com.agiletec.aps.system.common.entity.model.attribute.AttributeInterface)147 Content (com.agiletec.plugins.jacms.aps.system.services.content.model.Content)55 AttributeTracer (com.agiletec.aps.system.common.entity.model.AttributeTracer)38 MonoListAttribute (com.agiletec.aps.system.common.entity.model.attribute.MonoListAttribute)37 CompositeAttribute (com.agiletec.aps.system.common.entity.model.attribute.CompositeAttribute)27 ApsSystemException (com.agiletec.aps.system.exception.ApsSystemException)22 ArrayList (java.util.ArrayList)18 IApsEntity (com.agiletec.aps.system.common.entity.model.IApsEntity)17 ITextAttribute (com.agiletec.aps.system.common.entity.model.attribute.ITextAttribute)16 DateAttribute (com.agiletec.aps.system.common.entity.model.attribute.DateAttribute)14 NumberAttribute (com.agiletec.aps.system.common.entity.model.attribute.NumberAttribute)12 ListAttribute (com.agiletec.aps.system.common.entity.model.attribute.ListAttribute)11 BooleanAttribute (com.agiletec.aps.system.common.entity.model.attribute.BooleanAttribute)10 IndexableAttributeInterface (com.agiletec.aps.system.common.searchengine.IndexableAttributeInterface)10 HttpSession (javax.servlet.http.HttpSession)10 EntityAttributeIterator (com.agiletec.aps.system.common.util.EntityAttributeIterator)9 IEntityManager (com.agiletec.aps.system.common.entity.IEntityManager)7 MonoTextAttribute (com.agiletec.aps.system.common.entity.model.attribute.MonoTextAttribute)7 Lang (com.agiletec.aps.system.services.lang.Lang)7 Date (java.util.Date)7