TrustGrapher  r52
A playabale simulator for modelling trust between agents
D:/src/cu/trustGrapher/graphs/edges/SimFeedbackEdge.java
Go to the documentation of this file.
00001 
00002 package cu.trustGrapher.graphs.edges;
00003 
00004 import cu.repsystestbed.graphs.FeedbackHistoryGraphEdge;
00005 import cu.repsystestbed.data.Feedback;
00006 import cu.repsystestbed.entities.Agent;
00007 import aohara.utilities.ChatterBox;
00008 
00014 public class SimFeedbackEdge extends FeedbackHistoryGraphEdge {
00015 
00016     private StringBuffer label; //The String that is displayed in the GraphViewer next to the edge
00017 
00019 
00025     public SimFeedbackEdge(Agent src, Agent sink) throws Exception {
00026         super(src, sink);
00027         label = new StringBuffer();
00028     }
00029 
00031 
00037     @Override
00038     public String toString() {
00039         if (label.length() == 0 && !feedbacks.isEmpty()) {
00040             label.append(feedbacks.get(0).value);
00041             for (int i = 1; i < feedbacks.size(); i++) {
00042                 label.append(", ");
00043                 label.append(feedbacks.get(i).value);
00044             }
00045         }
00046         return label.toString();
00047     }
00049 
00056     public void addFeedback(Agent assessor, Agent assessee, double feedback) {
00057         try {
00058             super.addFeedback(new Feedback(assessor, assessee, feedback));
00059             label = new StringBuffer();
00060         } catch (Exception ex) {
00061             ChatterBox.error(this, "addFeedback()", ex.getMessage());
00062             ex.printStackTrace();
00063         }
00064     }
00065 
00071     public void removeFeedback(double feedback) {
00072         for (Feedback fb : feedbacks) {
00073             if (fb.value == feedback) {
00074                 feedbacks.remove(fb);
00075                 label = new StringBuffer();
00076                 break;
00077             }
00078         }
00079     }
00080 
00081     @Override
00082     public boolean equals(Object o) {
00083         if (o instanceof SimFeedbackEdge) {
00084             SimFeedbackEdge other = (SimFeedbackEdge) o;
00085             return (src.equals(other.src)) && (sink.equals(other.sink));
00086         }
00087         return false;
00088 
00089 
00090     }
00091 
00092     @Override
00093     public int hashCode() {
00094         int hash = 3;
00095         return hash;
00096 
00097     }
00098 }
00100