InfluxProviderConfiguration.java
/*
* Licensed to The Apereo Foundation under one or more contributor license
* agreements. See the NOTICE file distributed with this work for additional
* information regarding copyright ownership.
*
*
* The Apereo Foundation licenses this file to you under the Educational
* Community License, Version 2.0 (the "License"); you may not use this file
* except in compliance with the License. You may obtain a copy of the License
* at:
*
* http://opensource.org/licenses/ecl2.txt
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
* WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
* License for the specific language governing permissions and limitations under
* the License.
*
*/
package org.opencastproject.statistics.provider.influx.provider;
import org.opencastproject.statistics.api.DataResolution;
import org.opencastproject.statistics.api.ProviderConfiguration;
import org.opencastproject.statistics.api.ResourceType;
import com.google.gson.Gson;
import java.util.Set;
public class InfluxProviderConfiguration extends ProviderConfiguration {
private static final Gson gson = new Gson();
public class InfluxProviderSource {
private String aggregation;
private String aggregationVariable;
private String measurement;
private String resourceIdName;
private Set<DataResolution> resolutions;
public InfluxProviderSource() {
// needed for gson
}
public InfluxProviderSource(
String aggregation,
String aggregationVariable,
String measurement,
String resourceIdName,
Set<DataResolution> resolutions
) {
this.aggregation = aggregation;
this.aggregationVariable = aggregationVariable;
this.measurement = measurement;
this.resourceIdName = resourceIdName;
this.resolutions = resolutions;
}
public String getAggregation() {
return aggregation;
}
public String getAggregationVariable() {
return aggregationVariable;
}
public String getMeasurement() {
return measurement;
}
public String getResourceIdName() {
return resourceIdName;
}
public Set<DataResolution> getResolutions() {
return resolutions;
}
}
private Set<InfluxProviderSource> sources;
public InfluxProviderConfiguration() {
// needed for gson
}
public InfluxProviderConfiguration(
String id,
String title,
String description,
ResourceType resourceType,
String type,
Set<InfluxProviderSource> sources
) {
super(id, title, description, resourceType, type);
this.sources = sources;
}
public Set<InfluxProviderSource> getSources() {
return sources;
}
public static InfluxProviderConfiguration fromJson(String json) {
return gson.fromJson(json, InfluxProviderConfiguration.class);
}
}