1 package com.dotmarketing.portlets.mailinglists.factories; 2 3 4 import java.util.List ; 5 6 import com.dotmarketing.db.DotHibernate; 7 import com.dotmarketing.factories.InodeFactory; 8 import com.dotmarketing.portlets.mailinglists.model.MailingList; 9 import com.dotmarketing.portlets.mailinglists.model.Subscriber; 10 import com.liferay.portal.PortalException; 11 import com.liferay.portal.SystemException; 12 import com.liferay.portal.model.Address; 13 import com.liferay.portal.model.User; 14 15 21 public class SubscriberFactory { 22 23 public static final Subscriber getSubscribersByEmail(String email) { 24 DotHibernate dh = new DotHibernate(Subscriber.class); 25 dh.setQuery("from inode in class com.dotmarketing.portlets.mailinglists.model.Subscriber where email like ? "); 26 dh.setParam(email); 27 Subscriber s = (Subscriber) dh.load(); 28 if(s.getInode() ==0){ 29 s = newInstance(); 30 } 31 return s; 32 } 33 34 public static final Subscriber getSubscriberByUser (User webUser) throws PortalException, SystemException { 35 List addresses = webUser.getAddresses(); 36 Address address = null; 37 if (addresses.size() > 0) { 38 address = (Address) addresses.get(0); 39 } 40 Subscriber s = SubscriberFactory.getSubscribersByEmail(webUser.getEmailAddress()); 41 s.setEmail(webUser.getEmailAddress()); 42 s.setName(webUser.getFirstName()); 43 s.setMiddleName(webUser.getMiddleName()); 44 s.setLastName(webUser.getLastName()); 45 if (address != null) { 46 s.setAddress1(address.getStreet1()); 47 s.setAddress2(address.getStreet2()); 48 s.setCity(address.getCity()); 49 s.setState(address.getState()); 50 s.setZip(address.getZip()); 51 s.setCountry(address.getCountry()); 52 s.setPhone(address.getPhone()); 53 } else { 54 s.setAddress1(""); 55 s.setAddress2(""); 56 s.setCity(""); 57 s.setState(""); 58 s.setZip(""); 59 s.setCountry(""); 60 s.setPhone(""); 61 } 62 return s; 63 } 64 65 public static final Subscriber getSubscriber(String id) { 66 try { 68 return getSubscriber(Long.parseLong(id)); 69 } catch (Exception e) { 70 return newInstance(); 71 } 72 73 } 75 81 public static final Subscriber getSubscriber(long id) { 82 83 DotHibernate dh = new DotHibernate(Subscriber.class); 84 85 Subscriber s = (Subscriber) dh.load(id); 86 if(s.getInode() ==0){ 87 s = newInstance(); 88 } 89 return s; 90 } 91 92 97 public static final java.util.List getSubscribersByList(MailingList l, String orderby) { 98 List subs = InodeFactory.getChildrenClass(l, Subscriber.class, orderby); 99 return subs; 100 } 101 102 public static final java.util.List getSubscribersByList(MailingList l) { 103 return InodeFactory.getChildrenClass(l, Subscriber.class); 104 } 105 106 public static Subscriber save(Subscriber x) { 107 DotHibernate.saveOrUpdate(x); 108 return x; 109 } 110 111 112 public static boolean isBlocked(String email){ 113 114 MailingList ml = MailingListFactory.getUnsubscribersMailingList(); 115 Subscriber s = SubscriberFactory.getSubscriber(email); 116 return isSubscribed(ml,s); 117 118 } 119 120 public static final boolean isSubscribed(MailingList list, Subscriber s){ 121 122 123 Subscriber sub = (Subscriber) InodeFactory.getChildOfClassbyCondition(list, Subscriber.class, "email like '" + s.getEmail() + "'"); 124 125 126 return (sub.getInode() > 0); 127 128 } 129 public static Subscriber newInstance(){ 130 Subscriber s = new Subscriber(); 131 s.setLastResult(0); 132 return s; 133 } 134 135 public static void deleteSubscriber(MailingList ml, String sub){ 136 137 Subscriber s = (Subscriber) InodeFactory.getInode(sub,Subscriber.class); 138 ml.deleteChild(s); 139 140 } 141 142 } 143 | Popular Tags |