Java tutorial
// Copyright (C) 2003-2009 by Object Mentor, Inc. All rights reserved. // Released under the terms of the CPL Common Public License version 1.0. package fitnesse.wiki; import java.io.Serializable; import org.apache.commons.lang.ArrayUtils; import org.apache.commons.lang.StringUtils; import static fitnesse.wiki.PageType.STATIC; import static fitnesse.wiki.PageType.SUITE; import static fitnesse.wiki.PageType.TEST; public class PageData implements ReadOnlyPageData, Serializable { private static final long serialVersionUID = 1L; @Deprecated public static final String PropertyLAST_MODIFIED = WikiPageProperty.LAST_MODIFIED; @Deprecated public static final String PropertyHELP = WikiPageProperty.HELP; @Deprecated public static final String PropertyPRUNE = WikiPageProperty.PRUNE; @Deprecated public static final String PropertySEARCH = WikiPageProperty.SEARCH; @Deprecated public static final String PropertyRECENT_CHANGES = WikiPageProperty.RECENT_CHANGES; @Deprecated public static final String PropertyFILES = WikiPageProperty.FILES; @Deprecated public static final String PropertyWHERE_USED = WikiPageProperty.WHERE_USED; @Deprecated public static final String PropertyREFACTOR = WikiPageProperty.REFACTOR; @Deprecated public static final String PropertyPROPERTIES = WikiPageProperty.PROPERTIES; @Deprecated public static final String PropertyVERSIONS = WikiPageProperty.VERSIONS; @Deprecated public static final String PropertyEDIT = WikiPageProperty.EDIT; @Deprecated public static final String PropertySUITES = WikiPageProperty.SUITES; public static final String PAGE_TYPE_ATTRIBUTE = "PageType"; public static final String[] PAGE_TYPE_ATTRIBUTES = { STATIC.toString(), TEST.toString(), SUITE.toString() }; public static final String[] ACTION_ATTRIBUTES = { WikiPageProperty.EDIT, WikiPageProperty.VERSIONS, WikiPageProperty.PROPERTIES, WikiPageProperty.REFACTOR, WikiPageProperty.WHERE_USED }; public static final String[] NAVIGATION_ATTRIBUTES = { WikiPageProperty.RECENT_CHANGES, WikiPageProperty.FILES, WikiPageProperty.SEARCH }; public static final String[] NON_SECURITY_ATTRIBUTES = (String[]) ArrayUtils.addAll(ACTION_ATTRIBUTES, NAVIGATION_ATTRIBUTES); @Deprecated public static final String PropertySECURE_READ = WikiPageProperty.SECURE_READ; @Deprecated public static final String PropertySECURE_WRITE = WikiPageProperty.SECURE_WRITE; @Deprecated public static final String PropertySECURE_TEST = WikiPageProperty.SECURE_TEST; public static final String[] SECURITY_ATTRIBUTES = { WikiPageProperty.SECURE_READ, WikiPageProperty.SECURE_WRITE, WikiPageProperty.SECURE_TEST }; @Deprecated public static final String LAST_MODIFYING_USER = WikiPageProperty.LAST_MODIFYING_USER; public static final String SUITE_SETUP_NAME = "SuiteSetUp"; public static final String SUITE_TEARDOWN_NAME = "SuiteTearDown"; private String content = ""; private WikiPageProperty properties = new WikiPageProperty(); public static final String PATH_SEPARATOR = "PATH_SEPARATOR"; public PageData(PageData data, String content) { this(data); setContent(content); } public PageData(PageData data) { this.properties = new WikiPageProperty(data.properties); this.content = data.content; } public PageData(String content, WikiPageProperty properties) { setContent(content); setProperties(properties); } @Override public WikiPageProperty getProperties() { return properties; } @Override public String getAttribute(String key) { return properties.get(key); } public void removeAttribute(String key) { properties.remove(key); } public void setAttribute(String key, String value) { properties.set(key, value); } public void setAttribute(String key) { properties.set(key); } public void setOrRemoveAttribute(String property, String content) { if (content == null || "".equals(content)) { removeAttribute(property); } else { setAttribute(property, content); } } @Override public boolean hasAttribute(String attribute) { return properties.has(attribute); } public void setProperties(WikiPageProperty properties) { this.properties = properties; } @Override public String getContent() { return content; } public void setContent(String content) { this.content = StringUtils.remove(content, '\r'); } public boolean isEmpty() { return getContent() == null || getContent().isEmpty(); } }