/* * Copyright (C) 2003-2011 eXo Platform SAS. * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU Affero General Public License * as published by the Free Software Foundation; either version 3 * of the License, or (at your option) any later version. * * 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 General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, see<http://www.gnu.org/licenses/>. */ package org.exoplatform.wiki.mow.core.api.wiki; import java.util.Collection; import java.util.Date; import java.util.HashMap; import org.exoplatform.wiki.mow.api.Attachment; import org.exoplatform.wiki.mow.api.Page; import org.exoplatform.wiki.service.PermissionType; /** * * Simple {@link Page} implementation, includes only getter and setter methods. * <p> * Created by The eXo Platform SAS * @Author <a href="mailto:quanglt@exoplatform.com">Le Thanh Quang</a> * Apr 25, 2011 * </p> */ public class SimplePageImpl implements Page { private Collection<? extends Attachment> attachments; private String author; private String comment; private Attachment content; private Date createDate; private String name; private String owner; private HashMap<String, String[]> permission; private String syntax; private String title; private Date updateDate; private boolean hasPermission; private String url; public SimplePageImpl(String name, String title, String owner) { this.name = name; this.title = title; this.owner = owner; } public SimplePageImpl author(String author) { this.author = author; return this; } public SimplePageImpl comment(String comment) { this.comment = comment; return this; } public SimplePageImpl url(String url) { this.url = url; return this; } public SimplePageImpl attachments(Collection<? extends Attachment> attachments) { this.attachments = attachments; return this; } public SimplePageImpl createDate(Date date) { this.createDate = date; return this; } public SimplePageImpl updateDate(Date date) { this.updateDate = date; return this; } public SimplePageImpl hasPermission(boolean hasPermission) { this.hasPermission = hasPermission; return this; } public SimplePageImpl permission(HashMap<String, String[]> permission) { this.permission = permission; return this; } public SimplePageImpl syntax(String syntax) { this.syntax = syntax; return this; } @Override public Collection<? extends Attachment> getAttachments() { return attachments; } @Override public String getAuthor() { return author; } @Override public String getComment() { return comment; } @Override public Attachment getContent() { return content; } @Override public Date getCreatedDate() { return createDate; } @Override public String getName() { return name; } @Override public String getOwner() { return owner; } @Override public HashMap<String, String[]> getPagePermission() throws Exception { return permission; } @Override public String getSyntax() { return syntax; } @Override public String getTitle() { return title; } @Override public Date getUpdatedDate() { return updateDate; } @Override public boolean hasPermission(PermissionType permissionType) throws Exception { return hasPermission; } @Override public void setComment(String comment) { this.comment = comment; } @Override public void setPagePermission(HashMap<String, String[]> permissions) throws Exception { if (permissions != null) this.permission = new HashMap<String, String[]>(permissions); } @Override public void setSyntax(String syntax) { this.syntax = syntax; } @Override public void setTitle(String title) { this.title = title; } @Override public String getURL() { return this.url; } }