/*
* Copyright 2000-2013 Enonic AS
* http://www.enonic.com/license
*/
package com.enonic.cms.core.preference;
import java.util.ArrayList;
import java.util.List;
/**
* Created by IntelliJ IDEA.
* User: rmh
* Date: Feb 25, 2010
* Time: 11:35:45 AM
*/
public class PreferenceUniqueMatchResolver
{
List<PreferenceKey> preferenceKeys = new ArrayList<PreferenceKey>();
public void addPreferenceKeyIfHigherPriority( PreferenceKey newPreferenceKey )
{
String preferenceBaseKey = newPreferenceKey.getBaseKey();
boolean found = false;
for ( PreferenceKey existingKey : preferenceKeys )
{
if ( existingKey.getBaseKey().equals( preferenceBaseKey ) )
{
found = true;
if ( hasHigherPriority( existingKey.getScopeType(), newPreferenceKey.getScopeType() ) )
{
preferenceKeys.remove( existingKey );
preferenceKeys.add( newPreferenceKey );
}
break;
}
}
if ( !found )
{
preferenceKeys.add( newPreferenceKey );
}
}
private boolean hasHigherPriority( PreferenceScopeType existingScope, PreferenceScopeType newScope )
{
return ( existingScope.getPriority() <= newScope.getPriority() );
}
public List<PreferenceKey> getUniquePreferenceKeys()
{
return preferenceKeys;
}
}