Example usage for javax.lang.model.element Modifier FINAL

List of usage examples for javax.lang.model.element Modifier FINAL

Introduction

In this page you can find the example usage for javax.lang.model.element Modifier FINAL.

Prototype

Modifier FINAL

To view the source code for javax.lang.model.element Modifier FINAL.

Click Source Link

Document

The modifier final

Usage

From source file:info.archinnov.achilles.internals.codegen.dsl.select.SelectDSLCodeGen.java

public static TypeSpec buildSelectClass(EntityMetaSignature signature) {

    final String firstPartitionKey = signature.fieldMetaSignatures.stream()
            .filter(x -> x.context.columnType == ColumnType.PARTITION)
            .map(x -> Tuple2.of(x.context.fieldName, (PartitionKeyInfo) x.context.columnInfo))
            .sorted(TUPLE2_PARTITION_KEY_SORTER).map(Tuple2::_1).findFirst().get();

    TypeName selectFromTypeName = ClassName.get(DSL_PACKAGE, signature.selectFromReturnType());
    TypeName selectColumnsTypeName = ClassName.get(DSL_PACKAGE, signature.selectColumnsReturnType());

    final TypeSpec.Builder selectClassBuilder = TypeSpec.classBuilder(signature.selectClassName())
            .superclass(ABSTRACT_SELECT).addModifiers(Modifier.PUBLIC, Modifier.FINAL)
            .addMethod(buildSelectConstructor(signature)).addField(buildExactEntityMetaField(signature))
            .addField(buildEntityClassField(signature)).addType(buildSelectColumns(signature))
            .addType(buildSelectFrom(signature, firstPartitionKey));

    signature.fieldMetaSignatures.stream().filter(x -> x.context.columnType != ColumnType.COMPUTED)
            .forEach(x -> selectClassBuilder
                    .addMethod(buildSelectColumnMethod(selectColumnsTypeName, x, "select", NEW)));

    signature.fieldMetaSignatures.stream().filter(x -> x.context.columnType == ColumnType.COMPUTED)
            .forEach(x -> selectClassBuilder
                    .addMethod(buildSelectComputedColumnMethod(selectColumnsTypeName, x, "select", NEW)));

    selectClassBuilder.addMethod(buildSelectFunctionCallMethod(selectColumnsTypeName, "select", NEW));

    selectClassBuilder.addMethod(buildAllColumns(selectFromTypeName, SELECT_WHERE, "select"));
    selectClassBuilder.addMethod(buildAllColumnsWithSchemaProvider(selectFromTypeName, SELECT_WHERE, "select"));

    SelectWhereDSLCodeGen.buildWhereClasses(signature).forEach(selectClassBuilder::addType);

    return selectClassBuilder.build();
}

From source file:info.archinnov.achilles.internals.parser.validator.BeanValidator.java

public static void validateIsAConcreteNonFinalClass(AptUtils aptUtils, TypeElement typeElement) {
    final Name name = typeElement.getQualifiedName();
    aptUtils.validateTrue(typeElement.getKind() == ElementKind.CLASS, "Bean type '%s' should be a class", name);
    final Set<Modifier> modifiers = typeElement.getModifiers();
    aptUtils.validateFalse(modifiers.contains(Modifier.ABSTRACT), "Bean type '%s' should not be abstract",
            name);/*from   ww  w .  j a  v  a2  s .com*/
    aptUtils.validateFalse(modifiers.contains(Modifier.FINAL), "Bean type '%s' should not be final", name);
}

From source file:me.oriley.shiv.holders.ExtraBindingHolder.java

@Override
void addBindingsToClass(@NonNull TypeSpec.Builder typeSpecBuilder) throws ShivException {
    if (mElements.isEmpty()) {
        // Nothing to bind
        return;//from   www. j av  a 2s .  c o  m
    }

    // Type parameter
    ParameterSpec param = ParameterSpec
            .builder(TypeName.get(Object.class).annotated(AnnotationSpec.builder(NonNull.class).build()),
                    OBJECT, Modifier.FINAL)
            .build();

    // Create bindExtras method
    MethodSpec bindMethod = MethodSpec.methodBuilder(BIND_EXTRAS).addModifiers(Modifier.PUBLIC)
            .addAnnotation(Override.class).addParameter(param).addCode(generateBindExtrasMethod()).build();

    typeSpecBuilder.addMethod(bindMethod);
}

