Search in sources :

Example 16 with RecordType

use of org.osate.aadl2.RecordType in project geotoolkit by Geomatys.

the class CswXMLBindingTest method getRecordByIdResponseMarshalingTest.

/**
 * Test getRecordById request Marshalling.
 */
@Test
public void getRecordByIdResponseMarshalingTest() throws JAXBException {
    Marshaller marshaller = pool.acquireMarshaller();
    /*
         * 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<Object> records = new ArrayList<>();
    records.add(record);
    records.add(briefRecord);
    records.add(sumRecord);
    GetRecordByIdResponse response = new GetRecordByIdResponseType(records);
    StringWriter sw = new StringWriter();
    marshaller.marshal(response, sw);
    String result = sw.toString();
    String expResult = "<?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";
    LOGGER.log(Level.FINER, "RESULT:\n{0}", result);
    LOGGER.log(Level.FINER, "EXPRESULT:\n{0}", expResult);
    assertXmlEquals(expResult, result, "xmlns:*");
    pool.recycle(marshaller);
}
Also used : SummaryRecordType(org.geotoolkit.csw.xml.v202.SummaryRecordType) Marshaller(javax.xml.bind.Marshaller) WGS84BoundingBoxType(org.geotoolkit.ows.xml.v100.WGS84BoundingBoxType) ArrayList(java.util.ArrayList) BriefRecordType(org.geotoolkit.csw.xml.v202.BriefRecordType) BoundingBoxType(org.geotoolkit.ows.xml.v100.BoundingBoxType) WGS84BoundingBoxType(org.geotoolkit.ows.xml.v100.WGS84BoundingBoxType) GetRecordByIdResponseType(org.geotoolkit.csw.xml.v202.GetRecordByIdResponseType) AbstractRecordType(org.geotoolkit.csw.xml.v202.AbstractRecordType) BriefRecordType(org.geotoolkit.csw.xml.v202.BriefRecordType) SummaryRecordType(org.geotoolkit.csw.xml.v202.SummaryRecordType) RecordType(org.geotoolkit.csw.xml.v202.RecordType) StringWriter(java.io.StringWriter) SimpleLiteral(org.geotoolkit.dublincore.xml.v2.elements.SimpleLiteral) Test(org.junit.Test)

Example 17 with RecordType

use of org.osate.aadl2.RecordType in project ARLAS-server by gisaia.

the class RecordBuilder method getFullResult.

public static RecordType getFullResult(CollectionReference collectionReference, String[] elements, String baseUri, boolean inspireIsEnabled) {
    RecordType record = new RecordType();
    DublinCoreElementName dublinCoreElementName = collectionReference.params.dublinCoreElementName;
    Inspire inspire = collectionReference.params.inspire;
    addIdentifier(record, dublinCoreElementName.identifier);
    if (elements.length == 0 || elements == null) {
        // ADD ALL field
        addTitle(record, dublinCoreElementName.title);
        if (inspire != null && inspire.keywords != null) {
            inspire.keywords.forEach(keyword -> {
                if (keyword.value != null) {
                    addSubject(record, keyword.value);
                }
            });
        }
        if (!StringUtil.isNullOrEmpty(dublinCoreElementName.subject)) {
            addSubject(record, dublinCoreElementName.subject);
        }
        if (inspireIsEnabled) {
            addType(record, RESOURCE_TYPE);
        } else {
            addType(record, dublinCoreElementName.type);
        }
        addBbox(record, dublinCoreElementName.bbox);
        addModified(record, dublinCoreElementName.getDate());
        addFormat(record, dublinCoreElementName.format);
        addAbstract(record, dublinCoreElementName.description);
        addUrlToWFS(record, 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(record, dublinCoreElementName.title);
                    break;
                case CSWConstant.DC_FIELD_TYPE:
                    if (inspireIsEnabled) {
                        addType(record, RESOURCE_TYPE);
                    } else {
                        addType(record, dublinCoreElementName.type);
                    }
                    break;
                case CSWConstant.DC_FIELD_BBOX:
                    addBbox(record, dublinCoreElementName.bbox);
                    break;
                case CSWConstant.DC_FIELD_SUBJECT:
                    if (inspire.keywords != null) {
                        inspire.keywords.forEach(keyword -> addSubject(record, keyword.value));
                    }
                    if (!StringUtil.isNullOrEmpty(dublinCoreElementName.subject)) {
                        addSubject(record, dublinCoreElementName.subject);
                    }
                    break;
                case CSWConstant.DC_FIELD_MODIFIED:
                    addModified(record, dublinCoreElementName.getDate());
                    break;
                case CSWConstant.DC_FIELD_FORMAT:
                    addFormat(record, dublinCoreElementName.format);
                    break;
                case CSWConstant.DC_FIELD_ABSTRACT:
                    addAbstract(record, dublinCoreElementName.description);
                    break;
            }
        }
    }
    return record;
}
Also used : BriefRecordType(net.opengis.cat.csw._3.BriefRecordType) RecordType(net.opengis.cat.csw._3.RecordType) SummaryRecordType(net.opengis.cat.csw._3.SummaryRecordType) AbstractRecordType(net.opengis.cat.csw._3.AbstractRecordType) DublinCoreElementName(io.arlas.server.core.model.DublinCoreElementName) Inspire(io.arlas.server.core.model.Inspire)

Example 18 with RecordType

use of org.osate.aadl2.RecordType in project AMASE by loonwerks.

the class SafetyScopeProvider method scope_GetPropertyExpr_prop.

protected IScope scope_GetPropertyExpr_prop(GetPropertyExpr ctx, EReference ref) {
    IScope prevScope = prevScope(ctx, ref);
    ComponentRef cr = ctx.getComponentRef();
    if (cr instanceof ThisRef) {
        List<Property> ps = new ArrayList<>();
        EObject container = ctx.getContainingClassifier();
        while (container != null) {
            if (container instanceof Classifier) {
                List<PropertyAssociation> pas = ((Classifier) container).getAllPropertyAssociations();
                for (PropertyAssociation pa : pas) {
                    ps.add(pa.getProperty());
                }
                container = ((Classifier) container).eContainer();
            } else if (container instanceof AadlPackage) {
                for (PropertySet propSet : EcoreUtil2.getAllContentsOfType(container, PropertySet.class)) {
                    for (Property p : propSet.getOwnedProperties()) {
                        ps.add(p);
                    }
                // =======
                // EList<EObject> refs  = null;
                // 
                // if (container instanceof NestedDotID) {
                // NestedDotID parent = (NestedDotID) container;
                // refs = parent.eCrossReferences();
                // 
                // if (refs.size() != 1) {
                // return new HashSet<>(); // this will throw a parsing error
                // }
                // container = refs.get(0); // figure out what this type this portion
                // 
                // // of the nest id is so we can figure out
                // // what we could possibly link to
                // 
                // if (container instanceof ThreadSubcomponent) {
                // container = ((ThreadSubcomponent) container).getComponentType();
                // result.addAll(getAadlElements(container));
                // } else if (container instanceof Subcomponent) {
                // container = ((Subcomponent) container).getComponentImplementation();
                // if (container == null) { // no implementation is provided
                // container = refs.get(0);
                // container = ((Subcomponent) container).getClassifier();
                // }
                // result.addAll(getAadlElements(container));
                // } else if (container instanceof DataPort) {
                // container = ((DataPort) container).getDataFeatureClassifier();
                // result.addAll(getAadlElements(container));
                // } else if (container instanceof EventDataPort) {
                // container = ((EventDataPort) container).getDataFeatureClassifier();
                // result.addAll(getAadlElements(container));
                // } else if (container instanceof AadlPackage) {
                // result.addAll(getAadlElements(container));
                // } else if (container instanceof FeatureGroupImpl) {
                // container = ((FeatureGroupImpl) container).getAllFeatureGroupType();
                // result.addAll(getAadlElements(container));
                // } else if (container instanceof Arg || container instanceof ConstStatement) {
                // Type type;
                // 
                // if (container instanceof Arg) {
                // type = ((Arg) container).getType();
                // } else {
                // type = ((ConstStatement) container).getType();
                // }
                // 
                // if (type instanceof RecordType) {
                // DoubleDotRef elID = ((RecordType) type).getRecord();
                // NamedElement namedEl = elID.getElm();
                // 
                // if (namedEl instanceof ComponentImplementation) {
                // ComponentImplementation componentImplementation = (ComponentImplementation) namedEl;
                // EList<Subcomponent> subs = componentImplementation.getAllSubcomponents();
                // result.addAll(subs);
                // } else if (namedEl instanceof RecordDefExpr) {
                // result.addAll(((RecordDefExpr) namedEl).getArgs());
                // >>>>>>> origin/develop
                }
                container = null;
            } else {
                container = container.eContainer();
            }
        }
        return Scopes.scopeFor(ps, prevScope);
    } else if (cr instanceof DoubleDotRef) {
        NamedElement ne = ((DoubleDotRef) cr).getElm();
        if (ne instanceof Subcomponent) {
            List<PropertyAssociation> pas = ((Subcomponent) ne).getOwnedPropertyAssociations();
            List<Property> ps = new ArrayList<>();
            for (PropertyAssociation pa : pas) {
                ps.add(pa.getProperty());
            }
            return Scopes.scopeFor(ps, prevScope);
        }
    }
    return IScope.NULLSCOPE;
}
Also used : AadlPackage(org.osate.aadl2.AadlPackage) PropertyAssociation(org.osate.aadl2.PropertyAssociation) ArrayList(java.util.ArrayList) Classifier(org.osate.aadl2.Classifier) ComponentClassifier(org.osate.aadl2.ComponentClassifier) ThisRef(com.rockwellcollins.atc.agree.agree.ThisRef) EObject(org.eclipse.emf.ecore.EObject) DoubleDotRef(com.rockwellcollins.atc.agree.agree.DoubleDotRef) FaultSubcomponent(edu.umn.cs.crisys.safety.safety.FaultSubcomponent) Subcomponent(org.osate.aadl2.Subcomponent) IScope(org.eclipse.xtext.scoping.IScope) PropertySet(org.osate.aadl2.PropertySet) List(java.util.List) ArrayList(java.util.ArrayList) LinkedList(java.util.LinkedList) EList(org.eclipse.emf.common.util.EList) ComponentRef(com.rockwellcollins.atc.agree.agree.ComponentRef) Property(org.osate.aadl2.Property) NamedElement(org.osate.aadl2.NamedElement)

Example 19 with RecordType

use of org.osate.aadl2.RecordType in project mod-oai-pmh by folio-org.

the class OaiPmhImplTest method verifyHeaderDateStamp.

private void verifyHeaderDateStamp(OAIPMH oaipmh, VerbType verbType, String timeGranularity) {
    String verb = verbType.value();
    if (verb.equals(LIST_RECORDS.value())) {
        oaipmh.getListRecords().getRecords().stream().map(RecordType::getHeader).map(HeaderType::getDatestamp).forEach(headerDateStamp -> verifyHeaderDateStamp(headerDateStamp, timeGranularity));
    } else if (verb.equals(LIST_IDENTIFIERS.value())) {
        oaipmh.getListIdentifiers().getHeaders().stream().map(HeaderType::getDatestamp).forEach(headerDateStamp -> verifyHeaderDateStamp(headerDateStamp, timeGranularity));
    } else if (verb.equals(GET_RECORD.value())) {
        String datestamp = oaipmh.getGetRecord().getRecord().getHeader().getDatestamp();
        verifyHeaderDateStamp(datestamp, timeGranularity);
    }
}
Also used : BeforeEach(org.junit.jupiter.api.BeforeEach) Arrays(java.util.Arrays) DATE_SRS_500_ERROR_RESPONSE(org.folio.rest.impl.OkapiMockServer.DATE_SRS_500_ERROR_RESPONSE) Header(io.restassured.http.Header) Autowired(org.springframework.beans.factory.annotation.Autowired) GranularityType(org.openarchives.oai._2.GranularityType) SRS_RECORD_WITH_NEW_METADATA_DATE(org.folio.rest.impl.OkapiMockServer.SRS_RECORD_WITH_NEW_METADATA_DATE) METADATA_PREFIX_PARAM(org.folio.oaipmh.Constants.METADATA_PREFIX_PARAM) AfterAll(org.junit.jupiter.api.AfterAll) OAI_TEST_TENANT(org.folio.rest.impl.OkapiMockServer.OAI_TEST_TENANT) CoreMatchers.instanceOf(org.hamcrest.CoreMatchers.instanceOf) OAIPMHerrorType(org.openarchives.oai._2.OAIPMHerrorType) ResumptionTokenType(org.openarchives.oai._2.ResumptionTokenType) GZIP(org.folio.oaipmh.Constants.GZIP) RESUMPTION_TOKEN_PARAM(org.folio.oaipmh.Constants.RESUMPTION_TOKEN_PARAM) ExtendWith(org.junit.jupiter.api.extension.ExtendWith) BeforeAll(org.junit.jupiter.api.BeforeAll) Map(java.util.Map) SRS_RECORD_WITH_INVALID_JSON_STRUCTURE(org.folio.rest.impl.OkapiMockServer.SRS_RECORD_WITH_INVALID_JSON_STRUCTURE) CANNOT_DISSEMINATE_FORMAT(org.openarchives.oai._2.OAIPMHerrorcodeType.CANNOT_DISSEMINATE_FORMAT) JsonObject(io.vertx.core.json.JsonObject) VerbType(org.openarchives.oai._2.VerbType) BigInteger(java.math.BigInteger) IDENTIFIER_PARAM(org.folio.oaipmh.Constants.IDENTIFIER_PARAM) ZoneOffset(java.time.ZoneOffset) UNTIL_PARAM(org.folio.oaipmh.Constants.UNTIL_PARAM) LIST_SETS(org.openarchives.oai._2.VerbType.LIST_SETS) DEFAULT_RECORD_DATE(org.folio.rest.impl.OkapiMockServer.DEFAULT_RECORD_DATE) CoreMatchers.containsString(org.hamcrest.CoreMatchers.containsString) SRS_RECORD_WITH_OLD_METADATA_DATE(org.folio.rest.impl.OkapiMockServer.SRS_RECORD_WITH_OLD_METADATA_DATE) InstancesService(org.folio.oaipmh.service.InstancesService) Arguments(org.junit.jupiter.params.provider.Arguments) PostgresClient(org.folio.rest.persist.PostgresClient) StandardCharsets(java.nio.charset.StandardCharsets) GET_ENRICHED_INSTANCES_500_ERROR_RETURNED_FROM_STORAGE_DATE(org.folio.rest.impl.OkapiMockServer.GET_ENRICHED_INSTANCES_500_ERROR_RETURNED_FROM_STORAGE_DATE) INVENTORY_27_INSTANCES_IDS_DATE(org.folio.rest.impl.OkapiMockServer.INVENTORY_27_INSTANCES_IDS_DATE) Logger(org.apache.logging.log4j.Logger) Stream(java.util.stream.Stream) URLEncodedUtils(org.apache.http.client.utils.URLEncodedUtils) OAIPMHerrorcodeType(org.openarchives.oai._2.OAIPMHerrorcodeType) DATE_FOR_INSTANCES_10_PARTIALLY(org.folio.rest.impl.OkapiMockServer.DATE_FOR_INSTANCES_10_PARTIALLY) RestAssured.given(io.restassured.RestAssured.given) RestAssured(io.restassured.RestAssured) REPOSITORY_DELETED_RECORDS(org.folio.oaipmh.Constants.REPOSITORY_DELETED_RECORDS) REPOSITORY_TIME_GRANULARITY(org.folio.oaipmh.Constants.REPOSITORY_TIME_GRANULARITY) ISO_UTC_DATE_TIME(org.folio.oaipmh.Constants.ISO_UTC_DATE_TIME) VertxTestContext(io.vertx.junit5.VertxTestContext) DEFLATE(org.folio.oaipmh.Constants.DEFLATE) CoreMatchers.equalTo(org.hamcrest.CoreMatchers.equalTo) PostgresTesterContainer(org.folio.postgres.testing.PostgresTesterContainer) LocalDateTime(java.time.LocalDateTime) DATE_INVENTORY_10_INSTANCE_IDS(org.folio.rest.impl.OkapiMockServer.DATE_INVENTORY_10_INSTANCE_IDS) LIST_ILLEGAL_ARGUMENTS_ERROR(org.folio.oaipmh.Constants.LIST_ILLEGAL_ARGUMENTS_ERROR) DecoderConfig(io.restassured.config.DecoderConfig) DATE_FOR_INSTANCES_10(org.folio.rest.impl.OkapiMockServer.DATE_FOR_INSTANCES_10) THREE_INSTANCES_DATE(org.folio.rest.impl.OkapiMockServer.THREE_INSTANCES_DATE) LIST_METADATA_FORMATS(org.openarchives.oai._2.VerbType.LIST_METADATA_FORMATS) REPOSITORY_STORAGE(org.folio.oaipmh.Constants.REPOSITORY_STORAGE) Matchers.hasSize(org.hamcrest.Matchers.hasSize) NO_RECORD_FOUND_ERROR(org.folio.oaipmh.Constants.NO_RECORD_FOUND_ERROR) MatcherAssert.assertThat(org.hamcrest.MatcherAssert.assertThat) CoreMatchers.nullValue(org.hamcrest.CoreMatchers.nullValue) RestAssuredConfig(io.restassured.config.RestAssuredConfig) ResponseConverter(org.folio.oaipmh.ResponseConverter) ValueSource(org.junit.jupiter.params.provider.ValueSource) REPOSITORY_ENABLE_OAI_SERVICE(org.folio.oaipmh.Constants.REPOSITORY_ENABLE_OAI_SERVICE) ID_DOES_NOT_EXIST(org.openarchives.oai._2.OAIPMHerrorcodeType.ID_DOES_NOT_EXIST) Dc(org.openarchives.oai._2_0.oai_dc.Dc) DataFieldType(gov.loc.marc21.slim.DataFieldType) NO_ITEMS_DATE(org.folio.rest.impl.OkapiMockServer.NO_ITEMS_DATE) JAXBElement(javax.xml.bind.JAXBElement) Vertx(io.vertx.core.Vertx) REPOSITORY_NAME(org.folio.oaipmh.Constants.REPOSITORY_NAME) VERB_PARAM(org.folio.oaipmh.Constants.VERB_PARAM) PARTITIONABLE_RECORDS_DATE_TIME(org.folio.rest.impl.OkapiMockServer.PARTITIONABLE_RECORDS_DATE_TIME) Assert.assertTrue(org.junit.Assert.assertTrue) Matchers.isEmptyString(org.hamcrest.Matchers.isEmptyString) REPOSITORY_SRS_CLIENT_IDLE_TIMEOUT_SEC(org.folio.oaipmh.Constants.REPOSITORY_SRS_CLIENT_IDLE_TIMEOUT_SEC) BAD_ARGUMENT(org.openarchives.oai._2.OAIPMHerrorcodeType.BAD_ARGUMENT) MetadataPrefix(org.folio.oaipmh.MetadataPrefix) ParameterizedTest(org.junit.jupiter.params.ParameterizedTest) RecordType(org.openarchives.oai._2.RecordType) REPOSITORY_SRS_HTTP_REQUEST_RETRY_ATTEMPTS(org.folio.oaipmh.Constants.REPOSITORY_SRS_HTTP_REQUEST_RETRY_ATTEMPTS) NO_RECORDS_DATE(org.folio.rest.impl.OkapiMockServer.NO_RECORDS_DATE) REPOSITORY_SUPPRESSED_RECORDS_PROCESSING(org.folio.oaipmh.Constants.REPOSITORY_SUPPRESSED_RECORDS_PROCESSING) UNKNOWN(org.openarchives.oai._2.VerbType.UNKNOWN) Assert.assertEquals(org.junit.Assert.assertEquals) NotThreadSafe(javax.annotation.concurrent.NotThreadSafe) CoreMatchers.is(org.hamcrest.CoreMatchers.is) ValidatableResponse(io.restassured.response.ValidatableResponse) FROM_PARAM(org.folio.oaipmh.Constants.FROM_PARAM) OFFSET_PARAM(org.folio.oaipmh.Constants.OFFSET_PARAM) HeaderType(org.openarchives.oai._2.HeaderType) Constants(org.folio.oaipmh.Constants) HttpStatus(org.apache.http.HttpStatus) StatusType(org.openarchives.oai._2.StatusType) NEXT_RECORD_ID_PARAM(org.folio.oaipmh.Constants.NEXT_RECORD_ID_PARAM) Context(io.vertx.core.Context) CoreMatchers.notNullValue(org.hamcrest.CoreMatchers.notNullValue) REPOSITORY_ADMIN_EMAILS(org.folio.oaipmh.Constants.REPOSITORY_ADMIN_EMAILS) TestInstance(org.junit.jupiter.api.TestInstance) ContentDecoder(io.restassured.config.DecoderConfig.ContentDecoder) Collectors.toMap(java.util.stream.Collectors.toMap) OAIPMH(org.openarchives.oai._2.OAIPMH) TOTAL_RECORDS_PARAM(org.folio.oaipmh.Constants.TOTAL_RECORDS_PARAM) IDENTIFY(org.openarchives.oai._2.VerbType.IDENTIFY) RequestSpecification(io.restassured.specification.RequestSpecification) Spy(org.mockito.Spy) DATE_SRS_ERROR_RESPONSE(org.folio.rest.impl.OkapiMockServer.DATE_SRS_ERROR_RESPONSE) BAD_RESUMPTION_TOKEN(org.openarchives.oai._2.OAIPMHerrorcodeType.BAD_RESUMPTION_TOKEN) TestUtil(org.folio.oaipmh.common.TestUtil) ModuleName(org.folio.rest.tools.utils.ModuleName) REPOSITORY_BASE_URL(org.folio.oaipmh.Constants.REPOSITORY_BASE_URL) INVENTORY_60_INSTANCE_IDS_DATE(org.folio.rest.impl.OkapiMockServer.INVENTORY_60_INSTANCE_IDS_DATE) Assert.fail(org.junit.Assert.fail) DATE_SRS_IDLE_TIMEOUT_ERROR_RESPONSE(org.folio.rest.impl.OkapiMockServer.DATE_SRS_IDLE_TIMEOUT_ERROR_RESPONSE) MethodSource(org.junit.jupiter.params.provider.MethodSource) Predicate(java.util.function.Predicate) LIST_RECORDS(org.openarchives.oai._2.VerbType.LIST_RECORDS) DATE_INVENTORY_STORAGE_ERROR_RESPONSE(org.folio.rest.impl.OkapiMockServer.DATE_INVENTORY_STORAGE_ERROR_RESPONSE) ContentType(io.restassured.http.ContentType) VertxOptions(io.vertx.core.VertxOptions) HttpHeaders(io.vertx.core.http.HttpHeaders) VertxExtension(io.vertx.junit5.VertxExtension) Instant(java.time.Instant) Collectors(java.util.stream.Collectors) String.format(java.lang.String.format) REQUEST_ID_PARAM(org.folio.oaipmh.Constants.REQUEST_ID_PARAM) Test(org.junit.jupiter.api.Test) Objects(java.util.Objects) SubfieldatafieldType(gov.loc.marc21.slim.SubfieldatafieldType) Base64(java.util.Base64) List(java.util.List) NO_RECORDS_MATCH(org.openarchives.oai._2.OAIPMHerrorcodeType.NO_RECORDS_MATCH) CollectionUtils.isNotEmpty(org.apache.commons.collections4.CollectionUtils.isNotEmpty) WebClientProvider(org.folio.oaipmh.WebClientProvider) Matchers.containsInAnyOrder(org.hamcrest.Matchers.containsInAnyOrder) OaiIdentifier(org.openarchives.oai._2_0.oai_identifier.OaiIdentifier) Optional(java.util.Optional) Pattern(java.util.regex.Pattern) NameValuePair(org.apache.http.NameValuePair) INSTANCE_ID_WITH_INVALID_ENRICHED_INSTANCE_JSON_DATE(org.folio.rest.impl.OkapiMockServer.INSTANCE_ID_WITH_INVALID_ENRICHED_INSTANCE_JSON_DATE) LIST_NO_REQUIRED_PARAM_ERROR(org.folio.oaipmh.Constants.LIST_NO_REQUIRED_PARAM_ERROR) Json(io.vertx.core.json.Json) RestVerticle(org.folio.rest.RestVerticle) INSTANCE_WITHOUT_SRS_RECORD_DATE(org.folio.rest.impl.OkapiMockServer.INSTANCE_WITHOUT_SRS_RECORD_DATE) THREE_INSTANCES_DATE_WITH_ONE_MARK_DELETED_RECORD(org.folio.rest.impl.OkapiMockServer.THREE_INSTANCES_DATE_WITH_ONE_MARK_DELETED_RECORD) SOURCE_RECORD_STORAGE(org.folio.oaipmh.Constants.SOURCE_RECORD_STORAGE) EnumSource(org.junit.jupiter.params.provider.EnumSource) REPOSITORY_MAX_RECORDS_PER_RESPONSE(org.folio.oaipmh.Constants.REPOSITORY_MAX_RECORDS_PER_RESPONSE) SpringContextUtil(org.folio.spring.SpringContextUtil) SET_PARAM(org.folio.oaipmh.Constants.SET_PARAM) THREE_INSTANCES_DATE_TIME(org.folio.rest.impl.OkapiMockServer.THREE_INSTANCES_DATE_TIME) LIST_IDENTIFIERS(org.openarchives.oai._2.VerbType.LIST_IDENTIFIERS) PostgresClientFactory(org.folio.oaipmh.dao.PostgresClientFactory) SRS_RECORDS_WITH_CYRILLIC_DATA_DATE(org.folio.rest.impl.OkapiMockServer.SRS_RECORDS_WITH_CYRILLIC_DATA_DATE) TWO_RECORDS_WITH_ONE_INCONVERTIBLE_TO_XML(org.folio.rest.impl.OkapiMockServer.TWO_RECORDS_WITH_ONE_INCONVERTIBLE_TO_XML) ElementType(org.purl.dc.elements._1.ElementType) GET_INSTANCES_FORBIDDEN_RESPONSE_DATE(org.folio.rest.impl.OkapiMockServer.GET_INSTANCES_FORBIDDEN_RESPONSE_DATE) GET_INSTANCES_IDS_500_ERROR_RETURNED_FROM_STORAGE_DATE(org.folio.rest.impl.OkapiMockServer.GET_INSTANCES_IDS_500_ERROR_RETURNED_FROM_STORAGE_DATE) Matchers.empty(org.hamcrest.Matchers.empty) GET_RECORD(org.openarchives.oai._2.VerbType.GET_RECORD) UTF_8(java.nio.charset.StandardCharsets.UTF_8) PER_CLASS(org.junit.jupiter.api.TestInstance.Lifecycle.PER_CLASS) PARTITIONABLE_RECORDS_DATE(org.folio.rest.impl.OkapiMockServer.PARTITIONABLE_RECORDS_DATE) NetworkUtils(org.folio.rest.tools.utils.NetworkUtils) INVALID_IDENTIFIER(org.folio.rest.impl.OkapiMockServer.INVALID_IDENTIFIER) EMPTY_INSTANCES_IDS_DATE(org.folio.rest.impl.OkapiMockServer.EMPTY_INSTANCES_IDS_DATE) ENRICH_INSTANCES_FORBIDDEN_RESPONSE_DATE(org.folio.rest.impl.OkapiMockServer.ENRICH_INSTANCES_FORBIDDEN_RESPONSE_DATE) DeploymentOptions(io.vertx.core.DeploymentOptions) DATE_ERROR_FROM_ENRICHED_INSTANCES_VIEW(org.folio.rest.impl.OkapiMockServer.DATE_ERROR_FROM_ENRICHED_INSTANCES_VIEW) ApplicationConfig(org.folio.config.ApplicationConfig) INVALID_INSTANCE_IDS_JSON_DATE(org.folio.rest.impl.OkapiMockServer.INVALID_INSTANCE_IDS_JSON_DATE) LogManager(org.apache.logging.log4j.LogManager) Collections(java.util.Collections) RecordType(org.openarchives.oai._2.RecordType) HeaderType(org.openarchives.oai._2.HeaderType) CoreMatchers.containsString(org.hamcrest.CoreMatchers.containsString) Matchers.isEmptyString(org.hamcrest.Matchers.isEmptyString)

Example 20 with RecordType

use of org.osate.aadl2.RecordType in project mod-oai-pmh by folio-org.

the class MarcWithHoldingsRequestHelper method buildRecordsResponse.

private Future<Response> buildRecordsResponse(Request request, String requestId, List<JsonObject> batch, Map<String, JsonObject> srsResponse, boolean firstBatch, String nextInstanceId, boolean deletedRecordSupport) {
    Promise<Response> promise = Promise.promise();
    try {
        List<RecordType> records = buildRecordsList(request, batch, srsResponse, deletedRecordSupport);
        logger.debug("Build records response, instances = {}, instances with srs records = {}.", batch.size(), records.size());
        ResponseHelper responseHelper = getResponseHelper();
        OAIPMH oaipmh = responseHelper.buildBaseOaipmhResponse(request);
        if (records.isEmpty() && nextInstanceId == null && firstBatch) {
            oaipmh.withErrors(createNoRecordsFoundError());
        } else {
            oaipmh.withListRecords(new ListRecordsType().withRecords(records));
        }
        Response response;
        if (oaipmh.getErrors().isEmpty()) {
            if (!firstBatch || nextInstanceId != null) {
                ResumptionTokenType resumptionToken = buildResumptionTokenFromRequest(request, requestId, records.size(), nextInstanceId);
                oaipmh.getListRecords().withResumptionToken(resumptionToken);
            }
            response = responseHelper.buildSuccessResponse(oaipmh);
        } else {
            response = responseHelper.buildFailureResponse(oaipmh, request);
        }
        promise.complete(response);
    } catch (Exception e) {
        handleException(promise, e);
    }
    return promise.future();
}
Also used : Response(javax.ws.rs.core.Response) HttpResponse(io.vertx.ext.web.client.HttpResponse) OAIPMH(org.openarchives.oai._2.OAIPMH) ResumptionTokenType(org.openarchives.oai._2.ResumptionTokenType) RecordType(org.openarchives.oai._2.RecordType) ResponseHelper(org.folio.oaipmh.helpers.response.ResponseHelper) DecodeException(io.vertx.core.json.DecodeException) ListRecordsType(org.openarchives.oai._2.ListRecordsType)

Aggregations

ArrayList (java.util.ArrayList)12 List (java.util.List)8 AbstractRecordType (org.geotoolkit.csw.xml.v202.AbstractRecordType)7 BriefRecordType (org.geotoolkit.csw.xml.v202.BriefRecordType)7 RecordType (org.geotoolkit.csw.xml.v202.RecordType)7 SummaryRecordType (org.geotoolkit.csw.xml.v202.SummaryRecordType)7 SimpleLiteral (org.geotoolkit.dublincore.xml.v2.elements.SimpleLiteral)7 BoundingBoxType (org.geotoolkit.ows.xml.v100.BoundingBoxType)7 WGS84BoundingBoxType (org.geotoolkit.ows.xml.v100.WGS84BoundingBoxType)7 Test (org.junit.Test)7 NamedElement (org.osate.aadl2.NamedElement)7 Property (org.osate.aadl2.Property)7 RecordType (org.openarchives.oai._2.RecordType)6 OAIPMH (org.openarchives.oai._2.OAIPMH)5 ResumptionTokenType (org.openarchives.oai._2.ResumptionTokenType)5 AadlPackage (org.osate.aadl2.AadlPackage)5 DoubleDotRef (com.rockwellcollins.atc.agree.agree.DoubleDotRef)4 StringWriter (java.io.StringWriter)4 RecordType (org.osate.aadl2.RecordType)4 Map (java.util.Map)3