1 /*
2 * Licensed to the Apache Software Foundation (ASF) under one or more
3 * contributor license agreements. See the NOTICE file distributed with
4 * this work for additional information regarding copyright ownership.
5 * The ASF licenses this file to You under the Apache License, Version 2.0
6 * (the "License"); you may not use this file except in compliance with
7 * the License. You may obtain a copy of the License at
8 *
9 * http://www.apache.org/licenses/LICENSE-2.0
10 *
11 * Unless required by applicable law or agreed to in writing, software
12 * distributed under the License is distributed on an "AS IS" BASIS,
13 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 * See the License for the specific language governing permissions and
15 * limitations under the License.
16 */
17
18 package org.apache.any23.extractor.xpath;
19
20 import java.util.Locale;
21
22 import org.eclipse.rdf4j.model.IRI;
23 import org.eclipse.rdf4j.model.impl.SimpleValueFactory;
24
25 /**
26 * Represents a <i>Quad</i> predicate <i>template</i>.
27 *
28 * @author Michele Mostarda (mostarda@fbk.eu)
29 */
30 public class TemplatePredicate extends Term<IRI> {
31
32 /**
33 * Constructor.
34 *
35 * @param value
36 * internal value.
37 * @param isVar
38 * if <code>true</code> it the given <code>value</code> will be resolved with the variable value.
39 */
40 public TemplatePredicate(String value, boolean isVar) {
41 super(value, isVar);
42 }
43
44 @Override
45 protected IRI getValueInternal(String value) {
46 try {
47 return SimpleValueFactory.getInstance().createIRI(value);
48 } catch (IllegalArgumentException iae) {
49 throw new IllegalArgumentException(
50 String.format(Locale.ROOT, "Expected a valid IRI for predicate template, found '%s'", value), iae);
51 }
52 }
53
54 @Override
55 public String toString() {
56 return "<" + super.toString() + ">";
57 }
58
59 }