5 changed files with 0 additions and 198 deletions
@ -1,41 +0,0 @@ |
|||||
package solution; |
|
||||
|
|
||||
import testat.SimpleActivity; |
|
||||
|
|
||||
public class SimpleActivityStack extends SimpleStack<SimpleActivity> { |
|
||||
|
|
||||
@Override |
|
||||
public int push(SimpleActivity activity) { |
|
||||
if (activity == null) { |
|
||||
return 0; |
|
||||
} |
|
||||
if (size() > 0) { |
|
||||
super.get(size() - 1).passivate(); |
|
||||
} |
|
||||
activity.activate(); |
|
||||
return super.push(activity); |
|
||||
} |
|
||||
|
|
||||
@Override |
|
||||
public SimpleActivity pop() { |
|
||||
SimpleActivity activity = super.pop(); |
|
||||
if (activity != null) { |
|
||||
activity.passivate(); |
|
||||
activity.destroy(); |
|
||||
if (size() > 0) { |
|
||||
super.get(size() - 1).activate(); |
|
||||
} |
|
||||
} |
|
||||
return activity; |
|
||||
} |
|
||||
|
|
||||
@Override |
|
||||
public SimpleActivity remove(int i) { |
|
||||
if (i == super.size() - 1) { |
|
||||
return this.pop(); |
|
||||
} |
|
||||
super.get(i).destroy(); |
|
||||
return super.remove(i); |
|
||||
} |
|
||||
|
|
||||
} |
|
@ -1,14 +0,0 @@ |
|||||
package solution; |
|
||||
|
|
||||
import testat.ASimpleActivityStackTest; |
|
||||
import testat.ISimpleStack; |
|
||||
import testat.SimpleActivity; |
|
||||
|
|
||||
public class SimpleActivityStackTest extends ASimpleActivityStackTest { |
|
||||
|
|
||||
@Override |
|
||||
protected ISimpleStack<SimpleActivity> getInstance() { |
|
||||
return new SimpleActivityStack(); |
|
||||
} |
|
||||
|
|
||||
} |
|
@ -1,64 +0,0 @@ |
|||||
package solution; |
|
||||
|
|
||||
import java.util.LinkedList; |
|
||||
import java.util.List; |
|
||||
|
|
||||
import testat.IAction; |
|
||||
import testat.ISimpleStack; |
|
||||
|
|
||||
public class SimpleStack<T> implements ISimpleStack<T> { |
|
||||
|
|
||||
private List<T> list; |
|
||||
|
|
||||
public SimpleStack() { |
|
||||
super(); |
|
||||
list = new LinkedList<T>(); |
|
||||
} |
|
||||
|
|
||||
@Override |
|
||||
public int push(T t) { |
|
||||
if (t != null) { |
|
||||
if (list.contains(t)) { |
|
||||
list.remove(t); |
|
||||
} |
|
||||
list.add(t); |
|
||||
return list.size(); |
|
||||
} |
|
||||
return 0; |
|
||||
} |
|
||||
|
|
||||
@Override |
|
||||
public T pop() { |
|
||||
if (list.size() == 0) { |
|
||||
return null; |
|
||||
} |
|
||||
return list.remove(list.size() - 1); |
|
||||
} |
|
||||
|
|
||||
@Override |
|
||||
public T remove(int i) { |
|
||||
return list.remove(i); |
|
||||
} |
|
||||
|
|
||||
@Override |
|
||||
public int size() { |
|
||||
return list.size(); |
|
||||
} |
|
||||
|
|
||||
@Override |
|
||||
public boolean contains(Object o) { |
|
||||
return list.contains(o); |
|
||||
} |
|
||||
|
|
||||
@Override |
|
||||
public T get(int i) { |
|
||||
return list.get(i); |
|
||||
} |
|
||||
|
|
||||
@Override |
|
||||
public void forAll(IAction<T> action) { |
|
||||
if (action != null) { |
|
||||
list.forEach(t -> action.execute(t)); |
|
||||
} |
|
||||
} |
|
||||
} |
|
@ -1,13 +0,0 @@ |
|||||
package solution; |
|
||||
|
|
||||
import testat.ASimpleStackTest; |
|
||||
import testat.ISimpleStack; |
|
||||
|
|
||||
public class SimpleStackTest extends ASimpleStackTest { |
|
||||
|
|
||||
@Override |
|
||||
protected ISimpleStack<String> getInstance() { |
|
||||
return new SimpleStack<>(); |
|
||||
} |
|
||||
|
|
||||
} |
|
@ -1,66 +0,0 @@ |
|||||
package testat; |
|
||||
|
|
||||
/** |
|
||||
* |
|
||||
* @author cm |
|
||||
* not provided |
|
||||
* |
|
||||
* @param <T> |
|
||||
*/ |
|
||||
public interface ISimpleStack<T> { |
|
||||
|
|
||||
/** |
|
||||
* Nimmt ein Objekt auf, das nicht null ist und noch nicht im Stack enthalten |
|
||||
* ist. Rückgabe: Anzahl an Elemente im Stack nach der Aufnahme oder 0, falls t |
|
||||
* == null ist das Objekt bereits enthalten, wird es ganz oben auf den Stapel |
|
||||
* gelegt. Hinweis: Verwenden Sie entsprechende Operationen der Collection/des |
|
||||
* Array und nicht pop/push |
|
||||
* |
|
||||
* @param t |
|
||||
* @return |
|
||||
*/ |
|
||||
public int push(T t); |
|
||||
|
|
||||
/** |
|
||||
* Entfernt das oberste Objekt und gibt es zurück. Liefert null, falls der Stack |
|
||||
* leer ist |
|
||||
*/ |
|
||||
public T pop(); |
|
||||
|
|
||||
/** |
|
||||
* gibt einen Verweise auf das i-te Objekt zurück. Das Objekt bleibt im //
|
|
||||
* Stack. Falls i nicht existiert, führt dies zur IndexOutOfBoundsException. //
|
|
||||
* Das unterste Element hat Index 0, das oberste Index size()-1 |
|
||||
* |
|
||||
* @param i index |
|
||||
* @return |
|
||||
*/ |
|
||||
public T get(int i); |
|
||||
|
|
||||
/** |
|
||||
* Wie get(i), nur wird das Objekt aus dem Stack entfernt |
|
||||
* |
|
||||
* @param i |
|
||||
* @return |
|
||||
*/ |
|
||||
public T remove(int i); |
|
||||
|
|
||||
/** |
|
||||
* Anzahl an Objekte im Stack |
|
||||
* |
|
||||
*/ |
|
||||
public int size(); |
|
||||
|
|
||||
/** |
|
||||
* true, falls das Objekt im Stack enthalten ist |
|
||||
* |
|
||||
*/ |
|
||||
public boolean contains(Object o); |
|
||||
|
|
||||
/** |
|
||||
* Wendet action.execute auf alle Objekte im Stack an |
|
||||
* |
|
||||
* @param action |
|
||||
*/ |
|
||||
public void forAll(IAction<T> action); |
|
||||
} |
|
Loading…
Reference in new issue