class ImmutableThingPlaceholder extends AbstractEntityPlaceholder<ThingId> implements ThingPlaceholder {

    @Override
    public Optional<String> resolve(final CharSequence thingId, final String placeholder) {
        argumentNotEmpty(placeholder, "placeholder");
        checkNotNull(thingId, "Thing ID");
        if (thingId instanceof ThingId) {
            return doResolve(((ThingId) thingId), placeholder);
        } else {
            return Optional.empty();
        }
    }

}