Geotools: метод length (int length) для SimpleFeatureTypeBuilder - PullRequest
0 голосов
/ 25 сентября 2018

Я хочу установить длину для поля типа String ,, но вижу исходный код:

значение сбрасывается после вызова {@link #add (String, Class)}

Какое значение имеет метод? Как я могу установить длину для поля типа String? Любой может помочь мне

/**
 * Sets a restriction on the field length of the next attribute added to the feature type.
 *
 * <p>This method is the same as adding a restriction based on length( value ) < length This
 * value is reset after a call to {@link #add(String, Class)}
 *
 * @return length Used to limit the length of the next attribute created
 */
public SimpleFeatureTypeBuilder length(int length) {
    attributeBuilder.setLength(length);
    return this;
}

1 Ответ

0 голосов
/ 26 сентября 2018

Если вы выполните код, вы увидите, что add(String, Class) вызывается для добавления нового атрибута в схему.Он вызывает AttributeTypeBuilder для кодирования атрибута.Здесь setLength хранит ограничение длины, установленное в length.Как только атрибут сгенерирован, resetTypeState вызывается для «сброса» построителя атрибута, готового для вашего следующего атрибута (здесь длина сбрасывается до нуля).

Таким образом, предупреждение JavaDoc - правильная длина, сбрасывается после того, как выдобавьте атрибут в схему, поэтому, если вы хотите установить ограничение длины для атрибута, вам нужно сделать что-то вроде:

fBuilder.length(30);
fBuilder.add("myStringAttr",String.class);
schema = fBuilder.buildFeatureType();
...