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

ch.ifocusit.plantuml.classdiagram.model.attribute.MethodAttribute Maven / Gradle / Ivy

package ch.ifocusit.plantuml.classdiagram.model.attribute;

import ch.ifocusit.plantuml.classdiagram.model.ClassMember;
import ch.ifocusit.plantuml.utils.ClassUtils;

import java.lang.reflect.Parameter;
import java.util.Optional;
import java.util.Set;

public class MethodAttribute implements Attribute, ClassMember {

    private final Parameter methodParameter;

    public MethodAttribute(final Parameter methodParameter) {
        this.methodParameter = methodParameter;
    }

    @Override
    public Set getConcernedTypes() {
        return ClassUtils.getConcernedTypes(methodParameter);
    }

    public Class getParameterType() {
        return methodParameter.getType();
    }

    @Override
    public Class getType() {
        return getParameterType();
    }

    @Override
    public Class getDeclaringClass() {
        return methodParameter.getDeclaringExecutable().getDeclaringClass();
    }

    @Override
    public Optional getTypeName() {
        return Optional.of(ClassUtils.getSimpleName(methodParameter.getParameterizedType()));
    }

    @Override
    public String getName() {
        return methodParameter.getName();
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy