org.carrot2.util.SystemPropertyStack Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of carrot2-mini Show documentation
Show all versions of carrot2-mini Show documentation
Carrot2 search results clustering framework. Minimal functional subset
(core algorithms and infrastructure, no document sources).
/*
* Carrot2 project.
*
* Copyright (C) 2002-2016, Dawid Weiss, Stanisław Osiński.
* All rights reserved.
*
* Refer to the full license file "carrot2.LICENSE"
* in the root folder of the repository checkout or at:
* http://www.carrot2.org/carrot2.LICENSE
*/
package org.carrot2.util;
import java.util.Stack;
/**
* Small utility to push a system property and then restore the previous value.
*/
public final class SystemPropertyStack
{
private final String propertyName;
private final Stack values = new Stack();
public SystemPropertyStack(String propertyName)
{
this.propertyName = propertyName;
}
public void pop()
{
String value = values.pop();
if (value != null)
System.setProperty(propertyName, value);
else
System.clearProperty(propertyName);
}
public void push(String newValue)
{
values.push(System.getProperty(propertyName));
System.setProperty(propertyName, newValue);
}
}