1 37 38 package org.jahia.blogs.actions; 39 40 import org.jahia.blogs.model.MetaPostInfo; 41 42 import org.jahia.data.containers.JahiaContainerList; 43 import org.jahia.data.containers.JahiaContainer; 44 45 import org.jahia.data.fields.JahiaField; 46 47 import org.jahia.exceptions.JahiaException; 48 49 import org.apache.log4j.Logger; 50 51 import java.util.Vector ; 52 import java.util.Hashtable ; 53 import java.util.Enumeration ; 54 55 61 public class GetTrackBackPingsAction extends AbstractAction { 62 63 static Logger log = Logger.getLogger(GetTrackBackPingsAction.class); 65 66 private String postID; 67 68 69 public GetTrackBackPingsAction(String postID) { 70 this.postID = postID; 71 } 72 73 76 public Object execute() throws JahiaException { 77 78 super.init(); 80 81 final JahiaContainer postContainer = super.getContainer( 83 Integer.parseInt(postID)); 84 85 if (postContainer == null) { 86 throw new JahiaException("Post: "+postID+ 87 " does not exist", "Container: "+postID+ " does not exist", 88 JahiaException.ENTRY_NOT_FOUND, 89 JahiaException.WARNING_SEVERITY); 90 } 91 92 log.debug("Working on post: "+postContainer.getID()); 93 94 super.changePage(postContainer.getPageID()); 95 96 JahiaContainerList trackBacks = postContainer.getContainerList( 97 super.containerNames.getValue(containerNames.BLOG_TB_LIST)); 98 99 if (trackBacks == null || trackBacks.getID() < 1) { 100 log.debug("No Trackbacks found"); 101 return new Vector (0, 0); 102 } 103 104 log.debug("Found "+trackBacks.size()+" trackbacks"); 105 106 Vector result = new Vector (trackBacks.size()); 107 Enumeration e = trackBacks.getContainers(); 108 109 while (e.hasMoreElements()) { 110 Hashtable tb = new Hashtable (3); 111 JahiaContainer tbContainer = (JahiaContainer)e.nextElement(); 112 113 log.debug("Working on Container: "+tbContainer.getID()); 114 115 String fieldName = containerNames.getValue(containerNames.TB_BLOG_NAME); 116 JahiaField field = tbContainer.getField(fieldName); 117 if (field != null) tb.put(MetaPostInfo.PING_TITLE, field.getValue()); 118 119 fieldName = containerNames.getValue(containerNames.TB_URL); 120 field = tbContainer.getField(fieldName); 121 if (field != null) tb.put(MetaPostInfo.PING_URL, field.getValue()); 122 123 fieldName = containerNames.getValue(containerNames.TB_PING_IP); 124 field = tbContainer.getField(fieldName); 125 if (field != null) tb.put(MetaPostInfo.PING_IP, field.getValue()); 126 127 result.addElement(tb); 128 } 129 130 log.debug("TrackBack Pings are: "+result); 131 return result; 132 } 133 } 134 | Popular Tags |