/* * Copyright (C) 2017 LibreCCM Foundation. * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library 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. * * You should have received a copy of the GNU Lesser General Public * License along with this library; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, * MA 02110-1301 USA */ package org.librecms.ui; import java.util.Date; import java.util.Objects; /** * * @author Jens Pelzetter */ public final class FolderBrowserItem implements Comparable { private long itemId; private String name; private String title; private String type; private boolean folder; private Date creationDate; private Date lastModified; public long getItemId() { return itemId; } public void setItemId(final long itemId) { this.itemId = itemId; } public String getName() { return name; } public void setName(final String name) { this.name = name; } public String getTitle() { return title; } public void setTitle(final String title) { this.title = title; } public String getType() { return type; } public void setType(final String type) { this.type = type; } public boolean isFolder() { return folder; } public void setFolder(final boolean folder) { this.folder = folder; } public Date getCreationDate() { if (creationDate == null) { return null; } else { return new Date(creationDate.getTime()); } } public void setCreationDate(final Date creationDate) { if (creationDate != null) { this.creationDate = new Date(creationDate.getTime()); } } public Date getLastModified() { if (lastModified == null) { return null; } else { return new Date(lastModified.getTime()); } } public void setLastModified(final Date lastModified) { if (lastModified != null) { this.lastModified = new Date(lastModified.getTime()); } } @Override public int compareTo(final FolderBrowserItem other) { int result = title.compareTo(other.getTitle()); if (result != 0) { return result; } result = name.compareTo(other.getName()); if (result != 0) { return result; } result = type.compareTo(other.getType()); if (result != 0) { return result; } result = lastModified.compareTo(other.getLastModified()); if (result != 0) { return result; } return creationDate.compareTo(other.getCreationDate()); } @Override public int hashCode() { int hash = 3; hash = 53 * hash + (int) (itemId ^ (itemId >>> 32)); hash = 53 * hash + Objects.hashCode(name); hash = 53 * hash + Objects.hashCode(title); hash = 53 * hash + Objects.hashCode(type); hash = 53 * hash + (folder ? 1 : 0); hash = 53 * hash + Objects.hashCode(creationDate); hash = 53 * hash + Objects.hashCode(lastModified); return hash; } @Override public boolean equals(final Object obj) { if (this == obj) { return true; } if (obj == null) { return false; } if (!(obj instanceof FolderBrowserItem)) { return false; } final FolderBrowserItem other = (FolderBrowserItem) obj; if (itemId != other.getItemId()) { return false; } if (folder != other.isFolder()) { return false; } if (!Objects.equals(name, other.getName())) { return false; } if (!Objects.equals(title, other.getTitle())) { return false; } if (!Objects.equals(type, other.getType())) { return false; } if (!Objects.equals(creationDate, other.getCreationDate())) { return false; } return Objects.equals(lastModified, other.getLastModified()); } @Override public String toString() { return String.format("%s{ " + "itemId = %d, " + "name = \"%s\", " + "title = \"%s\", " + "type = \"%s\", " + "creationDate = %s, " + "lastChanged = %s" + " }", super.toString(), itemId, name, title, type, Objects.toString(creationDate), Objects.toString(lastModified)); } }