or run

npx @tessl/cli init
Log in

Version

Tile

Overview

Evals

Files

docs

builder-pattern.mdconstructors.mddata-classes.mdexperimental.mdimmutable-patterns.mdindex.mdlogging.mdobject-methods.mdproperty-access.mdtype-inference.mdutilities.md
tile.json

experimental.mddocs/

Experimental Features

Advanced and experimental features including utility classes, field name constants, and enhanced builder patterns.

Capabilities

@SuperBuilder

@Target(ElementType.TYPE)
@Retention(RetentionPolicy.SOURCE)
public @interface SuperBuilder {
    String builderMethodName() default "builder";
    String buildMethodName() default "build";
    boolean toBuilder() default false;
    String setterPrefix() default "";
}

@UtilityClass

@Target(ElementType.TYPE)
@Retention(RetentionPolicy.SOURCE)
public @interface UtilityClass {
}

@FieldNameConstants

@Target(ElementType.TYPE)
@Retention(RetentionPolicy.SOURCE)
public @interface FieldNameConstants {
    AccessLevel level() default AccessLevel.PUBLIC;
    boolean asEnum() default false;
    String innerTypeName() default "Fields";
    boolean onlyExplicitlyIncluded() default false;
}

@Delegate

@Target({ElementType.FIELD, ElementType.METHOD})
@Retention(RetentionPolicy.SOURCE)
public @interface Delegate {
    Class<?>[] types() default {};
    Class<?>[] excludes() default {};
}

Usage Examples:

import lombok.experimental.*;

@UtilityClass
public class MathUtils {
    public static int add(int a, int b) {
        return a + b;
    }
}

@FieldNameConstants
public class User {
    private String name;
    private int age;
    
    // Generated: public static final String NAME = "name";
    // Generated: public static final String AGE = "age";
}