code: public <S extends ICDKObject, T extends S> boolean register(Class<S> intf, Constructor<T> constructor,
              CreationModifier<T> modifier) {
  
          // do not register private constructors
          if (Modifier.isPrivate(constructor.getModifiers()) ||
              Modifier.isProtected(constructor.getModifiers())) return Boolean.FALSE;
  
          // maybe package-private, make sure we can call it
          constructor.setAccessible(true);
  
          return register(key(intf, constructor), constructor, modifier) != null;
  
      }
docs: Register a specific constructor with a creation modifier to an explicit
  interface.
  
  <pre>{@code
  // only register construction of IAtom using a string - Atom("C")
  factory.register(IAtom.class,
  Atom.class.getConstructor(String.class),
  new DynamicFactory.CreationModifier<Atom>() {
  
  public void modify(Atom instance) {
  instance.setFormalCharge(0);
  }
  });
  }</pre>
  
  @param intf        the interface
  @param constructor a constructor which builds the given interface
  @param <S>         interface type
  @param <T>         implementation type (must extend interface)
  @return whether the constructor was registered