package com.softwaremill.common.cdi.objectservice.extension;
import java.io.Serializable;
import java.lang.reflect.Type;
/**
* A specification of an object service: the object class, the service type and the service class (the two can differ
* if the class is parametrized e.g. using generics).
*
* @author Adam Warski (adam at warski dot org)
*/
public class ObjectServiceSpecification implements Serializable {
private final Class<?> objectClass;
private final Type serviceType;
private final Class<?> serviceClass;
public ObjectServiceSpecification(Class<?> objectClass, Type serviceType, Class<?> serviceClass) {
this.objectClass = objectClass;
this.serviceType = serviceType;
this.serviceClass = serviceClass;
}
public Class<?> getObjectClass() {
return objectClass;
}
public Type getServiceType() {
return serviceType;
}
public Class<?> getServiceClass() {
return serviceClass;
}
@Override
public String toString() {
return "ObjectServiceSpecification{" +
"objectClass=" + objectClass +
", serviceType=" + serviceType +
", serviceClass=" + serviceClass +
'}';
}
}