Search in sources :

Example 11 with ValueConstraint

use of org.apache.stanbol.entityhub.servicesapi.query.ValueConstraint 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

ValueConstraint (org.apache.stanbol.entityhub.servicesapi.query.ValueConstraint)11 TextConstraint (org.apache.stanbol.entityhub.servicesapi.query.TextConstraint)9 ReferenceConstraint (org.apache.stanbol.entityhub.servicesapi.query.ReferenceConstraint)7 RangeConstraint (org.apache.stanbol.entityhub.servicesapi.query.RangeConstraint)5 SimilarityConstraint (org.apache.stanbol.entityhub.servicesapi.query.SimilarityConstraint)5 Constraint (org.apache.stanbol.entityhub.servicesapi.query.Constraint)4 JSONObject (org.codehaus.jettison.json.JSONObject)4 ArrayList (java.util.ArrayList)3 DataTypeEnum (org.apache.stanbol.entityhub.servicesapi.defaults.DataTypeEnum)3 FieldQuery (org.apache.stanbol.entityhub.servicesapi.query.FieldQuery)3 JSONArray (org.codehaus.jettison.json.JSONArray)3 HashSet (java.util.HashSet)2 MODE (org.apache.stanbol.entityhub.servicesapi.query.ValueConstraint.MODE)2 Test (org.junit.Test)2 Collection (java.util.Collection)1 LinkedHashSet (java.util.LinkedHashSet)1 Entry (java.util.Map.Entry)1 ReconcileProperty (org.apache.stanbol.entityhub.jersey.grefine.ReconcileProperty)1 ReconcileValue (org.apache.stanbol.entityhub.jersey.grefine.ReconcileValue)1 EntityhubException (org.apache.stanbol.entityhub.servicesapi.EntityhubException)1