use of org.purl.dc.elements._1.SimpleLiteral in project fix-orchestra by FIXTradingCommunity.
the class RepositoryCompressor method compress.
private boolean compress(InputStream is, OutputStream os, Predicate<? super MessageType> messagePredicate) {
try {
final Repository inRepository = unmarshal(is);
final Categories categories = inRepository.getCategories();
isCategoryInSection.setCategories(categories.getCategory());
final Repository outRepository = new Repository();
inRepository.copyTo(null, outRepository, AttributeCopyStrategy.INSTANCE);
final ElementOrRefinementContainer metadata = (ElementOrRefinementContainer) inRepository.getMetadata().clone();
final List<JAXBElement<SimpleLiteral>> literals = metadata.getAny();
final ObjectFactory objectFactory = new ObjectFactory();
final SimpleLiteral contributor = new SimpleLiteral();
contributor.getContent().add("RepositoryCompressor");
literals.add(objectFactory.createContributor(contributor));
outRepository.setMetadata(metadata);
if (categories != null) {
outRepository.setCategories((Categories) categories.clone());
}
final Sections sections = inRepository.getSections();
if (sections != null) {
outRepository.setSections((Sections) sections.clone());
}
final Datatypes datatypes = inRepository.getDatatypes();
if (datatypes != null) {
outRepository.setDatatypes((Datatypes) datatypes.clone());
}
final Actors actors = inRepository.getActors();
if (actors != null) {
outRepository.setActors((Actors) actors.clone());
}
final Components components = inRepository.getComponents();
if (components != null) {
final Components inComponents = (Components) components.clone();
componentList = inComponents.getComponent();
}
final Groups groups = inRepository.getGroups();
if (groups != null) {
final Groups inGroups = (Groups) groups.clone();
groupList = inGroups.getGroup();
}
final Messages messages = inRepository.getMessages();
final List<MessageType> messageList;
if (messages != null) {
final Messages inMessages = (Messages) messages.clone();
messageList = inMessages.getMessage();
} else {
messageList = Collections.emptyList();
}
final List<MessageType> filteredMessages = messageList.stream().filter(messagePredicate).collect(Collectors.toList());
filteredMessages.forEach(m -> walk(m.getStructure().getComponentRefOrGroupRefOrFieldRef()));
final List<BigInteger> distinctFieldIds = fieldIdList.stream().distinct().collect(Collectors.toList());
final Fields inFields = (Fields) inRepository.getFields().clone();
final List<FieldType> fieldsWithFlow = inFields.getField().stream().filter(f -> distinctFieldIds.contains(f.getId())).collect(Collectors.toList());
final Fields outFields = new Fields();
outFields.getField().addAll(fieldsWithFlow);
outRepository.setFields(outFields);
final List<String> typeList = fieldsWithFlow.stream().map(FieldType::getType).distinct().collect(Collectors.toList());
final CodeSets inCodeSets = (CodeSets) inRepository.getCodeSets().clone();
final List<CodeSetType> codeSetsWithFlow = inCodeSets.getCodeSet().stream().filter(cs -> typeList.contains(cs.getName())).collect(Collectors.toList());
final CodeSets outCodeSets = new CodeSets();
outCodeSets.getCodeSet().addAll(codeSetsWithFlow);
outRepository.setCodeSets(outCodeSets);
final List<BigInteger> distinctComponentsIds = componentIdList.stream().distinct().collect(Collectors.toList());
final List<ComponentType> componentsWithFlow = componentList.stream().filter(c -> distinctComponentsIds.contains(c.getId())).collect(Collectors.toList());
final Components outComponents = new Components();
outComponents.getComponent().addAll(componentsWithFlow);
outRepository.setComponents(outComponents);
final List<BigInteger> distinctGroupIds = groupIdList.stream().distinct().collect(Collectors.toList());
final List<GroupType> groupWithFlow = groupList.stream().filter(c -> distinctGroupIds.contains(c.getId())).collect(Collectors.toList());
final Groups outGroups = new Groups();
outGroups.getGroup().addAll(groupWithFlow);
outRepository.setGroups(outGroups);
final Messages outMessages = new Messages();
outMessages.getMessage().addAll(filteredMessages);
outRepository.setMessages(outMessages);
marshal(outRepository, os);
return true;
} catch (JAXBException e) {
logger.fatal("RepositoryCompressor failed", e);
return false;
}
}
use of org.purl.dc.elements._1.SimpleLiteral in project ARLAS-server by gisaia.
the class RecordBuilder method addSubject.
public static void addSubject(AbstractRecordType abstractRecordType, String subject) {
SimpleLiteral simpleLiteral = new SimpleLiteral();
simpleLiteral.getContent().add(subject);
switch(abstractRecordType.getClass().getSimpleName()) {
case "SummaryRecordType":
((SummaryRecordType) abstractRecordType).getSubject().add(simpleLiteral);
break;
case "RecordType":
JAXBElement<SimpleLiteral> JAXBElementSubject = dcObjectFactory.createSubject(simpleLiteral);
((RecordType) abstractRecordType).getDCElement().add(JAXBElementSubject);
break;
}
}
use of org.purl.dc.elements._1.SimpleLiteral in project ARLAS-server by gisaia.
the class RecordBuilder method addUrlToWFS.
public static void addUrlToWFS(AbstractRecordType abstractRecordType, String url) {
SimpleLiteral simpleLiteral = new SimpleLiteral();
simpleLiteral.getContent().add(url);
simpleLiteral.setScheme("http://www.opengis.net/wfs/2.0");
JAXBElement<SimpleLiteral> JAXBElementIdentifier = dctObjectFactory.createReferences((simpleLiteral));
switch(abstractRecordType.getClass().getSimpleName()) {
case "BriefRecordType":
((BriefRecordType) abstractRecordType).getIdentifier().add(JAXBElementIdentifier);
break;
case "SummaryRecordType":
((SummaryRecordType) abstractRecordType).getIdentifier().add(JAXBElementIdentifier);
break;
case "RecordType":
((RecordType) abstractRecordType).getDCElement().add(JAXBElementIdentifier);
break;
}
}
use of org.purl.dc.elements._1.SimpleLiteral in project ARLAS-server by gisaia.
the class RecordBuilder method addModified.
public static void addModified(AbstractRecordType abstractRecordType, String modified) {
SimpleLiteral simpleLiteral = new SimpleLiteral();
simpleLiteral.getContent().add(modified);
switch(abstractRecordType.getClass().getSimpleName()) {
case "SummaryRecordType":
((SummaryRecordType) abstractRecordType).getModified().add(simpleLiteral);
break;
case "RecordType":
JAXBElement<SimpleLiteral> JAXBElementDate = dcObjectFactory.createDate(simpleLiteral);
((RecordType) abstractRecordType).getDCElement().add(JAXBElementDate);
break;
}
}
use of org.purl.dc.elements._1.SimpleLiteral in project ARLAS-server by gisaia.
the class AtomBuilder method setRecordType.
public static void setRecordType(RecordType recordType, EntryType entryType) {
org.purl.dc.elements._1.ObjectFactory objectFactory = new org.purl.dc.elements._1.ObjectFactory();
recordType.getDCElement().stream().forEach(simpleLiteralJAXBElement -> {
String value = simpleLiteralJAXBElement.getValue().getContent().get(0);
TextType textType = new TextType();
textType.getContent().add(value);
SimpleLiteral simpleLiteral = objectFactory.createSimpleLiteral();
simpleLiteral.getContent().add(value);
switch(simpleLiteralJAXBElement.getName().getLocalPart()) {
case "title":
entryType.setTitle(textType);
break;
case "subject":
entryType.setSubject(simpleLiteral);
break;
case "type":
entryType.setType(simpleLiteral);
break;
case "date":
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss");
try {
GregorianCalendar c = new GregorianCalendar();
c.setTime(simpleDateFormat.parse(value));
try {
XMLGregorianCalendar date = DatatypeFactory.newInstance().newXMLGregorianCalendar(c);
DateTimeType dateTimeType = new DateTimeType();
dateTimeType.setValue(date);
entryType.setPublished(dateTimeType);
entryType.setUpdated(dateTimeType);
} catch (DatatypeConfigurationException e) {
e.printStackTrace();
throw new WebApplicationException(e);
}
} catch (ParseException e) {
e.printStackTrace();
throw new WebApplicationException(e);
}
break;
case "format":
entryType.setFormat(objectFactory.createFormat(simpleLiteral));
break;
case "description":
entryType.setSummary(textType);
break;
case "identifier":
entryType.setIdentifier(objectFactory.createIdentifier(simpleLiteral));
break;
}
});
String south = recordType.getBoundingBox().get(0).getValue().getLowerCorner().get(1);
String west = recordType.getBoundingBox().get(0).getValue().getLowerCorner().get(0);
String north = recordType.getBoundingBox().get(0).getValue().getUpperCorner().get(1);
String east = recordType.getBoundingBox().get(0).getValue().getUpperCorner().get(0);
entryType.getBox().add(south);
entryType.getBox().add(west);
entryType.getBox().add(north);
entryType.getBox().add(east);
}
Aggregations