/* * Copyright 2002-2005 the original author or authors. * * 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 info.jtrac; import info.jtrac.domain.BatchInfo; import info.jtrac.domain.Config; import info.jtrac.domain.Counts; import info.jtrac.domain.CountsHolder; import info.jtrac.domain.Field; import info.jtrac.domain.History; import info.jtrac.domain.Item; import info.jtrac.domain.ItemItem; import info.jtrac.domain.ItemSearch; import info.jtrac.domain.Metadata; import info.jtrac.domain.Space; import info.jtrac.domain.User; import info.jtrac.domain.UserSpaceRole; import java.util.List; import java.util.Map; import org.acegisecurity.userdetails.UserDetailsService; import org.apache.wicket.markup.html.form.upload.FileUpload; /** * Jtrac main business interface (Service Layer) */ public interface Jtrac extends UserDetailsService { // TODO remove Wicket dep with FileUpload void storeItem(Item item, FileUpload fileUpload); void storeItems(List<Item> items); void updateItem(Item item, User user); void storeHistoryForItem(long itemId, History history, FileUpload fileUpload); Item loadItem(long id); Item loadItemByRefId(String refId); History loadHistory(long id); List<Item> findItems(ItemSearch itemSearch); int loadCountOfAllItems(); List<Item> findAllItems(int firstResult, int batchSize); void removeItem(Item item); void removeItemItem(ItemItem itemItem); //======================================================== int loadCountOfRecordsHavingFieldNotNull(Space space, Field field); int bulkUpdateFieldToNull(Space space, Field field); int loadCountOfRecordsHavingFieldWithValue(Space space, Field field, int optionKey); int bulkUpdateFieldToNullForValue(Space space, Field field, int optionKey); int loadCountOfRecordsHavingStatus(Space space, int status); int bulkUpdateStatusToOpen(Space space, int status); int bulkUpdateRenameSpaceRole(Space space, String oldRoleKey, String newRoleKey); int bulkUpdateDeleteSpaceRole(Space space, String roleKey); //======================================================== void storeUser(User user); void storeUser(User user, String password, boolean sendNotifications); void removeUser(User user); User loadUser(long id); User loadUser(String loginName); List<User> findAllUsers(); List<User> findUsersWhereIdIn(List<Long> ids); List<User> findUsersMatching(String searchText, String searchOn); List<User> findUsersForSpace(long spaceId); List<UserSpaceRole> findUserRolesForSpace(long spaceId); Map<Long, List<UserSpaceRole>> loadUserRolesMapForSpace(long spaceId); Map<Long, List<UserSpaceRole>> loadSpaceRolesMapForUser(long userId); List<User> findUsersWithRoleForSpace(long spaceId, String roleKey); List<User> findUsersForUser(User user); List<User> findUsersNotFullyAllocatedToSpace(long spaceId); int loadCountOfHistoryInvolvingUser(User user); //======================================================== CountsHolder loadCountsForUser(User user); Counts loadCountsForUserSpace(User user, Space space); //======================================================== void storeSpace(Space space); Space loadSpace(long id); Space loadSpace(String prefixCode); List<Space> findAllSpaces(); List<Space> findSpacesWhereIdIn(List<Long> ids); List<Space> findSpacesWhereGuestAllowed(); List<Space> findSpacesNotFullyAllocatedToUser(long userId); void removeSpace(Space space); //======================================================== void storeUserSpaceRole(User user, Space space, String roleKey); UserSpaceRole loadUserSpaceRole(long id); void removeUserSpaceRole(UserSpaceRole userSpaceRole); //======================================================== void storeMetadata(Metadata metadata); Metadata loadMetadata(long id); //======================================================== String generatePassword(); String encodeClearText(String clearText); Map<String, String> getLocales(); String getDefaultLocale(); String getJtracHome(); int getAttachmentMaxSizeInMb(); int getSessionTimeoutInMinutes(); //======================================================== Map<String, String> loadAllConfig(); void storeConfig(Config config); String loadConfig(String param); //======================================================== void rebuildIndexes(BatchInfo batchInfo); boolean validateTextSearchQuery(String text); //======================================================== void executeHourlyTask(); void executePollingTask(); //======================================================== String getReleaseVersion(); String getReleaseTimestamp(); }