![JAR search and dependency download from the Maven repository](/logo.png)
org.databene.model.data.FeatureDescriptor Maven / Gradle / Ivy
package org.databene.model.data;
import org.databene.commons.Named;
import org.databene.commons.NullSafeComparator;
import org.databene.commons.Operation;
import org.databene.commons.StringUtil;
import org.databene.commons.collection.OrderedNameMap;
import org.databene.commons.converter.AnyConverter;
import org.databene.commons.converter.ConverterManager;
import org.databene.commons.converter.String2ConverterConverter;
import org.databene.commons.converter.ToStringConverter;
import java.util.List;
/**
* Common parent class of all descriptors.
* Created: 17.07.2006 21:30:45
* @since 0.1
* @author Volker Bergmann
*/
public class FeatureDescriptor implements Named {
public static final String NAME = "name";
static {
ConverterManager.getInstance().registerConverterClass(String2ConverterConverter.class);
}
protected OrderedNameMap> details;
protected DescriptorProvider owner;
// constructor -----------------------------------------------------------------------------------------------------
public FeatureDescriptor(String name, DescriptorProvider owner) {
if (owner == null)
throw new IllegalArgumentException("owner is null");
if (owner.getDataModel() == null)
throw new IllegalArgumentException("owner's data model is null");
this.details = new OrderedNameMap>();
this.owner = owner;
this.addConstraint(NAME, String.class, null);
this.setName(name);
}
// typed interface -------------------------------------------------------------------------------------------------
/*
public void setParent(FeatureDescriptor parent) {
this.parent = parent;
}
*/
public String getName() {
return (String) getDetailValue(NAME);
}
public void setName(String name) {
setDetailValue(NAME, name);
}
public DescriptorProvider getOwner() {
return owner;
}
public DataModel getDataModel() {
return owner.getDataModel();
}
// generic detail access -------------------------------------------------------------------------------------------
public boolean supportsDetail(String name) {
return details.containsKey(name);
}
public Object getDeclaredDetailValue(String name) { // TODO v0.8 remove method? It does not differ from getDetailValue any more
return getConfiguredDetail(name).getValue();
}
public Object getDetailValue(String name) { // TODO v0.8 remove generic feature access?
return this.getConfiguredDetail(name).getValue();
}
public void setDetailValue(String detailName, Object detailValue) {
FeatureDetail
© 2015 - 2025 Weber Informatics LLC | Privacy Policy