code: @SuppressWarnings("unchecked")
      public <A> PathBuilder<A> get(String property, Class<A> type) {
          SimpleEntry<String, Class<?>> entry = new SimpleEntry<String, Class<?>>(property, type);
          PathBuilder<A> path = (PathBuilder<A>) properties.get(entry);
          PathBuilder<?> existingPath = null;
          if (path == null) {
              Class<? extends A> vtype = validate(property, type);
              path = new PathBuilder<A>(vtype, forProperty(property), validator);
              existingPath = properties.putIfAbsent(entry, path);
          }
          return existingPath == null ? path : (PathBuilder<A>) existingPath;
      }
docs: Create a PathBuilder for the given property with the given type
  
  @param <A>
  @param property property name
  @param type property type
  @return property path