package com.softwaremill.common.cdi.objectservice.extension; import com.softwaremill.common.cdi.objectservice.OS; import com.softwaremill.common.cdi.objectservice.OSP; /** * @author Adam Warski (adam at warski dot org) */ public class OSPImpl implements OSP { private final ObjectServiceExtension extension; private final Class<?> serviceClass; public OSPImpl(ObjectServiceExtension extension, Class<?> serviceClass) { this.extension = extension; this.serviceClass = serviceClass; } @Override public OS f(Object obj) { OS objectService = (OS) extension.serviceForObject(obj.getClass(), serviceClass); //noinspection unchecked objectService.setServiced(obj); return objectService; } }