return new Column(SQL.parseAttribute(this.uriColumn));
}
if (this.uriPattern != null) {
Pattern p = new Pattern(this.uriPattern);
if (!p.literalPartsMatchRegex(MapParser.IRI_CHAR_REGEX)) {
throw new D2RQException("d2rq:uriPattern '"
+ this.uriPattern + "' contains characters not allowed in URIs",
D2RQException.RESOURCEMAP_ILLEGAL_URIPATTERN);
}
return p;
}
if (this.column != null) {
return new Column(SQL.parseAttribute(this.column));
}
if (this.pattern != null) {
return new Pattern(this.pattern);
}
if (this.sqlExpression != null) {
return new SQLExpressionValueMaker(SQLExpression.create(sqlExpression));
}
if (this.uriSqlExpression != null) {
return new SQLExpressionValueMaker(SQLExpression.create(uriSqlExpression));
}
throw new D2RQException(this + " needs a column/pattern/bNodeID specification");
}