The service layer interfaces define methods that will be exposed to clients. These methods define the core actions required by our 3T application. Each method has a String actionUsername
argument to identify the user executing this request. The actionUsername
can be used in the implementation for logging purposes or to ensure a valid user is requesting data. The definition of valid will depend on the action being performed. Each interface will use generic types to define the returned Result
value object.
The CompanyService
interface will return a data payload that is either a Company object (Result<Company>
) or a list of Company objects (Result<List<Company>>
). The definition of this interface follows:
package com.gieman.tttracker.service; import java.util.List; import com.gieman.tttracker.domain.Company; import com.gieman.tttracker.vo.Result; public interface CompanyService { public Result<Company> store( Integer idCompany, String companyName, String actionUsername); public Result<Company> remove(Integer idCompany, String actionUsername); public Result<Company> find(Integer idCompany, String actionUsername); public Result<List<Company>> findAll(String actionUsername); }
Note we have defined a single store
method that will be used to save data to persistent storage. The implementing method will decide if a persist
or merge
is required. In a similar way, we can define the remaining interfaces (package and import definitions have been removed).
public interface ProjectService { public Result<Project> store( Integer idProject, Integer idCompany, String projectName, String actionUsername); public Result<Project> remove(Integer idProject, String actionUsername); public Result<Project> find(Integer idProject, String actionUsername); public Result<List<Project>> findAll(String actionUsername); } public interface TaskService { public Result<Task> store( Integer idTask, Integer idProject, String taskName, String actionUsername); public Result<Task> remove(Integer idTask, String actionUsername); public Result<Task> find(Integer idTask, String actionUsername); public Result<List<Task>> findAll(String actionUsername); } public interface TaskLogService { public Result<TaskLog> store( Integer idTaskLog, Integer idTask, String username, String taskDescription, Date taskLogDate, int taskMinutes, String actionUsername); public Result<TaskLog> remove(Integer idTaskLog, String actionUsername); public Result<TaskLog> find(Integer idTaskLog, String actionUsername); public Result<List<TaskLog>> findByUser(String username, Date startDate, Date endDate, String actionUsername); } public interface UserService { public Result<User> store( String username, String firstName, String lastName, String email, String password, Character adminRole, String actionUsername); public Result<User> remove(String username, String actionUsername); public Result<User> find(String username, String actionUsername); public Result<List<User>> findAll(String actionUsername); public Result<User> findByUsernamePassword(String username, String password); }
18.226.34.25