001    package org.kuali.maven.plugins.graph.dot;
002    
003    import java.util.ArrayList;
004    import java.util.List;
005    
006    import org.apache.maven.artifact.Artifact;
007    import org.kuali.maven.plugins.graph.pojo.Hider;
008    import org.kuali.maven.plugins.graph.tree.Helper;
009    
010    public class NodeGenerator {
011        public static final String DEFAULT_TYPE = "jar";
012    
013        protected void add(List<String> list, String s, boolean skip) {
014            if (skip || Helper.isBlank(s)) {
015                return;
016            } else {
017                list.add(s);
018            }
019        }
020    
021        public String getLabel(Artifact a) {
022            return getLabel(a, new Hider());
023        }
024    
025        public String getLabel(Artifact a, Hider hider) {
026    
027            boolean hideType = hider.isHideType() || DEFAULT_TYPE.equalsIgnoreCase(a.getType());
028    
029            List<String> labelTokens = new ArrayList<String>();
030            add(labelTokens, a.getGroupId(), hider.isHideGroupId());
031            add(labelTokens, a.getArtifactId(), hider.isHideArtifactId());
032            add(labelTokens, a.getType(), hideType);
033            add(labelTokens, a.getClassifier(), hider.isHideClassifier());
034            add(labelTokens, a.getVersion(), hider.isHideVersion());
035            return getLabel(labelTokens);
036        }
037    
038        protected String getLabel(List<String> tokens) {
039            StringBuilder sb = new StringBuilder();
040            for (int i = 0; i < tokens.size(); i++) {
041                if (i != 0) {
042                    sb.append("\\n");
043                }
044                sb.append(tokens.get(i));
045            }
046            return sb.toString();
047        }
048    
049    }