// Path: src/main/java/ch/ifocusit/plantuml/classdiagram/model/Link.java
// public class Link {
//     private String url;
//     private String label;
// 
//     public String getUrl() {
//         return url;
//     }
// 
//     public void setUrl(String url) {
//         this.url = url;
//     }
// 
//     public String getLabel() {
//         return label;
//     }
// 
//     public void setLabel(String label) {
//         this.label = label;
//     }
// 
//     @Override
//     public String toString() {
//         return String.format("[[%s{%s}]]", url, label);
//     }
// 
// 
// }


import ch.ifocusit.plantuml.classdiagram.model.Link;
import java.lang.reflect.Field;
import java.lang.reflect.Method;
import java.util.Optional;
package ch.ifocusit.plantuml.classdiagram;



public interface LinkMaker {

    /**
     * @return the class link to use in the diagram
     */
    default Optional<Link> getClassLink(Class aClass) {
        return Optional.empty();
    }

    /**
     * @return the field link to use in the diagram
     */
    default Optional<Link> getFieldLink(Field field) {
        return Optional.empty();
    }

    /**
     * @return the method link to use in the diagram
     */
// Path: src/main/java/ch/ifocusit/plantuml/classdiagram/model/Link.java
// public class Link {
//     private String url;
//     private String label;
// 
//     public String getUrl() {
//         return url;
//     }
// 
//     public void setUrl(String url) {
//         this.url = url;
//     }
// 
//     public String getLabel() {
//         return label;
//     }
// 
//     public void setLabel(String label) {
//         this.label = label;
//     }
// 
//     @Override
//     public String toString() {
//         return String.format("[[%s{%s}]]", url, label);
//     }
// 
// 
// }


// Path: src/main/java/ch/ifocusit/plantuml/classdiagram/LinkMaker.java
import ch.ifocusit.plantuml.classdiagram.model.Link;
import java.lang.reflect.Field;
import java.lang.reflect.Method;
import java.util.Optional;

package ch.ifocusit.plantuml.classdiagram;



public interface LinkMaker {

    /**
     * @return the class link to use in the diagram
     */
    default Optional<Link> getClassLink(Class aClass) {
        return Optional.empty();
    }

    /**
     * @return the field link to use in the diagram
     */
    default Optional<Link> getFieldLink(Field field) {
        return Optional.empty();
    }

    /**
     * @return the method link to use in the diagram
     */
    default Optional<Link> getMethodLink(Method method) {