blob: a5ae01168c6bcec3d017c5fc23a4c3b0f97b8d8a [file] [log] [blame]
/**
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements. See the NOTICE file
* distributed with this work for additional information
* regarding copyright ownership. The ASF licenses this file
* to you under the Apache 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://www.apache.org/licenses/LICENSE-2.0
*
* 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.apache.jena.fuseki.server;
import java.util.Collection;
import java.util.HashMap;
import java.util.Map;
import org.apache.jena.atlas.logging.Log;
/** A collection of counters */
public class CounterSet {
private Map<CounterName, Counter> counters = new HashMap<>();
public CounterSet() {}
public Collection<CounterName> counters() {
return counters.keySet();
}
public void inc(CounterName c) {
get(c).inc();
}
public void dec(CounterName c) {
get(c).dec();
}
public long value(CounterName c) {
return get(c).value();
}
public void add(CounterName counterName) {
if ( counters.containsKey(counterName) ) {
Log.warn(CounterSet.class, "Duplicate counter in counter set: " + counterName);
return;
}
counters.put(counterName, new Counter());
}
public boolean contains(CounterName cn) {
return counters.containsKey(cn);
}
public Counter get(CounterName cn) {
Counter c = counters.get(cn);
if ( c == null )
Log.warn(CounterSet.class, "No counter in counter set: " + cn);
return c;
}
}