/**
* Copyright © 2006-2016 Web Cohesion (info@webcohesion.com)
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package com.webcohesion.enunciate.examples.jboss.genealogy.services;
import com.webcohesion.enunciate.examples.jboss.genealogy.data.Person;
import javax.jws.WebService;
import javax.jws.soap.SOAPBinding;
import java.util.Collection;
/**
* The person service is used to access persons in the database.
*
* @author Ryan Heaton
*/
@WebService (
targetNamespace = "http://enunciate.webcohesion.com/samples/full"
)
public interface PersonService {
/**
* Stores a person in the database.
*
* @param person The person to store in the database.
* @return The person that was stored (presumably modified for storage).
*/
@SOAPBinding (
parameterStyle = SOAPBinding.ParameterStyle.BARE
)
Person storePerson(Person person);
/**
* Reads a set of persons from the database. Intended as an example of
* collections as SOAP parameters.
* @param personIds The ids of the persons to read.
* @return The persons that were read.
* @throws ServiceException If the read of one or more of the people failed.
*/
Collection<Person> readPersons(Collection<String> personIds) throws ServiceException;
/**
* Deletes a person from the database. Not a one-way method, but still void.
*
* @param personId The id of the person.
* @throws ServiceException If some problem occurred when deleting the person.
*/
void deletePerson(String personId) throws ServiceException;
}