
org.jitsi.impl.configuration.PropertyConfigurationStore Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of libjitsi Show documentation
Show all versions of libjitsi Show documentation
libjitsi is an advanced Java media library for secure real-time audio/video
communication
The newest version!
/*
* Copyright @ 2015 Atlassian Pty Ltd
*
* 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 org.jitsi.impl.configuration;
import java.io.*;
import java.util.*;
/**
* Implements a ConfigurationStore which stores property name-value
* associations in a Properties instance and supports its
* serialization format for the configuration file of
* ConfigurationServiceImpl. Because of the Properties
* backend which can associate names only String values, instances
* of PropertyConfigurationStore convert property values to
* String using Object#toString().
*
* @author Lyubomir Marinov
*/
public class PropertyConfigurationStore
extends HashtableConfigurationStore
{
/**
* Initializes a new PropertyConfigurationStore instance.
*/
public PropertyConfigurationStore()
{
super(new SortedProperties());
}
/**
* Implements {@link ConfigurationStore#reloadConfiguration(File)}. Removes
* all property name-value associations currently present in this
* ConfigurationStore and deserializes new property name-value
* associations from a specific File which presumably is in the
* format represented by this instance.
*
* @param file the File to be read and to deserialize new property
* name-value associations from into this instance
* @throws IOException if there is an input error while reading from the
* specified file
* @see ConfigurationStore#reloadConfiguration(File)
*/
public void reloadConfiguration(File file)
throws IOException
{
properties.clear();
InputStream in = new BufferedInputStream(new FileInputStream(file));
try
{
properties.load(in);
}
finally
{
in.close();
}
}
/**
* Overrides
* {@link HashtableConfigurationStore#setNonSystemProperty(String, Object)}.
* As the backend of this instance is a Properties instance, it can
* only store String values and the specified value to be
* associated with the specified property name is converted to a
* String.
*
* @param name the name of the non-system property to be set to the
* specified value in this ConfigurationStore
* @param value the value to be assigned to the non-system property with the
* specified name in this ConfigurationStore
* @see ConfigurationStore#setNonSystemProperty(String, Object)
*/
@Override
public void setNonSystemProperty(String name, Object value)
{
properties.setProperty(name, value.toString());
}
/**
* Implements {@link ConfigurationStore#storeConfiguration(OutputStream)}.
* Stores/serializes the property name-value associations currently present
* in this ConfigurationStore into a specific OutputStream
* in the format represented by this instance.
*
* @param out the OutputStream to receive the serialized form of
* the property name-value associations currently present in this
* ConfigurationStore
* @throws IOException if there is an output error while storing the
* properties managed by this ConfigurationStore into the specified
* file
* @see ConfigurationStore#storeConfiguration(OutputStream)
*/
public void storeConfiguration(OutputStream out)
throws IOException
{
properties.store(out, null);
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy