package org.etk.orm.plugins.bean.mapping;
import org.etk.orm.plugins.bean.PropertyInfo;
import org.etk.orm.plugins.bean.ValueInfo;
import org.etk.orm.plugins.bean.ValueKind;
import org.etk.orm.plugins.bean.mapping.jcr.PropertyMetaType;
public class PropertiesMapping<V extends ValueInfo> extends PropertyMapping<PropertyInfo<V, ValueKind.Map>,V, ValueKind.Map> {
/** . */
private final PropertyMetaType<?> metaType;
/** . */
private final ValueKind valueKind;
/** . */
private final String prefix;
public PropertiesMapping(PropertyInfo<V, ValueKind.Map> property, String prefix, PropertyMetaType<?> metaType, ValueKind valueKind) {
super(property);
//
this.prefix = prefix;
this.metaType = metaType;
this.valueKind = valueKind;
}
public String getPrefix() {
return prefix;
}
public PropertyMetaType<?> getMetaType() {
return metaType;
}
public ValueKind getValueKind() {
return valueKind;
}
@Override
public void accept(MappingVisitor visitor) {
visitor.propertiesMapping(this);
}
public boolean isTypeCovariant() {
/*
if (parent == null) {
return true;
} else {
PropertiesMapping<?> a = null;
return property.getValue().getBean() != a.property.getValue().getBean();
}
*/
// Implement that properly based on the type of "*"
return true;
}
}