package org.openedit.event; import java.util.Arrays; import java.util.Collection; import java.util.Date; import java.util.HashMap; import java.util.Iterator; import java.util.Map; import org.openedit.Data; import org.openedit.MultiValued; import com.openedit.users.User; public class WebEvent implements Data, MultiValued { protected String fieldId; //optional protected String fieldSearchType; //user search protected String fieldOperation; //login logout protected Date fieldDate = new Date(); //defaults to "Right Now" protected Map fieldProperties; protected Object fieldSource; protected User fieldUser; /** * Warning this may not be set. use getUserName to be sure * @return */ public User getUser() { return fieldUser; } public void setUser(User inUser) { fieldUser = inUser; if( inUser != null) { setUsername(inUser.getUserName()); } } protected String fieldUsername; public WebEvent() { } public String getSearchType() { return fieldSearchType; } public void setSearchType(String inType) { fieldSearchType = inType; } /** * @deprecated use setProperty * @param inKey * @param inValue */ public void addDetail( String inKey, String inValue) { setProperty(inKey, inValue); } public String get( String inKey) { return (String)getProperties().get(inKey); } public void setProperties(Map inDetails) { fieldProperties = inDetails; } public Object getSource() { return fieldSource; } public void setSource(Object inSource) { fieldSource = inSource; } public String getOperation() { return fieldOperation; } public void setOperation(String inOperation) { fieldOperation = inOperation; } public String getUsername() { return fieldUsername; } public void setUsername(String inUser) { fieldUsername = inUser; } public String getCatalogId() { return get("catalogid"); } public void setCatalogId(String inCatalogId) { setProperty("catalogid", inCatalogId); } public Date getDate() { return fieldDate; } public void setDate(Date inDate) { fieldDate = inDate; } public String getName() { return getSearchType(); } public void setName(String inName) { setSearchType(inName); } public void setProperty(String inId, String inValue) { getProperties().put( inId, inValue); } public String getId() { return fieldId; } public void setId(String inId) { fieldId = inId; } //part of the API public String getSourcePath() { return get("sourcepath"); } /** This is more like a path */ public void setSourcePath(String inSourcepath) { setProperty("sourcepath", inSourcepath); } public Map getProperties() { if (fieldProperties == null) { fieldProperties = new HashMap(); } return fieldProperties; } public Collection getValues(String inPreference) { String val = get(inPreference); if (val == null) { return null; } String[] vals = null; if( val.contains("|") ) { vals = VALUEDELMITER.split(val); } else { vals = val.split("\\s+"); //legacy } Collection collection = Arrays.asList(vals); //if null check parent return collection; } public void setValues(String inKey, Collection<String> inValues) { StringBuffer values = new StringBuffer(); for (Iterator iterator = inValues.iterator(); iterator.hasNext();) { String detail = (String) iterator.next(); values.append(detail); if( iterator.hasNext()) { values.append(" | "); } } setProperty(inKey,values.toString()); } }