/* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you 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 sample.servicelifecycle; import org.apache.axis2.AxisFault; import org.apache.axis2.context.ServiceContext; import org.apache.axis2.description.AxisService; import org.apache.axis2.description.Parameter; import sample.servicelifecycle.LibraryConstants; import sample.servicelifecycle.bean.Book; import sample.servicelifecycle.bean.BookList; import sample.servicelifecycle.bean.User; import sample.servicelifecycle.bean.UserList; public class LibraryService { //To store all the available books private BookList availableBookList; //to keep all the book in the system private BookList allBookList; //to keep all the lended books private BookList lendBookList; //to keep the system users private UserList userList; public Book[] listAvailableBook() { return availableBookList.getBookList(); } public Book[] listAllBook() { return allBookList.getBookList(); } public Book[] listLendBook() { return lendBookList.getBookList(); } public Book lendBook(String isbn, String userName) throws AxisFault { if (isLogged(userName)) { Book book = availableBookList.getBook(isbn); if (book == null) { book = lendBookList.getBook(isbn); if (book != null) { throw new AxisFault("Someone has borrowed the book"); } throw new AxisFault("Book is not available for lending"); } availableBookList.removeBook(book); lendBookList.addBook(book); return book; } else { throw new AxisFault("First log into system"); } } public void returnBook(String isbn) { Book tempBook = allBookList.getBook(isbn); availableBookList.addBook(tempBook); lendBookList.removeBook(tempBook); } private boolean isLogged(String userName) { return userList.isLogged(userName); } public boolean register(String userName, String passWord) throws AxisFault { userList.addUser(new User(userName, passWord)); return true; } public boolean login(String userName, String passWord) throws AxisFault { return userList.login(userName, passWord); } /** * Session related methods */ public void init(ServiceContext serviceContext) { AxisService service = serviceContext.getAxisService(); this.availableBookList = (BookList) service.getParameterValue(LibraryConstants.AVAILABLE_BOOK); this.availableBookList.setListName(LibraryConstants.AVAILABLE_BOOK); this.allBookList = (BookList) service.getParameterValue(LibraryConstants.ALL_BOOK); this.lendBookList = (BookList) service.getParameterValue(LibraryConstants.LEND_BOOK); this.userList = (UserList) service.getParameterValue(LibraryConstants.USER_LIST); } public void destroy(ServiceContext serviceContext) throws AxisFault { AxisService service = serviceContext.getAxisService(); service.addParameter(new Parameter(LibraryConstants.AVAILABLE_BOOK, availableBookList)); service.addParameter(new Parameter(LibraryConstants.ALL_BOOK, allBookList)); service.addParameter(new Parameter(LibraryConstants.LEND_BOOK, lendBookList)); service.addParameter(new Parameter(LibraryConstants.USER_LIST, userList)); } }