1 16 package org.outerj.daisy.frontend.components.docbasket; 17 18 import org.apache.excalibur.xml.sax.XMLizable; 19 import org.apache.cocoon.xml.AttributesImpl; 20 import org.apache.commons.lang.builder.HashCodeBuilder; 21 import org.xml.sax.ContentHandler ; 22 import org.xml.sax.SAXException ; 23 24 32 public class DocumentBasketEntry implements XMLizable { 33 private final long documentId; 34 private final String branch; 35 private final String language; 36 private final long versionId; 37 private String documentName; 38 private int hashCode; 39 40 public DocumentBasketEntry(long documentId, String branch, String language, long versionId, String documentName) { 41 this.documentId = documentId; 42 this.branch = branch; 43 this.language = language; 44 this.versionId = versionId; 45 this.documentName = documentName; 46 initHashCode(); 47 } 48 49 private void initHashCode() { 50 HashCodeBuilder builder = new HashCodeBuilder(); 51 builder.append(this.documentId); 52 builder.append(branch); 53 builder.append(language); 54 builder.append(versionId); 55 this.hashCode = builder.toHashCode(); 56 } 57 58 public long getDocumentId() { 59 return documentId; 60 } 61 62 public String getBranch() { 63 return branch; 64 } 65 66 public String getLanguage() { 67 return language; 68 } 69 70 public long getVersionId() { 71 return versionId; 72 } 73 74 public String getDocumentName() { 75 return documentName; 76 } 77 78 public void setDocumentName(String documentName) { 79 this.documentName = documentName; 80 } 81 82 public void toSAX(ContentHandler contentHandler) throws SAXException { 83 AttributesImpl attrs = new AttributesImpl(); 84 attrs.addCDATAAttribute("id", String.valueOf(documentId)); 85 attrs.addCDATAAttribute("branch", branch); 86 attrs.addCDATAAttribute("language", language); 87 attrs.addCDATAAttribute("versionId", versionId == -1 ? "" : String.valueOf(versionId)); 88 attrs.addCDATAAttribute("name", documentName); 89 contentHandler.startElement("", "entry", "entry", attrs); 90 contentHandler.endElement("", "entry", "entry"); 91 } 92 93 public boolean equals(Object obj) { 94 DocumentBasketEntry other = (DocumentBasketEntry)obj; 95 return other.documentId == this.documentId 96 && other.branch.equals(this.branch) 97 && other.language.equals(this.language) 98 && other.versionId == this.versionId; 99 } 100 101 public int hashCode() { 102 return hashCode; 103 } 104 } 105 | Popular Tags |