Search in sources :

Example 31 with TextConstraint

use of org.apache.stanbol.entityhub.servicesapi.query.TextConstraint in project stanbol by apache.

the class FieldMappingUtils method parseConstraint.

private static Constraint parseConstraint(String filterString) {
    if (filterString.startsWith("d=")) {
        String[] dataTypeStrings = filterString.substring(2).split(";");
        Set<String> dataTypes = new HashSet<String>();
        for (int i = 0; i < dataTypeStrings.length; i++) {
            DataTypeEnum dataType = DataTypeEnum.getDataTypeByShortName(dataTypeStrings[i]);
            if (dataType == null) {
                dataType = DataTypeEnum.getDataType(dataTypeStrings[i]);
            }
            if (dataType != null) {
                dataTypes.add(dataType.getUri());
            } else {
                log.warn(String.format("DataType %s not supported! Datatype get not used by this Filter", dataTypeStrings[i]));
            }
        }
        if (dataTypes.isEmpty()) {
            log.warn(String.format("Unable to parse a valied data type form \"%s\"! A data type filter MUST define at least a single dataType. No filter will be used.", filterString));
            return null;
        } else {
            return new ValueConstraint(null, dataTypes);
        }
    } else if (filterString.startsWith("@=")) {
        String[] langs = filterString.substring(2).split(";");
        for (int i = 0; i < langs.length; i++) {
            if (langs[i].length() < 1 || "null".equals(langs[i])) {
                langs[i] = null;
            }
        }
        if (langs.length < 1) {
            log.warn("Unable to parse a language form \"%s\"! A language filter MUST define at least a singel language. No filter will be used." + filterString);
            return null;
        } else {
            return new TextConstraint((String) null, langs);
        }
    } else {
        log.warn(String.format("Filters need to start with \"p=\" (dataType) or \"@=\" (language). Parsed filter: \"%s\".", filterString));
        return null;
    }
}
Also used : DataTypeEnum(org.apache.stanbol.entityhub.servicesapi.defaults.DataTypeEnum) ValueConstraint(org.apache.stanbol.entityhub.servicesapi.query.ValueConstraint) TextConstraint(org.apache.stanbol.entityhub.servicesapi.query.TextConstraint) Constraint(org.apache.stanbol.entityhub.servicesapi.query.Constraint) TextConstraint(org.apache.stanbol.entityhub.servicesapi.query.TextConstraint) ValueConstraint(org.apache.stanbol.entityhub.servicesapi.query.ValueConstraint) HashSet(java.util.HashSet)

Aggregations

TextConstraint (org.apache.stanbol.entityhub.servicesapi.query.TextConstraint)31 FieldQuery (org.apache.stanbol.entityhub.servicesapi.query.FieldQuery)17 ValueConstraint (org.apache.stanbol.entityhub.servicesapi.query.ValueConstraint)10 Test (org.junit.Test)10 ArrayList (java.util.ArrayList)8 SimilarityConstraint (org.apache.stanbol.entityhub.servicesapi.query.SimilarityConstraint)8 Constraint (org.apache.stanbol.entityhub.servicesapi.query.Constraint)7 ReferenceConstraint (org.apache.stanbol.entityhub.servicesapi.query.ReferenceConstraint)7 RangeConstraint (org.apache.stanbol.entityhub.servicesapi.query.RangeConstraint)5 HashSet (java.util.HashSet)3 DataTypeEnum (org.apache.stanbol.entityhub.servicesapi.defaults.DataTypeEnum)3 Entity (org.apache.stanbol.entityhub.servicesapi.model.Entity)3 Representation (org.apache.stanbol.entityhub.servicesapi.model.Representation)3 Text (org.apache.stanbol.entityhub.servicesapi.model.Text)3 FieldQueryFactory (org.apache.stanbol.entityhub.servicesapi.query.FieldQueryFactory)3 ReconcileValue (org.apache.stanbol.entityhub.jersey.grefine.ReconcileValue)2 SparqlFieldQuery (org.apache.stanbol.entityhub.query.sparql.SparqlFieldQuery)2 FieldMapping (org.apache.stanbol.entityhub.servicesapi.mapping.FieldMapping)2 Yard (org.apache.stanbol.entityhub.servicesapi.yard.Yard)2 YardTest (org.apache.stanbol.entityhub.test.yard.YardTest)2