package com.onaro.sanscreen.client.view.changes; import com.onaro.commons.util.OnaroArrays; import com.onaro.sanscreen.server.changes.Change; import com.onaro.sanscreen.server.changes.ChangeConstants; import com.onaro.sanscreen.types.ChangeType; import static com.onaro.sanscreen.types.ChangeType.*; import java.util.Set; public class TypeFilterHostVirtualization implements TypeFilter { public final static Set HOST_CHANGE_TYPES = OnaroArrays.asSet( DEVICE_UP, DEVICE_DOWN, DEVICE_CREATED, DEVICE_ATTRIBUTE_CHANGE, DEVICE_CONFIGURATION_CHANGE, HOST_ADDED_TO_APPLICATION, HOST_REMOVED_FROM_APPLICATION); /** * Tests if a change-group is related to a virtual server * @param changeGroup the change-group * @return true if this change is related to a virtual server */ public boolean shouldBeDisplayed(ChangeGroup changeGroup) { return ChangeType.HOST_VIRTUALIZATION_TYPES.contains(changeGroup.getType()) || ChangeType.TOO_MANY_CHANGES.equals(changeGroup.getType()) || isVirtualServerChange(changeGroup); } private boolean isVirtualServerChange(ChangeGroup changeGroup) { if(HOST_CHANGE_TYPES.contains(changeGroup.getType())) { for (Change change : changeGroup.getChanges()) { if(change.getValue(ChangeConstants.VIRTUAL_SERVER) != null){ return true; } } } return false; } }