Search in sources :

Example 1 with SmlResponsibleParty

use of org.n52.shetland.ogc.sensorML.SmlResponsibleParty in project arctic-sea by 52North.

the class SensorMLEncoderv101 method createContactList.

private ContactList createContactList(final List<SmlContact> contacts) {
    final ContactList xbContacts = ContactList.Factory.newInstance();
    contacts.forEach(smlContact -> {
        if (smlContact.isSetHref()) {
            ContactList.Member member = xbContacts.addNewMember();
            member.setHref(smlContact.getHref());
            if (smlContact.isSetTitle()) {
                member.setTitle(smlContact.getTitle());
            }
            if (smlContact.isSetRole()) {
                member.setRole(smlContact.getRole());
            }
        } else if (smlContact instanceof SmlPerson) {
            ContactList.Member member = xbContacts.addNewMember();
            member.addNewPerson().set(createPerson((SmlPerson) smlContact));
            if (smlContact.isSetRole()) {
                member.setRole(smlContact.getRole());
            }
        } else if (smlContact instanceof SmlResponsibleParty) {
            ContactList.Member member = xbContacts.addNewMember();
            member.addNewResponsibleParty().set(createResponsibleParty((SmlResponsibleParty) smlContact));
            if (smlContact.isSetRole()) {
                member.setRole(smlContact.getRole());
            }
        } else if (smlContact instanceof SmlContactList) {
            SmlContactList contactList = (SmlContactList) smlContact;
            ContactList innerContactList = createContactList(contactList.getMembers());
            int innerContactLength = innerContactList.getMemberArray().length;
            for (int i = 0; i < innerContactLength; i++) {
                xbContacts.addNewMember().set(innerContactList.getMemberArray(i));
            }
        }
    });
    return xbContacts;
}
Also used : SmlResponsibleParty(org.n52.shetland.ogc.sensorML.SmlResponsibleParty) SmlContactList(org.n52.shetland.ogc.sensorML.SmlContactList) ContactList(net.opengis.sensorML.x101.ContactListDocument.ContactList) SmlContactList(org.n52.shetland.ogc.sensorML.SmlContactList) Member(net.opengis.sensorML.x101.SensorMLDocument.SensorML.Member) SmlPerson(org.n52.shetland.ogc.sensorML.SmlPerson)

Example 2 with SmlResponsibleParty

use of org.n52.shetland.ogc.sensorML.SmlResponsibleParty in project arctic-sea by 52North.

the class SensorMLEncoderV101Test method should_encode_single_contact_responsibleParty.

@Test
public void should_encode_single_contact_responsibleParty() throws EncodingException {
    final SensorML sensorML = new SensorML();
    final System system = new System();
    sensorML.addMember(system);
    final SmlResponsibleParty responsibleParty = createResponsibleParty("");
    system.addContact(responsibleParty);
    final SystemType xbSystem = encodeSystem(sensorML);
    assertThat(xbSystem.sizeOfContactArray(), is(1));
    assertThat(xbSystem.getContactArray(0).getContactList().getMemberArray(0).isSetResponsibleParty(), is(true));
    final ResponsibleParty xbResponsibleParty = xbSystem.getContactArray(0).getContactList().getMemberArray(0).getResponsibleParty();
    checkResponsibleParty(responsibleParty, xbResponsibleParty);
}
Also used : SmlResponsibleParty(org.n52.shetland.ogc.sensorML.SmlResponsibleParty) SystemType(net.opengis.sensorML.x101.SystemType) SmlResponsibleParty(org.n52.shetland.ogc.sensorML.SmlResponsibleParty) ResponsibleParty(net.opengis.sensorML.x101.ResponsiblePartyDocument.ResponsibleParty) SensorML(org.n52.shetland.ogc.sensorML.SensorML) System(org.n52.shetland.ogc.sensorML.System) Test(org.junit.Test)

Example 3 with SmlResponsibleParty

use of org.n52.shetland.ogc.sensorML.SmlResponsibleParty in project arctic-sea by 52North.

the class SensorMLEncoderV101Test method should_merge_and_encode_multiple_contacts.

