/***************************************************************************
* Copyright (c) 2012-2013 VMware, Inc. All Rights Reserved.
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
***************************************************************************/
package com.vmware.bdd.dal;
import java.util.List;
import com.vmware.bdd.entity.IpBlockEntity;
/**
* @author Jarred Li
* @since 0.8
* @version 0.8
*
*/
public interface IIpBlockDAO extends IBaseDAO<IpBlockEntity> {
/**
* Merge adjacent (overlapping) IP blocks if they have the same type.
*
* Side effects:
*
* 1) this call will modify all the objects in the input list, call
* <code>dup</code> if this is not desirable.
*
* 2) the objects in the returned list still reference the original objects,
* and the one which are merged will be deleted if this is called in a active
* Hibernate session.
*
* @param ipBlocks
* source blocks
* @param ignoreOwner
* whether ignore owner
* @param ignoreType
* whether ignore block type
* @param silentWhenOverlap
* whether to keep silent or raise error if blocks are overlapped
*
* @return merged list.
*/
public abstract List<IpBlockEntity> merge(List<IpBlockEntity> ipBlocks,
boolean ignoreOwner, boolean ignoreType, boolean silentWhenOverlap);
}