com.enonic.cms.core.preference.PreferenceScopeKey.java Source code

Java tutorial

Introduction

Here is the source code for com.enonic.cms.core.preference.PreferenceScopeKey.java

Source

/*
 * Copyright 2000-2013 Enonic AS
 * http://www.enonic.com/license
 */
package com.enonic.cms.core.preference;

import java.util.StringTokenizer;

import org.apache.commons.lang.StringUtils;
import org.apache.commons.lang.builder.HashCodeBuilder;

import com.enonic.cms.core.InvalidKeyException;

public class PreferenceScopeKey {

    private Integer firstKey;

    private Integer secondKey;

    private String keyAsString;

    public PreferenceScopeKey(String key) {

        if (key == null) {
            throw new IllegalArgumentException("Given key cannot be null");
        }

        if (key.indexOf(":") > -1) {
            StringTokenizer st = new StringTokenizer(key, ":");

            try {
                firstKey = Integer.valueOf(st.nextToken());
            } catch (NumberFormatException e) {
                throw new InvalidKeyException(key, this.getClass(), "first key not a number");
            }

            try {
                secondKey = Integer.valueOf(StringUtils.substringBefore(st.nextToken(), "."));
            } catch (NumberFormatException e) {
                throw new InvalidKeyException(key, this.getClass(), "second key not a number");
            }

            keyAsString = firstKey + ":" + secondKey;
        } else {
            try {
                firstKey = Integer.valueOf(key);
            } catch (NumberFormatException e) {
                throw new InvalidKeyException(key, this.getClass(), "first key not a number");
            }

            keyAsString = firstKey.toString();
        }

    }

    public Integer getFirstKey() {
        return firstKey;
    }

    public Integer getSecondKey() {
        return secondKey;
    }

    public boolean isDoubleKey() {
        return firstKey != null && secondKey != null;
    }

    public boolean equals(Object o) {

        if (this == o) {
            return true;
        }
        if (o == null || getClass() != o.getClass()) {
            return false;
        }

        PreferenceScopeKey that = (PreferenceScopeKey) o;

        if (!keyAsString.equals(that.keyAsString)) {
            return false;
        }

        return true;
    }

    public int hashCode() {
        return new HashCodeBuilder(473, 343).append(keyAsString).toHashCode();
    }

    public String toString() {
        return keyAsString;
    }
}