@Test
public void should_merge_and_encode_multiple_contacts() throws EncodingException {
    final SensorML sensorML = new SensorML();
    final System system = new System();
    sensorML.addMember(system);
    final SmlPerson p1 = createPerson("1");
    final SmlResponsibleParty rp1 = createResponsibleParty("1");
    system.addContact(p1);
    system.addContact(rp1);
    final SensorMLDocument xbSensorML = SensorMLDocument.Factory.newInstance();
    final SystemType xbSystem = SystemType.Factory.newInstance();
    final ContactList xbContactList = xbSystem.addNewContact().addNewContactList();
    final Person xbP1 = xbContactList.addNewMember().addNewPerson();
    setPersonValues(p1, xbP1);
    final ResponsibleParty xbRP1 = xbContactList.addNewMember().addNewResponsibleParty();
    setResponsiblePartyValues(rp1, xbRP1);
    final XmlObject xbProcess = xbSensorML.addNewSensorML().addNewMember().addNewProcess().set(xbSystem);
    XmlHelper.substituteElement(xbProcess, xbSystem);
    xbSensorML.getSensorML().setVersion("1.0.1");
    sensorML.setXml(xbSensorML.xmlText());
    final SystemType xbEncodedSystem = encodeSystem(sensorML);
    assertThat(xbEncodedSystem.sizeOfContactArray(), is(1));
    assertThat(xbEncodedSystem.getContactArray(0).isSetContactList(), is(true));
    assertThat(xbEncodedSystem.getContactArray(0).getContactList().sizeOfMemberArray(), is(2));
    boolean personChecked = false, responsiblePartyChecked = false;
    for (final Member member : xbEncodedSystem.getContactArray(0).getContactList().getMemberArray()) {
        if (member.isSetPerson()) {
            checkPerson(p1, member.getPerson());
            personChecked = true;
        } else if (member.isSetResponsibleParty()) {
            checkResponsibleParty(rp1, member.getResponsibleParty());
            responsiblePartyChecked = true;
        }
    }
    if (!personChecked) {
        fail("sml:Person not found in contact/contactList");
    }
    if (!responsiblePartyChecked) {
        fail("sml:ResponsibleParty not found in contact/ContactList");
    }
}
Also used : SmlResponsibleParty(org.n52.shetland.ogc.sensorML.SmlResponsibleParty) SensorMLDocument(net.opengis.sensorML.x101.SensorMLDocument) SystemType(net.opengis.sensorML.x101.SystemType) XmlObject(org.apache.xmlbeans.XmlObject) ContactList(net.opengis.sensorML.x101.ContactListDocument.ContactList) SmlResponsibleParty(org.n52.shetland.ogc.sensorML.SmlResponsibleParty) ResponsibleParty(net.opengis.sensorML.x101.ResponsiblePartyDocument.ResponsibleParty) SensorML(org.n52.shetland.ogc.sensorML.SensorML) SmlPerson(org.n52.shetland.ogc.sensorML.SmlPerson) Person(net.opengis.sensorML.x101.PersonDocument.Person) Member(net.opengis.sensorML.x101.ContactListDocument.ContactList.Member) System(org.n52.shetland.ogc.sensorML.System) SmlPerson(org.n52.shetland.ogc.sensorML.SmlPerson) Test(org.junit.Test)

Example 4 with SmlResponsibleParty

use of org.n52.shetland.ogc.sensorML.SmlResponsibleParty in project arctic-sea by 52North.

the class SensorMLEncoderV101Test method should_merge_and_encode_two_same_contact_responsibleParty_only_once.

@Test
public void should_merge_and_encode_two_same_contact_responsibleParty_only_once() throws EncodingException {
    final SensorML sensorML = new SensorML();
    final System system = new System();
    sensorML.addMember(system);
    final SmlResponsibleParty p1 = createResponsibleParty("1");
    system.addContact(p1);
    final SensorMLDocument xbSensorML = SensorMLDocument.Factory.newInstance();
    final SystemType xbSystem = SystemType.Factory.newInstance();
    final ResponsibleParty xbP1 = xbSystem.addNewContact().addNewResponsibleParty();
    setResponsiblePartyValues(p1, xbP1);
    final XmlObject xbProcess = xbSensorML.addNewSensorML().addNewMember().addNewProcess().set(xbSystem);
    XmlHelper.substituteElement(xbProcess, xbSystem);
    xbSensorML.getSensorML().setVersion("1.0.1");
    sensorML.setXml(xbSensorML.xmlText());
    final SystemType xbEncodedSystem = encodeSystem(sensorML);
    assertThat(xbEncodedSystem.sizeOfContactArray(), is(1));
    assertThat(xbEncodedSystem.getContactArray(0).isSetResponsibleParty(), is(true));
    checkResponsibleParty(p1, xbEncodedSystem.getContactArray(0).getResponsibleParty());
}
Also used : SmlResponsibleParty(org.n52.shetland.ogc.sensorML.SmlResponsibleParty) SensorMLDocument(net.opengis.sensorML.x101.SensorMLDocument) SystemType(net.opengis.sensorML.x101.SystemType) XmlObject(org.apache.xmlbeans.XmlObject) SmlResponsibleParty(org.n52.shetland.ogc.sensorML.SmlResponsibleParty) ResponsibleParty(net.opengis.sensorML.x101.ResponsiblePartyDocument.ResponsibleParty) SensorML(org.n52.shetland.ogc.sensorML.SensorML) System(org.n52.shetland.ogc.sensorML.System) Test(org.junit.Test)

