All Downloads are FREE. Search and download functionalities are using the official Maven repository.

io.continual.util.nv.impl.nvReadableTable Maven / Gradle / Ivy

There is a newer version: 0.3.14
Show newest version
/*
 *	Copyright 2019, Continual.io
 *
 *	Licensed 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 io.continual.util.nv.impl;

import java.util.Collection;
import java.util.HashMap;
import java.util.Map;
import java.util.Map.Entry;
import java.util.Properties;
import java.util.TreeSet;

public class nvReadableTable extends nvBaseReadable
{
	public nvReadableTable ()
	{
		this ( (Map)null );
	}

	public nvReadableTable ( Map content )
	{
		if ( content != null )
		{
			fTable = content;
		}
		else
		{
			fTable = new HashMap ();
		}
	}

	public nvReadableTable ( Properties content )
	{
		fTable = new HashMap ();
		for ( Entry e : content.entrySet () )
		{
			fTable.put ( e.getKey().toString (), e.getValue ().toString () );
		}
	}

	public synchronized void clear ( String key )
	{
		fTable.remove ( key );
	}

	public synchronized void clear ()
	{
		fTable.clear ();
	}

	public synchronized boolean hasValueFor ( String key )
	{
		return fTable.containsKey ( key );
	}

	public synchronized String getString ( String key ) throws MissingReqdSettingException
	{
		final String result = fTable.get ( key );
		if ( result == null )
		{
			throw new MissingReqdSettingException ( key );
		}
		return result;
	}

	@Override
	public String[] getStrings ( String key ) throws MissingReqdSettingException
	{
		final String fullset = getString ( key );
		return fullset.split ( ",", -1 );
	}

	@Override
	public synchronized int size ()
	{
		return fTable.size ();
	}

	@Override
	public synchronized Collection getAllKeys ()
	{
		final TreeSet list = new TreeSet ();
		for ( Object o : fTable.keySet () )
		{
			list.add ( o.toString () );
		}
		return list;
	}

	@Override
	public synchronized Map getCopyAsMap ()
	{
		HashMap map = new HashMap ();
		for ( Entry e : fTable.entrySet () )
		{
			map.put ( e.getKey(), e.getValue() );
		}
		return map;
	}

	protected synchronized void set ( String key, String val )
	{
		fTable.put ( key, val );
	}

	protected synchronized void set ( Map map )
	{
		fTable.putAll ( map );
	}

	private final Map fTable;
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy