private void analyzeElements( DmdlSemantics environment, AstAttribute attribute, Map<String, AstAttributeElement> elements, HiveFieldTrait trait) { trait.setTimestampTypeInfo(); environment.reportAll(AttributeUtil.reportInvalidElements(attribute, elements.values())); }
@Override public void process( DmdlSemantics environment, ModelDeclaration declaration, AstAttribute attribute) { Map<String, AstAttributeElement> elements = AttributeUtil.getElementMap(attribute); Configuration conf = analyzeConfig(environment, attribute, elements); if (conf != null) { declaration.putTrait(TsvFormatTrait.class, new TsvFormatTrait(attribute, conf)); } }
@Override public void process( DmdlSemantics environment, PropertyDeclaration declaration, AstAttribute attribute) { environment.reportAll(AttributeUtil.reportInvalidElements(attribute, attribute.elements)); CsvFieldDriver.checkFieldType(environment, declaration, attribute, BasicTypeKind.TEXT); if (CsvFieldDriver.checkConflict(environment, declaration, attribute)) { declaration.putTrait(CsvFieldTrait.class, new CsvFieldTrait(attribute, Kind.FILE_NAME, null)); } }
@Override public void process( DmdlSemantics environment, PropertyDeclaration declaration, AstAttribute attribute) { if (Util.checkProperty(environment, declaration, attribute, HiveFieldTrait.TypeKind.TIMESTAMP) == false) { return; } HiveFieldTrait trait = HiveFieldTrait.get(declaration); trait.setOriginalAst(attribute, false); Map<String, AstAttributeElement> elements = AttributeUtil.getElementMap(attribute); analyzeElements(environment, attribute, elements, trait); }
private Configuration analyzeConfig( DmdlSemantics environment, AstAttribute attribute, Map<String, AstAttributeElement> elements) { AstLiteral charset = take(environment, elements, ELEMENT_CHARSET_NAME, LiteralKind.STRING); AstLiteral header = take(environment, elements, ELEMENT_HAS_HEADER_NAME, LiteralKind.BOOLEAN); AstLiteral codec = take(environment, elements, ELEMENT_CODEC_NAME, LiteralKind.STRING); environment.reportAll(AttributeUtil.reportInvalidElements(attribute, elements.values())); Configuration result = new Configuration(); if (charset != null && checkNotEmpty(environment, ELEMENT_CHARSET_NAME, charset)) { result.setCharsetName(charset.toStringValue()); } if (header != null) { result.setEnableHeader(header.toBooleanValue()); } if (codec != null && checkNotEmpty(environment, ELEMENT_CODEC_NAME, codec)) { result.setCodecName(codec.toStringValue()); } return result; }