All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.moon.mapping.processing.StringAdder Maven / Gradle / Ivy

package com.moon.mapping.processing;

import static java.util.Arrays.stream;

/**
 * @author moonsky
 */
final class StringAdder implements ThrowingSupplier {

    private final StringBuilder content;

    public StringAdder() { this.content = new StringBuilder(); }

    public StringAdder pkg(Class type) { return add(type.getPackage().getName()); }

    public StringAdder add(Object obj) { return add(obj == null ? null : obj.toString()); }

    public StringAdder add(CharSequence content) {
        this.content.append(content);
        return this;
    }

    public StringAdder add(boolean doAdd, CharSequence content) {
        return doAdd ? add(content) : this;
    }

    public StringAdder impl(Class... interfaces) {
        return impl(stream(interfaces).map(Class::getCanonicalName).toArray(String[]::new));
    }

    public StringAdder impl(String... interfaces) {
        return add(" implements ").add(String.join(",", interfaces));
    }

    public StringAdder space() { return add(" "); }

    public StringAdder dot() { return add("."); }

    @Override
    public String toString() { return content.toString(); }

    @Override
    public String get() { return content.toString(); }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy