org.pentaho.gwt.widgets.client.filechooser.RepositoryFile.java Source code

Java tutorial

Introduction

Here is the source code for org.pentaho.gwt.widgets.client.filechooser.RepositoryFile.java

Source

/*!
 * This program is free software; you can redistribute it and/or modify it under the
 * terms of the GNU Lesser General Public License, version 2.1 as published by the Free Software
 * Foundation.
 *
 * You should have received a copy of the GNU Lesser General Public License along with this
 * program; if not, you can obtain a copy at http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html
 * or from the Free Software Foundation, Inc.,
 * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
 *
 * This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
 * without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
 * See the GNU Lesser General Public License for more details.
 *
 * Copyright (c) 2002-2013 Pentaho Corporation..  All rights reserved.
 */

package org.pentaho.gwt.widgets.client.filechooser;

import com.google.gwt.json.client.JSONObject;
import com.google.gwt.json.client.JSONValue;

import java.io.Serializable;
import java.util.Date;
import java.util.List;

/**
 * JAXB-safe version of {@code RepositoryFile}. ({@code RepositoryFile} has no zero-arg constructor and no public
 * mutators.)
 * 
 * @see RepositoryFileAdapter
 * 
 * @author mlowery
 */

public class RepositoryFile implements Serializable {

    private static final long serialVersionUID = 1271027425735179424L;

    public RepositoryFile() {
        super();
    }

    protected String name;
    protected String id;
    protected Date createdDate;
    protected Date lastModifiedDate;
    protected boolean folder;
    protected String path;
    protected boolean hidden;
    protected boolean versioned;
    protected String versionId;
    protected boolean locked;
    protected String lockOwner;
    protected String lockMessage;
    protected Date lockDate;
    protected long fileSize;
    protected String owner;
    protected int ownerType = -1;
    protected String title;
    protected String description;
    protected String locale;
    protected String originalParentFolderPath;
    protected String originalParentFolderId;
    protected Date deletedDate;
    protected List<LocalizedStringMapEntry> titleMapEntries;
    protected List<LocalizedStringMapEntry> descriptionMapEntries;
    protected String creatorId;

    /**
     * This Constructor will create the object from a JsonObject
     * 
     * @param jso
     *          a JSON String representing the RepositoryFile Object
     */
    public RepositoryFile(JSONObject jso) {
        super();
        JSONObject rftdo = jso.isObject();
        // There are times the web service wraps the json RepositoryFile with repsitoryFileDto and times when it does not.
        // The following line mitigates this so it doesn't care what form it is getting.
        JSONObject repositoryFileJSON = rftdo.get("repositoryFileDto") != null
                ? rftdo.get("repositoryFileDto").isObject()
                : jso;

        folder = JSONValueToBoolean(repositoryFileJSON, "folder");
        creatorId = JSONValueToString(repositoryFileJSON, "creatorId");
        this.createdDate = JSONValueToDate(repositoryFileJSON, "createdDate");
        this.fileSize = JSONValueToLong(repositoryFileJSON, "fileSize");
        this.hidden = JSONValueToBoolean(repositoryFileJSON, "hidden");
        this.id = JSONValueToString(repositoryFileJSON, "id");
        this.locale = JSONValueToString(repositoryFileJSON, "locale");
        this.locked = JSONValueToBoolean(repositoryFileJSON, "locked");
        this.name = JSONValueToString(repositoryFileJSON, "name");
        this.ownerType = JSONValueToInt(repositoryFileJSON, "ownerType");
        this.path = JSONValueToString(repositoryFileJSON, "path");
        this.title = JSONValueToString(repositoryFileJSON, "title");
        this.versionId = JSONValueToString(repositoryFileJSON, "versionId");
        this.description = JSONValueToString(repositoryFileJSON, "description");
        if (!folder) {
            this.deletedDate = JSONValueToDate(repositoryFileJSON, "deletedDate");
            this.lastModifiedDate = JSONValueToDate(repositoryFileJSON, "lastModifiedDate");
            this.lockDate = JSONValueToDate(repositoryFileJSON, "lockDate");
            this.lockMessage = JSONValueToString(repositoryFileJSON, "lockMessage");
            this.lockOwner = JSONValueToString(repositoryFileJSON, "lockOwner");
            this.originalParentFolderId = JSONValueToString(repositoryFileJSON, "originalParentFolderId");
            this.originalParentFolderPath = JSONValueToString(repositoryFileJSON, "originalParentFolderPath");
            this.owner = JSONValueToString(repositoryFileJSON, "owner");
            this.versioned = JSONValueToBoolean(repositoryFileJSON, "versioned");
        }
    }

    private static String JSONValueToString(JSONObject jso, String fieldName) {
        JSONValue temp = jso.get(fieldName);
        if (temp != null) {
            return temp.isString().stringValue();
        }
        return null;
    }

