use of org.geotoolkit.csw.xml.v202.SummaryRecordType in project ARLAS-server by gisaia.
the class RecordBuilder method getSummaryResult.
public static SummaryRecordType getSummaryResult(CollectionReference collectionReference, String[] elements, String baseUri, boolean inspireIsEnabled) {
SummaryRecordType summaryRecord = new SummaryRecordType();
DublinCoreElementName dublinCoreElementName = collectionReference.params.dublinCoreElementName;
Inspire inspire = collectionReference.params.inspire;
addIdentifier(summaryRecord, dublinCoreElementName.identifier);
if (elements.length == 0) {
// ADD ALL field
addTitle(summaryRecord, dublinCoreElementName.title);
if (inspire != null && inspire.keywords != null) {
inspire.keywords.forEach(keyword -> {
addSubject(summaryRecord, keyword.value);
});
}
if (!StringUtil.isNullOrEmpty(dublinCoreElementName.subject)) {
addSubject(summaryRecord, dublinCoreElementName.subject);
}
if (inspireIsEnabled) {
addType(summaryRecord, RESOURCE_TYPE);
} else {
addType(summaryRecord, dublinCoreElementName.type);
}
addBbox(summaryRecord, dublinCoreElementName.bbox);
addModified(summaryRecord, dublinCoreElementName.getDate());
addFormat(summaryRecord, dublinCoreElementName.format);
addAbstract(summaryRecord, dublinCoreElementName.description);
addUrlToWFS(summaryRecord, baseUri + "ogc/wfs/" + collectionReference.collectionName + "/?" + OGCConstant.WFS_GET_CAPABILITIES_PARAMETERS);
} else {
for (String element : Arrays.asList(elements)) {
switch(element.toLowerCase()) {
case CSWConstant.DC_FIELD_TITLE:
addTitle(summaryRecord, dublinCoreElementName.title);
break;
case CSWConstant.DC_FIELD_TYPE:
if (inspireIsEnabled) {
addType(summaryRecord, RESOURCE_TYPE);
} else {
addType(summaryRecord, dublinCoreElementName.type);
}
break;
case CSWConstant.DC_FIELD_BBOX:
addBbox(summaryRecord, dublinCoreElementName.bbox);
break;
case CSWConstant.DC_FIELD_SUBJECT:
if (inspire.keywords != null) {
inspire.keywords.forEach(keyword -> addSubject(summaryRecord, keyword.value));
}
if (!StringUtil.isNullOrEmpty(dublinCoreElementName.subject)) {
addSubject(summaryRecord, dublinCoreElementName.subject);
}
break;
case CSWConstant.DC_FIELD_MODIFIED:
addModified(summaryRecord, dublinCoreElementName.getDate());
break;
case CSWConstant.DC_FIELD_FORMAT:
addFormat(summaryRecord, dublinCoreElementName.format);
break;
case CSWConstant.DC_FIELD_ABSTRACT:
addAbstract(summaryRecord, dublinCoreElementName.description);
break;
}
}
}
return summaryRecord;
}
use of org.geotoolkit.csw.xml.v202.SummaryRecordType in project ARLAS-server by gisaia.
the class RecordBuilder method addType.
public static void addType(AbstractRecordType abstractRecordType, String type) {
SimpleLiteral simpleLiteral = new SimpleLiteral();
simpleLiteral.getContent().add(type);
switch(abstractRecordType.getClass().getSimpleName()) {
case "BriefRecordType":
((BriefRecordType) abstractRecordType).setType(simpleLiteral);
break;
case "SummaryRecordType":
((SummaryRecordType) abstractRecordType).setType(simpleLiteral);
break;
case "RecordType":
JAXBElement<SimpleLiteral> JAXBElementType = dcObjectFactory.createType(simpleLiteral);
((RecordType) abstractRecordType).getDCElement().add(JAXBElementType);
break;
}
}
use of org.geotoolkit.csw.xml.v202.SummaryRecordType in project geotoolkit by Geomatys.
the class CswXMLBindingTest method getRecordByIdResponseUnMarshalingTest.
/**
* Test getRecordById request Marshalling.
*/
@Test
public void getRecordByIdResponseUnMarshalingTest() throws JAXBException {
Unmarshaller unmarshaller = pool.acquireUnmarshaller();
/*
* Test marshalling csw getRecordByIdResponse v2.0.2
*/
SimpleLiteral id = new SimpleLiteral("{8C71082D-5B3B-5F9D-FC40-F7807C8AB645}");
SimpleLiteral title = new SimpleLiteral("(JASON-1)");
SimpleLiteral type = new SimpleLiteral("clearinghouse");
List<SimpleLiteral> subject = new ArrayList<>();
subject.add(new SimpleLiteral("oceans elevation NASA/JPL/JASON-1"));
subject.add(new SimpleLiteral("oceans elevation 2"));
SimpleLiteral modified = new SimpleLiteral("2007-11-15 21:26:49");
SimpleLiteral Abstract = new SimpleLiteral("Jason-1 is the first follow-on to the highly successful TOPEX/Poseidonmission that measured ocean surface topography to an accuracy of 4.2cm.");
SimpleLiteral references = new SimpleLiteral("http://keel.esri.com/output/TOOLKIT_Browse_Metadata_P7540_T8020_D1098.xml");
SimpleLiteral spatial = new SimpleLiteral("northlimit=65.9999999720603; eastlimit=180; southlimit=-66.0000000558794; westlimit=-180;");
List<BoundingBoxType> bbox = new ArrayList<>();
bbox.add(new WGS84BoundingBoxType(180, -66.0000000558794, -180, 65.9999999720603));
RecordType record = new RecordType(id, title, type, subject, null, modified, null, Abstract, bbox, null, null, null, spatial, references);
BriefRecordType briefRecord = new BriefRecordType(id, title, type, bbox);
SummaryRecordType sumRecord = new SummaryRecordType(id, title, type, bbox, subject, null, modified, Abstract);
List<AbstractRecordType> records = new ArrayList<>();
records.add(record);
records.add(briefRecord);
records.add(sumRecord);
GetRecordByIdResponse expResult = new GetRecordByIdResponseType(records);
String xml = "<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?>\n" + "<csw:GetRecordByIdResponse xmlns:ows=\"http://www.opengis.net/ows\" xmlns:dc=\"http://purl.org/dc/elements/1.1/\" xmlns:csw=\"http://www.opengis.net/cat/csw/2.0.2\" xmlns:dct=\"http://purl.org/dc/terms/\">\n" + " <csw:Record>\n" + " <dc:identifier>{8C71082D-5B3B-5F9D-FC40-F7807C8AB645}</dc:identifier>\n" + " <dc:title>(JASON-1)</dc:title>\n" + " <dc:type>clearinghouse</dc:type>\n" + " <dc:subject>oceans elevation NASA/JPL/JASON-1</dc:subject>\n" + " <dc:subject>oceans elevation 2</dc:subject>\n" + " <dct:modified>2007-11-15 21:26:49</dct:modified>\n" + " <dct:abstract>Jason-1 is the first follow-on to the highly successful TOPEX/Poseidonmission that measured ocean surface topography to an accuracy of 4.2cm.</dct:abstract>\n" + " <dct:references>http://keel.esri.com/output/TOOLKIT_Browse_Metadata_P7540_T8020_D1098.xml</dct:references>\n" + " <dct:spatial>northlimit=65.9999999720603; eastlimit=180; southlimit=-66.0000000558794; westlimit=-180;</dct:spatial>\n" + " <ows:WGS84BoundingBox dimensions=\"2\">\n" + " <ows:LowerCorner>180.0 -66.0000000558794</ows:LowerCorner>\n" + " <ows:UpperCorner>-180.0 65.9999999720603</ows:UpperCorner>\n" + " </ows:WGS84BoundingBox>\n" + " </csw:Record>\n" + " <csw:BriefRecord>\n" + " <dc:identifier>{8C71082D-5B3B-5F9D-FC40-F7807C8AB645}</dc:identifier>\n" + " <dc:title>(JASON-1)</dc:title>\n" + " <dc:type>clearinghouse</dc:type>\n" + " <ows:WGS84BoundingBox dimensions=\"2\">\n" + " <ows:LowerCorner>180.0 -66.0000000558794</ows:LowerCorner>\n" + " <ows:UpperCorner>-180.0 65.9999999720603</ows:UpperCorner>\n" + " </ows:WGS84BoundingBox>\n" + " </csw:BriefRecord>\n" + " <csw:SummaryRecord>\n" + " <dc:identifier>{8C71082D-5B3B-5F9D-FC40-F7807C8AB645}</dc:identifier>\n" + " <dc:title>(JASON-1)</dc:title>\n" + " <dc:type>clearinghouse</dc:type>\n" + " <dc:subject>oceans elevation NASA/JPL/JASON-1</dc:subject>\n" + " <dc:subject>oceans elevation 2</dc:subject>\n" + " <dct:modified>2007-11-15 21:26:49</dct:modified>\n" + " <dct:abstract>Jason-1 is the first follow-on to the highly successful TOPEX/Poseidonmission that measured ocean surface topography to an accuracy of 4.2cm.</dct:abstract>\n" + " <ows:WGS84BoundingBox dimensions=\"2\">\n" + " <ows:LowerCorner>180.0 -66.0000000558794</ows:LowerCorner>\n" + " <ows:UpperCorner>-180.0 65.9999999720603</ows:UpperCorner>\n" + " </ows:WGS84BoundingBox>\n" + " </csw:SummaryRecord>\n" + "</csw:GetRecordByIdResponse>\n";
GetRecordByIdResponse result = ((JAXBElement<GetRecordByIdResponse>) unmarshaller.unmarshal(new StringReader(xml))).getValue();
assertTrue(result.getAny() instanceof List);
List<Object> resultList = result.getAny();
List<Object> expResultList = expResult.getAny();
assertEquals(resultList.get(0), expResultList.get(0));
assertEquals(resultList.get(1), expResultList.get(1));
assertEquals(resultList.get(2), expResultList.get(2));
assertEquals(resultList, expResultList);
assertEquals(expResult.getAny(), result.getAny());
assertEquals(expResult, result);
pool.recycle(unmarshaller);
}
use of org.geotoolkit.csw.xml.v202.SummaryRecordType in project geotoolkit by Geomatys.
the class CswXMLBindingTest method summmaryRecordUnmarshalingTest.
/**
* Test summary Record Marshalling.
*/
@Test
public void summmaryRecordUnmarshalingTest() throws JAXBException {
Unmarshaller unmarshaller = pool.acquireUnmarshaller();
/*
* Test marshalling csw summmary Record v2.0.2
*/
String xml = "<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?>\n" + "<csw:SummaryRecord xmlns:ows=\"http://www.opengis.net/ows\" xmlns:dc=\"http://purl.org/dc/elements/1.1/\" xmlns:csw=\"http://www.opengis.net/cat/csw/2.0.2\" xmlns:dct=\"http://purl.org/dc/terms/\">\n" + " <dc:identifier>{8C71082D-5B3B-5F9D-FC40-F7807C8AB645}</dc:identifier>\n" + " <dc:title>(JASON-1)</dc:title>\n" + " <dc:type>clearinghouse</dc:type>\n" + " <dc:subject>oceans elevation NASA/JPL/JASON-1</dc:subject>\n" + " <dc:subject>oceans elevation 2</dc:subject>\n" + " <dc:format>format 11-11</dc:format>\n" + " <dc:format>format 22-22</dc:format>\n" + " <dct:modified>2007-11-15 21:26:49</dct:modified>\n" + " <dct:abstract>Jason-1 is the first follow-on to the highly successful TOPEX/Poseidonmission that measured ocean surface topography to an accuracy of 4.2cm.</dct:abstract>\n" + " <ows:WGS84BoundingBox dimensions=\"2\">\n" + " <ows:LowerCorner>180.0 -66.0000000558794</ows:LowerCorner>\n" + " <ows:UpperCorner>-180.0 65.9999999720603</ows:UpperCorner>\n" + " </ows:WGS84BoundingBox>\n" + "</csw:SummaryRecord>\n";
StringReader sr = new StringReader(xml);
SummaryRecordType result = (SummaryRecordType) unmarshaller.unmarshal(sr);
SimpleLiteral id = new SimpleLiteral("{8C71082D-5B3B-5F9D-FC40-F7807C8AB645}");
SimpleLiteral title = new SimpleLiteral("(JASON-1)");
SimpleLiteral type = new SimpleLiteral("clearinghouse");
List<SimpleLiteral> subject = new ArrayList<>();
subject.add(new SimpleLiteral("oceans elevation NASA/JPL/JASON-1"));
subject.add(new SimpleLiteral("oceans elevation 2"));
List<SimpleLiteral> formats = new ArrayList<>();
formats.add(new SimpleLiteral("format 11-11"));
formats.add(new SimpleLiteral("format 22-22"));
SimpleLiteral modified = new SimpleLiteral("2007-11-15 21:26:49");
List<SimpleLiteral> Abstract = new ArrayList<>();
Abstract.add(new SimpleLiteral("Jason-1 is the first follow-on to the highly successful TOPEX/Poseidonmission that measured ocean surface topography to an accuracy of 4.2cm."));
List<BoundingBoxType> bbox = new ArrayList<>();
bbox.add(new WGS84BoundingBoxType(180, -66.0000000558794, -180, 65.9999999720603));
SummaryRecordType expResult = new SummaryRecordType(id, title, type, bbox, subject, formats, modified, Abstract);
assertEquals(expResult, result);
/*
* Test marshalling csw summmary Record v2.0.2
*/
xml = "<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?>\n" + "<csw:SummaryRecord xmlns:ows=\"http://www.opengis.net/ows\" xmlns:dc=\"http://purl.org/dc/elements/1.1/\" xmlns:csw=\"http://www.opengis.net/cat/csw/2.0.2\" xmlns:dct=\"http://purl.org/dc/terms/\">\n" + " <dc:identifier>{8C71082D-5B3B-5F9D-FC40-F7807C8AB645}</dc:identifier>\n" + " <dc:identifier>urn:ogc-x:df:F7807C8AB645</dc:identifier>\n" + " <dc:title>(JASON-1)</dc:title>\n" + " <dc:title>(JASON-2)</dc:title>\n" + " <dc:type>clearinghouse</dc:type>\n" + " <dc:subject>oceans elevation NASA/JPL/JASON-1</dc:subject>\n" + " <dc:subject>oceans elevation 2</dc:subject>\n" + " <dc:format>format 11-11</dc:format>\n" + " <dc:format>format 22-22</dc:format>\n" + " <dct:modified>2007-11-15 21:26:49</dct:modified>\n" + " <dct:modified>2007-11-15 21:26:48</dct:modified>\n" + " <dct:abstract>Jason-1 is the first follow-on to the highly successful TOPEX/Poseidonmission that measured ocean surface topography to an accuracy of 4.2cm.</dct:abstract>\n" + " <dct:abstract>Jason-2 blablablablabla.</dct:abstract>\n" + " <ows:WGS84BoundingBox dimensions=\"2\">\n" + " <ows:LowerCorner>180.0 -66.0000000558794</ows:LowerCorner>\n" + " <ows:UpperCorner>-180.0 65.9999999720603</ows:UpperCorner>\n" + " </ows:WGS84BoundingBox>\n" + " <ows:WGS84BoundingBox dimensions=\"2\">\n" + " <ows:LowerCorner>100.0 -6.04</ows:LowerCorner>\n" + " <ows:UpperCorner>-144.0 5.9</ows:UpperCorner>\n" + " </ows:WGS84BoundingBox>\n" + "</csw:SummaryRecord>\n";
sr = new StringReader(xml);
result = (SummaryRecordType) unmarshaller.unmarshal(sr);
List<SimpleLiteral> ids = new ArrayList<>();
ids.add(new SimpleLiteral("{8C71082D-5B3B-5F9D-FC40-F7807C8AB645}"));
ids.add(new SimpleLiteral("urn:ogc-x:df:F7807C8AB645"));
List<SimpleLiteral> titles = new ArrayList<>();
titles.add(new SimpleLiteral("(JASON-1)"));
titles.add(new SimpleLiteral("(JASON-2)"));
type = new SimpleLiteral("clearinghouse");
subject = new ArrayList<>();
subject.add(new SimpleLiteral("oceans elevation NASA/JPL/JASON-1"));
subject.add(new SimpleLiteral("oceans elevation 2"));
formats = new ArrayList<>();
formats.add(new SimpleLiteral("format 11-11"));
formats.add(new SimpleLiteral("format 22-22"));
List<SimpleLiteral> modifieds = new ArrayList<>();
modifieds.add(new SimpleLiteral("2007-11-15 21:26:49"));
modifieds.add(new SimpleLiteral("2007-11-15 21:26:48"));
Abstract = new ArrayList<>();
Abstract.add(new SimpleLiteral("Jason-1 is the first follow-on to the highly successful TOPEX/Poseidonmission that measured ocean surface topography to an accuracy of 4.2cm."));
Abstract.add(new SimpleLiteral("Jason-2 blablablablabla."));
bbox = new ArrayList<>();
bbox.add(new WGS84BoundingBoxType(180, -66.0000000558794, -180, 65.9999999720603));
bbox.add(new WGS84BoundingBoxType(100, -6.04, -144, 5.9));
expResult = new SummaryRecordType(ids, titles, type, bbox, subject, formats, modifieds, Abstract);
assertEquals(expResult, result);
pool.recycle(unmarshaller);
}
Aggregations