package org.aplikator.server.descriptor; public class Reference<R extends Entity> extends JoinableProperty<R> { @SuppressWarnings("unchecked") public Reference(String id, R referredEntity, Entity ownEntity, boolean required) { super(id, referredEntity, ownEntity, required); if (ownEntity.equals(referredEntity)) { throw new IllegalStateException("Self reference not supported"); } } @SuppressWarnings("unchecked") public <T extends Entity> Reference<T> join(Reference<T> target) { return (Reference<T>) relate(target); } }