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

net.intelie.pipes.ModuleContext Maven / Gradle / Ivy

There is a newer version: 0.25.5
Show newest version
package net.intelie.pipes;

import java.io.Serializable;
import java.util.Objects;

public class ModuleContext implements Serializable {
    private static final long serialVersionUID = 1L;
    private final String name;
    private final String displayName;
    private final String url;

    public ModuleContext() {
        this("");
    }

    public ModuleContext(String name) {
        this(name, name);
    }

    public ModuleContext(String name, String displayName) {
        this(name, displayName, null);
    }

    public ModuleContext(String name, String displayName, String url) {
        this.name = name;
        this.displayName = displayName;
        this.url = url;
    }

    public static String prefixName(String prefix, String name) {
        if (prefix == null || prefix.isEmpty()) return name;
        if (name == null || name.isEmpty()) return prefix;

        StringBuilder pipePrefix = new StringBuilder();
        while (pipePrefix.length() < name.length() && name.charAt(pipePrefix.length()) == '@')
            pipePrefix.append('@');

        return pipePrefix.toString() + prefix + "." + name.substring(pipePrefix.length());
    }

    public boolean isDefault() {
        return name == null || name.isEmpty();
    }

    public String getName() {
        return name;
    }

    public String getDisplayName() {
        return displayName;
    }

    public String getUrl() {
        return url;
    }

    public String resolveName(String name) {
        return prefixName(this.name, name);
    }

    public String augmentDescription(String description) {
        if (Objects.equals(name, displayName))
            return description;
        return "(module '" + displayName + "') " + description;
    }
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy