001package com.typesafe.config; 002 003import java.net.URL; 004 005import com.typesafe.config.impl.ConfigImpl; 006 007/** 008 * This class contains some static factory methods for building a {@link 009 * ConfigOrigin}. {@code ConfigOrigin}s are automatically created when you 010 * call other API methods to get a {@code ConfigValue} or {@code Config}. 011 * But you can also set the origin of an existing {@code ConfigValue}, using 012 * {@link ConfigValue#withOrigin(ConfigOrigin)}. 013 * 014 */ 015public final class ConfigOriginFactory { 016 private ConfigOriginFactory() { 017 } 018 019 /** 020 * Returns the default origin for values when no other information is 021 * provided. This is the origin used in {@link ConfigValueFactory 022 * #fromAnyRef(Object)}. 023 * 024 * @return the default origin 025 */ 026 public static ConfigOrigin newSimple() { 027 return newSimple(null); 028 } 029 030 /** 031 * Returns an origin with the given description. 032 * 033 * @param description brief description of what the origin is 034 * @return a new origin 035 */ 036 public static ConfigOrigin newSimple(String description) { 037 return ConfigImpl.newSimpleOrigin(description); 038 } 039 040 /** 041 * Creates a file origin with the given filename. 042 * 043 * @param filename the filename of this origin 044 * @return a new origin 045 */ 046 public static ConfigOrigin newFile(String filename) { 047 return ConfigImpl.newFileOrigin(filename); 048 } 049 050 /** 051 * Creates a url origin with the given URL object. 052 * 053 * @param url the url of this origin 054 * @return a new origin 055 */ 056 public static ConfigOrigin newURL(URL url) { 057 return ConfigImpl.newURLOrigin(url); 058 } 059}