Example 5 with SmlResponsibleParty

use of org.n52.shetland.ogc.sensorML.SmlResponsibleParty in project arctic-sea by 52North.

the class SensorMLDecoderV101Test method should_decode_contact_from_sml.

@Test
public void should_decode_contact_from_sml() throws DecodingException {
    String role1 = "role1";
    String role2 = "role2";
    String orgName = "orgName";
    String individualName = "individualName";
    String posName = "posName";
    String contactInstructions = "contactInstructions";
    String hoursOfService = "hoursOfService";
    String adminArea = "adminArea";
    String city = "city";
    String country = "country";
    String email = "email";
    String postalCode = "postalCode";
    String deliveryPoint1 = "deliveryPoint1";
    String deliveryPoint2 = "deliveryPoint2";
    String onlineResource1 = "onlineResource1";
    String onlineResource2 = "onlineResource2";
    String phoneVoice1 = "phoneVoice1";
    String phoneVoice2 = "phoneVoice2";
    String phoneFax1 = "phoneFax1";
    String phoneFax2 = "phoneFax2";
    String affiliation = "affiliation";
    String name = "name";
    String phoneNumber = "phoneNumber";
    String surname = "surname";
    String userID = "userID";
    SensorMLDocument xbSmlDoc = getSensorMLDoc();
    SystemType xbSystem = (SystemType) xbSmlDoc.getSensorML().addNewMember().addNewProcess().substitute(SensorMLConstants.SYSTEM_QNAME, SystemType.type);
    Contact xbContact = xbSystem.addNewContact();
    ContactList xbContactList = xbContact.addNewContactList();
    // responsible party
    ContactList.Member xbMember1 = xbContactList.addNewMember();
    xbMember1.setRole(role1);
    ResponsibleParty xbRespPart = xbMember1.addNewResponsibleParty();
    xbRespPart.setOrganizationName(orgName);
    xbRespPart.setIndividualName(individualName);
    xbRespPart.setPositionName(posName);
    ContactInfo xbContactInfo = xbRespPart.addNewContactInfo();
    xbContactInfo.setContactInstructions(contactInstructions);
    xbContactInfo.setHoursOfService(hoursOfService);
    ContactInfo.Address xbAddress = xbContactInfo.addNewAddress();
    xbAddress.setAdministrativeArea(adminArea);
    xbAddress.setCity(city);
    xbAddress.setCountry(country);
    xbAddress.setElectronicMailAddress(email);
    xbAddress.setPostalCode(postalCode);
    xbAddress.addDeliveryPoint(deliveryPoint1);
    xbAddress.addDeliveryPoint(deliveryPoint2);
    xbContactInfo.addNewOnlineResource().setHref(onlineResource1);
    xbContactInfo.addNewOnlineResource().setHref(onlineResource2);
    ContactInfo.Phone phone = xbContactInfo.addNewPhone();
    phone.addVoice(phoneVoice1);
    phone.addVoice(phoneVoice2);
    phone.addFacsimile(phoneFax1);
    phone.addFacsimile(phoneFax2);
    // person
    ContactList.Member xbMember2 = xbContactList.addNewMember();
    xbMember2.setRole(role2);
    Person xbPerson = xbMember2.addNewPerson();
    xbPerson.setAffiliation(affiliation);
    xbPerson.setEmail(email);
    xbPerson.setName(name);
    xbPerson.setPhoneNumber(phoneNumber);
    xbPerson.setSurname(surname);
    xbPerson.setUserID(userID);
    AbstractProcess absProcess = decodeAbstractProcess(xbSmlDoc);
    assertThat(absProcess.getContact(), notNullValue());
    assertThat(absProcess.getContact().size(), is(1));
    assertThat(absProcess.getContact().get(0), instanceOf(SmlContactList.class));
    SmlContactList smlContactList = (SmlContactList) absProcess.getContact().get(0);
    assertThat(smlContactList.getMembers(), notNullValue());
    assertThat(smlContactList.getMembers().size(), is(2));
    assertThat(smlContactList.getMembers().get(0).getRole(), is(role1));
    assertThat(smlContactList.getMembers().get(0), instanceOf(SmlResponsibleParty.class));
    SmlResponsibleParty smlRespParty = (SmlResponsibleParty) smlContactList.getMembers().get(0);
    assertThat(smlRespParty.getAdministrativeArea(), is(adminArea));
    assertThat(smlRespParty.getCity(), is(city));
    assertThat(smlRespParty.getContactInstructions(), is(contactInstructions));
    assertThat(smlRespParty.getCountry(), is(country));
    assertThat(smlRespParty.getDeliveryPoint().size(), is(2));
    assertThat(smlRespParty.getDeliveryPoint().get(0), is(deliveryPoint1));
    assertThat(smlRespParty.getDeliveryPoint().get(1), is(deliveryPoint2));
    assertThat(smlRespParty.getEmail(), is(email));
    assertThat(smlRespParty.getHoursOfService(), is(hoursOfService));
    assertThat(smlRespParty.getIndividualName(), is(individualName));
    assertThat(smlRespParty.getOnlineResources().size(), is(2));
    assertThat(smlRespParty.getOnlineResources().get(0), is(onlineResource1));
    assertThat(smlRespParty.getOnlineResources().get(1), is(onlineResource2));
    assertThat(smlRespParty.getOrganizationName(), is(orgName));
    assertThat(smlRespParty.getPhoneFax().size(), is(2));
    assertThat(smlRespParty.getPhoneFax().get(0), is(phoneFax1));
    assertThat(smlRespParty.getPhoneFax().get(1), is(phoneFax2));
    assertThat(smlRespParty.getPhoneVoice().size(), is(2));
    assertThat(smlRespParty.getPhoneVoice().get(0), is(phoneVoice1));
    assertThat(smlRespParty.getPhoneVoice().get(1), is(phoneVoice2));
    assertThat(smlRespParty.getPositionName(), is(posName));
    assertThat(smlRespParty.getPostalCode(), is(postalCode));
    assertThat(smlContactList.getMembers().get(1).getRole(), is(role2));
    assertThat(smlContactList.getMembers().get(1), instanceOf(SmlPerson.class));
    SmlPerson smlPerson = (SmlPerson) smlContactList.getMembers().get(1);
    assertThat(smlPerson.getAffiliation(), is(affiliation));
    assertThat(smlPerson.getEmail(), is(email));
    assertThat(smlPerson.getName(), is(name));
    assertThat(smlPerson.getPhoneNumber(), is(phoneNumber));
    assertThat(smlPerson.getSurname(), is(surname));
    assertThat(smlPerson.getUserID(), is(userID));
}
Also used : SmlResponsibleParty(org.n52.shetland.ogc.sensorML.SmlResponsibleParty) AbstractProcess(org.n52.shetland.ogc.sensorML.AbstractProcess) SystemType(net.opengis.sensorML.x101.SystemType) ContactList(net.opengis.sensorML.x101.ContactListDocument.ContactList) SmlContactList(org.n52.shetland.ogc.sensorML.SmlContactList) SmlResponsibleParty(org.n52.shetland.ogc.sensorML.SmlResponsibleParty) ResponsibleParty(net.opengis.sensorML.x101.ResponsiblePartyDocument.ResponsibleParty) Contact(net.opengis.sensorML.x101.ContactDocument.Contact) SensorMLDocument(net.opengis.sensorML.x101.SensorMLDocument) SmlContactList(org.n52.shetland.ogc.sensorML.SmlContactList) ContactInfo(net.opengis.sensorML.x101.ContactInfoDocument.ContactInfo) SmlPerson(org.n52.shetland.ogc.sensorML.SmlPerson) Person(net.opengis.sensorML.x101.PersonDocument.Person) SmlPerson(org.n52.shetland.ogc.sensorML.SmlPerson) Test(org.junit.Test)

