public <E extends AbstractElement<B, U>, B extends Blueprint, U extends AbstractElement.Update> ElementTypes<E, B, U> byElement(Class<E> elementType) { for(SegmentType st : SegmentType.values()) { ElementTypes ret = elementTypes.get(st); if (ret.getElementType().equals(elementType)) { return ret; } } throw new IllegalArgumentException("Unknown element type: " + elementType); }
public <E extends AbstractElement, B extends Blueprint> ElementTypes<E, B> byElement(Class<E> elementType) { for(SegmentType st : SegmentType.values()) { ElementTypes ret = elementTypes.get(st); if (ret.getElementType().equals(elementType)) { return ret; } } throw new IllegalArgumentException("Unknown element type: " + elementType); } }
@SuppressWarnings("unchecked") static <B extends Blueprint, E extends AbstractElement> Class<? extends E> getEntityTypeOf(B blueprint) { return (Class<? extends E>) Inventory.types().byBlueprint(blueprint.getClass()).getElementType(); }
Function<RelativePath, Hashes> hashLoader) { Class<?> entityType = Inventory.types().byBlueprint(entity.getClass()).getElementType();
private static boolean canBeIdentityRoot(SegmentType segmentType) { return IdentityHashable.class.isAssignableFrom(Inventory.types().bySegment(segmentType).getElementType()); }
@SuppressWarnings("unchecked") static <B extends Blueprint, E extends AbstractElement<B, ?>> Class<? extends E> getEntityTypeOf(B blueprint) { return (Class<? extends E>) Inventory.types().byBlueprint(blueprint.getClass()).getElementType(); }