1 23 24 package org.infoglue.deliver.applications.databeans; 25 26 import java.util.ArrayList ; 27 import java.util.List ; 28 29 import org.infoglue.deliver.applications.actions.InfoGlueComponent; 30 31 37 38 public class ComponentDeliveryContext implements UsageListener 39 { 40 private String componentKey = null; 41 private InfoGlueComponent infoGlueComponent; 42 43 private List usedContents = new ArrayList (); 45 private List usedContentVersions = new ArrayList (); 46 private List usedSiteNodes = new ArrayList (); 47 private List usedSiteNodeVersions = new ArrayList (); 48 49 private DeliveryContext deliveryContext; 50 51 public static ComponentDeliveryContext getComponentDeliveryContext(DeliveryContext deliveryContext, InfoGlueComponent infoGlueComponent) 52 { 53 return new ComponentDeliveryContext(deliveryContext, infoGlueComponent); 54 } 55 56 private ComponentDeliveryContext(DeliveryContext deliveryContext, InfoGlueComponent infoGlueComponent) 57 { 58 this.deliveryContext = deliveryContext; 59 this.infoGlueComponent = infoGlueComponent; 60 this.componentKey = this.deliveryContext.getPageKey() + "_" + infoGlueComponent.getId(); 61 } 62 63 public void addUsedContent(String usedContent) 64 { 65 synchronized(usedContents) 66 { 67 this.usedContents.add(usedContent); 68 } 69 } 70 71 public void addUsedSiteNode(String usedSiteNode) 72 { 73 synchronized(usedSiteNodes) 74 { 75 this.usedSiteNodes.add(usedSiteNode); 76 } 77 } 78 79 public void addUsedContentVersion(String usedContentVersion) 80 { 81 synchronized(usedContentVersions) 82 { 83 this.usedContentVersions.add(usedContentVersion); 84 } 85 } 86 87 public void addUsedSiteNodeVersion(String usedSiteNodeVersion) 88 { 89 synchronized(usedSiteNodeVersions) 90 { 91 this.usedSiteNodeVersions.add(usedSiteNodeVersion); 92 } 93 } 94 95 public String [] getAllUsedEntities() 96 { 97 List list = new ArrayList (); 98 synchronized(usedContents) 99 { 100 list.addAll(this.usedContents); 101 } 102 103 synchronized(usedContentVersions) 104 { 105 list.addAll(this.usedContentVersions); 106 } 107 108 synchronized(usedSiteNodes) 109 { 110 list.addAll(this.usedSiteNodes); 111 } 112 113 synchronized(usedSiteNodeVersions) 114 { 115 list.addAll(this.usedSiteNodeVersions); 116 } 117 118 Object [] array = list.toArray(); 119 String [] groups = new String [array.length]; 120 for(int i=0; i<array.length; i++) 121 groups[i] = array[i].toString(); 122 123 return groups; 124 } 125 126 public String getComponentKey() 127 { 128 return componentKey; 129 } 130 131 public String getPageKey() 132 { 133 return this.deliveryContext.getPageKey(); 134 } 135 } 136 | Popular Tags |