class DiscreteResource implements Resource {

    @Override
    public <T> Optional<T> valueAs(Class<T> type) {
        checkNotNull(type);

        return id.lastComponentAs(type);
    }

      DiscreteResource(DiscreteResourceId id);
      DiscreteResource();

}