use of com.agiletec.aps.system.common.util.EntityAttributeIterator in project entando-core by entando.
the class DataObjectDAO method addDataObjectRelationsRecord.
/**
* Add a record in the table 'dataobjectrelations' for every resource, page,
* other dataobject, role and category associated to the given dataobject).
*
* @param dataobject The current dataobject.
* @param conn The connection to the database.
* @throws ApsSystemException when connection error are detected.
*/
protected void addDataObjectRelationsRecord(DataObject dataobject, Connection conn) throws ApsSystemException {
PreparedStatement stat = null;
try {
stat = conn.prepareStatement(ADD_DATAOBJECT_REL_RECORD);
this.addCategoryRelationsRecord(dataobject, true, stat);
this.addGroupRelationsRecord(dataobject, stat);
EntityAttributeIterator attributeIter = new EntityAttributeIterator(dataobject);
while (attributeIter.hasNext()) {
AttributeInterface currAttribute = (AttributeInterface) attributeIter.next();
}
stat.executeBatch();
} catch (BatchUpdateException e) {
_logger.error("Error saving record into dataobjectrelations {}", dataobject.getId(), e.getNextException());
throw new RuntimeException("Error saving record into dataobjectrelations " + dataobject.getId(), e.getNextException());
} catch (Throwable t) {
_logger.error("Error saving record into dataobjectrelations {}", dataobject.getId(), t);
throw new RuntimeException("Error saving record into dataobjectrelations " + dataobject.getId(), t);
} finally {
closeDaoResources(null, stat);
}
}
use of com.agiletec.aps.system.common.util.EntityAttributeIterator in project entando-core by entando.
the class TestContentAttributeIterator method testIterator.
public void testIterator() throws ApsSystemException {
Content content = new Content();
AttributeInterface attribute = new MonoTextAttribute();
attribute.setName("temp");
attribute.setDefaultLangCode("it");
attribute.setRenderingLang("it");
attribute.setSearchable(true);
attribute.setType("Monotext");
content.addAttribute(attribute);
EntityAttributeIterator attributeIterator = new EntityAttributeIterator(content);
boolean contains = false;
while (attributeIterator.hasNext()) {
attribute = (AttributeInterface) attributeIterator.next();
contains = attribute.getName().equals("temp");
}
assertTrue(contains);
}
use of com.agiletec.aps.system.common.util.EntityAttributeIterator 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();
}
use of com.agiletec.aps.system.common.util.EntityAttributeIterator in project entando-core by entando.
the class ContentInspectionAction method getReferencedContentsId.
/**
* Return the list of the id of the referenced contents
* @return The list of content id.
*/
public List<String> getReferencedContentsId() {
List<String> referencedContentsId = new ArrayList<String>();
try {
Content content = this.getContent();
if (null == content)
return referencedContentsId;
EntityAttributeIterator attributeIter = new EntityAttributeIterator(content);
while (attributeIter.hasNext()) {
AttributeInterface currAttribute = (AttributeInterface) attributeIter.next();
if (currAttribute instanceof IReferenceableAttribute) {
IReferenceableAttribute cmsAttribute = (IReferenceableAttribute) currAttribute;
List<CmsAttributeReference> refs = cmsAttribute.getReferences(this.getLangs());
for (int scanRefs = 0; scanRefs < refs.size(); scanRefs++) {
CmsAttributeReference ref = refs.get(scanRefs);
String contentId = ref.getRefContent();
if (null == contentId)
continue;
if (!referencedContentsId.contains(contentId))
referencedContentsId.add(contentId);
}
}
}
} catch (Throwable t) {
_logger.error("Error getting referenced contents id by content {}", this.getContentId(), t);
String msg = "Error getting referenced contents id by content " + this.getContentId();
throw new RuntimeException(msg, t);
}
return referencedContentsId;
}
use of com.agiletec.aps.system.common.util.EntityAttributeIterator in project entando-core by entando.
the class ContentInspectionAction method getReferencedPages.
public List<IPage> getReferencedPages() {
List<IPage> referencedPages = new ArrayList<IPage>();
try {
Content content = this.getContent();
if (null == content)
return referencedPages;
EntityAttributeIterator attributeIter = new EntityAttributeIterator(content);
while (attributeIter.hasNext()) {
AttributeInterface currAttribute = (AttributeInterface) attributeIter.next();
if (currAttribute instanceof IReferenceableAttribute) {
IReferenceableAttribute cmsAttribute = (IReferenceableAttribute) currAttribute;
List<CmsAttributeReference> refs = cmsAttribute.getReferences(this.getLangs());
for (int scanRefs = 0; scanRefs < refs.size(); scanRefs++) {
CmsAttributeReference ref = refs.get(scanRefs);
if (null == ref.getRefPage())
continue;
IPage page = this.getPageManager().getOnlinePage(ref.getRefPage());
if (null == page)
continue;
if (!referencedPages.contains(page)) {
referencedPages.add(page);
}
}
}
}
} catch (Throwable t) {
_logger.error("Error getting referenced pages by content {}", this.getContentId(), t);
String msg = "Error getting referenced pages by content " + this.getContentId();
throw new RuntimeException(msg, t);
}
return referencedPages;
}
Aggregations