From source file:me.oriley.shiv.holders.ViewBindingHolder.java

@Override
void addBindingsToClass(@NonNull TypeSpec.Builder typeSpecBuilder) throws ShivException {
    if (mElements.isEmpty()) {
        // Nothing to bind
        return;//from   w  ww  .  j  a v a2s  . c  o  m
    }

    // Type parameter
    ParameterSpec param = ParameterSpec
            .builder(TypeName.get(Object.class).annotated(AnnotationSpec.builder(NonNull.class).build()),
                    OBJECT, Modifier.FINAL)
            .build();

    ParameterSpec viewGroupParam = ParameterSpec
            .builder(ClassName.get(ViewGroup.class).annotated(AnnotationSpec.builder(NonNull.class).build()),
                    VIEW_GROUP, Modifier.FINAL)
            .build();

    // Add count to final field for early exit strategy
    typeSpecBuilder.addField(
            FieldSpec.builder(int.class, VIEW_COUNT, Modifier.FINAL, Modifier.STATIC, Modifier.PRIVATE)
                    .initializer("$L", mElements.size()).build());

    // Create bindViews method
    MethodSpec publicBindMethod = MethodSpec.methodBuilder(BIND_VIEWS).addModifiers(Modifier.PUBLIC)
            .addAnnotation(Override.class).addParameter(param).addCode(generatePublicBindViewsMethod()).build();

    // Create bindViews method
    MethodSpec iterativeBindMethod = MethodSpec.methodBuilder(BIND_VIEWS).addModifiers(Modifier.PRIVATE)
            .addParameter(param).addParameter(viewGroupParam).returns(int.class)
            .addCode(generateProtectedBindViewsMethod()).build();

    // Create unbindViews method
    MethodSpec unbindMethod = MethodSpec.methodBuilder(UNBIND_VIEWS).addModifiers(Modifier.PUBLIC)
            .addAnnotation(Override.class).addParameter(param).addCode(generateUnbindViewsMethod()).build();

    typeSpecBuilder.addMethod(publicBindMethod).addMethod(iterativeBindMethod).addMethod(unbindMethod);
}

From source file:info.archinnov.achilles.internals.codegen.meta.UDTMetaCodeGen.java

public TypeSpec buildUDTClassProperty(TypeElement elm, EntityParsingContext context,
        List<FieldMetaSignature> parsingResults) {

    final TypeName rawBeanType = TypeName.get(aptUtils.erasure(elm));

    final Optional<Strategy> strategy = aptUtils.getAnnotationOnClass(elm, Strategy.class);

    final String className = elm.getSimpleName() + META_SUFFIX;
    TypeName classType = ClassName.get(UDT_META_PACKAGE, className);
    final TypeSpec.Builder builder = TypeSpec.classBuilder(className)
            .addModifiers(Modifier.PUBLIC, Modifier.FINAL)
            .superclass(genericType(ABSTRACT_UDT_CLASS_PROPERTY, rawBeanType))
            .addMethod(buildGetStaticKeyspace(elm)).addMethod(buildGetStaticUDTName(elm))
            .addMethod(buildGetStaticNamingStrategy(strategy)).addMethod(buildGetUdtName(elm, context))
            .addMethod(buildGetUdtClass(rawBeanType))
            .addMethod(buildComponentsProperty(rawBeanType, parsingResults))
            .addMethod(buildCreateUDTFromBeanT(rawBeanType, parsingResults))
            .addMethod(buildCreateBeanFromUDT(rawBeanType, parsingResults));

    for (FieldMetaSignature x : parsingResults) {
        builder.addField(x.buildPropertyAsField());
    }//from   w  w w  .j a va 2s.c o m

    /**
     * REALLY IMPORTANT, generate the INSTANCE field
     * right AFTER ALL the meta data
     */
    builder.addField(build_INSTANCE_Field(classType));

    return builder.build();
}

From source file:me.oriley.shiv.holders.NonConfigurationInstanceBindingHolder.java

