event-publisher-portal/src/main/java/org/gcube/portal/event/publisher/lr62/PortalEvent.java

89 lines
2.4 KiB
Java

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<String, String> data) {
this(name, getUserIdentifier(user), data);
}
public PortalEvent(String name, String user, Map<String, String> 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);
}
}