/* * Copyright 2000-2013 Enonic AS * http://www.enonic.com/license */ package com.enonic.cms.core.security.group; import java.io.Serializable; import java.util.ArrayList; import java.util.List; import org.apache.commons.lang.builder.HashCodeBuilder; import com.enonic.cms.core.InvalidKeyException; import com.enonic.cms.core.StringBasedKey; public class GroupKey implements StringBasedKey, Serializable { private String value; public GroupKey( String key ) { if ( key == null ) { throw new IllegalArgumentException( "Given key cannot be null" ); } if ( key.startsWith( "#" ) ) { key = key.substring( 1 ); } init( key ); } private void init( String value ) { if ( value == null ) { throw new InvalidKeyException( value, this.getClass() ); } this.value = value; } public boolean equals( Object o ) { if ( this == o ) { return true; } if ( o == null || getClass() != o.getClass() ) { return false; } GroupKey groupKey = (GroupKey) o; return value.equals( groupKey.value ); } public int hashCode() { return new HashCodeBuilder( 435, 773 ).append( value ).toHashCode(); } public String toString() { return value; } public static List<String> convertToStringList( List<GroupKey> groupKeys ) { List<String> stringKeys = new ArrayList<String>(); for ( GroupKey groupKey : groupKeys ) { stringKeys.add( groupKey.toString() ); } return stringKeys; } }