blob: aaa257836ec58d1415a10bde030f1f2b59669ef8 [file] [log] [blame]
/*********************************************************************
* Copyright (c) 2008 The University of York.
*
* This program and the accompanying materials are made
* available under the terms of the Eclipse Public License 2.0
* which is available at https://www.eclipse.org/legal/epl-2.0/
*
* SPDX-License-Identifier: EPL-2.0
**********************************************************************/
package org.eclipse.epsilon.emc.simulink.util.collection;
import java.util.Iterator;
import java.util.List;
import java.util.ListIterator;
import org.eclipse.epsilon.emc.simulink.model.SimulinkModel;
import org.eclipse.epsilon.emc.simulink.model.element.ISimulinkModelElement;
import org.eclipse.epsilon.emc.simulink.model.element.SimulinkLine;
import org.eclipse.epsilon.emc.simulink.util.manager.SimulinkLineManager;
public class SimulinkLineCollection extends AbstractSimulinkCollection<SimulinkLine, Double, SimulinkLineManager> {
public SimulinkLineCollection(Object primitive, SimulinkModel model) {
super(primitive, new SimulinkLineManager(model));
}
@Override
protected boolean isInstanceOf(Object object) {
return object instanceof SimulinkLine;
}
@Override
protected boolean isInstanceOfPrimitive(Object object) {
return object instanceof Double;
}
@Override
protected boolean isInstanceOfPrimitiveArray(Object object) {
return object instanceof Double[];
}
@Override
public List<ISimulinkModelElement> subList(int fromIndex, int toIndex) {
return new SimulinkLineCollection(getPrimitive().subList(fromIndex, toIndex), getManager().getModel());
}
@Override
public ListIterator<ISimulinkModelElement> listIterator() {
return new SimulinkLineListIterator();
}
@Override
public ListIterator<ISimulinkModelElement> listIterator(int index) {
return new SimulinkLineListIterator(index);
}
@Override
// FIXME Should not be called
public Object[] toArray() {
return null;
}
@Override
// FIXME Should not be called
public <T> T[] toArray(T[] a) {
return null;
}
@Override
protected Iterator<ISimulinkModelElement> getInternalIterator() {
return new SimulinkLineIterator();
}
protected class SimulinkLineIterator extends AbstractBlockIterator<SimulinkLine, Double, SimulinkLineManager>{
SimulinkLineIterator(){
super(getPrimitive(), getManager());
}
}
protected class SimulinkLineListIterator extends AbstractListIterator<SimulinkLine, Double, SimulinkLineManager> {
SimulinkLineListIterator(){
super(getPrimitive(), getManager());
}
SimulinkLineListIterator(int index){
super(index, getPrimitive(), getManager());
}
}
}