Package com.psddev.cms.db

Source Code of com.psddev.cms.db.Trash

package com.psddev.cms.db;

import java.util.Date;
import java.util.Map;
import java.util.UUID;

import com.psddev.dari.db.Record;
import com.psddev.dari.db.State;
import com.psddev.dari.db.ObjectType;

/**
* Deleted object that can be restored later.
*
* @deprecated Use {@link Content.ObjectModification#setTrash} instead.
*/
@Deprecated
public class Trash extends Record {

    @Indexed
    private Date deleteDate;

    @Indexed
    private ToolUser deleteUser;

    @Indexed
    private ObjectType objectType;

    @Indexed
    private UUID objectId;

    private Map<String, Object> objectValues;

    /** Creates a blank instance. */
    protected Trash() {
    }

    /** Creates an instance based on the given {@code object}. */
    public Trash(ToolUser user, Object object) {
        State objectState = State.getInstance(object);
        getState().setDatabase(objectState.getDatabase());
        this.deleteDate = new Date();
        this.deleteUser = user;
        this.objectType = objectState.getType();
        this.objectId = objectState.getId();
        this.objectValues = objectState.getValues();
    }

    /** Returns the date when the object was deleted. */
    public Date getDeleteDate() {
        return deleteDate;
    }

    /** Returns the user that deleted the object. */
    public ToolUser getDeleteUser() {
        return deleteUser;
    }

    /** Returns the deleted object. */
    public Object getObject() {
        if (objectType == null) {
            return null;
        } else {
            Object object = objectType.createObject(objectId);
            State state = State.getInstance(object);
            if (objectValues != null) {
                state.getValues().putAll(objectValues);
            }
            return object;
        }
    }
}
TOP

Related Classes of com.psddev.cms.db.Trash

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.