    private static Date JSONValueToDate(JSONObject jso, String fieldName) {
        JSONValue temp = jso.get(fieldName);
        if (temp != null) {
            return parseDateTime(temp.isString().stringValue());
        }
        return null;
    }

    private static long JSONValueToLong(JSONObject jso, String fieldName) {
        JSONValue temp = jso.get(fieldName);
        if (temp != null) {
            return Long.valueOf(temp.isString().stringValue());
        }
        return 0;
    }

    private static int JSONValueToInt(JSONObject jso, String fieldName) {
        JSONValue temp = jso.get(fieldName);
        if (temp != null) {
            return Integer.valueOf(temp.isString().stringValue());
        }
        return 0;
    }

    private static boolean JSONValueToBoolean(JSONObject jso, String fieldName) {
        JSONValue temp = jso.get(fieldName);
        if (temp != null) {
            return Boolean.valueOf(temp.isString().stringValue());
        }
        return false;
    }

    private static Date parseDateTime(String dateTimeString) {
        // parse the date
        Date date = null;
        try {
            // date = DateTimeFormat.getFormat("MM/dd/yyyy HH:mm:ss").parse(dateTimeString);
            Long timeInMillis = Long.parseLong(dateTimeString);
            date = new Date(timeInMillis);
        } catch (Exception e) {
            return null;
        }
        return date;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getId() {
        return id;
    }

    public void setId(String id) {
        this.id = id;
    }

    public Date getCreatedDate() {
        return createdDate;
    }

    public void setCreatedDate(Date createdDate) {
        this.createdDate = createdDate;
    }

    public Date getLastModifiedDate() {
        return lastModifiedDate;
    }

    public void setLastModifiedDate(Date lastModifiedDate) {
        this.lastModifiedDate = lastModifiedDate;
    }

    public boolean isFolder() {
        return folder;
    }

    public void setFolder(boolean folder) {
        this.folder = folder;
    }

    public String getPath() {
        return path;
    }

    public void setPath(String path) {
        this.path = path;
    }

    public boolean isHidden() {
        return hidden;
    }

    public void setHidden(boolean hidden) {
        this.hidden = hidden;
    }

    public boolean isVersioned() {
        return versioned;
    }

    public void setVersioned(boolean versioned) {
        this.versioned = versioned;
    }

    public String getVersionId() {
        return versionId;
    }

    public void setVersionId(String versionId) {
        this.versionId = versionId;
    }

    public boolean isLocked() {
        return locked;
    }

    public void setLocked(boolean locked) {
        this.locked = locked;
    }

    public String getLockOwner() {
        return lockOwner;
    }

    public void setLockOwner(String lockOwner) {
        this.lockOwner = lockOwner;
    }

    public String getLockMessage() {
        return lockMessage;
    }

    public void setLockMessage(String lockMessage) {
        this.lockMessage = lockMessage;
    }

    public Date getLockDate() {
        return lockDate;
    }

    public void setLockDate(Date lockDate) {
        this.lockDate = lockDate;
    }

    public String getOwner() {
        return owner;
    }

    public void setOwner(String owner) {
        this.owner = owner;
    }

    public long getFileSize() {
        return fileSize;
    }

    public void setFileSize(long fileSize) {
        this.fileSize = fileSize;
    }

    public int getOwnerType() {
        return ownerType;
    }

    public void setOwnerType(int ownerType) {
        this.ownerType = ownerType;
    }

    public String getTitle() {
        return title;
    }

    public void setTitle(String title) {
        this.title = title;
    }

    public String getDescription() {
        return description;
    }

    public void setDescription(String description) {
        this.description = description;
    }

    public String getLocale() {
        return locale;
    }

    public void setLocale(String locale) {
        this.locale = locale;
    }

    public String getOriginalParentFolderPath() {
        return originalParentFolderPath;
    }

    public void setOriginalParentFolderPath(String originalParentFolderPath) {
        this.originalParentFolderPath = originalParentFolderPath;
    }

    public String getOriginalParentFolderId() {
        return originalParentFolderId;
    }

    public void setOriginalParentFolderId(String originalParentFolderId) {
        this.originalParentFolderId = originalParentFolderId;
    }

    public Date getDeletedDate() {
        return deletedDate;
    }

    public void setDeletedDate(Date deletedDate) {
        this.deletedDate = deletedDate;
    }

    public List<LocalizedStringMapEntry> getTitleMapEntries() {
        return titleMapEntries;
    }

    public void setTitleMapEntries(List<LocalizedStringMapEntry> titleMapEntries) {
        this.titleMapEntries = titleMapEntries;
    }

    public List<LocalizedStringMapEntry> getDescriptionMapEntries() {
        return descriptionMapEntries;
    }

    public void setDescriptionMapEntries(List<LocalizedStringMapEntry> descriptionMapEntries) {
        this.descriptionMapEntries = descriptionMapEntries;
    }
}