public DefaultMarshallingStrategy(
     CompassMapping mapping,
     SearchEngine searchEngine,
     ConverterLookup converterLookup,
     InternalCompassSession session) {
   this.mapping = mapping;
   this.searchEngine = searchEngine;
   this.converterLookup = converterLookup;
   this.session = session;
   this.resourceFactory = session.getCompass().getResourceFactory();
 }
 public void bindSession() {
   _wrapped.bindSession();
 }
 public CompassQueryBuilder queryBuilder() throws CompassException {
   refreshIfDirty();
   return _wrapped.queryBuilder();
 }
 public void evict(Object obj) {
   _wrapped.evict(obj);
 }
 public void save(Object obj) {
   _wrapped.save(obj);
   _dirty = true;
 }
 public void delete(Class<?> clazz, Object obj) {
   _wrapped.delete(clazz, obj);
   _dirty = true;
 }
 public void delete(Resource resource) {
   _wrapped.delete(resource);
   _dirty = true;
 }
 public void flush() {
   _wrapped.flush();
   refreshIfDirty();
 }
 public boolean isReadOnly() {
   return _wrapped.isReadOnly();
 }
 public MarshallingStrategy getMarshallingStrategy() {
   return _wrapped.getMarshallingStrategy();
 }
 public SearchEngine getSearchEngine() {
   return _wrapped.getSearchEngine();
 }
 public CompassMetaData getMetaData() {
   return _wrapped.getMetaData();
 }
 public CompassMapping getMapping() {
   return _wrapped.getMapping();
 }
 public FirstLevelCache getFirstLevelCache() {
   return _wrapped.getFirstLevelCache();
 }
 public InternalCompass getCompass() {
   return _wrapped.getCompass();
 }
 public void setReadOnly() {
   _wrapped.setReadOnly();
 }
 public void evictAll() {
   _wrapped.evictAll();
 }
 public void save(Object value, DirtyOperationContext context) {
   _wrapped.save(value, context);
   _dirty = true;
 }
 public void create(String alias, Object obj) {
   _wrapped.create(alias, obj);
   _dirty = true;
 }
 public Object getByResource(Resource resource) throws CompassException {
   refreshIfDirty();
   return _wrapped.getByResource(resource);
 }
 public void delete(Object obj) {
   _wrapped.delete(obj);
   _dirty = true;
 }
 public void addDelegateClose(InternalSessionDelegateClose delegateClose) {
   _wrapped.addDelegateClose(delegateClose);
 }
 public void delete(String alias, Object obj) {
   _wrapped.delete(alias, obj);
   _dirty = true;
 }
 public Resource getResourceByIdResourceNoCache(Resource idResource) throws CompassException {
   refreshIfDirty();
   return _wrapped.getResourceByIdResourceNoCache(idResource);
 }
 public void save(String alias, Object obj) {
   _wrapped.save(alias, obj);
   _dirty = true;
 }
 public Object get(String alias, Object id, MarshallingContext context) throws CompassException {
   refreshIfDirty();
   return _wrapped.get(alias, id, context);
 }
 public void evict(String alias, Object id) {
   _wrapped.evict(alias, id);
 }
 void refresh() {
   ((ElasticSearchEngine) _wrapped.getSearchEngine()).refresh();
   _dirty = false;
 }
 public void create(Object object) {
   _wrapped.create(object);
   _dirty = true;
 }
 public void evict(Resource resource) {
   _wrapped.evict(resource);
 }