package org.apache.lucene.facet.taxonomy.directory;
import org.apache.lucene.index.FieldInfo;
import org.apache.lucene.index.StoredFieldVisitor;
/*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright ownership.
* The ASF licenses this file to You under the Apache License, Version 2.0
* (the "License"); you may not use this file except in compliance with
* the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
/**
* @lucene.experimental
*/
abstract class Consts {
static final String FULL = "$full_path$";
static final String FIELD_PAYLOADS = "$payloads$";
static final String PAYLOAD_PARENT = "p";
static final char[] PAYLOAD_PARENT_CHARS = PAYLOAD_PARENT.toCharArray();
/**
* The following is a "stored field visitor", an object
* which tells Lucene to extract only a single field
* rather than a whole document.
*/
public static final class LoadFullPathOnly extends StoredFieldVisitor {
private String fullPath;
@Override
public void stringField(FieldInfo fieldInfo, String value) {
fullPath = value;
}
@Override
public Status needsField(FieldInfo fieldInfo) {
return fullPath == null ? Status.YES : Status.STOP;
}
public String getFullPath() {
return fullPath;
}
}
/**
* Delimiter used for creating the full path of a category from the list of
* its labels from root. It is forbidden for labels to contain this
* character.
* <P>
* Originally, we used \uFFFE, officially a "unicode noncharacter" (invalid
* unicode character) for this purpose. Recently, we switched to the
* "private-use" character \uF749.
*/
//static final char DEFAULT_DELIMITER = '\uFFFE';
static final char DEFAULT_DELIMITER = '\uF749';
}