package com.mongodb.hvdf.rollup; import com.mongodb.DBObject; public abstract class RollupOperation { public abstract DBObject getUpdateClause(DBObject sample); protected static Object getNestedFieldValue(String fieldName, DBObject sample) { Object levelValue = sample; String[] levels = fieldName.split("\\."); for(String levelName : levels){ if(levelValue instanceof DBObject){ levelValue = ((DBObject)levelValue).get(levelName); } else { return null; } } return levelValue; } }