package com.cloudera.flume.core;
import java.util.Collections;
import java.util.Date;
import java.util.HashMap;
import java.util.Map;
import java.util.Map.Entry;
import org.apache.commons.lang.StringEscapeUtils;
import com.google.common.base.Preconditions;
protected Map<String, byte[]> fields;
this.fields = new HashMap<String, byte[]>();
}
Preconditions.checkNotNull(fields);
this.fields = fields;
}
@Override
public byte[]
get(String attr) {
return fields.get(attr);
}
@Override
public void set(String attr,
byte[] v) {
if (fields.get(attr) != null) {
throw new IllegalArgumentException(
"Event already had an event with attribute " + attr);
}
fields.put(attr, v);
}
return Collections.unmodifiableMap(fields);
}
@Override
String mbody = StringEscapeUtils.escapeJava(new String(getBody()));
return getHost() + " [" + getPriority().toString() + " "
+ new Date(getTimestamp()) + "] " + mbody;
}
@Override
Preconditions.checkNotNull(e, "hierarchicalMerge called with null event");
for (Entry<String, byte[]> field : e.getAttrs().entrySet()) {
String key = prefix + "." + field.getKey();
if (get(key) != null) {
continue;
}
byte[] val = e.get(key);
if (val != null) {
set(key, val);
}
}
}
@Override
public void merge(Event e) {
Preconditions.checkNotNull(e, "merge called with null event");
for (Entry<String, byte[]> field : e.getAttrs().entrySet()) {
if (get(field.getKey()) != null) {
continue;
}
byte[] val = e.get(field.getKey());
if (val != null) {
set(field.getKey(), val);
}
}
}
}