fitnesse.wiki.PageData.java Source code

Java tutorial

Introduction

Here is the source code for fitnesse.wiki.PageData.java

Source

// 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();
    }
}