use of com.enonic.xp.schema.xdata.XDatas in project xp by enonic.
the class ImageContentProcessor method processUpdate.
@Override
public ProcessUpdateResult processUpdate(final ProcessUpdateParams params) {
final CreateAttachments createAttachments = params.getCreateAttachments();
final MediaInfo mediaInfo = params.getMediaInfo();
final CreateAttachment sourceAttachment = createAttachments == null ? null : createAttachments.first();
final ContentEditor editor;
if (mediaInfo != null) {
editor = editable -> {
final Map<XDataName, ExtraData> extraDatas = editable.extraDatas.stream().collect(Collectors.toMap(ExtraData::getName, o -> o));
final XDatas contentXDatas = getXDatas(params.getContentType().getName());
extractMetadata(mediaInfo, contentXDatas, sourceAttachment).forEach(extraData -> extraDatas.put(extraData.getName(), extraData));
editable.extraDatas = ExtraDatas.create().addAll(extraDatas.values()).build();
};
} else {
editor = editable -> {
if (!params.getContentType().getName().isDescendantOfMedia()) {
return;
}
editable.extraDatas = updateImageMetadata(editable);
};
}
return new ProcessUpdateResult(createAttachments, editor);
}
use of com.enonic.xp.schema.xdata.XDatas in project xp by enonic.
the class XDataConfigProcessorTest method processForms.
private PatternIndexConfigDocument processForms(final Form... forms) {
final XDatas.Builder xDatasBuilder = XDatas.create();
for (int i = 0; i < forms.length; i++) {
xDatasBuilder.add(XData.create().form(forms[i]).name(XDataName.from("appName:localName" + i)).build());
}
final XDatas xDatas = xDatasBuilder.build();
final ContentType contentType = ContentType.create().superType(ContentTypeName.folder()).xData(XDataNames.from(xDatas.getNames())).name("contentType").build();
Mockito.when(contentTypeService.getByName(new GetContentTypeParams().contentTypeName(contentTypeName))).thenReturn(contentType);
Mockito.when(xDataService.getFromContentType(contentType)).thenReturn(xDatasBuilder.build());
final XDataConfigProcessor configProcessor = new XDataConfigProcessor(xDatas);
return configProcessor.processDocument(PatternIndexConfigDocument.create()).build();
}
use of com.enonic.xp.schema.xdata.XDatas in project xp by enonic.
the class XDataServiceImplTest method testGetByNames.
@Test
public void testGetByNames() {
XDatas xDatas = service.getByNames(XDataNames.from(MediaInfo.GPS_INFO_METADATA_NAME));
assertEquals(1, xDatas.getSize());
xDatas = service.getByNames(XDataNames.from(MediaInfo.GPS_INFO_METADATA_NAME, MediaInfo.IMAGE_INFO_METADATA_NAME));
assertEquals(2, xDatas.getSize());
xDatas = service.getByNames(XDataNames.from(MediaInfo.GPS_INFO_METADATA_NAME, MediaInfo.IMAGE_INFO_METADATA_NAME, MediaInfo.CAMERA_INFO_METADATA_NAME));
assertEquals(3, xDatas.getSize());
}
use of com.enonic.xp.schema.xdata.XDatas in project xp by enonic.
the class XDataServiceImplTest method testGetByContentType.
@Test
public void testGetByContentType() {
initializeApps();
final ContentType contentType = ContentType.create().superType(ContentTypeName.structured()).name("myapp2:address").xData(XDataNames.from("myapp2:address", "myapp2:address1")).build();
final XDatas xDatas = service.getFromContentType(contentType);
assertNotNull(xDatas);
assertEquals(1, xDatas.getSize());
}
use of com.enonic.xp.schema.xdata.XDatas in project xp by enonic.
the class XDataServiceImplTest method testApplications.
@Test
public void testApplications() {
initializeApps();
final XDatas types1 = this.service.getAll();
assertNotNull(types1);
assertEquals(9, types1.getSize());
final XDatas types2 = this.service.getByApplication(ApplicationKey.from("myapp1"));
assertNotNull(types2);
assertEquals(2, types2.getSize());
final XDatas types3 = this.service.getByApplication(ApplicationKey.from("myapp2"));
assertNotNull(types3);
assertEquals(4, types3.getSize());
final XData xData = service.getByName(XDataName.from("myapp2:xdata1"));
assertNotNull(xData);
}
Aggregations