package org.jvnet.jaxb2_commons.xml.bind.model.concrete;
import org.jvnet.jaxb2_commons.lang.Validate;
import org.jvnet.jaxb2_commons.xml.bind.model.MClassInfo;
import org.jvnet.jaxb2_commons.xml.bind.model.MCustomizable;
import org.jvnet.jaxb2_commons.xml.bind.model.MCustomizations;
import org.jvnet.jaxb2_commons.xml.bind.model.MPropertyInfo;
import org.jvnet.jaxb2_commons.xml.bind.model.origin.MPropertyInfoOrigin;
public abstract class CMPropertyInfo<T, C> implements MPropertyInfo<T, C>,
MCustomizable {
private CMCustomizations customizations = new CMCustomizations();
private MPropertyInfoOrigin origin;
private MClassInfo<T, C> classInfo;
private final String privateName;
private final boolean collection;
public CMPropertyInfo(MPropertyInfoOrigin origin,
MClassInfo<T, C> classInfo, String privateName, boolean collection) {
Validate.notNull(origin);
Validate.notNull(classInfo);
Validate.notNull(privateName);
this.origin = origin;
this.classInfo = classInfo;
this.privateName = privateName;
this.collection = collection;
}
public MCustomizations getCustomizations() {
return customizations;
}
public MPropertyInfoOrigin getOrigin() {
return origin;
}
public MClassInfo<T, C> getClassInfo() {
return classInfo;
}
public String getPrivateName() {
return privateName;
}
public String getPublicName() {
// TODO
return this.getPrivateName();
}
public boolean isCollection() {
return collection;
}
}