Java tutorial
/* * 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; } }