1 /** 2008, Digitalis Informatica. All rights reserved. 2 * 3 * Distribuicao e Gestao de Informatica, Lda. 4 * Estrada de Paco de Arcos num.9 - Piso -1 5 * 2780-666 Paco de Arcos 6 * Telefone: (351) 21 4408990 7 * Fax: (351) 21 4408999 8 * http://www.digitalis.pt 9 */ 10 11 package pt.digitalis.dif.dem.managers; 12 13 import java.util.List; 14 import java.util.Map; 15 16 import pt.digitalis.dif.dem.objects.issues.IssueScope; 17 import pt.digitalis.dif.dem.objects.issues.IssueType; 18 import pt.digitalis.dif.dem.objects.issues.UsageIssue; 19 20 /** 21 * Defines the expected behavior for the usage issue manager. 22 * 23 * @author Rodrigo Gonçalves <a href="mailto:rgoncalves@digitalis.pt">rgoncalves@digitalis.pt</a><br/> 24 * @created 2008/11/13 25 */ 26 public interface IUsageIssuesManager { 27 28 /** 29 * Adds an issue to the manager. Bean form. 30 * 31 * @param usageIssue 32 * the issue to add 33 */ 34 public void addIssue(UsageIssue usageIssue); 35 36 /** 37 * Adds an issue to the issue manager. Extended form. 38 * 39 * @param issueType 40 * the issue type 41 * @param issueScope 42 * the issue scope 43 * @param location 44 * the issue location 45 * @param issueDescription 46 * the issue description 47 * @param exception 48 * the exception that might associated to the issue 49 */ 50 public void addIssue(IssueType issueType, IssueScope issueScope, String location, String issueDescription, 51 Exception exception); 52 53 /** 54 * Returns all the issues on the manager. 55 * 56 * @return the issues on the manager 57 */ 58 public Map<String, List<UsageIssue>> getIssues(); 59 60 /** 61 * Returns the issues associated to the entity with the given UID. 62 * 63 * @param entityUID 64 * @return the issues for the given entity unique ID 65 */ 66 public List<UsageIssue> getIssues(String entityUID); 67 68 /** 69 * Logs all issues associated to the entity with the given UID. 70 * 71 * @param entityUID 72 * the entity's UID 73 */ 74 public void logIssues(String entityUID); 75 76 /** 77 * Logs all issues on the manager by entity. 78 */ 79 public void logAllIssuesByEntity(); 80 81 /** 82 * Logs all issues on the manager by type. 83 */ 84 public void logAllIssuesByType(); 85 86 /** 87 * Returns T if there are issues on the manager, F otherwise. 88 * 89 * @return T if there are issues on the manager, F otherwise 90 */ 91 public boolean hasIssues(); 92 93 /** 94 * Returns T if there are issues for the given location, F otherwise. 95 * 96 * @param location 97 * the location 98 * @return T if there are issues related to the given location, F otherwise 99 */ 100 public boolean hasIssues(String location); 101 102 }