
com.yahoo.container.core.QrLoggingConfig Maven / Gradle / Ivy
/**
* This file is generated from a config definition file.
* ------------ D O N O T E D I T ! ------------
*/
package com.yahoo.container.core;
import java.util.*;
import java.nio.file.Path;
import edu.umd.cs.findbugs.annotations.NonNull;
import com.yahoo.config.*;
/**
* This class represents the root node of qr-logging
*
* Copyright 2017 Yahoo Holdings. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
*/
public final class QrLoggingConfig extends ConfigInstance {
public final static String CONFIG_DEF_MD5 = "7675f2fe68a77c6f59ef345903728e9c";
public final static String CONFIG_DEF_NAME = "qr-logging";
public final static String CONFIG_DEF_NAMESPACE = "container.core";
public final static String CONFIG_DEF_VERSION = "";
public final static String[] CONFIG_DEF_SCHEMA = {
"namespace=container.core",
"logger string default=\"com.yahoo\"",
"speciallog[].name string",
"speciallog[].type string",
"speciallog[].filehandler.name string default=\"\"",
"speciallog[].filehandler.pattern string default=\".%Y%m%d%H%M%S\"",
"speciallog[].filehandler.rotation string default=\"0 60 ...\"",
"speciallog[].filehandler.rotatescheme string default=\"date\"",
"speciallog[].filehandler.symlink string default=\"\"",
"speciallog[].cachehandler.name string default=\"\"",
"speciallog[].cachehandler.size int default=1000"
};
public static String getDefMd5() { return CONFIG_DEF_MD5; }
public static String getDefName() { return CONFIG_DEF_NAME; }
public static String getDefNamespace() { return CONFIG_DEF_NAMESPACE; }
public static String getDefVersion() { return CONFIG_DEF_VERSION; }
public interface Producer extends ConfigInstance.Producer {
void getConfig(Builder builder);
}
public static class Builder implements ConfigInstance.Builder {
private Set __uninitialized = new HashSet();
private String logger = null;
public List speciallog = new ArrayList<>();
public Builder() { }
public Builder(QrLoggingConfig config) {
logger(config.logger());
for (Speciallog s : config.speciallog()) {
speciallog(new Speciallog.Builder(s));
}
}
private Builder override(Builder __superior) {
if (__superior.logger != null)
logger(__superior.logger);
if (!__superior.speciallog.isEmpty())
speciallog.addAll(__superior.speciallog);
return this;
}
public Builder logger(String __value) {
if (__value == null) throw new IllegalArgumentException("Null value is not allowed.");
logger = __value;
return this;
}
/**
* Add the given builder to this builder's list of Speciallog builders
* @param __builder a builder
* @return this builder
*/
public Builder speciallog(Speciallog.Builder __builder) {
speciallog.add(__builder);
return this;
}
/**
* Set the given list as this builder's list of Speciallog builders
* @param __builders a list of builders
* @return this builder
*/
public Builder speciallog(List __builders) {
speciallog = __builders;
return this;
}
@java.lang.Override
public final boolean dispatchGetConfig(ConfigInstance.Producer producer) {
if (producer instanceof Producer) {
((Producer)producer).getConfig(this);
return true;
}
return false;
}
@java.lang.Override
public final String getDefMd5() { return CONFIG_DEF_MD5; }
@java.lang.Override
public final String getDefName() { return CONFIG_DEF_NAME; }
@java.lang.Override
public final String getDefNamespace() { return CONFIG_DEF_NAMESPACE; }
}
private final StringNode logger;
private final InnerNodeVector speciallog;
public QrLoggingConfig(Builder builder) {
this(builder, true);
}
private QrLoggingConfig(Builder builder, boolean throwIfUninitialized) {
if (throwIfUninitialized && ! builder.__uninitialized.isEmpty())
throw new IllegalArgumentException("The following builder parameters for " +
"qr-logging must be initialized: " + builder.__uninitialized);
logger = (builder.logger == null) ?
new StringNode("com.yahoo") : new StringNode(builder.logger);
speciallog = Speciallog.createVector(builder.speciallog);
}
/**
* @return qr-logging.logger
*/
public String logger() {
return logger.value();
}
/**
* @return qr-logging.speciallog[]
*/
public List speciallog() {
return speciallog;
}
/**
* @param i the index of the value to return
* @return qr-logging.speciallog[]
*/
public Speciallog speciallog(int i) {
return speciallog.get(i);
}
private ChangesRequiringRestart getChangesRequiringRestart(QrLoggingConfig newConfig) {
ChangesRequiringRestart changes = new ChangesRequiringRestart("qr-logging");
return changes;
}
private static boolean containsFieldsFlaggedWithRestart() {
return false;
}
/**
* This class represents qr-logging.speciallog[]
*/
public final static class Speciallog extends InnerNode {
public static class Builder implements ConfigBuilder {
private Set __uninitialized = new HashSet(Arrays.asList(
"name",
"type"
));
private String name = null;
private String type = null;
public Filehandler.Builder filehandler = new Filehandler.Builder();
public Cachehandler.Builder cachehandler = new Cachehandler.Builder();
public Builder() { }
public Builder(Speciallog config) {
name(config.name());
type(config.type());
filehandler(new Filehandler.Builder(config.filehandler()));
cachehandler(new Cachehandler.Builder(config.cachehandler()));
}
private Builder override(Builder __superior) {
if (__superior.name != null)
name(__superior.name);
if (__superior.type != null)
type(__superior.type);
filehandler(filehandler.override(__superior.filehandler));
cachehandler(cachehandler.override(__superior.cachehandler));
return this;
}
public Builder name(String __value) {
if (__value == null) throw new IllegalArgumentException("Null value is not allowed.");
name = __value;
__uninitialized.remove("name");
return this;
}
public Builder type(String __value) {
if (__value == null) throw new IllegalArgumentException("Null value is not allowed.");
type = __value;
__uninitialized.remove("type");
return this;
}
public Builder filehandler(Filehandler.Builder __builder) {
filehandler = __builder;
return this;
}
public Builder cachehandler(Cachehandler.Builder __builder) {
cachehandler = __builder;
return this;
}
}
// Either QueryAccessLog for a regular Vespa access log, or YApacheAccessLog for a log on yApache format
private final StringNode name;
// Leave as ""
private final StringNode type;
private final Filehandler filehandler;
private final Cachehandler cachehandler;
/**
* @deprecated Not for public use.
* Does not check for uninitialized fields.
* Replaced by Speciallog(Builder)
*/
@Deprecated
private Speciallog() {
this(new Builder(), false);
}
public Speciallog(Builder builder) {
this(builder, true);
}
private Speciallog(Builder builder, boolean throwIfUninitialized) {
if (throwIfUninitialized && ! builder.__uninitialized.isEmpty())
throw new IllegalArgumentException("The following builder parameters for " +
"qr-logging.speciallog[] must be initialized: " + builder.__uninitialized);
name = (builder.name == null) ?
new StringNode() : new StringNode(builder.name);
type = (builder.type == null) ?
new StringNode() : new StringNode(builder.type);
filehandler = new Filehandler(builder.filehandler, throwIfUninitialized);
cachehandler = new Cachehandler(builder.cachehandler, throwIfUninitialized);
}
/**
* @return qr-logging.speciallog[].name
*/
public String name() {
return name.value();
}
/**
* @return qr-logging.speciallog[].type
*/
public String type() {
return type.value();
}
/**
* @return qr-logging.speciallog[].filehandler
*/
public Filehandler filehandler() {
return filehandler;
}
/**
* @return qr-logging.speciallog[].cachehandler
*/
public Cachehandler cachehandler() {
return cachehandler;
}
private ChangesRequiringRestart getChangesRequiringRestart(Speciallog newConfig) {
ChangesRequiringRestart changes = new ChangesRequiringRestart("speciallog");
return changes;
}
private static InnerNodeVector createVector(List builders) {
List elems = new ArrayList<>();
for (Builder b : builders) {
elems.add(new Speciallog(b));
}
return new InnerNodeVector(elems, new Speciallog());
}
/**
* This class represents qr-logging.speciallog[].filehandler
*/
public final static class Filehandler extends InnerNode {
public static class Builder implements ConfigBuilder {
private Set __uninitialized = new HashSet();
private String name = null;
private String pattern = null;
private String rotation = null;
private String rotatescheme = null;
private String symlink = null;
public Builder() { }
public Builder(Filehandler config) {
name(config.name());
pattern(config.pattern());
rotation(config.rotation());
rotatescheme(config.rotatescheme());
symlink(config.symlink());
}
private Builder override(Builder __superior) {
if (__superior.name != null)
name(__superior.name);
if (__superior.pattern != null)
pattern(__superior.pattern);
if (__superior.rotation != null)
rotation(__superior.rotation);
if (__superior.rotatescheme != null)
rotatescheme(__superior.rotatescheme);
if (__superior.symlink != null)
symlink(__superior.symlink);
return this;
}
public Builder name(String __value) {
if (__value == null) throw new IllegalArgumentException("Null value is not allowed.");
name = __value;
return this;
}
public Builder pattern(String __value) {
if (__value == null) throw new IllegalArgumentException("Null value is not allowed.");
pattern = __value;
return this;
}
public Builder rotation(String __value) {
if (__value == null) throw new IllegalArgumentException("Null value is not allowed.");
rotation = __value;
return this;
}
public Builder rotatescheme(String __value) {
if (__value == null) throw new IllegalArgumentException("Null value is not allowed.");
rotatescheme = __value;
return this;
}
public Builder symlink(String __value) {
if (__value == null) throw new IllegalArgumentException("Null value is not allowed.");
symlink = __value;
return this;
}
}
private final StringNode name;
// File name patterns supporting the expected time variables
private final StringNode pattern;
private final StringNode rotation;
// Defines how file rotation is done. There are two options:
//
// "date" :
// The active log file is given the name resulting from pattern (but in this case "pattern" must yield a
// time-dependent name. In addition, a symlink is created pointing to the newest file.
// The symlink is given the name of the symlink parameter (or the name of this service
// if no parameter is given.
//
// "sequence" :
// The active log file is given the name
// defined by "pattern" (which in this case will likely just be a constant string).
// At rotation, this file is given the name pattern.N where N is 1 + the largest integer found by
// extracting the integers from all files ending by .Integer in the same directory
//
private final StringNode rotatescheme;
// Use this as the name of the symlink created pointing to the newest file in the "date" naming scheme.
// This is ignored if the sequence naming scheme is used.
private final StringNode symlink;
public Filehandler(Builder builder) {
this(builder, true);
}
private Filehandler(Builder builder, boolean throwIfUninitialized) {
if (throwIfUninitialized && ! builder.__uninitialized.isEmpty())
throw new IllegalArgumentException("The following builder parameters for " +
"qr-logging.speciallog[].filehandler must be initialized: " + builder.__uninitialized);
name = (builder.name == null) ?
new StringNode("") : new StringNode(builder.name);
pattern = (builder.pattern == null) ?
new StringNode(".%Y%m%d%H%M%S") : new StringNode(builder.pattern);
rotation = (builder.rotation == null) ?
new StringNode("0 60 ...") : new StringNode(builder.rotation);
rotatescheme = (builder.rotatescheme == null) ?
new StringNode("date") : new StringNode(builder.rotatescheme);
symlink = (builder.symlink == null) ?
new StringNode("") : new StringNode(builder.symlink);
}
/**
* @return qr-logging.speciallog[].filehandler.name
*/
public String name() {
return name.value();
}
/**
* @return qr-logging.speciallog[].filehandler.pattern
*/
public String pattern() {
return pattern.value();
}
/**
* @return qr-logging.speciallog[].filehandler.rotation
*/
public String rotation() {
return rotation.value();
}
/**
* @return qr-logging.speciallog[].filehandler.rotatescheme
*/
public String rotatescheme() {
return rotatescheme.value();
}
/**
* @return qr-logging.speciallog[].filehandler.symlink
*/
public String symlink() {
return symlink.value();
}
private ChangesRequiringRestart getChangesRequiringRestart(Filehandler newConfig) {
ChangesRequiringRestart changes = new ChangesRequiringRestart("filehandler");
return changes;
}
}
/**
* This class represents qr-logging.speciallog[].cachehandler
*/
public final static class Cachehandler extends InnerNode {
public static class Builder implements ConfigBuilder {
private Set __uninitialized = new HashSet();
private String name = null;
private Integer size = null;
public Builder() { }
public Builder(Cachehandler config) {
name(config.name());
size(config.size());
}
private Builder override(Builder __superior) {
if (__superior.name != null)
name(__superior.name);
if (__superior.size != null)
size(__superior.size);
return this;
}
public Builder name(String __value) {
if (__value == null) throw new IllegalArgumentException("Null value is not allowed.");
name = __value;
return this;
}
public Builder size(int __value) {
size = __value;
return this;
}
private Builder size(String __value) {
return size(Integer.valueOf(__value));
}
}
private final StringNode name;
private final IntegerNode size;
public Cachehandler(Builder builder) {
this(builder, true);
}
private Cachehandler(Builder builder, boolean throwIfUninitialized) {
if (throwIfUninitialized && ! builder.__uninitialized.isEmpty())
throw new IllegalArgumentException("The following builder parameters for " +
"qr-logging.speciallog[].cachehandler must be initialized: " + builder.__uninitialized);
name = (builder.name == null) ?
new StringNode("") : new StringNode(builder.name);
size = (builder.size == null) ?
new IntegerNode(1000) : new IntegerNode(builder.size);
}
/**
* @return qr-logging.speciallog[].cachehandler.name
*/
public String name() {
return name.value();
}
/**
* @return qr-logging.speciallog[].cachehandler.size
*/
public int size() {
return size.value();
}
private ChangesRequiringRestart getChangesRequiringRestart(Cachehandler newConfig) {
ChangesRequiringRestart changes = new ChangesRequiringRestart("cachehandler");
return changes;
}
}
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy