/** * 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.samples.idl.genealogy.services; import com.webcohesion.enunciate.samples.idl.genealogy.data.Person; import javax.jws.WebService; import javax.jws.WebMethod; import javax.jws.soap.SOAPBinding; import javax.ws.rs.DELETE; import javax.ws.rs.PUT; import javax.ws.rs.Path; import javax.ws.rs.PathParam; import javax.activation.DataHandler; 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 ) @PUT @Path ("/pedigree/person") 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. */ @DELETE @Path("/remover/pedigree/person/{id}") void deletePerson(@PathParam("id") String personId) throws ServiceException; /** * Uploads some files. * * @param files The files * @param length The length(s) of the files. */ @WebMethod ( exclude = true ) void uploadFiles(DataHandler[] files, String length) throws ServiceException; // todo: uncomment when wanting to spend time investigating why jaxb doesn't work with the JAX-WS types the same way it does its own. // /** // * Reads the family of a given person. Tests out maps. // * // * @param personId The id of the person for which to read the family. // * @return The persons in the family by relationship type. // * @throws ServiceException If some problem occurred. // */ // Map<RelationshipType, Person> readFamily(String personId) throws ServiceException; }