private static InnerNodeVector<Structtype> createVector(List<Builder> builders) { List<Structtype> elems = new ArrayList<>(); for (Builder b : builders) { elems.add(new Structtype(b)); } return new InnerNodeVector<Structtype>(elems); }
private Datatype(Builder builder, boolean throwIfUninitialized) { if (throwIfUninitialized && ! builder.__uninitialized.isEmpty()) throw new IllegalArgumentException("The following builder parameters for " + "documentmanager.datatype[] must be initialized: " + builder.__uninitialized); id = (builder.id == null) ? new IntegerNode() : new IntegerNode(builder.id); arraytype = Arraytype.createVector(builder.arraytype); maptype = Maptype.createVector(builder.maptype); weightedsettype = Weightedsettype.createVector(builder.weightedsettype); structtype = Structtype.createVector(builder.structtype); annotationreftype = Annotationreftype.createVector(builder.annotationreftype); documenttype = Documenttype.createVector(builder.documenttype); referencetype = Referencetype.createVector(builder.referencetype); }
private static void registerStructType(DocumentmanagerConfig config, DocumentTypeManager manager, int id, DocumentmanagerConfig.Datatype.Structtype struct) { StructDataType type = new StructDataType(id, struct.name()); if (config.enablecompression()) { CompressionConfig comp = makeCompressionConfig(struct); type.setCompressionConfig(comp); } for (Object j : struct.field()) { DocumentmanagerConfig.Datatype.Structtype.Field field = (DocumentmanagerConfig.Datatype.Structtype.Field) j; DataType fieldType = (field.datatype() == id) ? manager.getDataTypeAndReturnTemporary(field.datatype(), field.detailedtype()) : manager.getDataType(field.datatype(), field.detailedtype()); if (field.id().size() == 1) { type.addField(new Field(field.name(), field.id().get(0).id(), fieldType, true)); } else { type.addField(new Field(field.name(), fieldType, true)); } } manager.register(type); }
private static void addStructInheritance(DocumentmanagerConfig config, DocumentTypeManager manager) { for (int i = 0; i < config.datatype().size(); i++) { DocumentmanagerConfig.Datatype thisDataType = config.datatype(i); int id = thisDataType.id(); for (Object o : thisDataType.structtype()) { DocumentmanagerConfig.Datatype.Structtype struct = (DocumentmanagerConfig.Datatype.Structtype) o; StructDataType thisStruct = (StructDataType) manager.getDataType(id, ""); for (DocumentmanagerConfig.Datatype.Structtype.Inherits parent : struct.inherits()) { StructDataType parentStruct = (StructDataType) manager.getDataType(parent.name()); thisStruct.inherit(parentStruct); } } } } }
public Structtype build() { return new Structtype(this); }
private static CompressionConfig makeCompressionConfig(DocumentmanagerConfig.Datatype.Structtype cfg) { return new CompressionConfig(toCompressorType(cfg.compresstype()), cfg.compresslevel(), cfg.compressthreshold(), cfg.compressminsize()); }
public Builder(Structtype config) { name(config.name()); version(config.version()); compresstype(config.compresstype()); compresslevel(config.compresslevel()); compressthreshold(config.compressthreshold()); compressminsize(config.compressminsize()); for (Field f : config.field()) { field(new Field.Builder(f)); } for (Inherits i : config.inherits()) { inherits(new Inherits.Builder(i)); } }