package org.gcube.portal.event.publisher.lr62; import java.net.InetAddress; import java.net.UnknownHostException; import java.util.Map; import org.gcube.event.publisher.Event; import org.gcube.vomanagement.usermanagement.impl.LiferayGroupManager; import com.liferay.portal.kernel.log.Log; import com.liferay.portal.kernel.log.LogFactoryUtil; import com.liferay.portal.model.User; import com.liferay.portal.util.PortalUtil; public class PortalEvent extends Event { private static final long serialVersionUID = -6940345709578482873L; protected static final Log log = LogFactoryUtil.getLog(PortalEvent.class); private static String sender; public static final String TYPE = "portal"; public static final String GROUP_ENTRY = "group"; public static final String ROLE_ENTRY = "role"; static { try { sender = new LiferayGroupManager().getRootVOName(); } catch (Exception e) { log.warn("Cannot get root VO name, using hostname"); try { sender = InetAddress.getLocalHost().getHostName(); } catch (UnknownHostException e1) { log.error("Cannot get localhost name", e); sender = PortalUtil.getComputerName(); } } } public PortalEvent(String name) { super(name, TYPE, getSender()); } public PortalEvent(String name, User user) { this(name, getUserIdentifier(user)); } public PortalEvent(String name, String user) { super(name, TYPE, getSender(), user); } public PortalEvent(String name, User user, Map data) { this(name, getUserIdentifier(user), data); } public PortalEvent(String name, String user, Map data) { super(name, TYPE, getSender(), user, data); } protected static String getSender() { return sender; } public void setUser(User user) { setUser(getUserIdentifier(user)); } protected static String getUserIdentifier(User user) { return user.getScreenName(); } public void setGroup(String group) { set(GROUP_ENTRY, group); } public String getGroup() { return (String) (GROUP_ENTRY); } public void setRole(String role) { set(ROLE_ENTRY, role); } public String getRole() { return (String) (ROLE_ENTRY); } }