use of net.geoprism.registry.model.Classification in project geoprism-registry by terraframe.
the class ClassificationService method getChildren.
@Request(RequestType.SESSION)
public JsonObject getChildren(String sessionId, String classificationCode, String code, Integer pageSize, Integer pageNumber) {
ClassificationType type = ClassificationType.getByCode(classificationCode);
if (code != null) {
Classification parent = Classification.get(type, code);
return parent.getChildren(pageSize, pageNumber).toJSON();
}
Classification root = type.getRoot();
List<Classification> roots = new LinkedList<Classification>();
if (root != null) {
roots.add(root);
}
return new Page<Classification>(roots.size(), pageNumber, pageSize, roots).toJSON();
}
use of net.geoprism.registry.model.Classification in project geoprism-registry by terraframe.
the class ClassificationService method addChild.
@Request(RequestType.SESSION)
public void addChild(String sessionId, String classificationCode, String parentCode, String childCode) {
ClassificationType type = ClassificationType.getByCode(classificationCode);
Classification parent = Classification.get(type, parentCode);
Classification child = Classification.get(type, childCode);
parent.addChild(child);
}
use of net.geoprism.registry.model.Classification in project geoprism-registry by terraframe.
the class UpdateValueOverTimeView method persistValue.
private void persistValue(ValueOverTime vot, UpdateChangeOverTimeAttributeView cotView, VertexServerGeoObject go, List<ValueOverTime> looseVotc) {
if (this.newValue == null) {
return;
}
if (cotView.getAttributeName().equals("geometry")) {
Geometry convertedValue = null;
if (!this.newValue.isJsonNull()) {
GeoJSONReader reader = new GeoJSONReader();
convertedValue = reader.read(this.newValue.toString());
if (!go.isValidGeometry(convertedValue)) {
GeometryTypeException ex = new GeometryTypeException();
ex.setActualType(convertedValue.getGeometryType());
ex.setExpectedType(go.getType().getGeometryType().name());
throw ex;
}
}
if (vot != null) {
vot.setValue(convertedValue);
} else {
looseVotc.add(new ValueOverTime(this.newStartDate, this.newEndDate, convertedValue));
}
} else {
ServerGeoObjectType type = go.getType();
AttributeType attype = type.getAttribute(cotView.getAttributeName()).get();
if (attype instanceof AttributeLocalType) {
LocalizedValue convertedValue = null;
if (!this.newValue.isJsonNull()) {
convertedValue = LocalizedValue.fromJSON(this.newValue.getAsJsonObject());
}
final Set<Locale> locales = LocalizationFacade.getInstalledLocales();
if (vot != null) {
if (convertedValue != null) {
GraphObjectDAO votEmbeddedValue = (GraphObjectDAO) vot.getValue();
votEmbeddedValue.setValue(MdAttributeLocalInfo.DEFAULT_LOCALE, convertedValue.getValue(MdAttributeLocalInfo.DEFAULT_LOCALE));
for (Locale locale : locales) {
if (convertedValue.contains(locale)) {
votEmbeddedValue.setValue(locale.toString(), convertedValue.getValue(locale));
}
}
} else {
vot.setValue(null);
}
} else {
if (convertedValue != null) {
MdAttributeEmbeddedDAOIF mdAttrEmbedded = (MdAttributeEmbeddedDAOIF) go.getMdAttributeDAO(attype.getName());
VertexObjectDAO votEmbeddedValue = VertexObjectDAO.newInstance((MdVertexDAOIF) mdAttrEmbedded.getEmbeddedMdClassDAOIF());
votEmbeddedValue.setValue(MdAttributeLocalInfo.DEFAULT_LOCALE, convertedValue.getValue(MdAttributeLocalInfo.DEFAULT_LOCALE));
for (Locale locale : locales) {
if (convertedValue.contains(locale)) {
votEmbeddedValue.setValue(locale.toString(), convertedValue.getValue(locale));
}
}
looseVotc.add(new ValueOverTime(this.newStartDate, this.newEndDate, votEmbeddedValue));
} else {
looseVotc.add(new ValueOverTime(this.newStartDate, this.newEndDate, null));
}
}
} else // else if (attype.getName().equals(DefaultAttribute.EXISTS.getName()))
// {
// if (this.newValue.isJsonNull())
// {
// if (vot != null)
// {
// vot.setValue(null);
// }
// else
// {
// looseVotc.add(new ValueOverTime(this.newStartDate, this.newEndDate,
// null));
// }
// }
// else
// {
// JsonArray ja = this.newValue.getAsJsonArray();
//
// if (ja.size() > 0)
// {
// String code = ja.get(0).getAsString();
//
// if (code == null || code.length() == 0)
// {
// if (vot != null)
// {
// vot.setValue(null);
// }
// else
// {
// looseVotc.add(new ValueOverTime(this.newStartDate, this.newEndDate,
// null));
// }
// }
// else
// {
// Term value = ( (AttributeTermType) attype ).getTermByCode(code).get();
// GeoObjectStatus gos =
// ConversionService.getInstance().termToGeoObjectStatus(value);
//
// if (vot != null)
// {
// vot.setValue(gos.getOid());
// }
// else
// {
// looseVotc.add(new ValueOverTime(this.newStartDate, this.newEndDate,
// gos.getOid()));
// }
// }
// }
// }
// }
{
Object convertedValue = null;
if (!this.newValue.isJsonNull()) {
if (attype instanceof AttributeDateType) {
long epoch = this.newValue.getAsLong();
convertedValue = new Date(epoch);
} else if (attype instanceof AttributeTermType) {
JsonArray ja = this.newValue.getAsJsonArray();
if (ja.size() > 0) {
String code = ja.get(0).getAsString();
Term root = ((AttributeTermType) attype).getRootTerm();
String parent = TermConverter.buildClassifierKeyFromTermCode(root.getCode());
String classifierKey = Classifier.buildKey(parent, code);
Classifier classifier = Classifier.getByKey(classifierKey);
convertedValue = classifier.getOid();
}
} else if (attype instanceof AttributeClassificationType) {
JsonObject object = this.newValue.getAsJsonObject();
String code = object.get("code").getAsString();
Classification classification = Classification.get((AttributeClassificationType) attype, code);
convertedValue = new AttributeGraphRef.ID(classification.getOid(), classification.getVertex().getRID());
} else if (attype instanceof AttributeBooleanType) {
convertedValue = this.newValue.getAsBoolean();
} else if (attype instanceof AttributeFloatType) {
convertedValue = this.newValue.getAsDouble();
} else if (attype instanceof AttributeIntegerType) {
convertedValue = this.newValue.getAsLong();
} else {
convertedValue = this.newValue.getAsString();
}
}
if (vot != null) {
vot.setValue(convertedValue);
} else {
looseVotc.add(new ValueOverTime(this.newStartDate, this.newEndDate, convertedValue));
}
}
}
}
use of net.geoprism.registry.model.Classification in project geoprism-registry by terraframe.
the class ClassificationTest method testAddGetChildApplyWithParent.
@Test
@Request
public void testAddGetChildApplyWithParent() {
Classification parent = Classification.newInstance(type);
parent.setCode(PARENT_CODE);
parent.apply(null);
try {
Classification child = Classification.newInstance(type);
child.setCode(CHILD_CODE);
child.apply(parent);
try {
Page<Classification> children = parent.getChildren(20, 1);
Assert.assertEquals(Long.valueOf(1), children.getCount());
Classification result = children.getResults().get(0);
Assert.assertEquals(child.getOid(), result.getOid());
} finally {
child.delete();
}
} finally {
parent.delete();
}
}
use of net.geoprism.registry.model.Classification in project geoprism-registry by terraframe.
the class ClassificationTest method testGetAncestor.
@Test
@Request
public void testGetAncestor() {
Classification grandParent = Classification.newInstance(type);
grandParent.setCode(GRANDPARENT_CODE);
grandParent.apply(null);
try {
Classification parent = Classification.newInstance(type);
parent.setCode(PARENT_CODE);
parent.apply(grandParent);
try {
Classification child = Classification.newInstance(type);
child.setCode(CHILD_CODE);
child.apply(parent);
try {
List<Classification> ancestors = child.getAncestors(null);
Assert.assertEquals(3, ancestors.size());
} finally {
child.delete();
}
} finally {
parent.delete();
}
} finally {
grandParent.delete();
}
}
Aggregations