com.intellectualcrafters.plot.flag.AbstractFlag.java Source code

Java tutorial

Introduction

Here is the source code for com.intellectualcrafters.plot.flag.AbstractFlag.java

Source

////////////////////////////////////////////////////////////////////////////////////////////////////
// PlotSquared - A plot manager and world generator for the Bukkit API                             /
// Copyright (c) 2014 IntellectualSites/IntellectualCrafters                                       /
//                                                                                                 /
// This program is free software; you can redistribute it and/or modify                            /
// it under the terms of the GNU 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, write to the Free Software Foundation,                         /
// Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301  USA                               /
//                                                                                                 /
// You can contact us via: support@intellectualsites.com                                           /
////////////////////////////////////////////////////////////////////////////////////////////////////

package com.intellectualcrafters.plot.flag;

import org.apache.commons.lang.StringUtils;

/**
 * Created 2014-09-23 for PlotSquared
 *
 * @author Citymonstret
 * @author Empire92
 */
public class AbstractFlag {

    private final String key;

    /**
     * AbstractFlag is a parameter used in creating a new Flag
     *
     * @param key The key must be alphabetical characters and <= 16 characters
     *            in length
     */
    public AbstractFlag(final String key) {
        if (!StringUtils.isAlpha(key.replaceAll("_", "").replaceAll("-", ""))) {
            throw new IllegalArgumentException("Flag must be alphabetic characters");
        }
        if (key.length() > 16) {
            throw new IllegalArgumentException("Key must be <= 16 characters");
        }
        this.key = key.toLowerCase();
    }

    public String parseValue(final String value) {
        return value;
    }

    public String getValueDesc() {
        return "Flag value must be alphanumeric";
    }

    /**
     * AbstractFlag key
     *
     * @return String
     */
    public String getKey() {
        return this.key;
    }

    @Override
    public String toString() {
        return this.key;
    }

    @Override
    public boolean equals(final Object other) {
        if (other == null) {
            return false;
        }
        if (other == this) {
            return true;
        }
        if (!(other instanceof AbstractFlag)) {
            return false;
        }
        final AbstractFlag otherObj = (AbstractFlag) other;
        return (otherObj.key.equals(this.key));
    }

}