Aggregations

SmlResponsibleParty (org.n52.shetland.ogc.sensorML.SmlResponsibleParty)6 ResponsibleParty (net.opengis.sensorML.x101.ResponsiblePartyDocument.ResponsibleParty)4 SystemType (net.opengis.sensorML.x101.SystemType)4 Test (org.junit.Test)4 ContactList (net.opengis.sensorML.x101.ContactListDocument.ContactList)3 SensorMLDocument (net.opengis.sensorML.x101.SensorMLDocument)3 XmlObject (org.apache.xmlbeans.XmlObject)3 SensorML (org.n52.shetland.ogc.sensorML.SensorML)3 SmlPerson (org.n52.shetland.ogc.sensorML.SmlPerson)3 System (org.n52.shetland.ogc.sensorML.System)3 Person (net.opengis.sensorML.x101.PersonDocument.Person)2 SmlContactList (org.n52.shetland.ogc.sensorML.SmlContactList)2 Contact (net.opengis.sensorML.x101.ContactDocument.Contact)1 ContactInfo (net.opengis.sensorML.x101.ContactInfoDocument.ContactInfo)1 Member (net.opengis.sensorML.x101.ContactListDocument.ContactList.Member)1 Member (net.opengis.sensorML.x101.SensorMLDocument.SensorML.Member)1 ContactListType (net.opengis.sensorml.x20.ContactListType)1 Capabilities (net.opengis.sensorml.x20.DescribedObjectType.Capabilities)1 Time (org.n52.shetland.ogc.gml.time.Time)1 TimeInstant (org.n52.shetland.ogc.gml.time.TimeInstant)1