package org.simantics.db.tests.api.story.sessionGarbageCollection; import java.util.Collection; import org.simantics.db.Resource; import org.simantics.db.WriteGraph; import org.simantics.db.exception.DatabaseException; import org.simantics.db.layer0.util.RemoverUtil; import org.simantics.db.testing.common.WriteCommand; import org.simantics.layer0.Layer0; import org.simantics.utils.datastructures.collections.CollectionUtils; public class RemoveList extends WriteCommand { @Override protected void run(WriteGraph graph, CollectDuringWriteAndRead environment) throws DatabaseException { Layer0 L0 = Layer0.getInstance(graph); Resource root = environment.getRoot(); Collection lists = graph.getObjects(root, L0.ConsistsOf); if(lists.size() == 0) return; int position = environment.randomNatural() % lists.size(); Resource list = CollectionUtils.element(lists, position); RemoverUtil.remove(graph, list); graph.deny(root, L0.ConsistsOf, list); } }