@Override
void addBindingsToClass(@NonNull TypeSpec.Builder typeSpecBuilder) throws ShivException {
    if (mElements.isEmpty()) {
        // Nothing to bind
        return;/*from w w  w . ja va  2  s.co  m*/
    }

    // Type parameter
    ParameterSpec param = ParameterSpec
            .builder(TypeName.get(Object.class).annotated(AnnotationSpec.builder(NonNull.class).build()),
                    OBJECT, Modifier.FINAL)
            .build();

    ParameterSpec mapParam = ParameterSpec
            .builder(NON_CONFIGURATION_MAP_TYPE.annotated(AnnotationSpec.builder(NonNull.class).build()), MAP,
                    Modifier.FINAL)
            .build();

    // Create restoreNonConfigInstance method
    MethodSpec restoreMethod = MethodSpec.methodBuilder(RESTORE_NON_CONFIG_INSTANCE)
            .addModifiers(Modifier.PUBLIC).addAnnotation(Override.class).addParameter(param)
            .addCode(generateRestoreNonConfigInstanceMethod(typeSpecBuilder)).build();

    // Create saveNonConfigInstance method
    MethodSpec saveMethod = MethodSpec.methodBuilder(SAVE_NON_CONFIG_INSTANCE).addModifiers(Modifier.PUBLIC)
            .addAnnotation(Override.class).addParameter(param).addParameter(mapParam)
            .addCode(generateSaveNonConfigInstanceMethod()).build();

    typeSpecBuilder.addMethod(restoreMethod).addMethod(saveMethod);
}

From source file:com.github.benmanes.caffeine.cache.node.NodeRule.java

/** Creates an accessor that returns the reference. */
protected final MethodSpec newGetRef(String varName) {
    MethodSpec.Builder getter = MethodSpec.methodBuilder("get" + capitalize(varName) + "Reference")
            .addModifiers(Modifier.PUBLIC, Modifier.FINAL).returns(Object.class);
    getter.addStatement("return $T.UNSAFE.getObject(this, $N)", UNSAFE_ACCESS, offsetName(varName));
    return getter.build();
}

From source file:ch.rasc.constgen.CodeGenerator.java

public void generate(Appendable appendable) throws IOException {
    Builder classBuilder = TypeSpec.classBuilder(this.className);
    classBuilder.addModifiers(Modifier.PUBLIC, Modifier.FINAL);

    for (Constant constant : collectFields()) {
        FieldSpec fieldSpec = FieldSpec.builder(String.class, constant.getName())
                .addModifiers(Modifier.PUBLIC, Modifier.FINAL, Modifier.STATIC)
                .initializer("$S", constant.getValue()).build();

        classBuilder.addField(fieldSpec);
    }/*ww  w  .  ja  v a  2 s  .c o m*/

    JavaFile javaFile = JavaFile.builder(this.packageName, classBuilder.build()).build();
    javaFile.writeTo(appendable);
}

From source file:com.shieldsbetter.sbomg.ModelClass.java

public void addField(boolean finalFlag, TypeName type, String name) {
    FieldSpec.Builder f = FieldSpec.builder(type, name).addModifiers(Modifier.PRIVATE);
    if (finalFlag) {
        f.addModifiers(Modifier.FINAL);
    }//from w  ww. j  a v a2 s.  com

    myFields.add(f.build());
}

From source file:io.soabase.halva.processor.caseclass.Templates.java

void addField(CaseClassItem item, TypeSpec.Builder builder, TypeName type, boolean makeFinal,
        boolean makeVolatile, Settings settings) {
    TypeName localType;/*from   w  ww.  ja  va  2s  . co  m*/
    if (makeFinal) {
        localType = type;
    } else {
        localType = item.hasDefaultValue() ? type.box() : type;
    }
    FieldSpec.Builder fieldBuilder = FieldSpec.builder(localType, item.getName(), Modifier.PRIVATE);
    if (makeFinal) {
        fieldBuilder.addModifiers(Modifier.FINAL);
    }
    if (makeVolatile) {
        fieldBuilder.addModifiers(Modifier.VOLATILE);
    }
    Set<AnnotationSpec> annotationSpecs = new HashSet<>();
    if (settings.json) {
        List<AnnotationSpec> parent = parentJsonAnnotations(item.getElement());
        if (parent.isEmpty()) {
            AnnotationSpec annotationSpec = AnnotationSpec
                    .builder(ClassName.get("com.fasterxml.jackson.annotation", "JsonProperty")).build();
            parent = Collections.singletonList(annotationSpec);
        }
        annotationSpecs.addAll(parent);
    }
    if (settings.validate) {
        item.getElement().getAnnotationMirrors().stream().map(AnnotationSpec::get)
                .forEach(annotationSpecs::add);
    }
    fieldBuilder.addAnnotations(annotationSpecs);
    builder.addField(fieldBuilder.build());
}