use of org.openforis.idm.metamodel.CodeAttributeDefinition in project collect by openforis.
the class UICodeField method getListId.
public Integer getListId() {
CodeAttributeDefinition attrDef = (CodeAttributeDefinition) getAttributeDefinition();
CodeList list = attrDef.getList();
return list == null ? null : list.getId();
}
use of org.openforis.idm.metamodel.CodeAttributeDefinition in project collect by openforis.
the class NodeDefinitionProxy method fromList.
static List<NodeDefinitionProxy> fromList(EntityDefinitionProxy parent, List<? extends NodeDefinition> list) {
List<NodeDefinitionProxy> proxies = new ArrayList<NodeDefinitionProxy>();
if (list != null) {
for (NodeDefinition n : list) {
NodeDefinitionProxy p = null;
CollectSurvey survey = (CollectSurvey) n.getSurvey();
UIOptions uiOptions = survey.getUIOptions();
boolean hidden = uiOptions.isHidden(n);
if (!hidden) {
if (n instanceof AttributeDefinition) {
if (n instanceof BooleanAttributeDefinition) {
p = new BooleanAttributeDefinitionProxy(parent, (BooleanAttributeDefinition) n);
} else if (n instanceof CodeAttributeDefinition) {
p = new CodeAttributeDefinitionProxy(parent, (CodeAttributeDefinition) n);
} else if (n instanceof CoordinateAttributeDefinition) {
p = new CoordinateAttributeDefinitionProxy(parent, (CoordinateAttributeDefinition) n);
} else if (n instanceof DateAttributeDefinition) {
p = new DateAttributeDefinitionProxy(parent, (DateAttributeDefinition) n);
} else if (n instanceof FileAttributeDefinition) {
p = new FileAttributeDefinitionProxy(parent, (FileAttributeDefinition) n);
} else if (n instanceof NumberAttributeDefinition) {
p = new NumberAttributeDefinitionProxy(parent, (NumberAttributeDefinition) n);
} else if (n instanceof RangeAttributeDefinition) {
p = new RangeAttributeDefinitionProxy(parent, (RangeAttributeDefinition) n);
} else if (n instanceof TaxonAttributeDefinition) {
p = new TaxonAttributeDefinitionProxy(parent, (TaxonAttributeDefinition) n);
} else if (n instanceof TextAttributeDefinition) {
p = new TextAttributeDefinitionProxy(parent, (TextAttributeDefinition) n);
} else if (n instanceof TimeAttributeDefinition) {
p = new TimeAttributeDefinitionProxy(parent, (TimeAttributeDefinition) n);
} else {
throw new RuntimeException("AttributeDefinition not supported: " + n.getClass().getSimpleName());
}
} else if (n instanceof EntityDefinition) {
p = new EntityDefinitionProxy(parent, (EntityDefinition) n);
}
if (p != null) {
proxies.add(p);
}
}
}
}
return proxies;
}
use of org.openforis.idm.metamodel.CodeAttributeDefinition in project collect by openforis.
the class CodeAttributeProxy method isExternalCodeList.
protected boolean isExternalCodeList() {
CodeAttributeDefinition defn = codeAttribute.getDefinition();
CodeList list = defn.getList();
return list.isExternal();
}
use of org.openforis.idm.metamodel.CodeAttributeDefinition in project collect by openforis.
the class CSVValueFormatter method format.
public String format(AttributeDefinition defn, Value value) {
if (value == null) {
return "";
} else if (value instanceof BooleanValue) {
return ((BooleanValue) value).getValue().toString();
} else if (value instanceof Code) {
CodeListService codeListService = defn.getSurvey().getContext().getCodeListService();
CodeList list = ((CodeAttributeDefinition) defn).getList();
if (codeListService.hasQualifiableItems(list)) {
return String.format("%s: %s", ((Code) value).getCode(), ((Code) value).getQualifier());
} else {
return ((Code) value).getCode();
}
} else if (value instanceof Coordinate) {
return value.toString();
} else if (value instanceof Date) {
Date date = (Date) value;
return String.format("%d/%d/%d", ((Date) value).getDay(), ((Date) value).getMonth(), date.getYear());
} else if (value instanceof File) {
return ((File) value).getFilename();
} else if (value instanceof NumberValue) {
Number val = ((NumberValue<?>) value).getValue();
NumberFormat numberFormat = NumberFormat.getInstance(Locale.ENGLISH);
String formattedVal = numberFormat.format(val);
return formattedVal;
} else if (value instanceof NumericRange) {
Number from = ((NumericRange<?>) value).getFrom();
Number to = ((NumericRange<?>) value).getFrom();
String format;
if (value instanceof IntegerRange) {
format = "%d-%d";
} else {
format = "%f-%f";
}
String formattedValue = String.format(Locale.ENGLISH, format, from, to);
return formattedValue;
} else if (value instanceof TextValue) {
return ((TextValue) value).getValue();
} else if (value instanceof Time) {
Time time = (Time) value;
return String.format("%d:%d", time.getHour(), time.getMinute());
} else
throw new IllegalArgumentException("Unsupported attribute value type: " + value.getClass().getName());
}
use of org.openforis.idm.metamodel.CodeAttributeDefinition in project collect by openforis.
the class EnumerableEntityColumnProvider method createProviders.
private static List<ColumnProvider> createProviders(CSVDataExportParameters config, EntityDefinition defn) {
List<ColumnProvider> providers = new ArrayList<ColumnProvider>();
List<AttributeDefinition> keyDefs = defn.getKeyAttributeDefinitions();
CodeAttributeDefinition keyDef = (CodeAttributeDefinition) keyDefs.get(0);
CodeList codeList = keyDef.getList();
SurveyContext context = defn.getSurvey().getContext();
CodeListService codeListService = context.getCodeListService();
List<CodeListItem> items = codeListService.loadRootItems(codeList);
for (CodeListItem item : items) {
String code = item.getCode();
String keyName = keyDef.getName();
EnumeratedCodeItemColumnProvider p = new EnumeratedCodeItemColumnProvider(config, defn, keyName, code);
providers.add(p);
}
return providers;
}
Aggregations