package org.genericsystem.mutability;

import java.io.Serializable;
import java.util.List;

import org.genericsystem.defaults.DefaultVertex;

public interface Generic extends DefaultVertex<Generic> {

	@Override
	default Engine getRoot() {
		throw new IllegalStateException();
	}

	@Override
	default Cache getCurrentCache() {
		return getRoot().getCurrentCache();
	}

	@Override
	default long getTs() {
		return getCurrentCache().unwrap(this).getBirthTs();
	}

	@Override
	default Generic getMeta() {
		return getCurrentCache().wrap(getCurrentCache().unwrap(this).getMeta());
	}

	@Override
	default List<Generic> getSupers() {
		return getCurrentCache().wrap(getCurrentCache().unwrap(this).getSupers());
	}

	@Override
	default List<Generic> getComponents() {
		return getCurrentCache().wrap(getCurrentCache().unwrap(this).getComponents());
	}

	@Override
	default Serializable getValue() {
		return getCurrentCache().unwrap(this).getValue();
	}

	@Override
	default long getBirthTs() {
		return getCurrentCache().unwrap(this).getBirthTs();
	}

	@Override
	default long[] getOtherTs() {
		return getCurrentCache().unwrap(this).getOtherTs();
	}
}

@@ -1044,105 +1044,6 @@
 %09%7D%0A%0A
-%09@Override%0A%09default long%5B%5D getOtherTs() %7B%0A%09%09return getCurrentCache().unwrap(this).getOtherTs();%0A%09%7D%0A
 %7D%0A

Fix compilation error in mutability