Example usage for org.hibernate.collection.internal PersistentMap dirty

List of usage examples for org.hibernate.collection.internal PersistentMap dirty

Introduction

In this page you can find the example usage for org.hibernate.collection.internal PersistentMap dirty.

Prototype

@Override
    public final void dirty() 

Source Link

Usage

From source file:com.erinors.hpb.server.handler.MapHandler.java

License:Apache License

@Override
public Object merge(MergingContext context, Object object) {
    if (!(object instanceof Map)) {
        return null;
    }//from www.  j av a  2s  .  c o  m

    Map<?, ?> source = (Map<?, ?>) object;
    Map<?, ?> result;

    if (source instanceof UninitializedPersistentMap) {
        result = new PersistentMap(context.getSessionImplementor());
        context.addProcessedObject(object, result);
    } else if (source instanceof com.erinors.hpb.shared.impl.PersistentMap) {
        PersistentMap map = new PersistentMap(context.getSessionImplementor(), new HashMap<Object, Object>());
        context.addProcessedObject(object, map);

        for (Map.Entry<?, ?> entry : source.entrySet()) {
            map.put(context.merge(entry.getKey()), context.merge(entry.getValue()));
        }

        if (((com.erinors.hpb.shared.impl.PersistentMap<?, ?>) source).isDirty()) {
            map.dirty();
        } else {
            map.clearDirty();
        }

        result = map;
    } else {
        Map<Object, Object> map = new HashMap<Object, Object>(source.size());
        context.addProcessedObject(object, map);

        for (Map.Entry<?, ?> entry : source.entrySet()) {
            map.put(context.merge(entry.getKey()), context.merge(entry.getValue()));
        }

        result = map;
    }

    return result;
}