package org.jvnet.jaxb2_commons.xml.bind.model.concrete;
import org.jvnet.jaxb2_commons.lang.Validate;
import org.jvnet.jaxb2_commons.xml.bind.model.MCustomizations;
import org.jvnet.jaxb2_commons.xml.bind.model.MTypeInfoVisitor;
import org.jvnet.jaxb2_commons.xml.bind.model.MWildcardTypeInfo;
import org.jvnet.jaxb2_commons.xml.bind.model.origin.MWildcardTypeInfoOrigin;
public class CMWildcardTypeInfo<T, C> implements MWildcardTypeInfo<T, C> {
private final T targetType;
private final MWildcardTypeInfoOrigin origin;
private final MCustomizations customizations = new CMCustomizations();
public CMWildcardTypeInfo(MWildcardTypeInfoOrigin origin, T targetType) {
Validate.notNull(origin);
this.origin = origin;
this.targetType = targetType;
}
public MCustomizations getCustomizations() {
return customizations;
}
public T getTargetType() {
return targetType;
}
public MWildcardTypeInfoOrigin getOrigin() {
return origin;
}
public <V> V acceptTypeInfoVisitor(MTypeInfoVisitor<T, C, V> visitor) {
return visitor.visitWildcardTypeInfo(this);
}
}