com.enonic.cms.core.structure.page.template.PageTemplateKey.java Source code

Java tutorial

Introduction

Here is the source code for com.enonic.cms.core.structure.page.template.PageTemplateKey.java

Source

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

import java.io.Serializable;

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

import com.enonic.cms.core.InvalidKeyException;

/**
 *
 */
public class PageTemplateKey implements Serializable {
    private final int intValue;

    private final String stringValue;

    public PageTemplateKey(final String key) throws InvalidKeyException {
        try {
            final int value = Integer.parseInt(key);
            this.intValue = value;
            this.stringValue = String.valueOf(value);
        } catch (NumberFormatException e) {
            throw new InvalidKeyException(key, this.getClass());
        }
    }

    public PageTemplateKey(final int key) {
        this.intValue = key;
        this.stringValue = String.valueOf(key);
    }

    public int toInt() {
        return intValue;
    }

    public boolean equals(Object o) {
        if (this == o) {
            return true;
        }
        if (!(o instanceof PageTemplateKey)) {
            return false;
        }

        PageTemplateKey that = (PageTemplateKey) o;

        if (intValue != that.intValue) {
            return false;
        }

        return true;
    }

    public int hashCode() {
        return new HashCodeBuilder(95, 187).append(intValue).toHashCode();
    }

    public String toString() {
        return stringValue;
    }

    public static PageTemplateKey parse(final String str) {
        if (str == null) {
            return null;
        }

        return new PageTemplateKey(str);
    }

}