use of org.structr.common.error.EmptyPropertyToken in project structr by structr.
the class TypeResource method doPost.
@Override
public RestMethodResult doPost(final Map<String, Object> propertySet) throws FrameworkException {
// virtual type?
if (virtualType != null) {
virtualType.transformInput(securityContext, entityClass, propertySet);
}
if (isNode) {
final RestMethodResult result = new RestMethodResult(HttpServletResponse.SC_CREATED);
final NodeInterface newNode = createNode(propertySet);
if (newNode != null) {
result.addHeader("Location", buildLocationHeader(newNode));
result.addContent(newNode);
}
result.serializeAsPrimitiveArray(true);
// finally: return 201 Created
return result;
} else {
final App app = StructrApp.getInstance(securityContext);
final Relation template = getRelationshipTemplate();
final ErrorBuffer errorBuffer = new ErrorBuffer();
if (template != null) {
final NodeInterface sourceNode = identifyStartNode(template, propertySet);
final NodeInterface targetNode = identifyEndNode(template, propertySet);
final PropertyMap properties = PropertyMap.inputTypeToJavaType(securityContext, entityClass, propertySet);
RelationshipInterface newRelationship = null;
if (sourceNode == null) {
errorBuffer.add(new EmptyPropertyToken(entityClass.getSimpleName(), template.getSourceIdProperty()));
}
if (targetNode == null) {
errorBuffer.add(new EmptyPropertyToken(entityClass.getSimpleName(), template.getTargetIdProperty()));
}
if (errorBuffer.hasError()) {
throw new FrameworkException(422, "Source node ID and target node ID of relationsips must be set", errorBuffer);
}
template.ensureCardinality(securityContext, sourceNode, targetNode);
newRelationship = app.create(sourceNode, targetNode, entityClass, properties);
RestMethodResult result = new RestMethodResult(HttpServletResponse.SC_CREATED);
if (newRelationship != null) {
result.addHeader("Location", buildLocationHeader(newRelationship));
result.addContent(newRelationship);
}
result.serializeAsPrimitiveArray(true);
// finally: return 201 Created
return result;
}
// shouldn't happen
throw new NotFoundException("Type" + rawType + " does not exist");
}
}
use of org.structr.common.error.EmptyPropertyToken in project structr by structr.
the class ValidatedNode method nonNull.
protected boolean nonNull(Property property, ErrorBuffer errorBuffer) {
Object value = getProperty(property);
boolean valid = true;
if (value == null) {
errorBuffer.add(new EmptyPropertyToken(getClass().getSimpleName(), property));
valid = false;
}
return valid;
}
Aggregations