package com.thinkaurelius.faunus.mapreduce.util;
import com.thinkaurelius.faunus.FaunusEdge;
import com.thinkaurelius.faunus.FaunusElement;
import com.thinkaurelius.faunus.Tokens;
import java.util.HashMap;
import java.util.Map;
/**
* @author Marko A. Rodriguez (http://markorodriguez.com)
*/
public class ElementPicker {
protected ElementPicker() {
}
public static String getPropertyAsString(final FaunusElement element, final String key) {
if (key.equals(Tokens._ID) || key.equals(Tokens.ID))
return element.getId().toString();
else if (key.equals(Tokens._PROPERTIES)) {
final Map<String, Object> properties = new HashMap<String, Object>();
for (final Map.Entry<String, Object> entry : element.getProperties().entrySet()) {
properties.put(entry.getKey(), entry.getValue());
}
properties.put(Tokens._ID, element.getId());
return properties.toString();
} else if (key.equals(Tokens.LABEL) && element instanceof FaunusEdge) {
return ((FaunusEdge) element).getLabel();
} else {
final Object value = element.getProperty(key);
if (null != value)
return value.toString();
else
return Tokens.NULL;
}
}
public static Object getProperty(final FaunusElement element, final String key) {
if (key.equals(Tokens._ID) || key.equals(Tokens.ID))
return element.getId();
else if (key.equals(Tokens._PROPERTIES)) {
final Map<String, Object> properties = new HashMap<String, Object>();
for (final Map.Entry<String, Object> entry : element.getProperties().entrySet()) {
properties.put(entry.getKey(), entry.getValue());
}
properties.put(Tokens._ID, element.getId());
return properties;
} else if (key.equals(Tokens.LABEL) && element instanceof FaunusEdge) {
return ((FaunusEdge) element).getLabel();
} else {
return element.getProperty(key);
}
}
}