Skip to content

Instantly share code, notes, and snippets.

@msangel
Created October 23, 2019 21:54
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save msangel/4a9b4404b233a6ff57a4ca54db3bfc1f to your computer and use it in GitHub Desktop.
Save msangel/4a9b4404b233a6ff57a4ca54db3bfc1f to your computer and use it in GitHub Desktop.
Data PropertyResolverAdapter
package liqp;
import java.util.Map;
/**
* Provide alternative to :data
* Used in some liquid transformation also used as main data storage in data model of jekyll.
*/
public interface DataAccessor {
Map<String, Object> getData();
}
package liqp.filters.where;
import com.fasterxml.jackson.databind.ObjectMapper;
import liqp.DataAccessor;
import liqp.LValue;
public class DataAccessorPropertyResolverAdapter extends LValue implements PropertyResolverAdapter {
@Override
public Object getItemProperty(ObjectMapper mapper, Object input, Object property) {
return ((DataAccessor) input).getData().get(asString(property));
}
@Override
public boolean support(Object target) {
return target instanceof DataAccessor;
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment