/*
* Copyright 2000-2016 Enonic AS
* http://www.enonic.com/license
*/
package com.enonic.cms.core.structure.menuitem;
import java.io.Serializable;
import java.util.Comparator;
import com.enonic.cms.core.structure.menuitem.section.SectionContentEntity;
public class SectionContentComparatorByOrder
implements Comparator<SectionContentEntity>, Serializable
{
private static final long serialVersionUID = -5900433713451329377L;
public int compare( SectionContentEntity a, SectionContentEntity b )
{
if (a == b) {
return 0;
}
if ( !a.isApproved() && b.isApproved() )
{
return -1;
}
else if ( !b.isApproved() && a.isApproved() )
{
return 1;
}
else if ( !a.isApproved() && !b.isApproved() )
{
return keyCompare( a, b );
}
else if ( a.getOrder() < b.getOrder() )
{
return -1;
}
else if ( a.getOrder() == b.getOrder() )
{
return keyCompare( a, b );
}
else
{
return 1;
}
}
private int keyCompare( final SectionContentEntity a, final SectionContentEntity b )
{
if ( a.getKey().toInt() < b.getKey().toInt() )
{
return -1;
}
else if ( a.getKey().toInt() == b.getKey().toInt() )
{
return 0;
}
else
{
return 1;
}
}
}