// Path: src/main/java/org/graylog/collector/outputs/OutputConfiguration.java
// public abstract class OutputConfiguration implements Configuration {
//     public interface Factory<C extends OutputConfiguration> {
//         C create(String id, Config config);
//     }
// 
//     @NotBlank
//     private final String id;
// 
//     @NotNull
//     private Set<String> inputs = Sets.newHashSet();
// 
//     public OutputConfiguration(String id, Config config) {
//         this.id = id;
// 
//         if (config.hasPath("inputs")) {
//             this.inputs = Sets.newHashSet(Splitter.on(",").omitEmptyStrings().trimResults().split(config.getString("inputs")));
//         }
//     }
// 
//     public abstract OutputService createOutput();
// 
//     @Override
//     public String getId() {
//         return id;
//     }
// 
//     public Set<String> getInputs() {
//         return inputs;
//     }
// 
//     @Override
//     public Map<String, String> toStringValues() {
//         return Collections.unmodifiableMap(new HashMap<String, String>() {
//             {
//                 put("id", getId());
//                 put("inputs", Joiner.on(",").join(getInputs()));
//             }
//         });
//     }
// }


import java.util.Map;
import com.google.inject.assistedinject.Assisted;
import com.typesafe.config.Config;
import org.graylog.collector.config.ConfigurationUtils;
import org.graylog.collector.outputs.OutputConfiguration;
import org.graylog2.gelfclient.GelfTransports;
import org.hibernate.validator.constraints.NotBlank;
import org.hibernate.validator.constraints.Range;
import javax.inject.Inject;
import javax.validation.constraints.NotNull;
import java.io.File;
import java.util.Collections;
import java.util.HashMap;
import java.util.Locale;
/**
 * This file is part of Graylog.
 *
 * Graylog is free software: you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Graylog is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
 *
 * You should have received a copy of the GNU General Public License
 * along with Graylog.  If not, see <http://www.gnu.org/licenses/>.
 */
package org.graylog.collector.outputs.gelf;



public class GelfOutputConfiguration extends OutputConfiguration {
    private final GelfOutput.Factory outputFactory;

// Path: src/main/java/org/graylog/collector/outputs/OutputConfiguration.java
// public abstract class OutputConfiguration implements Configuration {
//     public interface Factory<C extends OutputConfiguration> {
//         C create(String id, Config config);
//     }
// 
//     @NotBlank
//     private final String id;
// 
//     @NotNull
//     private Set<String> inputs = Sets.newHashSet();
// 
//     public OutputConfiguration(String id, Config config) {
//         this.id = id;
// 
//         if (config.hasPath("inputs")) {
//             this.inputs = Sets.newHashSet(Splitter.on(",").omitEmptyStrings().trimResults().split(config.getString("inputs")));
//         }
//     }
// 
//     public abstract OutputService createOutput();
// 
//     @Override
//     public String getId() {
//         return id;
//     }
// 
//     public Set<String> getInputs() {
//         return inputs;
//     }
// 
//     @Override
//     public Map<String, String> toStringValues() {
//         return Collections.unmodifiableMap(new HashMap<String, String>() {
//             {
//                 put("id", getId());
//                 put("inputs", Joiner.on(",").join(getInputs()));
//             }
//         });
//     }
// }


// Path: src/main/java/org/graylog/collector/outputs/gelf/GelfOutputConfiguration.java
import java.util.Map;
import com.google.inject.assistedinject.Assisted;
import com.typesafe.config.Config;
import org.graylog.collector.config.ConfigurationUtils;
import org.graylog.collector.outputs.OutputConfiguration;
import org.graylog2.gelfclient.GelfTransports;
import org.hibernate.validator.constraints.NotBlank;
import org.hibernate.validator.constraints.Range;
import javax.inject.Inject;
import javax.validation.constraints.NotNull;
import java.io.File;
import java.util.Collections;
import java.util.HashMap;
import java.util.Locale;

/**
 * This file is part of Graylog.
 *
 * Graylog is free software: you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Graylog is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
 *
 * You should have received a copy of the GNU General Public License
 * along with Graylog.  If not, see <http://www.gnu.org/licenses/>.
 */
package org.graylog.collector.outputs.gelf;



public class GelfOutputConfiguration extends OutputConfiguration {
    private final GelfOutput.Factory outputFactory;

    public interface Factory extends OutputConfiguration.Factory<GelfOutputConfiguration> {