/*******************************************************************************
* Copyright (c) 2007 Exadel, Inc. and Red Hat, Inc.
* Distributed under license by Red Hat, Inc. All rights reserved.
* This program is made available under the terms of the
* Eclipse Public License v1.0 which accompanies this distribution,
* and is available at http://www.eclipse.org/legal/epl-v10.html
*
* Contributors:
* Exadel, Inc. and Red Hat, Inc. - initial API and implementation
******************************************************************************/
package org.jboss.tools.common.model.impl;
import java.util.Comparator;
import org.jboss.tools.common.model.*;
public class OrderedObjectImpl extends RegularObjectImpl {
private static final long serialVersionUID = 9157356707044480881L;
public OrderedObjectImpl() {}
protected RegularChildren createChildren() {
return new OrderedChildren();
}
public void sort(Comparator<XModelObject> c) {
XModelObject[] cs = (XModelObject[])getChildren().clone();
OrderedChildren oc = (OrderedChildren)children;
oc.sort(c);
XModelObject[] cs2 = getChildren();
if(!equalArrays(cs, cs2)) {
changeTimeStamp();
((XModelImpl)getModel()).fireStructureChanged(this);
setModified(true);
}
}
private boolean equalArrays(Object[] o1, Object[] o2) {
if(o1.length != o2.length) return false;
for (int i = 0; i < o1.length; i++) if(o1[i] != o2[i]) return false;
return true;
}
}