View Javadoc

    1   /**
    2    * Copyright (c) 2008-2011, http://www.snakeyaml.org
    3    *
    4    * Licensed under the Apache License, Version 2.0 (the "License");
    5    * you may not use this file except in compliance with the License.
    6    * You may obtain a copy of the License at
    7    *
    8    *     http://www.apache.org/licenses/LICENSE-2.0
    9    *
    10   * Unless required by applicable law or agreed to in writing, software
    11   * distributed under the License is distributed on an "AS IS" BASIS,
    12   * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    13   * See the License for the specific language governing permissions and
    14   * limitations under the License.
    15   */
    16
    17  package org.yaml.snakeyaml.constructor;
    18
    19  /**
    20   * Construct instances with a custom Class Loader.
    21   */
    22  public class CustomClassLoaderConstructor extends Constructor {
    23      private ClassLoader loader = CustomClassLoaderConstructor.class.getClassLoader();
    24
    25      public CustomClassLoaderConstructor(ClassLoader cLoader) {
    26          this(Object.class, cLoader);
    27      }
    28
    29      public CustomClassLoaderConstructor(Class<? extends Object> theRoot, ClassLoader theLoader) {
    30          super(theRoot);
    31          if (theLoader == null) {
    32              throw new NullPointerException("Loader must be provided.");
    33          }
    34          this.loader = theLoader;
    35      }
    36
    37      @Override
    38      protected Class<?> getClassForName(String name) throws ClassNotFoundException {
    39          return Class.forName(name, true, loader);
    40      }
    41  }