/*
* Copyright 2000-2013 Enonic AS
* http://www.enonic.com/license
*/
package com.enonic.cms.core.structure.menuitem;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Iterator;
import org.apache.commons.lang.builder.HashCodeBuilder;
import com.enonic.cms.core.AbstractIntegerBasedKey;
public class MenuItemKey
extends AbstractIntegerBasedKey
{
public MenuItemKey( String key )
{
init( key );
}
public MenuItemKey( int key )
{
init( key );
}
public MenuItemKey( Integer key )
{
init( key );
}
@Override
protected int minAllowedValue()
{
return -1;
}
@Override
public boolean equals( Object o )
{
if ( this == o )
{
return true;
}
if ( o == null || getClass() != o.getClass() )
{
return false;
}
MenuItemKey that = (MenuItemKey) o;
if ( intValue != that.intValue() )
{
return false;
}
return true;
}
public int hashCode()
{
return new HashCodeBuilder( 653, 213 ).append( intValue ).toHashCode();
}
public static MenuItemKey parse( String str )
{
if ( str == null )
{
return null;
}
return new MenuItemKey( str );
}
public static Collection<MenuItemKey> converToList( int[] array )
{
if ( ( array == null ) || ( array.length == 0 ) )
{
return new ArrayList<MenuItemKey>();
}
Collection<MenuItemKey> list = new ArrayList<MenuItemKey>( array.length );
for ( int value : array )
{
list.add( new MenuItemKey( value ) );
}
return list;
}
public static String convertToCommaSeparatedString( Collection<MenuItemKey> keys )
{
StringBuffer s = new StringBuffer();
for ( Iterator<MenuItemKey> it = keys.iterator(); it.hasNext(); )
{
MenuItemKey menuItemKey = it.next();
s.append( menuItemKey );
if ( it.hasNext() )
{
s.append( "," );
}
}
return s.toString();
}
}