/** * Creates a new document type and registers it with the document type manager. * This will be created as version 0 of this document type. * Implicitly registers this with the document type manager. * The document type id will be generated as a hash from the document type name. * * @param name The name of the new document type */ public DocumentType(String name) { this(name, new StructDataType(name + ".header"), new StructDataType(name + ".body")); }
public NewDocumentType(Name name, Set<Name> documentReferences) { this( name, new StructDataType(name.getName() + ".header"), new StructDataType(name.getName() + ".body"), new FieldSets(), documentReferences); }
private static StructDataType newInstance() { StructDataType ret = new StructDataType(STRUCT_NAME); ret.addField(new Field(FIELD_X, DataType.INT)); ret.addField(new Field(FIELD_Y, DataType.INT)); return ret; } }
private void visit(SDDocumentType docOrStruct) { int id; if (docOrStruct.isStruct()) { id = new StructDataType(docOrStruct.getName()).getId(); } else { id = new DocumentType(docOrStruct.getName()).getId(); } if (seenTypes.contains(id)) { return; } else { seenTypes.add((new StructDataType(docOrStruct.getName()).getId())); } for (Field field : docOrStruct.fieldSet()) { if (!seenTypes.contains(field.getDataType().getId())) { //we haven't seen this before, do it visit(field.getDataType()); } } processingOrder.add(docOrStruct); }
/** * Data type of the header fields of this and all inherited document types * @return merged {@link StructDataType} */ public StructDataType allHeader() { StructDataType ret = new StructDataType(header.getName()); for (Field f : header.getFields()) { ret.addField(f); } for (NewDocumentType inherited : getInherited()) { for (Field f : ((StructDataType) inherited.getHeader()).getFields()) { ret.addField(f); } } return ret; }
/** * Data type of the body fields of this and all inherited document types * @return merged {@link StructDataType} */ public StructDataType allBody() { StructDataType ret = new StructDataType(body.getName()); for (Field f : body.getFields()) { ret.addField(f); } for (NewDocumentType inherited : getInherited()) { for (Field f : ((StructDataType) inherited.getBody()).getFields()) { ret.addField(f); } } return ret; }
private static StructDataType handleStruct(NewDocumentType dt, SDDocumentType type) { StructDataType s = new StructDataType(type.getName()); for (Field f : type.getDocumentType().contentStruct().getFieldsThisTypeOnly()) { specialHandleAnnotationReference(dt, f); s.addField(f); } for (StructDataType inherited : type.getDocumentType().contentStruct().getInheritedTypes()) { s.inherit(inherited); } extractNestedTypes(dt, s); addType(dt, s); return s; }
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); }
StructDataType s = new StructDataType("annotation."+annotation.getName()); if (anyParentsHavePayLoad(sa, sdoc)) { annotation.setDataType(s);