Package org.apache.stanbol.entityhub.yard.solr.defaults

Examples of org.apache.stanbol.entityhub.yard.solr.defaults.IndexDataTypeEnum


                String lang = indexField.getLanguages().isEmpty() ? null : indexField.getLanguages()
                        .iterator().next();
                if (fields == null || fields.contains(indexField.getPath().get(0))) {
                    for (Object value : doc.getFieldValues(fieldName)) {
                        if (value != null) {
                            IndexDataTypeEnum dataTypeEnumEntry = IndexDataTypeEnum.forIndexType(indexField
                                    .getDataType());
                            if (dataTypeEnumEntry != null) {
                                Object javaValue = indexValueFactory.createValue(
                                    dataTypeEnumEntry.getJavaType(), indexField.getDataType(), value, lang);
                                if (javaValue != null) {
                                    rep.add(indexField.getPath().iterator().next(), javaValue);
                                } else {
                                    log.warn(String.format("java value=null for index value %s", value));
                                }
View Full Code Here


            // first process the parsed dataTypes to get the supported types
            List<IndexDataType> indexDataTypes = new ArrayList<IndexDataType>();
            List<String> acceptedDataTypes = new ArrayList<String>();
            if (valueConstraint.getDataTypes() != null) {
                for (String dataType : valueConstraint.getDataTypes()) {
                    IndexDataTypeEnum indexDataTypeEnumEntry = IndexDataTypeEnum.forUri(dataType);
                    if (indexDataTypeEnumEntry != null) {
                        indexDataTypes.add(indexDataTypeEnumEntry.getIndexType());
                        acceptedDataTypes.add(dataType);
                    } else {
                        // TODO: Add possibility to add warnings to indexConstraints
                        log.warn("A Datatype parsed for a ValueConstraint is not " +
                            "supported and will be ignored (dataTypeUri={})",
View Full Code Here

                String lang = indexField.getLanguages().isEmpty() ? null : indexField.getLanguages()
                        .iterator().next();
                if (fields == null || fields.contains(indexField.getPath().get(0))) {
                    for (Object value : doc.getFieldValues(fieldName)) {
                        if (value != null) {
                            IndexDataTypeEnum dataTypeEnumEntry = IndexDataTypeEnum.forIndexType(indexField
                                    .getDataType());
                            if (dataTypeEnumEntry != null) {
                                Object javaValue = indexValueFactory.createValue(
                                    dataTypeEnumEntry.getJavaType(), indexField.getDataType(), value, lang);
                                if (javaValue != null) {
                                    rep.add(indexField.getPath().iterator().next(), javaValue);
                                } else {
                                    log.warn(String.format("java value=null for index value %s", value));
                                }
View Full Code Here

            isLanguage = false;
            language = null;
            dataTypePrefix = null;
        }
        // now parse the indexDataType!
        IndexDataTypeEnum dataTypeEnumEntry = IndexDataTypeEnum.forPrefixSuffix(dataTypePrefix, suffix);
        if (dataTypeEnumEntry == null) {
            log.warn(String.format(
                "No IndexDataType registered for prefix: %s and suffix: %s -> unable to process path %s",
                dataTypePrefix, suffix, Arrays.toString(pathElements)));
            return null; // we might also throw an exception at this point
        }
        // parse the path
        List<String> path = new ArrayList<String>(pathElements.length);
        for (String pathElement : pathElements) {
            if (pathElement.charAt(0) == SolrConst.SPECIAL_FIELD_PREFIX) {
                if (pathElement.charAt(1) == SolrConst.SPECIAL_FIELD_PREFIX) {
                    path.add(getFullFieldName(pathElement.substring(1)));
                } else {
                    throw new IllegalStateException(
                            String.format(
                                "Found special field \"%s\" within the path \"%s\" -> Special fields are only allowed as prefix and suffix!",
                                pathElement, Arrays.toString(pathElements)));
                }
            } else {
                String fullName = getFullFieldName(pathElement);
                if (fullName == null) {
                    throw new IllegalStateException(String.format(
                        "Unable to map PathElement %s to it's full Name (path=%s)!", pathElement,
                        Arrays.toString(pathElements)));
                } else {
                    path.add(fullName);
                }
            }
        }
        if (isLanguage) {
            return new IndexField(path, dataTypeEnumEntry.getIndexType(), language);
        } else {
            return new IndexField(path, dataTypeEnumEntry.getIndexType());
        }
    }
View Full Code Here

                            + "Stanbol Developer Mailing list or create an according"
                            + "JIRA issue at https://issues.apache.org/jira/browse/STANBOL!");
                }
            } else {
                fieldNames = new HashSet<String>(2); //typically onle 1 or 2 values
                IndexDataTypeEnum dataTypeConfig = IndexDataTypeEnum.forIndexType(indexField.getDataType());
                if (dataTypeConfig == null) {
                    throw new IllegalStateException(String.format(
                        "No Config found for the parsed IndexDataType %s", indexField.getDataType()));
                }
                // Three things need to be done
                // 1) Encode the Path
                String pathName = encodePathName(indexField);
                // 2) Encode the DataType
                fieldNames.addAll(encodeDataType(pathName, dataTypeConfig));
                // 3) Encode the Languages
                if (indexField.hasLanguage()) {
                    fieldNames.addAll(encodeLanguages(pathName, indexField.getLanguages()));
                }
                // 4) add the language merger field (in case the dataType represent natural
                // language texts)
                if (dataTypeConfig.isLanguageType()) {
                    fieldNames.add(SolrConst.LANG_MERGER_FIELD + pathName);
                }
            }
            // cache the mappings
            indexFieldMappings.put(indexField, fieldNames);
View Full Code Here

        }
    }

    @Override
    public String[] encodeDataType(IndexField indexField) throws IllegalArgumentException {
        IndexDataTypeEnum dataTypeConfig = IndexDataTypeEnum.forIndexType(indexField.getDataType());
        if (dataTypeConfig == null) {
            throw new IllegalStateException(String.format("No Config found for the parsed IndexDataType %s",
                indexField.getDataType()));
        }
        return encodeDataType(dataTypeConfig);
View Full Code Here

            isLanguage = false;
            language = null;
            dataTypePrefix = null;
        }
        // now parse the indexDataType!
        IndexDataTypeEnum dataTypeEnumEntry = IndexDataTypeEnum.forPrefixSuffix(dataTypePrefix, suffix);
        if (dataTypeEnumEntry == null) {
            log.warn(String.format(
                "No IndexDataType registered for prefix: %s and suffix: %s -> unable to process path %s",
                dataTypePrefix, suffix, Arrays.toString(pathElements)));
            return null; // we might also throw an exception at this point
        }
        // parse the path
        List<String> path = new ArrayList<String>(pathElements.length);
        for (String pathElement : pathElements) {
            if (pathElement.charAt(0) == SolrConst.SPECIAL_FIELD_PREFIX) {
                if (pathElement.charAt(1) == SolrConst.SPECIAL_FIELD_PREFIX) {
                    path.add(getFullFieldName(pathElement.substring(1)));
                } else {
                    throw new IllegalStateException(
                            String.format(
                                "Found special field \"%s\" within the path \"%s\" -> Special fields are only allowed as prefix and suffix!",
                                pathElement, Arrays.toString(pathElements)));
                }
            } else {
                String fullName = getFullFieldName(pathElement);
                if (fullName == null) {
                    throw new IllegalStateException(String.format(
                        "Unable to map PathElement %s to it's full Name (path=%s)!", pathElement,
                        Arrays.toString(pathElements)));
                } else {
                    path.add(fullName);
                }
            }
        }
        if (isLanguage) {
            return new IndexField(path, dataTypeEnumEntry.getIndexType(), language);
        } else {
            return new IndexField(path, dataTypeEnumEntry.getIndexType());
        }
    }
View Full Code Here

        if (indexField == null) {
            throw new IllegalArgumentException("The parsed IndexField name MUST NOT be NULL!");
        }
        Collection<String> fieldNames = indexFieldMappings.get(indexField);
        if (fieldNames == null) {
            IndexDataTypeEnum dataTypeConfig = IndexDataTypeEnum.forIndexType(indexField.getDataType());
            if (dataTypeConfig == null) {
                throw new IllegalStateException(String.format(
                    "No Config found for the parsed IndexDataType %s", indexField.getDataType()));
            }
            fieldNames = new HashSet<String>();
            // Three things need to be done
            // 1) Encode the Path
            String pathName = encodePathName(indexField.getPath());
            // 2) Encode the DataType
            fieldNames.addAll(encodeDataType(pathName, dataTypeConfig));
            // 3) Encode the Languages
            if (indexField.hasLanguage()) {
                fieldNames.addAll(encodeLanguages(pathName, indexField.getLanguages()));
            }
            // 4) add the language merger field (in case the dataType represent natural
            // language texts)
            if (dataTypeConfig.isLanguageType()) {
                fieldNames.add(SolrConst.LANG_MERGER_FIELD + pathName);
            }
            // cache the mappings
            indexFieldMappings.put(indexField, fieldNames);
        }
View Full Code Here

        }
    }

    @Override
    public String[] encodeDataType(IndexDataType dataType) throws IllegalArgumentException {
        IndexDataTypeEnum dataTypeConfig = IndexDataTypeEnum.forIndexType(dataType);
        if (dataTypeConfig == null) {
            throw new IllegalStateException(String.format("No Config found for the parsed IndexDataType %s",
                dataType));
        }
        return encodeDataType(dataTypeConfig);
View Full Code Here

            // first process the parsed dataTypes to get the supported types
            List<IndexDataType> indexDataTypes = new ArrayList<IndexDataType>();
            List<String> acceptedDataTypes = new ArrayList<String>();
            if (valueConstraint.getDataTypes() != null) {
                for (String dataType : valueConstraint.getDataTypes()) {
                    IndexDataTypeEnum indexDataTypeEnumEntry = IndexDataTypeEnum.forUri(dataType);
                    if (indexDataTypeEnumEntry != null) {
                        indexDataTypes.add(indexDataTypeEnumEntry.getIndexType());
                        acceptedDataTypes.add(dataType);
                    } else {
                        // TODO: Add possibility to add warnings to indexConstraints
                        log.warn("A Datatype parsed for a ValueConstraint is not " +
                            "supported and will be ignored (dataTypeUri={})",
View Full Code Here

TOP

Related Classes of org.apache.stanbol.entityhub.yard.solr.defaults.IndexDataTypeEnum

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.