private static ClassLiteral resolveConstant(ImportBuilder importer, ReifiableTypeDescription constant) { ModelFactory factory = Models.getModelFactory(); return factory.newClassLiteral(resolve(importer, constant)); }
private ClassLiteral toLiteral(TypeMirror type) { return f.newClassLiteral(imports.resolve(converter.convert(environment.getErasure(type)))); }
private List<Expression> toOperatorDeclaration(OperatorElement element) { assert element != null; List<Expression> results = new ArrayList<>(); results.add(toLiteral(element.getAnnotation().getAnnotationType())); results.add(toLiteral(operatorClass.getDeclaration().asType())); if (operatorClass.getDeclaration().getModifiers().contains(Modifier.ABSTRACT)) { ClassDescription aClass = Constants.getImplementationClass( operatorClass.getDeclaration().getQualifiedName()); Type implementationClass = DescriptionHelper.resolve(imports, aClass); results.add(f.newClassLiteral(implementationClass)); } results.add(Models.toLiteral(f, element.getDeclaration().getSimpleName().toString())); for (VariableElement param : element.getDeclaration().getParameters()) { results.add(toLiteral(param.asType())); } return results; }
private ClassLiteral toLiteral(TypeMirror type) { return f.newClassLiteral(imports.resolve(converter.convert(environment.getErasure(type)))); }
private MethodDeclaration createGetModelTypeMethod(Name value) { return createGetMethod( "getModelType", //$NON-NLS-1$ f.newParameterizedType(context.resolve(Class.class), f.newWildcard()), f.newClassLiteral(context.resolve(value))); }
private MethodDeclaration createGetModelTypeMethod(Name value) { return createGetMethod( "getModelType", //$NON-NLS-1$ f.newParameterizedType(context.resolve(Class.class), f.newWildcard()), f.newClassLiteral(context.resolve(value))); }
private static ClassLiteral toLiteral( CompileEnvironment environment, TypeMirror element, ImportBuilder imports) { ModelFactory factory = Models.getModelFactory(); Jsr269 converter = new Jsr269(factory); return factory.newClassLiteral(imports.resolve(converter.convert(environment.getErasure(element)))); }
@Override public List<Annotation> getTypeAnnotations( EmitContext context, ModelDeclaration model) throws IOException { HiveDataModelTrait trait = model.getTrait(HiveDataModelTrait.class); if (trait == null) { return Collections.emptyList(); } ModelFactory f = context.getModelFactory(); List<Expression> values = new ArrayList<>(); for (Namer namer : trait.getDataFormatNamers()) { Name name = namer.computeName(context, model); values.add(f.newClassLiteral(context.resolve(name))); } return new AttributeBuilder(f) .annotation(context.resolve(HiveTable.class), f.newArrayInitializer(values)) .toAnnotations(); }
@Override public List<Annotation> getTypeAnnotations(EmitContext context, ModelDeclaration model) { if (model.getOriginalAst().kind != ModelDefinitionKind.SUMMARIZED) { return Collections.emptyList(); } SummarizeTrait trait = model.getTrait(SummarizeTrait.class); if (trait == null) { throw new IllegalStateException(MessageFormat.format( "Internal Error: summarized model {0} has no SummarizeTrait", //$NON-NLS-1$ model.getName())); } ModelFactory f = context.getModelFactory(); List<Annotation> eTerms = new ArrayList<>(); for (ReduceTerm<?> term : trait.getTerms()) { ClassLiteral source = f.newClassLiteral(context.resolve(term.getSource())); ArrayInitializer mappings = toMappings(context, term.getMappings()); Annotation shuffle = toKey(context, term); eTerms.addAll(new AttributeBuilder(f) .annotation(context.resolve(Summarized.Term.class), "source", source, //$NON-NLS-1$ "foldings", mappings, //$NON-NLS-1$ "shuffle", shuffle) //$NON-NLS-1$ .toAnnotations()); } return new AttributeBuilder(f) .annotation(context.resolve(Summarized.class), "term", eTerms.get(0)) //$NON-NLS-1$ .toAnnotations(); }
@Override public List<Annotation> getTypeAnnotations(EmitContext context, ModelDeclaration model) { if (model.getOriginalAst().kind != ModelDefinitionKind.JOINED) { return Collections.emptyList(); } JoinTrait trait = model.getTrait(JoinTrait.class); if (trait == null) { throw new IllegalStateException(MessageFormat.format( "Internal Error: joined model {0} has no JoinTrait", //$NON-NLS-1$ model.getName())); } ModelFactory f = context.getModelFactory(); List<Annotation> eTerms = new ArrayList<>(); for (ReduceTerm<?> term : trait.getTerms()) { ClassLiteral source = f.newClassLiteral(context.resolve(term.getSource())); ArrayInitializer mappings = toMappings(context, term.getMappings()); Annotation shuffle = toKey(context, term); eTerms.addAll(new AttributeBuilder(f) .annotation(context.resolve(Joined.Term.class), "source", source, //$NON-NLS-1$ "mappings", mappings, //$NON-NLS-1$ "shuffle", shuffle) //$NON-NLS-1$ .toAnnotations()); } return new AttributeBuilder(f) .annotation(context.resolve(Joined.class), "terms", f.newArrayInitializer(eTerms)) //$NON-NLS-1$ .toAnnotations(); }
private MethodDeclaration createGetFormatMethod(Name value) { Name base = Models.toName(f, DirectFileInputDescriptionGenerator.FORMAT_BASE_CLASS); Type type = f.newParameterizedType( context.resolve(Class.class), f.newWildcard(WildcardBoundKind.UPPER_BOUNDED, f.newParameterizedType( context.resolve(base), f.newWildcard()))); return createGetMethod("getFormat", type, f.newClassLiteral(context.resolve(value))); //$NON-NLS-1$ }
private MethodDeclaration createGetFormatMethod(Name value) { Name base = Models.toName(f, FORMAT_BASE_CLASS); Type type = f.newParameterizedType( context.resolve(Class.class), f.newWildcard(WildcardBoundKind.UPPER_BOUNDED, f.newParameterizedType( context.resolve(base), f.newWildcard()))); return createGetMethod("getFormat", type, f.newClassLiteral(context.resolve(value))); //$NON-NLS-1$ }
private List<MethodDeclaration> createCreateRecordDefinition() { SimpleName builder = f.newSimpleName("builder"); //$NON-NLS-1$ List<Statement> statements = new ArrayList<>(); statements.add(new TypeBuilder(f, context.resolve(RecordDefinition.class)) .method("builder", f.newClassLiteral(context.resolve(model.getSymbol()))) //$NON-NLS-1$ .toLocalVariableDeclaration( f.newParameterizedType( context.resolve(RecordDefinition.Builder.class), context.resolve(model.getSymbol())), builder)); List<MethodDeclaration> fields = buildRecordDefinition(statements, builder); statements.add(new ExpressionBuilder(f, builder) .method("build") //$NON-NLS-1$ .toReturnStatement()); List<MethodDeclaration> results = new ArrayList<>(); results.add(f.newMethodDeclaration( null, new AttributeBuilder(f) .annotation(context.resolve(Override.class)) .Protected() .toAttributes(), f.newParameterizedType( context.resolve(RecordDefinition.class), context.resolve(model.getSymbol())), f.newSimpleName("createRecordDefinition"), //$NON-NLS-1$ Collections.emptyList(), statements)); results.addAll(fields); return results; }
private MethodDeclaration createGetModelType() { return createGetter( new TypeBuilder(f, context.resolve(Class.class)) .parameterize(f.newWildcard( WildcardBoundKind.UPPER_BOUNDED, context.resolve(description.getModelClassName()))) .toType(), "getModelType", //$NON-NLS-1$ f.newClassLiteral(context.resolve(description.getModelClassName()))); }
private MethodDeclaration createGetModelType() { return createGetter( new TypeBuilder(f, context.resolve(Class.class)) .parameterize(f.newWildcard( WildcardBoundKind.UPPER_BOUNDED, context.resolve(description.getModelClassName()))) .toType(), "getModelType", //$NON-NLS-1$ f.newClassLiteral(context.resolve(description.getModelClassName()))); }
private MethodDeclaration createGetJdbcSupport() { return createGetter( new TypeBuilder(f, context.resolve(Class.class)) .parameterize(f.newWildcard( WildcardBoundKind.UPPER_BOUNDED, new TypeBuilder(f, context.resolve(DataModelJdbcSupport.class)) .parameterize(f.newWildcard()) .toType())) .toType(), "getJdbcSupport", //$NON-NLS-1$ f.newClassLiteral(context.resolve(description.getSupportClassName()))); }
private MethodDeclaration createGetStreamSupport() { return createGetter( new TypeBuilder(f, context.resolve(Class.class)) .parameterize(f.newWildcard( WildcardBoundKind.UPPER_BOUNDED, new TypeBuilder(f, context.resolve(DataModelStreamSupport.class)) .parameterize(f.newWildcard()) .toType())) .toType(), "getStreamSupport", //$NON-NLS-1$ f.newClassLiteral(context.resolve(description.getSupportClassName()))); }
SimpleName builder = f.newSimpleName("builder"); //$NON-NLS-1$ statements.add(new TypeBuilder(f, context.resolve(DataModelDescriptorBuilder.class)) .newObject(f.newClassLiteral(context.resolve(model.getSymbol()))) .toLocalVariableDeclaration(context.resolve(DataModelDescriptorBuilder.class), builder)); AstDescription description = model.getDescription();