@Override
 public void consume(DependencyType type) {
   if (filter != null && !filter.match(type)) {
     return;
   }
   if (type.getName().startsWith("[")) {
     source.getArrayItem().connect(destination.getArrayItem());
     destination.getArrayItem().connect(source.getArrayItem());
   }
   if (type.getName().equals("java.lang.Class")) {
     source.getClassValueNode().connect(destination.getClassValueNode());
   }
   if (!destination.hasType(type)) {
     destination.propagate(type);
   }
 }