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

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

Introduction

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

Prototype

@Override
    public final void dirty() 

Source Link

Usage

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

License:Apache License

@Override
public Object merge(MergingContext context, Object object) {
    if (!(object instanceof List)) {
        return null;
    }/*from w w  w . j  a  v a  2  s. co  m*/

    List<?> source = (List<?>) object;
    List<?> result;

    if (source instanceof UninitializedPersistentList) {
        result = new PersistentList(context.getSessionImplementor());
        context.addProcessedObject(object, result);
    } else if (source instanceof com.erinors.hpb.shared.impl.PersistentList) {
        PersistentList list = new PersistentList(context.getSessionImplementor(), new ArrayList<Object>());
        context.addProcessedObject(object, list);

        for (Object element : source) {
            list.add(context.merge(element));
        }

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

        result = list;
    } else {
        List<Object> list = new ArrayList<Object>(source.size());
        context.addProcessedObject(object, list);

        for (Object element : source) {
            list.add(context.merge(element));
        }

        result = list;
    }

    return result;
}